diff --git a/Projects/HubX/DBPatch/sqlScripts/dacpac/HubX.DB.dacpac b/Projects/HubX/DBPatch/sqlScripts/dacpac/HubX.DB.dacpac index 542d3e3..023f208 100644 Binary files a/Projects/HubX/DBPatch/sqlScripts/dacpac/HubX.DB.dacpac and b/Projects/HubX/DBPatch/sqlScripts/dacpac/HubX.DB.dacpac differ diff --git a/Projects/HubX/HubX.Server/Program.cs b/Projects/HubX/HubX.Server/Program.cs index b9ebe4d..50190b7 100644 --- a/Projects/HubX/HubX.Server/Program.cs +++ b/Projects/HubX/HubX.Server/Program.cs @@ -37,7 +37,6 @@ builder.Services.AddHttpContextAccessor(); builder.Services.AddSingleton>(); //scoped -builder.Services.AddSingleton(); builder.Services.AddSingleton(); //config preload diff --git a/Projects/HubX/HubX.Server/Services/EFCoreService.cs b/Projects/HubX/HubX.Server/Services/EFCoreService.cs deleted file mode 100644 index 2786753..0000000 --- a/Projects/HubX/HubX.Server/Services/EFCoreService.cs +++ /dev/null @@ -1,62 +0,0 @@ -using DB.HubXDB; -using HubX.Library.Config; -using Microsoft.EntityFrameworkCore; -using SystemX.Core.Config.Model; -using SystemX.Core.DB; -using SystemX.Core.Services; - -namespace HubX.Server.Services -{ - public class EFCoreService - { - private readonly Dictionary DicDbContext = new Dictionary(); - private readonly ConfigService _configService; - - public EFCoreService(ConfigService configService) - { - _configService = configService; - InitializeDB(); - } - - #region Initialize DBContext - private void InitializeDB() - { - var dbList = _configService.GetConfig()?.DataBase; - if (dbList is not null) - { - foreach (var db in dbList) - { - if (typeof(HubXContext).Name == db.DBContext) - { - CreateDBContext(db); - } - } - } - } - - private void CreateDBContext(DataBase? dbConfig) where TDBContext : DbContext, new() - { - var connectionString = dbConfig?.ConvertToConnectionString(); - - var dbContext = new TDBContext(); - dbContext.Database.SetConnectionString($"{connectionString}"); - - if (dbContext is not null) - DicDbContext.Add($"{dbConfig?.DBContext}_{dbConfig?.DBID}", dbContext); - } - #endregion - - public TDBContext? GetDBContext(int dbID = 1) where TDBContext : DbContext - { - TDBContext? dBContext = default; - - var dbContextType = typeof(TDBContext); - if (DicDbContext.TryGetValue($"{dbContextType.Name}_{dbID}", out var context) == true) - { - dBContext = context as TDBContext; - } - - return dBContext; - } - }//class end -} diff --git a/Projects/HubX/HubX.Server/Services/UniqueKeyService.cs b/Projects/HubX/HubX.Server/Services/UniqueKeyService.cs index 0217858..7b05f6c 100644 --- a/Projects/HubX/HubX.Server/Services/UniqueKeyService.cs +++ b/Projects/HubX/HubX.Server/Services/UniqueKeyService.cs @@ -11,13 +11,11 @@ using SystemX.Core.DB; namespace HubX.Server.Services { public class UniqueKeyService - { - private readonly EFCoreService _efCoreService; + { private readonly IServiceScopeFactory _scopeFactory; - public UniqueKeyService(EFCoreService efCoreService, IServiceScopeFactory scopeFactory) - { - _efCoreService = efCoreService; + public UniqueKeyService(IServiceScopeFactory scopeFactory) + { _scopeFactory = scopeFactory; } diff --git a/Projects/VPKI/Doc/(20241220) 인증서 샘플.txt b/Projects/VPKI/Doc/(20241220) 인증서 샘플.txt new file mode 100644 index 0000000..edd2af1 --- /dev/null +++ b/Projects/VPKI/Doc/(20241220) 인증서 샘플.txt @@ -0,0 +1,299 @@ +774A556D397664454E424D4441794D4341584454497A4D44457A4D4441794E54417A4D316F59447A +49774F444D774D544D774D5451314F545535576A41384D517377435159445651514745774A4C556A +454E4D41734741315545436777455345744E517A454D4D416F47413155454377774452554E444D52 +4177446759445651514444416444515441784D4441794D4947624D42414742797147534D34394167 +4547425375424241416A4134474741415142304F745A642B786D52794F347A565A7867337348562B +547344712F65557131306771445538556764574F583264715339454C4731617458376A5A2F423747 +6A706B4D2B69486B6657543248416471355562446F38687130426E69736142784B35474345333951 +6E36525274754361427875786D53644C55556A2F32464E756E37656E467A6C4C3868735974334D4B +34694B34594C49366962615655767565676559524B596169355873634150676B616A676267776762 +5577496759445652306A4151482F42426777466F4155525452665953546A4A50327542514C384761 +546B754E5A5A2F4C4177494159445652304F4151482F424259454641594D54446243516755657245 +574351584131377437722F4344794D41344741315564447745422F77514541774942426A41534267 +4E5648524D4241663845434441474151482F416745414D456B4741315564487745422F77512F4D44 +30774F3641356F4465474E576830644841364C79396A636D77756147316A6132316A4C6D4E764C6D +74794C3056445179395362323930513045774D44497659584A734C30467962444645634445755933 +4A734D416F4743437147534D343942414D454134474D4144434269414A434150573267576362724A +64684F50624847695848487253426956387A3542534C7A6D48466E346A6D736D464F725670414356 +5A5463545867306F64667567396979492B4F6A544932796A384D7164634770666433435A7538416B +4942617A53476C38477169436937644A62333436592F3154464C6731345237365556473245616851 +4965747034486A38535A744E386548635672586D6D2B6B734C384F4B794D68396C63355332716D54 +6368315A785939426B3DFF16"}} +2024-12-20 16:14:03>>vPKI Recv Command : VPKI_CSRGEN_20PRVC +2024-12-20 16:14:03>>vPKI Recv Data : 1741_1:9C36F803D974:04013D1C88A8A2D53F980F +B2F80326D34FAED31E95326DAAEBBFBB1B8A515EA5032EE27D424098390F25E4E958A84D957ABADA +0CE1D32E7D2C81E196B81BF3A4F1E342019B5393E62CA67A0D955B5DB8DA137D6B760FBD2BE1F157 +62D87590B90E83235FA02FAC86D47179CC8CF196B55EBDB5A51603A446E83DAEE2346A05680C0A84 +45A1:P:2:OEM20:KM7:C001:P002 +VPKI <<<<<<<<<< Request Message : { +"iftid":"1741_1", +"publickey":"BAE9HIiootU/mA+y+AMm00+u0x6VMm2q67+7G4pRXqUDLuJ9QkCYOQ8l5OlYqE2Verr +aDOHTLn0sgeGWuBvzpPHjQgGbU5PmLKZ6DZVbXbjaE31rdg+9K+HxV2LYdZC5DoMjX6AvrIbUcXnMjPG +WtV69taUWA6RG6D2u4jRqBWgMCoRFoQ==", + +"cnInfo" : { +"macaddr":"63C907FC268B", +"wmi":"KM7", +"idType":"P", +"supplierId":"2" +}, +"certInfo" : { +"dc":"OEM20", +"unitCode":"C001", +"tierCode":"P002" +} +} +2024-12-20 16:14:03>>vPKI Result : True +2024-12-20 16:14:03>>vPKI Send Data : {"status":"success","message":"","data":{" +hashedtbscsr":"1C7A8BDCC84AEC06475AC368CBD16D9F8A831D52E28BE54B755B4678DEBBA701A +125645883C65B2578EC90938E89F70235680595E4F3AB221F324E6D2C0508E5C029","pcid":"004 +B4D37503239433336463830334439373433FE1E"}} +2024-12-20 16:14:07>>vPKI Recv Command : VPKI_CERTPUB_20PRVC +2024-12-20 16:14:07>>vPKI Recv Data : 1741_1:00BE8C9F418D3A965CB5E0C30FE3BF8D6D9 +E5E3C394C04576C3DDD8C73DB9E03A5845C2C1E7D22B289AF40FDD525AF5B13498C70D87906A8B78 +BA8FC0FC685231957003BA56F4A658C5F40A4EBCB110E2CA2BE69430D2A96795E8E8E02292BA791F +C7C05B03A5977FD4D8D52E60256B592DC4C6F6B72E7056095788BF545CF2CF99D9804:C001:P002: +SV EV:EU:KMC +VPKI <<<<<<<<<< Request Message : {"iftid":"1741_1","csrsignature":"AL6Mn0GNOpZc +teDDD+O/jW2eXjw5TARXbD3djHPbngOlhFwsHn0isomvQP3VJa9bE0mMcNh5Bqi3i6j8D8aFIxlXADul +b0pljF9ApOvLEQ4sor5pQw0qlnlejo4CKSunkfx8BbA6WXf9TY1S5gJWtZLcTG9rcucFYJV4i/VFzyz5 +nZgE","unitCode":"C001","tierCode":"P002","vehicleCode":"SV EV","localCode":"EU" +,"brandCode":"KMC"} +2024-12-20 16:14:08>>vPKI Result : True +2024-12-20 16:14:08>>vPKI Send Data : {"status":"success","message":"","data":{" +leafcertificate":"4D49494337444343416B326741774942416749554244692F742B35685A4675 +75326848357A616F3833546A6B7A717377436759494B6F5A497A6A3045417751775044454C4D416B +474131554542684D43533149784454414C42674E5642416F4D4245684C54554D784444414B42674E +564241734D41305644517A45514D4134474131554541777748513045774D5441774D6A4167467730 +794E4445794D6A41774E7A45304D446461474138794D4455304D5449794D4445304E546B314F566F +77627A45564D424D4743676D534A6F6D543869786B41526B5742553946545449774D513077437759 +445651514B44415249533031444D517777436759445651514C44414E4651304D784454414C42674E +564241734D42454D774D4445784454414C42674E564241734D424641774D444978477A415A42674E +5642414D4D456B744E4E3141794F554D7A4E6B59344D444E454F5463304D7A43426D7A4151426763 +71686B6A4F50514942426755726751514149774F426867414541543063694B696931542B5944374C +344179625454363754487055796261727276377362696C466570514D75346E3143514A6735447958 +6B3656696F545A563675746F4D34644D7566537942345A6134472F4F6B38654E43415A74546B2B59 +73706E6F4E6C567464754E6F54665774324437307234664658597468316B4C6B4F67794E666F432B +73687452786563794D385A613158723231705259447045626F506137694E476F466141774B684557 +686F3447304D4947784D43494741315564497745422F7751594D4261414641594D54446243516755 +657245574351584131377437722F4344794D43414741315564446745422F77515742425270745744 +76545645306B30684D37646935374F6E39374A6751766A414F42674E56485138424166384542414D +434134677744415944565230544151482F424149774144424C42674E564852384241663845515441 +2F4D4432674F364135686A646F644852774F69387659334A734C6D6874593274745979356A627935 +726369394651304D76513045774D5441774D69396A636D777651334A734D584178524841794E7A63 +7559334A734D416F4743437147534D343942414D454134474D4144434269414A43414C696B33576C +37622F325670666479646E726253494948364A4F41367844306451686A6C5A5538434F42456F4E35 +4C4D686B646B38655449345574374C38392B707A676B714D4F5478474854684F455139744B735148 +4B416B49425868713036347A495132434F5657473263597A46776D486C734A327A39424337583961 +615A6E416A396E4E71562F77685A646172486B4765633150525A58734273726C666A3867426F6F43 +4A532B374F387763686B50773D6D6D","subcacertificate":"4D494943767A4343416943674177 +494241674955447379486F345A3973554E4D4E71794C4542433148426D4A6A444977436759494B6F +5A497A6A304541775177506A454C4D416B474131554542684D43533149784454414C42674E564241 +6F4D4245684C54554D784444414B42674E564241734D41305644517A45534D424147413155454177 +774A556D397664454E424D4441794D4341584454497A4D44457A4D4441794E54417A4D316F59447A +49774F444D774D544D774D5451314F545535576A41384D517377435159445651514745774A4C556A +454E4D41734741315545436777455345744E517A454D4D416F47413155454377774452554E444D52 +4177446759445651514444416444515441784D4441794D4947624D42414742797147534D34394167 +4547425375424241416A4134474741415142304F745A642B786D52794F347A565A7867337348562B +547344712F65557131306771445538556764574F583264715339454C4731617458376A5A2F423747 +6A706B4D2B69486B6657543248416471355562446F38687130426E69736142784B35474345333951 +6E36525274754361427875786D53644C55556A2F32464E756E37656E467A6C4C3868735974334D4B +34694B34594C49366962615655767565676559524B596169355873634150676B616A676267776762 +5577496759445652306A4151482F42426777466F4155525452665953546A4A50327542514C384761 +546B754E5A5A2F4C4177494159445652304F4151482F424259454641594D54446243516755657245 +574351584131377437722F4344794D41344741315564447745422F77514541774942426A41534267 +4E5648524D4241663845434441474151482F416745414D456B4741315564487745422F77512F4D44 +30774F3641356F4465474E576830644841364C79396A636D77756147316A6132316A4C6D4E764C6D +74794C3056445179395362323930513045774D44497659584A734C30467962444645634445755933 +4A734D416F4743437147534D343942414D454134474D4144434269414A434150573267576362724A +64684F50624847695848487253426956387A3542534C7A6D48466E346A6D736D464F725670414356 +5A5463545867306F64667567396979492B4F6A544932796A384D7164634770666433435A7538416B +4942617A53476C38477169436937644A62333436592F3154464C6731345237365556473245616851 +4965747034486A38535A744E386548635672586D6D2B6B734C384F4B794D68396C63355332716D54 +6368315A785939426B3DFF16"}} +2024-12-20 16:14:14>>vPKI Recv Command : VPKI_CSRGEN_20VHCC +2024-12-20 16:14:14>>vPKI Recv Data : 1741_2:9C36F803D973:0400A14E56526E254A64C5 +96812D6FBB0507DBA657E9AF035CAE3C96136AA1B66BEAC61D7058C0B6C6D47E981837A9FD5C70BE +C3DF5E146F241A80E9D7A2B26BEB7066012E21B099935158DB8C618A238E556BD4B83B3742AF173E +375814344ECF124D55E49F1987C0BB3A5B7DEA2A2B49284E8F1E13FB428F1257A3F3E6F7ECF2A5A1 +F002:V:2:EV:KM7:C001:P002 +VPKI <<<<<<<<<< Request Message : { +"iftid":"1741_2", +"publickey":"BAChTlZSbiVKZMWWgS1vuwUH26ZX6a8DXK48lhNqobZr6sYdcFjAtsbUfpgYN6n9XHC ++w99eFG8kGoDp16Kya+twZgEuIbCZk1FY24xhiiOOVWvUuDs3Qq8XPjdYFDROzxJNVeSfGYfAuzpbfeo +qK0koTo8eE/tCjxJXo/Pm9+zypaHwAg==", + +"cnInfo" : { +"macaddr":"63C907FC268C", +"wmi":"KM7", +"idType":"V", +"supplierId":"2" +}, +"certInfo" : { +"dc":"EV", +"unitCode":"C001", +"tierCode":"P002" +} +} +2024-12-20 16:14:14>>vPKI Result : True +2024-12-20 16:14:14>>vPKI Send Data : {"status":"success","message":"","data":{" +hashedtbscsr":"60F661F9DF687F9A0DEAD196C50E719E0A7FC2BFE68355A5502515DAF97EDC34A +9270E8FC55B926D984F819D4E71FF91CAD4DA7C2A91B593BBC4FB38F5AF12B740DD","evccId":"0 +04B4D37563230303943333646383033443937333151FA"}} +2024-12-20 16:14:18>>vPKI Recv Command : VPKI_CERTPUB_20VHCC +2024-12-20 16:14:18>>vPKI Recv Data : 1741_2:006E01AC4969FA3736C93289A151FC633CE +EC383B4912956ECB1185236960DB79BB02C23B89185D3A0854B3E5B07FC3D932322BD7D527290866 +9420F8507551DD91C01B514EB2B9DC175FE7EC968F6AED7EC55FD494105527C9DE72E1B4E6EEDCA5 +002D84CB7F6C7B7A1A73B9217690AB22003262E26E8AC993BC7192C3E67724CCAA2D2:C001:P002: +SV EV:EU:KMC +VPKI <<<<<<<<<< Request Message : {"iftid":"1741_2","csrsignature":"AG4BrElp+jc2 +yTKJoVH8Yzzuw4O0kSlW7LEYUjaWDbebsCwjuJGF06CFSz5bB/w9kyMivX1ScpCGaUIPhQdVHdkcAbUU +6yudwXX+fslo9q7X7FX9SUEFUnyd5y4bTm7tylAC2Ey39se3oac7khdpCrIgAyYuJuismTvHGSw+Z3JM +yqLS","unitCode":"C001","tierCode":"P002","vehicleCode":"SV EV","localCode":"EU" +,"brandCode":"KMC"} +2024-12-20 16:14:19>>vPKI Result : True +2024-12-20 16:14:19>>vPKI Send Data : {"status":"success","message":"","data":{" +leafcertificate":"4D49494444444343416D3667417749424167495542422B693933794C4C6451 +665578387A725A6472527A327030453077436759494B6F5A497A6A3045417751775044454C4D416B +474131554542684D43533149784454414C42674E5642416F4D4245684C54554D784444414B42674E +564241734D41305644517A45514D4134474131554541777748513045774D5441774D7A4167467730 +794E4445794D6A41774E7A45304D546861474138794D4455304D5449794D4445304E546B314F566F +77626A45534D42414743676D534A6F6D543869786B41526B57416B56574D51307743775944565151 +4B44415249533031444D517777436759445651514C44414E4651304D784454414C42674E56424173 +4D42454D774D4445784454414C42674E564241734D424641774D4449784854416242674E5642414D +4D4645744E4E3159794D444135517A4D32526A67774D3051354E7A4D784D4947624D424147427971 +47534D343941674547425375424241416A41344747414151416F553557556D346C536D54466C6F45 +74623773464239756D562B6D7641317975504A595461714732612B724748584259774C6247314836 +59474465702F56787776735066586852764A42714136646569736D7672634759424C6947776D5A4E +52574E754D59596F6A6A6C5672314C67374E304B76467A343357425130547338535456586B6E786D +48774C7336573333714B69744A4B45365048685037516F38535636507A357666733871576838414B +6A6764597767644D77496759445652306A4151482F42426777466F41556A5172506F674B334C392B +6546686F577268795334306D67644C4177494159445652304F4151482F4242594546486E76355263 +79524B34456D72546B58307057473974453673314D4D41344741315564447745422F775145417749 +446944414D42674E5648524D4241663845416A41414D434147413155644A5145422F7751574D4251 +47434373474151554642774D42426767724267454642516344416A424C42674E5648523842416638 +455154412F4D4432674F364135686A646F644852774F69387659334A734C6D687459327474597935 +6A627935726369394651304D76513045774D5441774D79396A636D777651334A734D584178524841 +794E7A457559334A734D416F4743437147534D343942414D454134474C4144434268774A43414C47 +6D73443877537572744B4D7474552F7066392F7773574164307456724F516675654B564C774E4B56 +562F6B6D546B664E4454362F6254736A3258476378484334573235716641497A564C6B4C61593275 +6B70626F77416B464A70784C4D6D696C724A37636C4338614D5256484550492F726B2F714C727032 +4D6D7733444C3342794E6E4C79507A622F48494C7441366A6A47344854485874484E73794B34434C +5465347A57616F6E55427778554E513D3D7368","subcacertificate":"4D494943766A43434169 +4367417749424167495544332F57376D6444387545764F3874473532536469564B4A674230774367 +59494B6F5A497A6A304541775177506A454C4D416B474131554542684D43533149784454414C4267 +4E5642416F4D4245684C54554D784444414B42674E564241734D41305644517A45534D4241474131 +55454177774A556D397664454E424D4441794D4341584454497A4D44457A4D44417A4D6A41314E6C +6F59447A49774F444D774D544D774D5451314F545535576A41384D51737743515944565151474577 +4A4C556A454E4D41734741315545436777455345744E517A454D4D416F4741315545437777445255 +4E444D524177446759445651514444416444515441784D44417A4D4947624D42414742797147534D +343941674547425375424241416A413447474141514130654458777A536A4261575446636A673438 +51747348477263534A346E2B2B2F454237367061425738686641314651337247745A30635652354E +506653322B3252317367714A7A364C70477668314C675843562B444738422B4870715345374A6A47 +614C725568704E30474F6279456D517A6964345949534571416367586F6E68366C2F463743373651 +73534F6A4D5169675641785A55576B305A3757564769337A4F2B35654B4169466F7A744B536A6762 +677767625577496759445652306A4151482F42426777466F4155525452665953546A4A5032754251 +4C384761546B754E5A5A2F4C4177494159445652304F4151482F424259454649304B7A3649437479 +2F666E685961467134636B754E4A6F4853774D41344741315564447745422F77514541774942426A +415342674E5648524D4241663845434441474151482F416745414D456B4741315564487745422F77 +512F4D4430774F3641356F4465474E576830644841364C79396A636D77756147316A6132316A4C6D +4E764C6D74794C3056445179395362323930513045774D44497659584A734C304679624446456344 +457559334A734D416F4743437147534D343942414D454134474C4144434268774A42415A38577848 +645146587A52354D42627A424B72453070686B4878584E7467386E634474757361427243634D464C +51595155537A6631676D786347485747476842454F7742704E354555396F78374851365030485976 +344351674559782B51753556786A6E734E6B756538586C396B6146645A703277663564726D6B3637 +586356374F346C6C436E57612F4C34355053394372704C7038716A78415166666A7271756D59676C +4A6E34352B456659654F32413D3D44E7"}} +2024-12-20 16:14:20>>vPKI Recv Command : VPKI_CSRGEN_20VHCC +2024-12-20 16:14:20>>vPKI Recv Data : 1741_1:9C36F803D974:0400CF153F248D9B3DE131 +91F2D15761A1C24C865E6C6D053671D14E5CDEFAAFE147DC0377D12BF91C889C93111226B67E1735 +8554BB1EC901E5C5F237C838DBCB9FE8013B04CE746139DD650B12EE466DC6A9AA83ADD8AA3789BF +44983BBB8DE46610717DC01502B1C85D4CF3D41E19CE289031278CD4A9ECE418FB2173A0A198C4B6 +1A2A:V:2:EV:KM7:C001:P002 +VPKI <<<<<<<<<< Request Message : { +"iftid":"1741_1", +"publickey":"BADPFT8kjZs94TGR8tFXYaHCTIZebG0FNnHRTlze+q/hR9wDd9Er+RyInJMREia2fhc +1hVS7HskB5cXyN8g428uf6AE7BM50YTndZQsS7kZtxqmqg63YqjeJv0SYO7uN5GYQcX3AFQKxyF1M89Q +eGc4okDEnjNSp7OQY+yFzoKGYxLYaKg==", + +"cnInfo" : { +"macaddr":"63C907FC268B", +"wmi":"KM7", +"idType":"V", +"supplierId":"2" +}, +"certInfo" : { +"dc":"EV", +"unitCode":"C001", +"tierCode":"P002" +} +} +2024-12-20 16:14:20>>vPKI Result : True +2024-12-20 16:14:20>>vPKI Send Data : {"status":"success","message":"","data":{" +hashedtbscsr":"6A4CA160E66CFAC87787A941537DE81605112A3193D6965B0AB237D31CCCA89D0 +CEE06183A06E1ADB0268D03E2CBBBA750FA912431EFD2EC7B02F093B60C02AA9039","evccId":"0 +04B4D375632303039433336463830334439373436B88A"}} +2024-12-20 16:14:23>>vPKI Recv Command : VPKI_CERTPUB_20VHCC +2024-12-20 16:14:23>>vPKI Recv Data : 1741_1:00C16067900E18AB976B9844BAE2724BE30 +79A8CEDA78EADDD100C0BBAFF7F44BF6308629B7F64A09C02FDBEC9D67BCA991B5B7D8524D586147 +6EB8DAE7C0669829E01803F7345B7B0410E4E7EAA71D32F0848C07A8D643251CD94124B9FDE17353 +8EC7B95893C9689A9BC0DDF56538BCF0381BB036537A09936CF58CA2190AD36CBD5C2:C001:P002: +SV EV:EU:KMC +VPKI <<<<<<<<<< Request Message : {"iftid":"1741_1","csrsignature":"AMFgZ5AOGKuX +a5hEuuJyS+MHmoztp46t3RAMC7r/f0S/Ywhim39koJwC/b7J1nvKmRtbfYUk1YYUduuNrnwGaYKeAYA/ +c0W3sEEOTn6qcdMvCEjAeo1kMlHNlBJLn94XNTjse5WJPJaJqbwN31ZTi88DgbsDZTegmTbPWMohkK02 +y9XC","unitCode":"C001","tierCode":"P002","vehicleCode":"SV EV","localCode":"EU" +,"brandCode":"KMC"} +2024-12-20 16:14:24>>vPKI Result : True +2024-12-20 16:14:24>>vPKI Send Data : {"status":"success","message":"","data":{" +leafcertificate":"4D49494444544343416D3667417749424167495542422B6A492B6168637764 +364E42444C44354E4F5862694531506777436759494B6F5A497A6A3045417751775044454C4D416B +474131554542684D43533149784454414C42674E5642416F4D4245684C54554D784444414B42674E +564241734D41305644517A45514D4134474131554541777748513045774D5441774D7A4167467730 +794E4445794D6A41774E7A45304D6A5261474138794D4455304D5449794D4445304E546B314F566F +77626A45534D42414743676D534A6F6D543869786B41526B57416B56574D51307743775944565151 +4B44415249533031444D517777436759445651514C44414E4651304D784454414C42674E56424173 +4D42454D774D4445784454414C42674E564241734D424641774D4449784854416242674E5642414D +4D4645744E4E3159794D444135517A4D32526A67774D3051354E7A51324D4947624D424147427971 +47534D343941674547425375424241416A41344747414151417A78552F4A493262506545786B664C +5256324768776B7947586D787442545A78305535633376717634556663413366524B2F6B63694A79 +544552496D746E34584E5956557578374A41655846386A66494F4E764C6E2B67424F77544F644745 +353357554C4575354762636170716F4F74324B6F33696239456D4475376A65526D45484639774255 +43736368645450505548686E4F4B4A41784A347A5571657A6B47507368633643686D4D5332476971 +6A6764597767644D77496759445652306A4151482F42426777466F41556A5172506F674B334C392B +6546686F577268795334306D67644C4177494159445652304F4151482F4242594546426E4665336F +2B69574F7262414236742F724550586257783877774D41344741315564447745422F775145417749 +446944414D42674E5648524D4241663845416A41414D434147413155644A5145422F7751574D4251 +47434373474151554642774D42426767724267454642516344416A424C42674E5648523842416638 +455154412F4D4432674F364135686A646F644852774F69387659334A734C6D687459327474597935 +6A627935726369394651304D76513045774D5441774D79396A636D777651334A734D584178524841 +794E7A457559334A734D416F4743437147534D343942414D454134474D4144434269414A43415645 +386848783248557770714E734856645957326A666677394C776F4E494C3268567A784166796D7730 +55776B7A52574C564175544771504A56574E683674524551596E776A316C5550682F553241576139 +3456636C30416B4942544342635A574B6C714A68795178747251534661394F306E56763651485948 +46734D5557474F7571343753765863646E72676A396F584C7744627A6F43616B2F633175665A674C +486E69622B4548623231655434684F453DDC94","subcacertificate":"4D494943766A43434169 +4367417749424167495544332F57376D6444387545764F3874473532536469564B4A674230774367 +59494B6F5A497A6A304541775177506A454C4D416B474131554542684D43533149784454414C4267 +4E5642416F4D4245684C54554D784444414B42674E564241734D41305644517A45534D4241474131 +55454177774A556D397664454E424D4441794D4341584454497A4D44457A4D44417A4D6A41314E6C +6F59447A49774F444D774D544D774D5451314F545535576A41384D51737743515944565151474577 +4A4C556A454E4D41734741315545436777455345744E517A454D4D416F4741315545437777445255 +4E444D524177446759445651514444416444515441784D44417A4D4947624D42414742797147534D +343941674547425375424241416A413447474141514130654458777A536A4261575446636A673438 +51747348477263534A346E2B2B2F454237367061425738686641314651337247745A30635652354E +506653322B3252317367714A7A364C70477668314C675843562B444738422B4870715345374A6A47 +614C725568704E30474F6279456D517A6964345949534571416367586F6E68366C2F463743373651 +73534F6A4D5169675641785A55576B305A3757564769337A4F2B35654B4169466F7A744B536A6762 +677767625577496759445652306A4151482F42426777466F4155525452665953546A4A5032754251 +4C384761546B754E5A5A2F4C4177494159445652304F4151482F424259454649304B7A3649437479 +2F666E685961467134636B754E4A6F4853774D41344741315564447745422F77514541774942426A +415342674E5648524D4241663845434441474151482F416745414D456B4741315564487745422F77 +512F4D4430774F3641356F4465474E576830644841364C79396A636D77756147316A6132316A4C6D +4E764C6D74794C3056445179395362323930513045774D44497659584A734C304679624446456344 +457559334A734D416F4743437147534D343942414D454134474C4144434268774A42415A38577848 +645146587A52354D42627A424B72453070686B4878584E7467386E634474757361427243634D464C +51595155537A6631676D786347485747476842454F7742704E354555396F78374851365030485976 +344351674559782B51753556786A6E734E6B756538586C396B6146645A703277663564726D6B3637 +586356374F346C6C436E57612F4C34355053394372704C7038716A78415166666A7271756D59676C +4A6E34352B456659654F32413D3D44E7"}} diff --git a/Projects/VPKI/Doc/Cert/SubCA/SubCA_P02OEM.pem b/Projects/VPKI/Doc/Cert/SubCA/SubCA_P02OEM.pem new file mode 100644 index 0000000..2b75461 --- /dev/null +++ b/Projects/VPKI/Doc/Cert/SubCA/SubCA_P02OEM.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICszCCAlmgAwIBAgIUHxrrBdc1lvNKymblQjb06G6MSJYwCgYIKoZIzj0EAwI +wPjELMAkGA1UEBhMCS1IxDTALBgNVBAoMBEhLTUMxDDAKBgNVBAsMA0VDQzESMB +AGA1UEAwwJUm9vdENBMDAxMCAXDTE5MDYxMjA2MTUxNVoYDzIwNzkwNjEyMjM1O +TU5WjA8MQswCQYDVQQGEwJLUjENMAsGA1UECgwESEtNQzEMMAoGA1UECwwDRUND +MRAwDgYDVQQDDAdDQTAxMDAxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEB0K +uXigZeI7U1McUnjEhYGL4g7zsvyzoNl8SMJ0oPxJgiXka+A37JjK4L/P85bAG7N +4C6IYuSem99P0C0vt0K6OCATMwggEvMB8GA1UdIwQYMBaAFLW9YfqauBG22R0cD +ywt08OqFD99MB0GA1UdDgQWBBQl67U3b8S3sG1J/ukFKlGcqPpw8DAOBgNVHQ8B +Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADBBBgNVHR8EOjA4MDagNKAyhjB +odHRwOi8vY3JsLmhtY2ttYy5jby5rci9FQ0MvUm9vdC9hcmwvQXJsMURwMS5jcm +wwgYUGCCsGAQUFBwEBBHkwdzA7BggrBgEFBQcwAoYvaHR0cDovL2NybC5obWNrb +WMuY28ua3IvRUNDL2NlcnQvaGttY3Jvb3RjYS5kZXIwOAYIKwYBBQUHMAGGLGh0 +dHA6Ly9ydG9jc3AuaG1ja21jLmNvLmtyL0VDQy9PQ1NQL2hrbWNvY3NwMAoGCCq +GSM49BAMCA0gAMEUCICfXVV8IhFBXkaOHkg2Wk883y9r3B5rPtDV9JKhUQuBXAi +EAug5R/broK+ZjM3vYdU7dndBfMFkOYtCa1NBdq6ie/Fs= +-----END CERTIFICATE----- \ No newline at end of file diff --git a/Projects/VPKI/Doc/Cert/SubCA/SubCA_P20OEM.pem b/Projects/VPKI/Doc/Cert/SubCA/SubCA_P20OEM.pem new file mode 100644 index 0000000..8529fef --- /dev/null +++ b/Projects/VPKI/Doc/Cert/SubCA/SubCA_P20OEM.pem @@ -0,0 +1,3 @@ +-----BEGIN CERTIFICATE----- +MIICvzCCAiCgAwIBAgIUDsyHo4Z9sUNMNqyLEBC1HBmJjDIwCgYIKoZIzj0EAwQwPjELMAkGA1UEBhMCS1IxDTALBgNVBAoMBEhLTUMxDDAKBgNVBAsMA0VDQzESMBAGA1UEAwwJUm9vdENBMDAyMCAXDTIzMDEzMDAyNTAzM1oYDzIwODMwMTMwMTQ1OTU5WjA8MQswCQYDVQQGEwJLUjENMAsGA1UECgwESEtNQzEMMAoGA1UECwwDRUNDMRAwDgYDVQQDDAdDQTAxMDAyMIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQB0OtZd+xmRyO4zVZxg3sHV+TsDq/eUq10gqDU8UgdWOX2dqS9ELG1atX7jZ/B7GjpkM+iHkfWT2HAdq5UbDo8hq0BnisaBxK5GCE39Qn6RRtuCaBxuxmSdLUUj/2FNun7enFzlL8hsYt3MK4iK4YLI6ibaVUvuegeYRKYai5XscAPgkajgbgwgbUwIgYDVR0jAQH/BBgwFoAURTRfYSTjJP2uBQL8GaTkuNZZ/LAwIAYDVR0OAQH/BBYEFAYMTDbCQgUerEWCQXA17t7r/CDyMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMEkGA1UdHwEB/wQ/MD0wO6A5oDeGNWh0dHA6Ly9jcmwuaG1ja21jLmNvLmtyL0VDQy9Sb290Q0EwMDIvYXJsL0FybDFEcDEuY3JsMAoGCCqGSM49BAMEA4GMADCBiAJCAPW2gWcbrJdhOPbHGiXHHrSBiV8z5BSLzmHFn4jmsmFOrVpACVZTcTXg0odfug9iyI+OjTI2yj8MqdcGpfd3CZu8AkIBazSGl8GqiCi7dJb346Y/1TFLg14R76UVG2EahQIetp4Hj8SZtN8eHcVrXmm+ksL8OKyMh9lc5S2qmTch1ZxY9Bk= +-----END CERTIFICATE----- \ No newline at end of file diff --git a/Projects/VPKI/Doc/Cert/SubCA/SubCA_P20VHC.pem b/Projects/VPKI/Doc/Cert/SubCA/SubCA_P20VHC.pem new file mode 100644 index 0000000..3afe8df --- /dev/null +++ b/Projects/VPKI/Doc/Cert/SubCA/SubCA_P20VHC.pem @@ -0,0 +1,3 @@ +-----BEGIN CERTIFICATE----- +MIICvjCCAiCgAwIBAgIUD3/W7mdD8uEvO8tG52SdiVKJgB0wCgYIKoZIzj0EAwQwPjELMAkGA1UEBhMCS1IxDTALBgNVBAoMBEhLTUMxDDAKBgNVBAsMA0VDQzESMBAGA1UEAwwJUm9vdENBMDAyMCAXDTIzMDEzMDAzMjA1NloYDzIwODMwMTMwMTQ1OTU5WjA8MQswCQYDVQQGEwJLUjENMAsGA1UECgwESEtNQzEMMAoGA1UECwwDRUNDMRAwDgYDVQQDDAdDQTAxMDAzMIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQA0eDXwzSjBaWTFcjg48QtsHGrcSJ4n++/EB76paBW8hfA1FQ3rGtZ0cVR5NPfS2+2R1sgqJz6LpGvh1LgXCV+DG8B+HpqSE7JjGaLrUhpN0GObyEmQzid4YISEqAcgXonh6l/F7C76QsSOjMQigVAxZUWk0Z7WVGi3zO+5eKAiFoztKSjgbgwgbUwIgYDVR0jAQH/BBgwFoAURTRfYSTjJP2uBQL8GaTkuNZZ/LAwIAYDVR0OAQH/BBYEFI0Kz6ICty/fnhYaFq4ckuNJoHSwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMEkGA1UdHwEB/wQ/MD0wO6A5oDeGNWh0dHA6Ly9jcmwuaG1ja21jLmNvLmtyL0VDQy9Sb290Q0EwMDIvYXJsL0FybDFEcDEuY3JsMAoGCCqGSM49BAMEA4GLADCBhwJBAZ8WxHdQFXzR5MBbzBKrE0phkHxXNtg8ncDtusaBrCcMFLQYQUSzf1gmxcGHWGGhBEOwBpN5EU9ox7HQ6P0HYv4CQgEYx+Qu5VxjnsNkue8Xl9kaFdZp2wf5drmk67XcV7O4llCnWa/L45PS9CrpLp8qjxAQffjrqumYglJn45+EfYeO2A== +-----END CERTIFICATE----- \ No newline at end of file diff --git a/Projects/VPKI/Doc/Cert/V2GRoot/CharINV2GRoot.pem b/Projects/VPKI/Doc/Cert/V2GRoot/CharINV2GRoot.pem new file mode 100644 index 0000000..171ea1b --- /dev/null +++ b/Projects/VPKI/Doc/Cert/V2GRoot/CharINV2GRoot.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICizCCAeygAwIBAgIUQzY4ymMTdB6B5Xz8DeVamTYtPBUwCgYIKoZIzj0EAwQw +TjEVMBMGA1UECgwMQ2hhcklOIGUuIFYuMSAwHgYDVQQDDBdDaGFySU4gVjJHIFJv +b3QgQ0EgRzFWMjETMBEGCgmSJomT8ixkARkWA1YyRzAgFw0yMjA5MjMxMjUzMzha +GA8yMDUyMDkyMzEyNTMzOFowTjEVMBMGA1UECgwMQ2hhcklOIGUuIFYuMSAwHgYD +VQQDDBdDaGFySU4gVjJHIFJvb3QgQ0EgRzFWMjETMBEGCgmSJomT8ixkARkWA1Yy +RzCBmzAQBgcqhkjOPQIBBgUrgQQAIwOBhgAEAFs5XQezNOwcM9ys2l3zdNog8hiu +cjd2uQmiYLIfwEH9MKS38nRlSreR0E6Xy2d469Zl1ar8YD8D/TgNZdaLQQVCAL2F +SVbFe4/pmL14fRm5UWhmRfn61YaR62r+LtZL8ZE2cwiF0LTnqu22Yyf4dqyTTuak +y9r1pvvEFHEP1o/VSjkLo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBBjAdBgNVHQ4EFgQUpFmCy+Rrntbt9+0BLBt+iCFl5S0wHwYDVR0jBBgwFoAU +pFmCy+Rrntbt9+0BLBt+iCFl5S0wCgYIKoZIzj0EAwQDgYwAMIGIAkIBLFS4GWPn +pDiKq69QjCFV3ncA2iD9L+9ak6E9INGgltnyLxJcs3keGc4u0uG3TflAyEtiJC3Q +z07JHi7dt1rjr/ECQgCsAkOonJfyY3ji++O4V7pYeEPrXleldpzGfP/iEAs51DPG +FJq/8rsZ2FvFxYkimNrWvvk+IXiN3fFOAl63Z5z0Xw== +-----END CERTIFICATE----- diff --git a/Projects/VPKI/Doc/Cert/V2GRoot/HubjectRootCert.pem b/Projects/VPKI/Doc/Cert/V2GRoot/HubjectRootCert.pem new file mode 100644 index 0000000..9de5750 --- /dev/null +++ b/Projects/VPKI/Doc/Cert/V2GRoot/HubjectRootCert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICTTCCAfOgAwIBAgIQALu7vBrEWtLf5bHYc8NchDAKBggqhkjOPQQDAjBSMQsw +CQYDVQQGEwJERTEVMBMGA1UEChMMSHViamVjdCBHbWJIMRMwEQYKCZImiZPyLGQB +GRYDVjJHMRcwFQYDVQQDEw5WMkcgUm9vdCBDQSBHMjAgFw0xOTAxMTAxMjU0MjZa +GA8yMDU5MDEwOTE5MDAwMFowUjELMAkGA1UEBhMCREUxFTATBgNVBAoTDEh1Ympl +Y3QgR21iSDETMBEGCgmSJomT8ixkARkWA1YyRzEXMBUGA1UEAxMOVjJHIFJvb3Qg +Q0EgRzIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQI+uelZzJzESGTP2ZkDfA+ +W0+7O9y0a8gVl0nZnS0Ko5H71VG2aacoUc+GHRWmXhXiutfDwauh4MtMp32zj5/R +o4GoMIGlMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GA1UdEwEB/wQFMAMBAf8wEQYD +VR0OBAoECEW4QJ7hOPi/MEUGA1UdIAQ+MDwwOgYMKwYBBAGCxDUBAgEAMCowKAYI +KwYBBQUHAgEWHGh0dHBzOi8vd3d3Lmh1YmplY3QuY29tL3BraS8wEwYDVR0jBAww +CoAIRbhAnuE4+L8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIAQl +k+aOKUGJk7KoZs2ASAYv1D0w/BqN9Dpg82X0bFb8AiEAi1dL21fLl/wbYs7LYYzp +i4ELaXBzZxy4tAVwBy9pia4= +-----END CERTIFICATE----- \ No newline at end of file diff --git a/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/1. E-PIT/V2GRootEpit.pem b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/1. E-PIT/V2GRootEpit.pem new file mode 100644 index 0000000..562ba14 --- /dev/null +++ b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/1. E-PIT/V2GRootEpit.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIBvzCCAWSgAwIBAgIBCDAKBggqhkjOPQQDAjBVMQswCQYDVQQGEwJLUjEMMAoG +A1UECgwDSE1DMQwwCgYDVQQLDANITUMxEzARBgoJkiaJk/IsZAEZFgNWMkcxFTAT +BgNVBAMMDEhLTUNfVjJHUm9vdDAgFw0yMDEwMjMwNjMwMzdaGA8yMDYwMTAyMzA2 +MzAzN1owVTELMAkGA1UEBhMCS1IxDDAKBgNVBAoMA0hNQzEMMAoGA1UECwwDSE1D +MRMwEQYKCZImiZPyLGQBGRYDVjJHMRUwEwYDVQQDDAxIS01DX1YyR1Jvb3QwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAASUdouD9q4WZ4oa78OjCtnIItxXUNucbuAr +MMu3OtKTsmcICYUHXvxJgjwbg7HYDQZlol925KzErxRo9VaBKIXwoyMwITAOBgNV +HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNJADBGAiEA +w3Dqs4EbnjASNeIPjxWtOq4hl8c1rYbAtXQlbEuNWe0CIQD+/A/+FdJ5Bmjlnzd+ +TtRa7sijicilfv3FJ6WgHb5DxQ== +-----END CERTIFICATE----- diff --git a/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/2. Hubject (EU)/Hubject_V2GRoot_EU.pem b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/2. Hubject (EU)/Hubject_V2GRoot_EU.pem new file mode 100644 index 0000000..9de5750 --- /dev/null +++ b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/2. Hubject (EU)/Hubject_V2GRoot_EU.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICTTCCAfOgAwIBAgIQALu7vBrEWtLf5bHYc8NchDAKBggqhkjOPQQDAjBSMQsw +CQYDVQQGEwJERTEVMBMGA1UEChMMSHViamVjdCBHbWJIMRMwEQYKCZImiZPyLGQB +GRYDVjJHMRcwFQYDVQQDEw5WMkcgUm9vdCBDQSBHMjAgFw0xOTAxMTAxMjU0MjZa +GA8yMDU5MDEwOTE5MDAwMFowUjELMAkGA1UEBhMCREUxFTATBgNVBAoTDEh1Ympl +Y3QgR21iSDETMBEGCgmSJomT8ixkARkWA1YyRzEXMBUGA1UEAxMOVjJHIFJvb3Qg +Q0EgRzIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQI+uelZzJzESGTP2ZkDfA+ +W0+7O9y0a8gVl0nZnS0Ko5H71VG2aacoUc+GHRWmXhXiutfDwauh4MtMp32zj5/R +o4GoMIGlMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GA1UdEwEB/wQFMAMBAf8wEQYD +VR0OBAoECEW4QJ7hOPi/MEUGA1UdIAQ+MDwwOgYMKwYBBAGCxDUBAgEAMCowKAYI +KwYBBQUHAgEWHGh0dHBzOi8vd3d3Lmh1YmplY3QuY29tL3BraS8wEwYDVR0jBAww +CoAIRbhAnuE4+L8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIAQl +k+aOKUGJk7KoZs2ASAYv1D0w/BqN9Dpg82X0bFb8AiEAi1dL21fLl/wbYs7LYYzp +i4ELaXBzZxy4tAVwBy9pia4= +-----END CERTIFICATE----- \ No newline at end of file diff --git a/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/3. Hubject (US)/US_V2G_RootCA_G2.pem b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/3. Hubject (US)/US_V2G_RootCA_G2.pem new file mode 100644 index 0000000..6ce41a5 --- /dev/null +++ b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/3. Hubject (US)/US_V2G_RootCA_G2.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICDzCCAbSgAwIBAgIQSDGzHuLS5gHHZ6BCuB+B/zAKBggqhkjOPQQDAjBUMQsw +CQYDVQQGEwJVUzEVMBMGA1UEChMMSHViamVjdCBJbmMuMRMwEQYKCZImiZPyLGQB +GRYDVjJHMRkwFwYDVQQDExBVUyBWMkcgUm9vdENBIEcyMCAXDTIwMDIyODIyNTk1 +OVoYDzIwNjAwMjI4MjI1OTU5WjBUMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMSHVi +amVjdCBJbmMuMRMwEQYKCZImiZPyLGQBGRYDVjJHMRkwFwYDVQQDExBVUyBWMkcg +Um9vdENBIEcyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhr95mLAA84GxG3qs +BDpEXLDbBtpcyYlA7JyUbCpGYh2cYz16WWrwGAXcC3+CNIebEcRseXMQ+GjTSivB +u73eLaNmMGQwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIS8U/Ir76DTcwGQYD +VR0gBBIwEDAOBgwrBgEEAYOuDQECAQIwEwYDVR0jBAwwCoAIS8U/Ir76DTcwDgYD +VR0PAQH/BAQDAgEGMAoGCCqGSM49BAMCA0kAMEYCIQDT6q2avPv0YWYZH7VnRXKo +Rvv+7hIwldYyGfjkpYVWigIhAK74SxvmLH+OPNbDGUH8qOf+b0cWO2QYRBjqzbtE +7/Gh +-----END CERTIFICATE----- \ No newline at end of file diff --git a/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/3. Hubject (US)/사이트.txt b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/3. Hubject (US)/사이트.txt new file mode 100644 index 0000000..a0b6f5f --- /dev/null +++ b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/3. Hubject (US)/사이트.txt @@ -0,0 +1 @@ +https://www.hubject.com/download-pki \ No newline at end of file diff --git a/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/4. Tesla/V2GRootG1.pem b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/4. Tesla/V2GRootG1.pem new file mode 100644 index 0000000..f5430a3 --- /dev/null +++ b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/4. Tesla/V2GRootG1.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIB0DCCAXegAwIBAgIIft9YxoGNIPwwCgYIKoZIzj0EAwIwOzEUMBIGA1UEAwwL +VjJHIFJvb3QgRzExDjAMBgNVBAoMBVRlc2xhMRMwEQYKCZImiZPyLGQBGRYDVjJH +MCAXDTIzMDgzMTE4Mjk1MloYDzIwNjMwODIxMTgyOTUyWjA7MRQwEgYDVQQDDAtW +MkcgUm9vdCBHMTEOMAwGA1UECgwFVGVzbGExEzARBgoJkiaJk/IsZAEZFgNWMkcw +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAScWLPjGfLWNjJexmXq4/ZtCKZH8nT5 +RlkhR2qCQyn6plop9OYF3IGUXqEftEeuT92MqY8QB9TDRmVYw1rDdEDBo2MwYTAd +BgNVHQ4EFgQUsqxfR/glxVXc6n7XDa7qksoj9rowDwYDVR0TAQH/BAUwAwEB/zAf +BgNVHSMEGDAWgBSyrF9H+CXFVdzqftcNruqSyiP2ujAOBgNVHQ8BAf8EBAMCAQYw +CgYIKoZIzj0EAwIDRwAwRAIgJw4vbAmF4Ewr83+pGnMh4l3/dqyHvcN7Zq1k9WMw +NSECIHltZxSzxp6Lyu5HiF9HaWLLRyIPbPyYedO+IETxiBvi +-----END CERTIFICATE----- diff --git a/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/4. Tesla/사이트.txt b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/4. Tesla/사이트.txt new file mode 100644 index 0000000..0dc2768 --- /dev/null +++ b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/4. Tesla/사이트.txt @@ -0,0 +1 @@ +https://developer.tesla.com/docs/charging/public-key-infrastructure \ No newline at end of file diff --git a/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/5. Entrust/Entrust_V2G_EV_Charging_Root_CA.pem b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/5. Entrust/Entrust_V2G_EV_Charging_Root_CA.pem new file mode 100644 index 0000000..b71c687 --- /dev/null +++ b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-2/5. Entrust/Entrust_V2G_EV_Charging_Root_CA.pem @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIICADCCAaagAwIBAgIEYhPadTAKBggqhkjOPQQDAjBmMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHRW50cnVzdDETMBEGCgmSJomT8ixkARkWA1YyRzESMBAGA1UECxMJ +Um9vdCBDQS0xMRwwGgYDVQQDExNFViBDaGFyZ2luZyBSb290IENBMB4XDTIyMDIy +MTE4MDE0NVoXDTQyMDIyMTE4MzE0NVowZjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT +B0VudHJ1c3QxEzARBgoJkiaJk/IsZAEZFgNWMkcxEjAQBgNVBAsTCVJvb3QgQ0Et +MTEcMBoGA1UEAxMTRVYgQ2hhcmdpbmcgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABO2/mxzLtuJb4UOvbkWhldki74hLA74JdLaLpMYkum4Rzj0jFR8v +qXGw2lqOMzS07Qa5hdhDD/RPbnqK88QEOpijQjBAMA4GA1UdDwEB/wQEAwIBhjAP +BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBStEjXPjOynDIOPwlUQHqqVwLXWGDAK +BggqhkjOPQQDAgNIADBFAiALn070oBr6iZwhEw6vxvWKLijgM7Tiv3IA5I6AB3Ps +nwIhAPpzdOOYrXeISrPgCNBGase0k8k6S0klXt6WWLJryNVN +-----END CERTIFICATE----- diff --git a/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-20/1. E-PIT/Part20EPitRoot.pem b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-20/1. E-PIT/Part20EPitRoot.pem new file mode 100644 index 0000000..26177fc --- /dev/null +++ b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-20/1. E-PIT/Part20EPitRoot.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICdjCCAdegAwIBAgIGAOjUpZSZMAoGCCqGSM49BAMEMFsxCzAJBgNVBAYTAktS +MQwwCgYDVQQKDANITUcxDzANBgNVBAsMBkhNR19FVjETMBEGCgmSJomT8ixkARkW +A1YyRzEYMBYGA1UEAwwPSE1HX1YyR1Jvb3RfdjIwMCAXDTIzMDQyMTAwMzYxMVoY +DzIwNjMwNDIxMDAzNjExWjBbMQswCQYDVQQGEwJLUjEMMAoGA1UECgwDSE1HMQ8w +DQYDVQQLDAZITUdfRVYxEzARBgoJkiaJk/IsZAEZFgNWMkcxGDAWBgNVBAMMD0hN +R19WMkdSb290X3YyMDCBmzAQBgcqhkjOPQIBBgUrgQQAIwOBhgAEAbI9hyQH6O47 +2LnCUGt8qDXiKoDpGZRgiH5KaOxqjGSTTdoXwLNe3+yP/vOiGO2pkJgruYPUgK38 +eTpyOShxymjaAAnzXXXF5XA7Ztb9Y1fYCMVU89nHjacTweFFJ/50yEWi29FXwD5y +9o6UJiw9M06CgeF0xkrNlDYW3dzWRkLUyEO1o0IwQDAdBgNVHQ4EFgQUooPOu5LP +9Nv0/Ly1awr/9RV/xSMwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w +CgYIKoZIzj0EAwQDgYwAMIGIAkIBkG6i6M8/v0QhTA6c0A73nVbhhyZSGXPiQWzX +AuNW5u2CQYYG6LMbuWg/RFLatq3Qi4wbABGncocGeqM5rqkQHlYCQgHn8sBXN70U +BfA7EY44aqrgiHBC7BjZqis/PJ4v4PNH6tNrInVMnUUPh/ISfgU02vukCqpoHL+M +N14opMDKqVPVyg== +-----END CERTIFICATE----- diff --git a/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-20/2. CharIN/CharIN_V2G_Root_CA_G1V2_433638ca6313741e81e57cfc0de55a99362d3c15.pem b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-20/2. CharIN/CharIN_V2G_Root_CA_G1V2_433638ca6313741e81e57cfc0de55a99362d3c15.pem new file mode 100644 index 0000000..171ea1b --- /dev/null +++ b/Projects/VPKI/Doc/Cert/V2GRoot/ISO 15118-20/2. CharIN/CharIN_V2G_Root_CA_G1V2_433638ca6313741e81e57cfc0de55a99362d3c15.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICizCCAeygAwIBAgIUQzY4ymMTdB6B5Xz8DeVamTYtPBUwCgYIKoZIzj0EAwQw +TjEVMBMGA1UECgwMQ2hhcklOIGUuIFYuMSAwHgYDVQQDDBdDaGFySU4gVjJHIFJv +b3QgQ0EgRzFWMjETMBEGCgmSJomT8ixkARkWA1YyRzAgFw0yMjA5MjMxMjUzMzha +GA8yMDUyMDkyMzEyNTMzOFowTjEVMBMGA1UECgwMQ2hhcklOIGUuIFYuMSAwHgYD +VQQDDBdDaGFySU4gVjJHIFJvb3QgQ0EgRzFWMjETMBEGCgmSJomT8ixkARkWA1Yy +RzCBmzAQBgcqhkjOPQIBBgUrgQQAIwOBhgAEAFs5XQezNOwcM9ys2l3zdNog8hiu +cjd2uQmiYLIfwEH9MKS38nRlSreR0E6Xy2d469Zl1ar8YD8D/TgNZdaLQQVCAL2F +SVbFe4/pmL14fRm5UWhmRfn61YaR62r+LtZL8ZE2cwiF0LTnqu22Yyf4dqyTTuak +y9r1pvvEFHEP1o/VSjkLo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBBjAdBgNVHQ4EFgQUpFmCy+Rrntbt9+0BLBt+iCFl5S0wHwYDVR0jBBgwFoAU +pFmCy+Rrntbt9+0BLBt+iCFl5S0wCgYIKoZIzj0EAwQDgYwAMIGIAkIBLFS4GWPn +pDiKq69QjCFV3ncA2iD9L+9ak6E9INGgltnyLxJcs3keGc4u0uG3TflAyEtiJC3Q +z07JHi7dt1rjr/ECQgCsAkOonJfyY3ji++O4V7pYeEPrXleldpzGfP/iEAs51DPG +FJq/8rsZ2FvFxYkimNrWvvk+IXiN3fFOAl63Z5z0Xw== +-----END CERTIFICATE----- diff --git a/Projects/VPKI/Doc/Cert/V2GRoot/V2GRootCert.pem b/Projects/VPKI/Doc/Cert/V2GRoot/V2GRootCert.pem new file mode 100644 index 0000000..562ba14 --- /dev/null +++ b/Projects/VPKI/Doc/Cert/V2GRoot/V2GRootCert.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIBvzCCAWSgAwIBAgIBCDAKBggqhkjOPQQDAjBVMQswCQYDVQQGEwJLUjEMMAoG +A1UECgwDSE1DMQwwCgYDVQQLDANITUMxEzARBgoJkiaJk/IsZAEZFgNWMkcxFTAT +BgNVBAMMDEhLTUNfVjJHUm9vdDAgFw0yMDEwMjMwNjMwMzdaGA8yMDYwMTAyMzA2 +MzAzN1owVTELMAkGA1UEBhMCS1IxDDAKBgNVBAoMA0hNQzEMMAoGA1UECwwDSE1D +MRMwEQYKCZImiZPyLGQBGRYDVjJHMRUwEwYDVQQDDAxIS01DX1YyR1Jvb3QwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAASUdouD9q4WZ4oa78OjCtnIItxXUNucbuAr +MMu3OtKTsmcICYUHXvxJgjwbg7HYDQZlol925KzErxRo9VaBKIXwoyMwITAOBgNV +HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNJADBGAiEA +w3Dqs4EbnjASNeIPjxWtOq4hl8c1rYbAtXQlbEuNWe0CIQD+/A/+FdJ5Bmjlnzd+ +TtRa7sijicilfv3FJ6WgHb5DxQ== +-----END CERTIFICATE----- diff --git a/Projects/VPKI/Doc/Cert/V2GRoot/V2GRootCert_P20.pem b/Projects/VPKI/Doc/Cert/V2GRoot/V2GRootCert_P20.pem new file mode 100644 index 0000000..26177fc --- /dev/null +++ b/Projects/VPKI/Doc/Cert/V2GRoot/V2GRootCert_P20.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICdjCCAdegAwIBAgIGAOjUpZSZMAoGCCqGSM49BAMEMFsxCzAJBgNVBAYTAktS +MQwwCgYDVQQKDANITUcxDzANBgNVBAsMBkhNR19FVjETMBEGCgmSJomT8ixkARkW +A1YyRzEYMBYGA1UEAwwPSE1HX1YyR1Jvb3RfdjIwMCAXDTIzMDQyMTAwMzYxMVoY +DzIwNjMwNDIxMDAzNjExWjBbMQswCQYDVQQGEwJLUjEMMAoGA1UECgwDSE1HMQ8w +DQYDVQQLDAZITUdfRVYxEzARBgoJkiaJk/IsZAEZFgNWMkcxGDAWBgNVBAMMD0hN +R19WMkdSb290X3YyMDCBmzAQBgcqhkjOPQIBBgUrgQQAIwOBhgAEAbI9hyQH6O47 +2LnCUGt8qDXiKoDpGZRgiH5KaOxqjGSTTdoXwLNe3+yP/vOiGO2pkJgruYPUgK38 +eTpyOShxymjaAAnzXXXF5XA7Ztb9Y1fYCMVU89nHjacTweFFJ/50yEWi29FXwD5y +9o6UJiw9M06CgeF0xkrNlDYW3dzWRkLUyEO1o0IwQDAdBgNVHQ4EFgQUooPOu5LP +9Nv0/Ly1awr/9RV/xSMwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w +CgYIKoZIzj0EAwQDgYwAMIGIAkIBkG6i6M8/v0QhTA6c0A73nVbhhyZSGXPiQWzX +AuNW5u2CQYYG6LMbuWg/RFLatq3Qi4wbABGncocGeqM5rqkQHlYCQgHn8sBXN70U +BfA7EY44aqrgiHBC7BjZqis/PJ4v4PNH6tNrInVMnUUPh/ISfgU02vukCqpoHL+M +N14opMDKqVPVyg== +-----END CERTIFICATE----- diff --git a/Projects/VPKI/Doc/PnC_vPKI_Process_20230516.pdf b/Projects/VPKI/Doc/PnC_vPKI_Process_20230516.pdf new file mode 100644 index 0000000..e8b1dbb Binary files /dev/null and b/Projects/VPKI/Doc/PnC_vPKI_Process_20230516.pdf differ diff --git a/Projects/VPKI/Doc/TestResult_34250726413_9009070019_EOL_2_OK_20250324180740.xlsx b/Projects/VPKI/Doc/TestResult_34250726413_9009070019_EOL_2_OK_20250324180740.xlsx new file mode 100644 index 0000000..0269fa1 Binary files /dev/null and b/Projects/VPKI/Doc/TestResult_34250726413_9009070019_EOL_2_OK_20250324180740.xlsx differ diff --git a/Projects/VPKI/Doc/VPKI 서버 개발 계획서.pptx b/Projects/VPKI/Doc/VPKI 서버 개발 계획서.pptx new file mode 100644 index 0000000..bad4e88 Binary files /dev/null and b/Projects/VPKI/Doc/VPKI 서버 개발 계획서.pptx differ diff --git a/Projects/VPKI/Doc/VPKI 서버 셋업 매뉴얼.pptx b/Projects/VPKI/Doc/VPKI 서버 셋업 매뉴얼.pptx new file mode 100644 index 0000000..536b2b8 Binary files /dev/null and b/Projects/VPKI/Doc/VPKI 서버 셋업 매뉴얼.pptx differ diff --git a/Projects/VPKI/Doc/java/vpki/ConfigureInfo.java b/Projects/VPKI/Doc/java/vpki/ConfigureInfo.java new file mode 100644 index 0000000..9335afd --- /dev/null +++ b/Projects/VPKI/Doc/java/vpki/ConfigureInfo.java @@ -0,0 +1,18 @@ +package vpki; + +public class ConfigureInfo { + public static String KEY_ALGORITHM = "secp256r1"; + public static String SIGN_ALGORITHM = "SHA256withECDSA"; + + public static String CA_URL = "http://127.0.0.1:8080"; + public static String HASHEDCSR = "/api/v1/tbscsr"; + public static String CERTIFICATE = "/api/v1/certificate"; + public static String VERITYRESULT = "/api/v1/verifyresult"; + + public static String CA_CERT = "MIICszCCAlmgAwIBAgIUHxrrBdc1lvNKymblQjb06G6MSJYwCgYIKoZIzj0EAwIwPjELMAkGA1UEBhMCS1IxDTALBgNVBAoMBEhLTUMxDDAKBgNVBAsMA0VDQzESMBAGA1UEAwwJUm9vdENBMDAxMCAXDTE5MDYxMjA2MTUxNVoYDzIwNzkwNjEyMjM1OTU5WjA8MQswCQYDVQQGEwJLUjENMAsGA1UECgwESEtNQzEMMAoGA1UECwwDRUNDMRAwDgYDVQQDDAdDQTAxMDAxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEB0KuXigZeI7U1McUnjEhYGL4g7zsvyzoNl8SMJ0oPxJgiXka+A37JjK4L/P85bAG7N4C6IYuSem99P0C0vt0K6OCATMwggEvMB8GA1UdIwQYMBaAFLW9YfqauBG22R0cDywt08OqFD99MB0GA1UdDgQWBBQl67U3b8S3sG1J/ukFKlGcqPpw8DAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADBBBgNVHR8EOjA4MDagNKAyhjBodHRwOi8vY3JsLmhtY2ttYy5jby5rci9FQ0MvUm9vdC9hcmwvQXJsMURwMS5jcmwwgYUGCCsGAQUFBwEBBHkwdzA7BggrBgEFBQcwAoYvaHR0cDovL2NybC5obWNrbWMuY28ua3IvRUNDL2NlcnQvaGttY3Jvb3RjYS5kZXIwOAYIKwYBBQUHMAGGLGh0dHA6Ly9ydG9jc3AuaG1ja21jLmNvLmtyL0VDQy9PQ1NQL2hrbWNvY3NwMAoGCCqGSM49BAMCA0gAMEUCICfXVV8IhFBXkaOHkg2Wk883y9r3B5rPtDV9JKhUQuBXAiEAug5R/broK+ZjM3vYdU7dndBfMFkOYtCa1NBdq6ie/Fs="; + public static String OCSP_URL = "http://ocsp.hmckmc.co.kr/ECC/OCSP/CA01001"; + + public static String WMI = "HMC"; + + public static String revokeDN = "cn=%s,ou=P001,ou=C001,ou=ECC,o=HKMC,c=KR,dc=OEM"; +} diff --git a/Projects/VPKI/Doc/java/vpki/VpkiApplication.java b/Projects/VPKI/Doc/java/vpki/VpkiApplication.java new file mode 100644 index 0000000..0e9ce2f --- /dev/null +++ b/Projects/VPKI/Doc/java/vpki/VpkiApplication.java @@ -0,0 +1,289 @@ +package vpki; + +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.bouncycastle.util.encoders.Base64; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import vpki.core.HttpFactory; +import vpki.core.PkiFactory; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.math.BigInteger; +import java.security.*; +import java.security.interfaces.ECPublicKey; +import java.security.spec.ECGenParameterSpec; +import java.security.spec.ECParameterSpec; +import java.security.spec.ECPoint; +import java.security.spec.ECPublicKeySpec; + +public class VpkiApplication { + JSONObject jSONObject; + String macAddress; + String wmi; + String iftid; + String pubKeyHex; + + KeyPair keyPair; + + String hashedCsrStr; + String pcid; + + public void init() throws Exception { + keyPair = PkiFactory.generateKeyPair(ConfigureInfo.KEY_ALGORITHM); + jSONObject = new JSONObject(); + + macAddress = "9C36F800001E"; + wmi = "KMH"; + iftid = "ift01"; + + } + + public JSONObject getCsr() throws Exception { + + + ECPublicKey publicKey = (ECPublicKey) keyPair.getPublic(); + byte[] tmp = new byte[]{0x04}; + byte[] x = publicKey.getW().getAffineX().toByteArray(); //getQ().getXCoord().getEncoded(); + byte[] y = publicKey.getW().getAffineY().toByteArray(); //getQ().getYCoord().getEncoded(); + byte[] xy = new byte[x.length+y.length+1]; + + System.out.println("Client PubKey: " + Base64.toBase64String(keyPair.getPublic().getEncoded())); + System.out.println("PubKey x.length: " + x.length); + System.out.println("PubKey y.length: " + y.length); + System.out.println("Client PriKey: " + Base64.toBase64String(keyPair.getPrivate().getEncoded())); + + System.arraycopy(tmp, 0, xy, 0, 1); + if(x.length > 32) { + System.arraycopy(x, 1, xy, 1, 32); + }else{ + System.arraycopy(x, 0, xy, 1, 32); + } + if(y.length > 32) { + System.arraycopy(y, 1, xy, 33, 32); + }else{ + System.arraycopy(y, 0, xy, 33, 32); + } + + + //hashed CSR Request + jSONObject.put("iftid",iftid); + jSONObject.put("macaddr",macAddress); + jSONObject.put("publickey", Base64.toBase64String(xy)); + jSONObject.put("wmi",wmi); + + String hashedCSRReqStr = jSONObject.toJSONString(); + System.out.println(">> hashedCSR Request :" + hashedCSRReqStr); + byte[] hashedCSRBytes = HttpFactory.sendPost(hashedCSRReqStr.getBytes(), HttpFactory.REQUESTTYPE.HASHEDCSR); + System.out.println(">> hashedCSR Response :" + new String(hashedCSRBytes)); + + JSONParser jsonParser = new JSONParser(); + jSONObject = (JSONObject) jsonParser.parse(new String(hashedCSRBytes)); + String status = (String) jSONObject.get("status"); + + if(!status.equalsIgnoreCase("success")) { + throw new Exception((String) jSONObject.get("message")); + } + + return (JSONObject) jSONObject.get("data"); + } + + public JSONObject getCertificate() throws Exception { + //Certificate Request + byte[] signedCSRBytes = PkiFactory.signECDSAHashedValue(Base64.decode(hashedCsrStr), keyPair.getPrivate()); + boolean verify1 = PkiFactory.verifyECDSAHashedValue(Base64.decode(hashedCsrStr), keyPair.getPublic(), signedCSRBytes); + + byte[] rawSignData = getRawSignatureFromDEREncoding(signedCSRBytes); + + jSONObject = new JSONObject(); + jSONObject.put("iftid",iftid); + jSONObject.put("csrsignature",Base64.toBase64String(rawSignData)); + + String csrsignatureReqStr = jSONObject.toJSONString(); + System.out.println(">> CSRSignatureValue Request :" + csrsignatureReqStr); + byte[] certificateBytes = HttpFactory.sendPost(csrsignatureReqStr.getBytes(), HttpFactory.REQUESTTYPE.CERTIFICATE); + System.out.println(">> CSRSignatureValue Response :" + new String(certificateBytes)); + + JSONParser jsonParser = new JSONParser(); + jSONObject = (JSONObject) jsonParser.parse(new String(certificateBytes)); + String status = (String) jSONObject.get("status"); + + if(!status.equalsIgnoreCase("success")) { + throw new Exception((String) jSONObject.get("message")); + } + + return (JSONObject) jSONObject.get("data"); + } + + public static byte[] getRawSignatureFromDEREncoding(byte[] derEncodedSignature) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte[] r = new byte[32]; + byte[] s = new byte[32]; + + // Length of r is encoded in the fourth byte + int lengthOfR = derEncodedSignature[3]; + + // Length of r is encoded in the second byte AFTER r + int lengthOfS = derEncodedSignature[lengthOfR + 5]; + + // Length of r and s are either 33 bytes (including padding byte 0x00), 32 bytes (normal), or less (leftmost 0x00 bytes were removed) + try { + if (lengthOfR == 33) System.arraycopy(derEncodedSignature, 5, r, 0, lengthOfR - 1); // skip leftmost padding byte 0x00 + else if (lengthOfR == 32) System.arraycopy(derEncodedSignature, 4, r, 0, lengthOfR); + else System.arraycopy(derEncodedSignature, 4, r, 32 - lengthOfR, lengthOfR); // destPos = number of leftmost 0x00 bytes + + if (lengthOfS == 33) System.arraycopy(derEncodedSignature, lengthOfR + 7, s, 0, lengthOfS - 1); // skip leftmost padding byte 0x00 + else if (lengthOfS == 32) System.arraycopy(derEncodedSignature, lengthOfR + 6, s, 0, lengthOfS); + else System.arraycopy(derEncodedSignature, lengthOfR + 6, s, 32 - lengthOfS, lengthOfS); // destPos = number of leftmost 0x00 bytes + } catch (ArrayIndexOutOfBoundsException e) { + } + + try { + baos.write(r); + baos.write(s); + } catch (IOException e) { + } + + byte[] rawRAndS = baos.toByteArray(); + + return rawRAndS; + } + + public JSONObject verify() throws Exception { + jSONObject = new JSONObject(); + jSONObject.put("iftid",iftid); +// jSONObject.put("subjectdn",String.format(ConfigureInfo.revokeDN,pcid)); + jSONObject.put("pcid",pcid); + jSONObject.put("result","fail"); + + String verifyResultReqStr = jSONObject.toJSONString(); + System.out.println(">> VerifyResult Request :" + verifyResultReqStr); + byte[] verifyResultRespBytes = HttpFactory.sendPost(verifyResultReqStr.getBytes(), HttpFactory.REQUESTTYPE.VERITYRESULT); + System.out.println(">> VerifyResult Response :" + new String(verifyResultRespBytes)); + + JSONParser jsonParser = new JSONParser(); + jSONObject = (JSONObject) jsonParser.parse(new String(verifyResultRespBytes)); + String status = (String) jSONObject.get("status"); + + if(!status.equalsIgnoreCase("success")) { + throw new Exception((String) jSONObject.get("message")); + } + + return (JSONObject) jSONObject.get("data"); + } + + public static void main(String[] args) { + VpkiApplication app = new VpkiApplication(); + try { + + app.init(); + + JSONObject res1 = app.getCsr(); + app.hashedCsrStr = (String) res1.get("hashedtbscsr"); + app.pcid = (String) res1.get("pcid"); + System.out.println(); + + JSONObject res2 = app.getCertificate(); + System.out.println(); + + JSONObject res3 = app.verify(); + System.out.println(); + + } catch (Exception e) { + e.printStackTrace(); + } + } +// public static void main(String[] args) { +// //Parameter +// String macAddress = "abcd0123456"; +// String wmi = "KMH"; +// String iftid = "ift01"; +// +// String pubKeyHex = "04BB751403B9E7D6C5132292DBED87F2D739C4811BA5B9ED185D26544C90E4A3CE03308AE2D6744AE83A3762B58BF864BE66373338DC8775F507F96AAE4C487A5C"; +// String signedDataHex = "B23F130B068AB4FA88057AFA87225A7BC481E33BF91941FB561535D75868A593E7C82B04B50A0E975B6F92659D41B83082981DAE3FB9708560BE91622CFE3076"; +// +// try { +// Security.addProvider(new BouncyCastleProvider()); +// System.out.println("KMH CMS Test Application"); +// +// byte[] pubKeyBytes = hexStringToByteArray(pubKeyHex); +// byte[] signBytes = hexStringToByteArray(signedDataHex); +// System.out.println("Test Pub Key : " + Base64.toBase64String(pubKeyBytes)); +// System.out.println("Test signature : " + Base64.toBase64String((signBytes))); +// +// int EC_POINTSIZE = 32; +// byte[] processedXData = new byte[EC_POINTSIZE]; +// byte[] processedYData = new byte[EC_POINTSIZE]; +// System.arraycopy(pubKeyBytes, 1, processedXData, 0, EC_POINTSIZE); +// System.arraycopy(pubKeyBytes, EC_POINTSIZE + 1, processedYData, 0, EC_POINTSIZE); +// +// ECPoint pubPoint = new ECPoint(new BigInteger(1, processedXData), new BigInteger(1, processedYData)); +// AlgorithmParameters params = AlgorithmParameters.getInstance("EC", "BC"); +// params.init(new ECGenParameterSpec("prime256v1")); +// ECParameterSpec ecParameters = params.getParameterSpec(ECParameterSpec.class); +// ECPublicKeySpec pubECSpec = new ECPublicKeySpec(pubPoint, ecParameters); +// ECPublicKey publicKey = (ECPublicKey) KeyFactory.getInstance("EC", "BC").generatePublic(pubECSpec); +// +// System.out.println("Test Pub Key : " + Base64.toBase64String(publicKey.getEncoded())); +// +// //Create Key Pair +// KeyPair keyPair = PkiFactory.generateKeyPair(ConfigureInfo.KEY_ALGORITHM); +// String b64PubKey = Base64.toBase64String(keyPair.getPublic().getEncoded()); +// String b64PriKey = Base64.toBase64String(keyPair.getPrivate().getEncoded()); +// +// System.out.println("PublicKey :" + b64PubKey); +// System.out.println("PrivateKey :" + b64PriKey); +// +// //hashed CSR Request +// JSONObject jSONObject = new JSONObject(); +// jSONObject.put("iftid",iftid); +// jSONObject.put("macaddr",macAddress); +// jSONObject.put("publickey",b64PubKey); +// jSONObject.put("wmi",wmi); +// String hashedCSRReqStr = jSONObject.toJSONString(); +// System.out.println("hashedCSR Request :" + hashedCSRReqStr); +// byte[] hashedCSRBytes = HttpFactory.sendPost(hashedCSRReqStr.getBytes(), HttpFactory.REQUESTTYPE.HASHEDCSR); +// System.out.println("hashedCSR Response :" + new String(hashedCSRBytes)); +// +// JSONParser jsonParser = new JSONParser(); +// jSONObject = (JSONObject) jsonParser.parse(new String(hashedCSRBytes)); +// JSONObject jSONObjectData = (JSONObject) jSONObject.get("data"); +// String hashedCsrStr = (String) jSONObjectData.get("hashedtbscsr"); +// String pcid = (String) jSONObjectData.get("pcid"); +// +// //Certificate Request +// byte[] signedCSRBytes = PkiFactory.signECDSAHashedValue(Base64.decode(hashedCsrStr), keyPair.getPrivate()); +// jSONObject = new JSONObject(); +// jSONObject.put("iftid",iftid); +// jSONObject.put("csrsignature",Base64.toBase64String(signedCSRBytes)); +// String csrsignatureReqStr = jSONObject.toJSONString(); +// System.out.println("CSRSignatureValue Request :" + csrsignatureReqStr); +// byte[] certificateBytes = HttpFactory.sendPost(csrsignatureReqStr.getBytes(), HttpFactory.REQUESTTYPE.CERTIFICATE); +// System.out.println("CSRSignatureValue Response :" + new String(certificateBytes)); +// +// //VerifyResult Request +// jSONObject = new JSONObject(); +// jSONObject.put("iftid",iftid); +// jSONObject.put("subjectdn",String.format(ConfigureInfo.revokeDN,pcid)); +// jSONObject.put("result","fail"); +// String verifyResultReqStr = jSONObject.toJSONString(); +// System.out.println("VerifyResult Request :" + verifyResultReqStr); +// byte[] verifyResultRespBytes = HttpFactory.sendPost(verifyResultReqStr.getBytes(), HttpFactory.REQUESTTYPE.VERITYRESULT); +// System.out.println("VerifyResult Response :" + new String(verifyResultRespBytes)); +// +// System.out.println("end"); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } + + public static byte[] hexStringToByteArray(String s) { + int len = s.length(); + byte[] data = new byte[len / 2]; + for (int i = 0; i < len; i += 2) { + data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + + Character.digit(s.charAt(i+1), 16)); + } + return data; + } +} diff --git a/Projects/VPKI/Doc/java/vpki/core/HttpFactory.java b/Projects/VPKI/Doc/java/vpki/core/HttpFactory.java new file mode 100644 index 0000000..20d3add --- /dev/null +++ b/Projects/VPKI/Doc/java/vpki/core/HttpFactory.java @@ -0,0 +1,61 @@ +package vpki.core; + +import org.apache.commons.io.IOUtils; +import vpki.ConfigureInfo; + +import javax.net.ssl.HttpsURLConnection; +import java.io.DataOutputStream; +import java.net.HttpURLConnection; +import java.net.URL; + +public class HttpFactory { + public enum REQUESTTYPE { + HASHEDCSR, + CERTIFICATE, + VERITYRESULT + } + + public static byte[] sendPost(byte[] requestBytes, REQUESTTYPE type) { + String connURL = ""; + String conType = ""; + + switch (type) { + case HASHEDCSR: + connURL = ConfigureInfo.CA_URL + ConfigureInfo.HASHEDCSR; + conType = "application/json"; + break; + case CERTIFICATE: + connURL = ConfigureInfo.CA_URL + ConfigureInfo.CERTIFICATE; + conType = "application/json"; + break; + case VERITYRESULT: + connURL = ConfigureInfo.CA_URL + ConfigureInfo.VERITYRESULT; + conType = "application/json"; + break; + default: + return null; + } + + try { + + URL obj = new URL(connURL); + HttpURLConnection con = (HttpURLConnection) obj.openConnection(); + + // Setting basic post request + con.setRequestMethod("POST"); + con.setRequestProperty("Content-Type", conType); + + // Send post request + con.setDoOutput(true); + DataOutputStream wr = new DataOutputStream(con.getOutputStream()); + wr.write(requestBytes); + wr.flush(); + wr.close(); + + return IOUtils.toByteArray(con.getInputStream()); + } catch (Exception e1) { + e1.printStackTrace(); + return null; + } + } +} diff --git a/Projects/VPKI/Doc/java/vpki/core/OcspReqClient.java b/Projects/VPKI/Doc/java/vpki/core/OcspReqClient.java new file mode 100644 index 0000000..a852fda --- /dev/null +++ b/Projects/VPKI/Doc/java/vpki/core/OcspReqClient.java @@ -0,0 +1,268 @@ +package vpki.core; + +import java.io.ByteArrayInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.Socket; +import java.net.URL; +import java.net.URLEncoder; +import java.security.NoSuchProviderException; +import java.security.Security; +import java.security.cert.CertificateException; +import java.security.cert.CertificateFactory; +import java.security.cert.X509Certificate; +import java.util.*; + +import org.apache.commons.io.IOUtils; +import org.bouncycastle.asn1.ASN1Encodable; +import org.bouncycastle.asn1.ASN1OctetString; +import org.bouncycastle.asn1.DEROctetString; +import org.bouncycastle.asn1.ocsp.OCSPObjectIdentifiers; +import org.bouncycastle.asn1.x509.CRLReason; +import org.bouncycastle.asn1.x509.Extension; +import org.bouncycastle.asn1.x509.ExtensionsGenerator; +import org.bouncycastle.cert.X509CertificateHolder; +import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter; +import org.bouncycastle.cert.jcajce.JcaX509CertificateHolder; +import org.bouncycastle.cert.ocsp.BasicOCSPResp; +import org.bouncycastle.cert.ocsp.CertificateID; +import org.bouncycastle.cert.ocsp.OCSPReq; +import org.bouncycastle.cert.ocsp.OCSPReqBuilder; +import org.bouncycastle.cert.ocsp.OCSPResp; +import org.bouncycastle.cert.ocsp.RevokedStatus; +import org.bouncycastle.cert.ocsp.SingleResp; +import org.bouncycastle.cert.ocsp.UnknownStatus; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.bouncycastle.operator.ContentVerifierProvider; +import org.bouncycastle.operator.DigestCalculator; +import org.bouncycastle.operator.bc.BcDigestCalculatorProvider; +import org.bouncycastle.operator.jcajce.JcaContentVerifierProviderBuilder; + +class OcspReqCert { + X509CertificateHolder caCertHolder; //Issuer Cert + X509Certificate userCert; //Valid Target Cert +} + +public class OcspReqClient { + + private byte[] sampleNonce; //Nonce + private List reqCertList; //Request List + private String ocspSvrUrl; //VA URL + + static { + Security.addProvider(new BouncyCastleProvider()); //Load BouncyCastle + } + + public OcspReqClient(String ocspSvrUrl) { + this.ocspSvrUrl = ocspSvrUrl; + this.reqCertList = new ArrayList(); + } + + // cert binary to X509 Class + private static X509Certificate certToValue(byte[] cert) throws CertificateException, NoSuchProviderException { + InputStream certInputStream = new ByteArrayInputStream(cert); + CertificateFactory certFactory = CertificateFactory.getInstance("X.509", BouncyCastleProvider.PROVIDER_NAME); + return (X509Certificate) certFactory.generateCertificate(certInputStream); + } + + private byte[] sendTcp(String ip, int port, byte[] ocspReqBytes) { + System.out.println("sendTcp"); + try { + Socket mSocket = new Socket(ip, port); + OutputStream os = mSocket.getOutputStream(); + os.write(ocspReqBytes); + os.flush(); + InputStream is = mSocket.getInputStream(); + byte[] ocspResponse = new byte[10000]; + is.read(ocspResponse); + mSocket.close(); + return ocspResponse; + } catch (IOException e) { + System.out.println(e.getMessage()); + } + return null; + } + + private byte[] sendGet(byte[] ocspReqBytes) { + System.out.println("sendGet"); + try { + //Base64 + URL Encode for HTTP + String ocspReq = URLEncoder.encode(Base64.getEncoder().encodeToString(ocspReqBytes), "UTF-8"); + + URL url = new URL(this.ocspSvrUrl + "/" + ocspReq); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestMethod("GET"); + conn.setConnectTimeout(3000); + conn.setReadTimeout(3000); + + return IOUtils.toByteArray(conn.getInputStream()); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + public byte[] sendPost(byte[] ocspReqBytes) { + System.out.println("sendPost"); + try { + + final String USER_AGENT = "Mozilla/5.0"; + + URL obj = new URL(this.ocspSvrUrl); + HttpURLConnection con = (HttpURLConnection) obj.openConnection(); + + // Setting basic post request + con.setRequestMethod("POST"); + con.setRequestProperty("User-Agent", USER_AGENT); + con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); + con.setRequestProperty("Content-Type", "application/ocsp-request"); + + // Send post request + con.setDoOutput(true); + DataOutputStream wr = new DataOutputStream(con.getOutputStream()); + wr.write(ocspReqBytes); + wr.flush(); + wr.close(); + + return IOUtils.toByteArray(con.getInputStream()); + } catch (Exception e1) { + e1.printStackTrace(); + return null; + } + } + + public void add(String userCert, String issuerCert) + throws CertificateException, NoSuchProviderException { + OcspReqCert ocspReqCert = new OcspReqCert(); + + byte[] caCertificateData = Base64.getDecoder().decode(issuerCert); + X509Certificate caCert = certToValue(caCertificateData); + + byte[] userCertificateData = Base64.getDecoder().decode(userCert); + + ocspReqCert.userCert = certToValue(userCertificateData); + ocspReqCert.caCertHolder = new JcaX509CertificateHolder(caCert); + + this.reqCertList.add(ocspReqCert); + } + + public byte[] buildReq() { + try { + // Create OCSP Request + OCSPReqBuilder reqBuilder = new OCSPReqBuilder(); + + for (OcspReqCert reqCert : this.reqCertList) { + X509Certificate userCert = reqCert.userCert; + + // Create Request CertID + DigestCalculator digestCalculator; + digestCalculator = new BcDigestCalculatorProvider().get(CertificateID.HASH_SHA1); + + CertificateID id = new CertificateID(digestCalculator, reqCert.caCertHolder, + userCert.getSerialNumber()); + + reqBuilder.addRequest(id); + } + + // Create nonce Extension + sampleNonce = new byte[16]; + Random rand = new Random(); + rand.nextBytes(sampleNonce); + ExtensionsGenerator extensionsGenerator = new ExtensionsGenerator(); + extensionsGenerator.addExtension(OCSPObjectIdentifiers.id_pkix_ocsp_nonce, false, + new DEROctetString(sampleNonce)); + reqBuilder.setRequestExtensions(extensionsGenerator.generate()); + + // Build Request Data + OCSPReq ocspReqCli = reqBuilder.build(); + + return ocspReqCli.getEncoded(); + } catch (Exception e1) { + e1.printStackTrace(); + return null; + } + } + + public String validOcspResponse(byte[] ocspRespBytes) throws Exception { + // Process Response + OCSPResp ocspRespCli = new OCSPResp(ocspRespBytes); + + if (ocspRespCli.getStatus() == 0) { + BasicOCSPResp bRes = (BasicOCSPResp) ocspRespCli.getResponseObject(); + + // Check Nonce + boolean nounceCheck = false; + Extension temp = bRes.getExtension(OCSPObjectIdentifiers.id_pkix_ocsp_nonce); + ASN1Encodable tmpByte = temp.getParsedValue(); + byte[] nounce = ((ASN1OctetString) tmpByte).getOctets(); + for (int u = 0; u < nounce.length; u++) { + if (nounce[u] != sampleNonce[u]) { + nounceCheck = false; + break; + } + nounceCheck = true; + } + + if (nounceCheck) { + X509CertificateHolder[] chains = bRes.getCerts(); + //if (checkValidity(chains)) { + JcaContentVerifierProviderBuilder jcaContentVerifierProviderBuilder = new JcaContentVerifierProviderBuilder(); + jcaContentVerifierProviderBuilder.setProvider(BouncyCastleProvider.PROVIDER_NAME); + ContentVerifierProvider contentVerifierProvider = jcaContentVerifierProviderBuilder.build(chains[0]); + boolean verify = bRes.isSignatureValid(contentVerifierProvider); + if (verify) { + SingleResp[] respList = bRes.getResponses(); + for (SingleResp resp : respList) { + CertificateID certID = resp.getCertID(); + Object status = resp.getCertStatus(); + Date nextDate = resp.getNextUpdate(); + Date thisDate = resp.getThisUpdate(); + if (status instanceof UnknownStatus) { + return "Unknown"; + } else if (status instanceof RevokedStatus) { + return "Revoked"; + } else { + return "Good"; + } + } + } + //} // chain verify + } // nounceCheck + } // response.getStatus() + else { + System.out.println(ocspRespCli.getStatus()); + } + return "Error"; + } + + private boolean checkValidity(X509CertificateHolder[] certs) { + int n = certs.length; + try { + for (int i = 0; i < n - 1; i++) { + X509Certificate cert = new JcaX509CertificateConverter().setProvider("BC").getCertificate(certs[i]); + X509Certificate issuer = new JcaX509CertificateConverter().setProvider("BC").getCertificate(certs[i + 1]); + + if (!cert.getIssuerX500Principal().equals(issuer.getSubjectX500Principal())) { + throw new Exception("Certificates do not chain"); + } + cert.verify(issuer.getPublicKey()); + } + X509Certificate last = new JcaX509CertificateConverter().setProvider("BC").getCertificate(certs[n - 1]); + // if self-signed, verify the final cert + if (last.getIssuerX500Principal().equals(last.getSubjectX500Principal())) { + last.verify(last.getPublicKey()); + } else { + throw new Exception("Does not exist root certificate;"); + } + } catch (Exception e) { + System.out.println("checkValidity : " + e.getMessage()); + return false; + } + + return true; + } +} + diff --git a/Projects/VPKI/Doc/java/vpki/core/PkiFactory.java b/Projects/VPKI/Doc/java/vpki/core/PkiFactory.java new file mode 100644 index 0000000..7b35154 --- /dev/null +++ b/Projects/VPKI/Doc/java/vpki/core/PkiFactory.java @@ -0,0 +1,100 @@ +package vpki.core; + +import org.bouncycastle.asn1.ASN1Integer; +import org.bouncycastle.asn1.DERSequenceGenerator; +import org.bouncycastle.crypto.digests.SHA256Digest; +import org.bouncycastle.crypto.params.ECPrivateKeyParameters; +import org.bouncycastle.crypto.signers.ECDSASigner; +import org.bouncycastle.crypto.signers.HMacDSAKCalculator; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.bouncycastle.util.io.pem.PemObject; +import org.bouncycastle.util.io.pem.PemReader; +import org.bouncycastle.util.io.pem.PemWriter; +import vpki.ConfigureInfo; + +import java.io.ByteArrayOutputStream; +import java.io.StringReader; +import java.io.StringWriter; +import java.math.BigInteger; +import java.security.*; +import java.security.spec.ECGenParameterSpec; +import java.util.Base64; + +public class PkiFactory { + + static { + Security.addProvider(new BouncyCastleProvider()); + } + + public static KeyPair generateKeyPair(String algorithm) throws Exception { + KeyPairGenerator generator = KeyPairGenerator.getInstance("ECDSA", BouncyCastleProvider.PROVIDER_NAME); + ECGenParameterSpec ecsp = new ECGenParameterSpec(algorithm); + + generator.initialize(ecsp, new SecureRandom()); + + KeyPair keyPair = generator.generateKeyPair(); + + return keyPair; + } + + public static String convertPem(String type, byte[] data) throws Exception { + StringWriter stringWriter = new StringWriter(); + PemWriter pemWriter = new PemWriter(stringWriter); + PemObject pemObject = new PemObject(type, data); + pemWriter.writeObject(pemObject); + pemWriter.flush(); + String pemString = stringWriter.toString(); + return pemString; + } + + public static byte[] readPem(String data) throws Exception { + PemReader pemReader = new PemReader(new StringReader(data)); + byte[] contentBytes = pemReader.readPemObject().getContent(); + return contentBytes; + } + + public static String reqOCSPfromPem(byte[] certBytes) throws Exception { + OcspReqClient ocspReqClient = new OcspReqClient(ConfigureInfo.OCSP_URL); + ocspReqClient.add(Base64.getEncoder().encodeToString(readPem(new String(certBytes))), ConfigureInfo.CA_CERT); + byte[] ocspReqBytes = ocspReqClient.buildReq(); + // Send Post + byte[] resPost = ocspReqClient.sendPost(ocspReqBytes); + return ocspReqClient.validOcspResponse(resPost); + } + + public static byte[] hashSHA256(byte[] data) throws Exception { + MessageDigest digest = MessageDigest.getInstance("SHA-256"); + return digest.digest(data); + } + + public static String hashSHA256toString(byte[] data) throws Exception { + return Base64.getEncoder().encodeToString(hashSHA256(data)); + } + + public static byte[] signECDSA(byte[] tbs, PrivateKey privateKey) throws Exception { + Signature ecdsaSign = Signature.getInstance("SHA256withECDSA"); + ecdsaSign.initSign(privateKey); + ecdsaSign.update(tbs); + byte[] signature = ecdsaSign.sign(); + + return signature; + } + + public static byte[] signECDSAHashedValue(byte[] hashed, PrivateKey privateKey) throws Exception { + Signature ecdsaSign = Signature.getInstance("NONEwithECDSA"); +// Signature ecdsaSign = Signature.getInstance("SHA256withECDSA"); + ecdsaSign.initSign(privateKey); + ecdsaSign.update(hashed); + byte[] signature = ecdsaSign.sign(); + + return signature; + } + + public static boolean verifyECDSAHashedValue(byte[] hashed, PublicKey publicKey, byte[] signature) throws Exception { + Signature ecdsaSign = Signature.getInstance("NONEwithECDSA"); +// Signature ecdsaSign = Signature.getInstance("SHA256withECDSA"); + ecdsaSign.initVerify(publicKey); + ecdsaSign.update(hashed); + return ecdsaSign.verify(signature); + } +} diff --git a/Projects/VPKI/Doc/java/vpki/core/VPKIFactory.java b/Projects/VPKI/Doc/java/vpki/core/VPKIFactory.java new file mode 100644 index 0000000..7ab5244 --- /dev/null +++ b/Projects/VPKI/Doc/java/vpki/core/VPKIFactory.java @@ -0,0 +1,201 @@ +package vpki.core; + +import org.bouncycastle.asn1.ASN1Sequence; +import org.bouncycastle.asn1.DERBitString; +import org.bouncycastle.asn1.DERSet; +import org.bouncycastle.asn1.pkcs.CertificationRequest; +import org.bouncycastle.asn1.pkcs.CertificationRequestInfo; +import org.bouncycastle.asn1.x500.X500Name; +import org.bouncycastle.asn1.x500.X500NameBuilder; +import org.bouncycastle.asn1.x500.style.BCStyle; +import org.bouncycastle.asn1.x509.AlgorithmIdentifier; +import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo; +import org.bouncycastle.asn1.x9.X9ObjectIdentifiers; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder; +import org.bouncycastle.pkcs.PKCS10CertificationRequest; +import org.bouncycastle.pkcs.PKCS10CertificationRequestBuilder; +import org.bouncycastle.pkcs.jcajce.JcaPKCS10CertificationRequestBuilder; +import vpki.ConfigureInfo; + +import java.math.BigInteger; +import java.nio.charset.Charset; +import java.security.KeyPair; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.PublicKey; +import java.util.HashMap; +import java.util.Objects; +import java.util.UUID; + +public class VPKIFactory { + private static HashMap ALPHA; + static { + ALPHA = new HashMap(); + ALPHA.put('A',"10"); + ALPHA.put('B',"11"); + ALPHA.put('C',"12"); + ALPHA.put('D',"13"); + ALPHA.put('E',"14"); + ALPHA.put('F',"15"); + ALPHA.put('G',"16"); + ALPHA.put('H',"17"); + ALPHA.put('I',"18"); + ALPHA.put('J',"19"); + ALPHA.put('K',"20"); + ALPHA.put('L',"21"); + ALPHA.put('M',"22"); + ALPHA.put('N',"23"); + ALPHA.put('O',"24"); + ALPHA.put('P',"25"); + ALPHA.put('Q',"26"); + ALPHA.put('R',"27"); + ALPHA.put('S',"28"); + ALPHA.put('T',"29"); + ALPHA.put('U',"30"); + ALPHA.put('V',"31"); + ALPHA.put('W',"32"); + ALPHA.put('X',"33"); + ALPHA.put('Y',"34"); + ALPHA.put('Z',"35"); + } + + private static final Charset UTF8 = Charset.forName("UTF-8"); + public static final UUID NAMESPACE_DNS = UUID.fromString("6ba7b810-9dad-11d1-80b4-00c04fd430c8"); + + public static String generateRevokeJson(String PCID) { + String revokeJson = String.format(ConfigureInfo.revokeDN,PCID); + return revokeJson; + } + + public static byte[] generateTbsCSR(String PCID, PublicKey publicKey) throws Exception { + X500Name subjectRdn = new X500NameBuilder(BCStyle.INSTANCE) + .addRDN(BCStyle.DC, "OEM") + .addRDN(BCStyle.C, "KR") + .addRDN(BCStyle.O, "HKMC") + .addRDN(BCStyle.OU, "ECC") + .addRDN(BCStyle.OU, "C001") + .addRDN(BCStyle.OU, "P001") + .addRDN(BCStyle.CN, PCID) + .build(); + + SubjectPublicKeyInfo subjectPublicKeyInfo = SubjectPublicKeyInfo.getInstance(ASN1Sequence.getInstance(publicKey.getEncoded())); + CertificationRequestInfo certificationRequestInfo = new CertificationRequestInfo(subjectRdn, subjectPublicKeyInfo, new DERSet() ); + byte[] tbsCSR = certificationRequestInfo.getEncoded(); + + return tbsCSR; + } + + public static String generateCSR(byte[] tbsCSR, byte[] signedCSR) throws Exception { + CertificationRequestInfo certificationRequestInfo = CertificationRequestInfo.getInstance(tbsCSR); + CertificationRequest certificationRequest = new CertificationRequest(certificationRequestInfo, + new AlgorithmIdentifier (X9ObjectIdentifiers.ecdsa_with_SHA256), + new DERBitString(signedCSR) ); + + PKCS10CertificationRequest pKCS10CertificationRequest = new PKCS10CertificationRequest(certificationRequest); + + String csrString = PkiFactory.convertPem("CERTIFICATE REQUEST", pKCS10CertificationRequest.getEncoded()); + return csrString; + } + + public static String generateCSR(String PCID, KeyPair keyPair) throws Exception { + X500Name subjectRdn = new X500NameBuilder(BCStyle.INSTANCE) + .addRDN(BCStyle.DC, "OEM") + .addRDN(BCStyle.C, "KR") + .addRDN(BCStyle.O, "HKMC") + .addRDN(BCStyle.OU, "ECC") + .addRDN(BCStyle.OU, "C001") + .addRDN(BCStyle.OU, "P001") + .addRDN(BCStyle.CN, PCID) + .build(); + + PKCS10CertificationRequestBuilder pkcs10Builder = new JcaPKCS10CertificationRequestBuilder(subjectRdn, keyPair.getPublic()); + PKCS10CertificationRequest request = pkcs10Builder.build( + new JcaContentSignerBuilder(ConfigureInfo.SIGN_ALGORITHM).setProvider(BouncyCastleProvider.PROVIDER_NAME).build(keyPair.getPrivate())); + + String csrString = PkiFactory.convertPem("CERTIFICATE REQUEST", request.getEncoded()); + return csrString; + } + + public static String generatePCID(String macAddress) { + //UUID Version 5 + String test = getV5Uuid(NAMESPACE_DNS, macAddress).toString().replace("-",""); + //Base16 to Base32 + BigInteger num=new BigInteger(test,16); + String b32Uuid = num.toString(32).toUpperCase(); + //OEM Unique ID + String oemUniqueID = b32Uuid.substring(b32Uuid.length()-14,b32Uuid.length()); + //Create PCID + String PCID = ConfigureInfo.WMI + oemUniqueID; + //Calculate CheckSum + PCID += calcCheckSum(PCID.toUpperCase()); + return PCID; + } + + private static String calcCheckSum(String PCID) { + String checkSumSource = ""; + + for (int i = 0; i < PCID.length(); i++) { + if(PCID.charAt(i) >= 'A') { + checkSumSource += ALPHA.get(PCID.charAt(i)); + }else{ + checkSumSource += PCID.charAt(i); + } + } + + double checkDigit = 0; + for (int i = 0; i < checkSumSource.length(); i++) { + int num = Integer.parseInt(checkSumSource.substring(i,i+1)); + checkDigit += num * Math.pow(2,i); + } + String checkDigitStr; + checkDigitStr = (checkDigit % 11 == 10) ? "X" : String.valueOf((int)(checkDigit % 11)); + + return checkDigitStr; + } + + public static UUID getV5Uuid(UUID namespace, String name) { + return getV5Uuid(namespace, Objects.requireNonNull(name, "name == null").getBytes(UTF8)); + } + + public static UUID getV5Uuid(UUID namespace, byte[] name) { + MessageDigest md; + try { + md = MessageDigest.getInstance("SHA-1"); + } catch (NoSuchAlgorithmException nsae) { + throw new InternalError("SHA-1 not supported"); + } + md.update(toBytes(Objects.requireNonNull(namespace, "namespace is null"))); + md.update(Objects.requireNonNull(name, "name is null")); + byte[] sha1Bytes = md.digest(); + sha1Bytes[6] &= 0x0f; /* clear version */ + sha1Bytes[6] |= 0x50; /* set to version 5 */ + sha1Bytes[8] &= 0x3f; /* clear variant */ + sha1Bytes[8] |= 0x80; /* set to IETF variant */ + return fromBytes(sha1Bytes); + } + + private static UUID fromBytes(byte[] data) { + // Based on the private UUID(bytes[]) constructor + long msb = 0; + long lsb = 0; + assert data.length >= 16; + for (int i = 0; i < 8; i++) + msb = (msb << 8) | (data[i] & 0xff); + for (int i = 8; i < 16; i++) + lsb = (lsb << 8) | (data[i] & 0xff); + return new UUID(msb, lsb); + } + + private static byte[] toBytes(UUID uuid) { + // inverted logic of fromBytes() + byte[] out = new byte[16]; + long msb = uuid.getMostSignificantBits(); + long lsb = uuid.getLeastSignificantBits(); + for (int i = 0; i < 8; i++) + out[i] = (byte) ((msb >> ((7 - i) * 8)) & 0xff); + for (int i = 8; i < 16; i++) + out[i] = (byte) ((lsb >> ((15 - i) * 8)) & 0xff); + return out; + } +} diff --git a/Projects/VPKI/Doc/pEOLSVRT001.CpXv01e b/Projects/VPKI/Doc/pEOLSVRT001.CpXv01e new file mode 100644 index 0000000..6b516f9 --- /dev/null +++ b/Projects/VPKI/Doc/pEOLSVRT001.CpXv01e @@ -0,0 +1,89984 @@ + + + + Empty + Empty + ME1ME1ME1 + Empty + Empty + Empty + confidential - protection class 2 document + + + MMXX + 0000000000000001 + 9109FDDOM1 + c:\temp\typ\mmxx.bin + + AM240D + 3.24.8.18475 + + + + + + + + + + + + &BAUDRATE + &BAUDRATE_DATA + &BAUDRATE_HDR + &BRANDCODE + &CAN_DRIVER + &CAN_SCHREIB + &CAN_T_READ + &CAN_T_SEND + &CAN_TAST + &CAN_WIDER + &CERTINFO + &CMEASCNT + &CMP_RESULT + &CMS_CALID + &CMS_CALID_ASCII + &CMS_CRC + &CMS_VER + &CMS_VER_ASCII + &COLUMN + &COUNTP02SUBCAOEM + &COUNTP02SUBCAOEMS + &COUNTP20SUBCAOEM + &COUNTP20SUBCAOEMS + &COUNTP20SUBCAVHC + &COUNTP20SUBCAVHCS + &CR + &CRCR + &CRIROOTCERT + &CRUISE + &CSRHASH_HEX + &CSRHASH_HEX_EV20 + &CSRHASH_HEX_OEM20 + &CSRMESSAGE1 + &CSRSIGNEDMESSAGE + &CUSTOMERPNO_00 + &CUSTOMERPNO_01 + &CUSTOMERPNO_02 + &CUSTOMERPNO_03 + &DEL_RESULT + &DLL_FILE_CMS + &DLL_FILE_PCM + &E1 + &E2 + &E3 + &E4 + &ERROR + &ERRORFLAG + &EVCCID_HEX + &F101_CHECK + &F102_CHECK + &F103_CHECK + &F111_PCID_ASCII + &F112_PUBLICKEY_HEX + &F113_CSRHASH_HEX + &F114_CSRHASHSIGNEDVALUE_HEX + &F115_HEX + &F115_OEMLEAF_HEX + &F115_ROOTCERT_HEX + &F115_SUBCA_HEX + &F140_EVCCID_HEX + &F141_PCID20_HEX + &F142_PUBLICKEY_HEX + &F143_CSRHASH_HEX + &F144_CSRHASHSIGNEDVALUE_HEX + &F145_OEMLEAF_HEX + &F145_ROOTCERT_HEX + &F145_SUBCA_HEX + &F147_CHECK + &F148_CHECK + &F156_CHECK + &F156_RC1 + &F156_RC2 + &F156_RC3 + &F156_RC4 + &F156_RCHECK + &F181_CHECK + &F187_CHECK + &F188_CHECK + &F18B_CHECK + &F18C_CHECK + &F191_CHECK + &F193_CHECK + &F197_CHECK + &F1A0_CHECK + &F1A1_CHECK + &F1B0_CHECK + &F1B1_CHECK + &F1B2_CHECK + &F1C1_CHECK + &F1C2_CHECK + &F1EF_CHECK + &FD3 + &FEHLER + &FEHLERFLAG + &FSW_TT + &FTDRESULT + &G_BAUD_ASC1 + &G_CAN + &G_GETDATA_ALIASFILE + &G_MGERROR + &G_NERR + &G_TRG_NAME_2 + &HFID + &HFID_HEX + &HI + &HW_TTNR + &HW_VER + &HW_VER0 + &HW_VER1 + &HW_VER2 + &HW_VERSION_ASCII + &INPUTKEY + &KEFICO_ASCII + &KEFICO_CODE + &KEFICO_HEX + &KEY + &KEY_VAL1 + &KEY_VAL2 + &MAC_ADDRESS + &MAC_ADDRESS_ASCII + &MARKETCODE + &MEWE + &MEWELEN + &NA_ARCHITEKTUR + &NMK + &OEM02LEAFCOUNT + &OEMCOUNT + &OEMLEAF_HEX + &P_STEUER + &P02_ENTRUST_ROOT + &P02_EPIT_ROOT + &P02_HUBEU_ROOT + &P02_HUBUS_ROOT + &P02_TESLA_ROOT + &P02SUBCAOEMCRC + &P20_CHARIN_ROOT + &P20_EPIT_ROOT + &P20EVCCCNT + &P20OEMCNT + &P20ROOTCNT + &P20ROOTCNT_01 + &P20ROOTCNT_02 + &P20SUBCAOEMCRC + &P20SUBCAVHCCRC + &PARTITIONSTATUS + &PARTNO_ASCII + &PCID_ASCII + &PCID_ASCII_OEM20 + &PCIDSERVER + &PCM_CALID + &PCM_CALID_ASCII + &PCM_CFGLOCK + &PCM_CRC + &PCM_FTD + &PCM_PARTNO + &PCM_PARTNOHEX + &PCM_SB + &PCM_SB1 + &PCM_SB2 + &PCM_SB3 + &PCM_SB4 + &PCM_SB5 + &PCM_SDS + &PCM_VER + &PCM_VER_ASCII + &PSTAND + &QUELLE + &READ_EVCCID + &READ_PCID + &RESULTPSD + &RN160 + &RN320 + &ROOTCERT + &ROOTCOUNT + &ROOTCOUNT_01 + &ROOTCOUNT_02 + &ROOTCOUNT_03 + &ROOTCOUNT_04 + &ROOTCOUNT_05 + &RP02SUBCAOEMCRC + &RP20SUBCAOEMCRC + &RP20SUBCAVHCCRC + &RX_BUFFER + &SBRESULT + &SDSRESULT + &SEED + &SEED_INPUT + &SEED1 + &SEED2 + &SEEDKEY + &SERVERPCIDSAVE + &SFRV010 + &SFRV020 + &SFRV021 + &SUBCA_HEX + &SUBCA02COUNT + &SUBCAOEM_P02 + &SUBCAOEM_P20 + &SUBCAVHC_P20 + &TESTERCH + &TESTERID + &TESTERID_ORG + &TH0 + &TH1 + &TH1_ASCII + &TIERCODE + &TMP1 + &TMP2 + &TMP3 + &TMP4 + &TMP5 + &TMP6 + &TMP7 + &TMP8 + &TSW_TT + &TTNR_HW + &TX_BUFFER + &TX_RESULT + &UNITCODE + &VALUE + &VEHICLECODE + &VTCFG + + + WZ + UB_IMAX + UB + IQ_UMAX + FGN2_TYP + FGN2_TV + FGN2_RI + FGN2_OFFSET + FGN2_NAMP + FGN2_FREQ + A001_S + A007_S + A007_S1 + A007_S2 + A008_S + A008_S1 + A009_S + A010_R + A011_R + A011_S + A013_R + A013_S + A015_U + A015_S + A016_S + A016_U + A017_R + A017_S + A020_R + A024_R + A025_R + A027_R + A027_S + A033_SV + A033_S + A035_I + A035_R + A035_SV + A035_S + A038_I + A038_SV + A038_S + FGNCP_TYP + FGNCP_TV + FGNCP_RI + FGNCP_OFFSET + FGNCP_NAMP + FGNCP_FREQ + PLC + A001_S1 + A009_S1 + A019_R + A019_U + A019_SV + A032_S + A032_R + A032_U + A032_R2 + A002_U + A002_R2 + A050_R + A050_U + A019_S + A010_U + A026_S + A030_S + A026_L + A030_L + STRUCT_71 + STRUCT_72 + STRUCT_73 + STRUCT_74 + STRUCT_75 + STRUCT_76 + STRUCT_77 + STRUCT_78 + STRUCT_79 + STRUCT_80 + STRUCT_81 + STRUCT_82 + STRUCT_83 + STRUCT_84 + STRUCT_85 + STRUCT_86 + STRUCT_87 + STRUCT_88 + STRUCT_89 + STRUCT_90 + STRUCT_91 + STRUCT_92 + STRUCT_93 + STRUCT_94 + STRUCT_95 + STRUCT_96 + STRUCT_97 + STRUCT_98 + STRUCT_99 + STRUCT_100 + STRUCT_101 + STRUCT_102 + STRUCT_103 + STRUCT_104 + STRUCT_105 + STRUCT_106 + STRUCT_107 + STRUCT_108 + STRUCT_109 + STRUCT_110 + STRUCT_111 + STRUCT_112 + STRUCT_113 + STRUCT_114 + STRUCT_115 + STRUCT_116 + STRUCT_117 + STRUCT_118 + STRUCT_119 + STRUCT_120 + STRUCT_121 + STRUCT_122 + STRUCT_123 + STRUCT_124 + STRUCT_125 + STRUCT_126 + STRUCT_127 + STRUCT_128 + STRUCT_129 + STRUCT_130 + STRUCT_131 + STRUCT_132 + STRUCT_133 + STRUCT_134 + STRUCT_135 + STRUCT_136 + STRUCT_137 + STRUCT_138 + STRUCT_139 + STRUCT_140 + STRUCT_141 + STRUCT_142 + STRUCT_143 + STRUCT_144 + STRUCT_145 + STRUCT_146 + STRUCT_147 + STRUCT_148 + STRUCT_149 + STRUCT_150 + STRUCT_151 + STRUCT_152 + STRUCT_153 + STRUCT_154 + STRUCT_155 + STRUCT_156 + STRUCT_157 + STRUCT_158 + STRUCT_159 + STRUCT_160 + STRUCT_161 + STRUCT_162 + STRUCT_163 + STRUCT_164 + STRUCT_165 + STRUCT_166 + STRUCT_167 + STRUCT_168 + STRUCT_169 + STRUCT_170 + STRUCT_171 + STRUCT_172 + STRUCT_173 + STRUCT_174 + STRUCT_175 + STRUCT_176 + STRUCT_177 + STRUCT_178 + STRUCT_179 + STRUCT_180 + STRUCT_181 + STRUCT_182 + STRUCT_183 + STRUCT_184 + STRUCT_185 + STRUCT_186 + STRUCT_187 + STRUCT_188 + STRUCT_189 + STRUCT_190 + STRUCT_191 + STRUCT_192 + STRUCT_193 + STRUCT_194 + STRUCT_195 + STRUCT_196 + STRUCT_197 + STRUCT_198 + STRUCT_199 + STRUCT_200 + STRUCT_201 + STRUCT_202 + STRUCT_203 + STRUCT_204 + STRUCT_205 + STRUCT_206 + STRUCT_207 + STRUCT_208 + STRUCT_209 + STRUCT_210 + STRUCT_211 + STRUCT_212 + STRUCT_213 + STRUCT_214 + STRUCT_215 + STRUCT_216 + STRUCT_217 + STRUCT_218 + STRUCT_219 + STRUCT_220 + STRUCT_221 + STRUCT_222 + STRUCT_223 + STRUCT_224 + STRUCT_225 + STRUCT_226 + STRUCT_227 + STRUCT_228 + STRUCT_229 + STRUCT_230 + STRUCT_231 + STRUCT_232 + STRUCT_233 + STRUCT_234 + STRUCT_235 + STRUCT_236 + STRUCT_237 + STRUCT_238 + STRUCT_239 + STRUCT_240 + STRUCT_241 + STRUCT_242 + STRUCT_243 + STRUCT_244 + STRUCT_245 + STRUCT_246 + STRUCT_247 + STRUCT_248 + STRUCT_249 + STRUCT_250 + STRUCT_251 + STRUCT_252 + STRUCT_253 + STRUCT_254 + STRUCT_255 + STRUCT_256 + STRUCT_257 + STRUCT_258 + STRUCT_259 + STRUCT_260 + STRUCT_261 + STRUCT_262 + STRUCT_263 + STRUCT_264 + STRUCT_265 + STRUCT_266 + STRUCT_267 + STRUCT_268 + STRUCT_269 + STRUCT_270 + STRUCT_271 + STRUCT_272 + STRUCT_273 + STRUCT_274 + STRUCT_275 + STRUCT_276 + STRUCT_277 + STRUCT_278 + STRUCT_279 + STRUCT_280 + STRUCT_281 + STRUCT_282 + STRUCT_283 + STRUCT_284 + STRUCT_285 + STRUCT_286 + STRUCT_287 + STRUCT_288 + STRUCT_289 + STRUCT_290 + STRUCT_291 + STRUCT_292 + STRUCT_293 + STRUCT_294 + STRUCT_295 + STRUCT_296 + STRUCT_297 + STRUCT_298 + STRUCT_299 + STRUCT_300 + STRUCT_301 + STRUCT_302 + STRUCT_303 + STRUCT_304 + STRUCT_305 + STRUCT_306 + STRUCT_307 + STRUCT_308 + STRUCT_309 + STRUCT_310 + STRUCT_311 + STRUCT_312 + STRUCT_313 + STRUCT_314 + STRUCT_315 + STRUCT_316 + STRUCT_317 + STRUCT_318 + STRUCT_319 + STRUCT_320 + STRUCT_321 + STRUCT_322 + STRUCT_323 + STRUCT_324 + STRUCT_325 + STRUCT_326 + STRUCT_327 + STRUCT_328 + STRUCT_329 + STRUCT_330 + STRUCT_331 + STRUCT_332 + STRUCT_333 + STRUCT_334 + STRUCT_335 + STRUCT_336 + STRUCT_337 + STRUCT_338 + STRUCT_339 + STRUCT_340 + STRUCT_341 + STRUCT_342 + STRUCT_343 + STRUCT_344 + STRUCT_345 + STRUCT_346 + STRUCT_347 + STRUCT_348 + STRUCT_349 + STRUCT_350 + STRUCT_351 + STRUCT_352 + STRUCT_353 + STRUCT_354 + STRUCT_355 + STRUCT_356 + STRUCT_357 + STRUCT_358 + STRUCT_359 + STRUCT_360 + STRUCT_361 + STRUCT_362 + STRUCT_363 + STRUCT_364 + STRUCT_365 + STRUCT_366 + STRUCT_367 + STRUCT_368 + STRUCT_369 + STRUCT_370 + STRUCT_371 + STRUCT_372 + STRUCT_373 + STRUCT_374 + STRUCT_375 + STRUCT_376 + STRUCT_377 + STRUCT_378 + STRUCT_379 + STRUCT_380 + STRUCT_381 + STRUCT_382 + STRUCT_383 + STRUCT_384 + STRUCT_385 + STRUCT_386 + STRUCT_387 + STRUCT_388 + STRUCT_389 + STRUCT_390 + STRUCT_391 + STRUCT_392 + STRUCT_393 + STRUCT_394 + STRUCT_395 + STRUCT_396 + STRUCT_397 + STRUCT_398 + STRUCT_399 + STRUCT_400 + STRUCT_401 + STRUCT_402 + STRUCT_403 + STRUCT_404 + STRUCT_405 + STRUCT_406 + STRUCT_407 + STRUCT_408 + STRUCT_409 + STRUCT_410 + STRUCT_411 + STRUCT_412 + STRUCT_413 + STRUCT_414 + STRUCT_415 + STRUCT_416 + STRUCT_417 + STRUCT_418 + STRUCT_419 + STRUCT_420 + STRUCT_421 + STRUCT_422 + STRUCT_423 + STRUCT_424 + STRUCT_425 + STRUCT_426 + STRUCT_427 + STRUCT_428 + STRUCT_429 + STRUCT_430 + STRUCT_431 + STRUCT_432 + STRUCT_433 + STRUCT_434 + STRUCT_435 + STRUCT_436 + STRUCT_437 + STRUCT_438 + STRUCT_439 + STRUCT_440 + STRUCT_441 + STRUCT_442 + STRUCT_443 + STRUCT_444 + STRUCT_445 + STRUCT_446 + STRUCT_447 + STRUCT_448 + STRUCT_449 + STRUCT_450 + STRUCT_451 + STRUCT_452 + STRUCT_453 + STRUCT_454 + STRUCT_455 + STRUCT_456 + STRUCT_457 + STRUCT_458 + STRUCT_459 + STRUCT_460 + STRUCT_461 + STRUCT_462 + STRUCT_463 + STRUCT_464 + STRUCT_465 + STRUCT_466 + STRUCT_467 + STRUCT_468 + STRUCT_469 + STRUCT_470 + STRUCT_471 + STRUCT_472 + STRUCT_473 + STRUCT_474 + STRUCT_475 + STRUCT_476 + STRUCT_477 + STRUCT_478 + STRUCT_479 + STRUCT_480 + STRUCT_481 + STRUCT_482 + STRUCT_483 + STRUCT_484 + STRUCT_485 + STRUCT_486 + STRUCT_487 + STRUCT_488 + STRUCT_489 + STRUCT_490 + STRUCT_491 + STRUCT_492 + STRUCT_493 + STRUCT_494 + STRUCT_495 + STRUCT_496 + STRUCT_497 + STRUCT_498 + STRUCT_499 + STRUCT_500 + STRUCT_501 + STRUCT_502 + STRUCT_503 + STRUCT_504 + STRUCT_505 + STRUCT_506 + STRUCT_507 + STRUCT_508 + STRUCT_509 + STRUCT_510 + STRUCT_511 + STRUCT_512 + STRUCT_513 + STRUCT_514 + STRUCT_515 + STRUCT_516 + STRUCT_517 + STRUCT_518 + STRUCT_519 + STRUCT_520 + STRUCT_521 + STRUCT_522 + STRUCT_523 + STRUCT_524 + STRUCT_525 + STRUCT_526 + STRUCT_527 + STRUCT_528 + STRUCT_529 + STRUCT_530 + STRUCT_531 + STRUCT_532 + STRUCT_533 + STRUCT_534 + STRUCT_535 + STRUCT_536 + STRUCT_537 + STRUCT_538 + STRUCT_539 + STRUCT_540 + STRUCT_541 + STRUCT_542 + STRUCT_543 + STRUCT_544 + STRUCT_545 + STRUCT_546 + STRUCT_547 + STRUCT_548 + STRUCT_549 + STRUCT_550 + STRUCT_551 + STRUCT_552 + STRUCT_553 + STRUCT_554 + STRUCT_555 + STRUCT_556 + STRUCT_557 + STRUCT_558 + STRUCT_559 + STRUCT_560 + STRUCT_561 + STRUCT_562 + STRUCT_563 + STRUCT_564 + STRUCT_565 + STRUCT_566 + STRUCT_567 + STRUCT_568 + STRUCT_569 + STRUCT_570 + STRUCT_571 + STRUCT_572 + STRUCT_573 + STRUCT_574 + STRUCT_575 + STRUCT_576 + STRUCT_577 + STRUCT_578 + STRUCT_579 + STRUCT_580 + STRUCT_581 + STRUCT_582 + STRUCT_583 + STRUCT_584 + STRUCT_585 + STRUCT_586 + STRUCT_587 + STRUCT_588 + STRUCT_589 + STRUCT_590 + STRUCT_591 + STRUCT_592 + STRUCT_593 + STRUCT_594 + STRUCT_595 + STRUCT_596 + STRUCT_597 + STRUCT_598 + STRUCT_599 + STRUCT_600 + STRUCT_601 + STRUCT_602 + STRUCT_603 + STRUCT_604 + STRUCT_605 + STRUCT_606 + STRUCT_607 + STRUCT_608 + STRUCT_609 + STRUCT_610 + STRUCT_611 + STRUCT_612 + STRUCT_613 + STRUCT_614 + STRUCT_615 + STRUCT_616 + STRUCT_617 + STRUCT_618 + STRUCT_619 + STRUCT_620 + STRUCT_621 + STRUCT_622 + STRUCT_623 + STRUCT_624 + STRUCT_625 + STRUCT_626 + STRUCT_627 + STRUCT_628 + STRUCT_629 + STRUCT_630 + STRUCT_631 + STRUCT_632 + STRUCT_633 + STRUCT_634 + STRUCT_635 + STRUCT_636 + STRUCT_637 + STRUCT_638 + STRUCT_639 + STRUCT_640 + STRUCT_641 + STRUCT_642 + STRUCT_643 + STRUCT_644 + STRUCT_645 + STRUCT_646 + STRUCT_647 + STRUCT_648 + STRUCT_649 + STRUCT_650 + STRUCT_651 + STRUCT_652 + STRUCT_653 + STRUCT_654 + STRUCT_655 + STRUCT_656 + STRUCT_657 + STRUCT_658 + STRUCT_659 + STRUCT_660 + STRUCT_661 + STRUCT_662 + STRUCT_663 + STRUCT_664 + STRUCT_665 + STRUCT_666 + STRUCT_667 + STRUCT_668 + STRUCT_669 + STRUCT_670 + STRUCT_671 + STRUCT_672 + STRUCT_673 + STRUCT_674 + STRUCT_675 + STRUCT_676 + STRUCT_677 + STRUCT_678 + STRUCT_679 + STRUCT_680 + STRUCT_681 + STRUCT_682 + STRUCT_683 + STRUCT_684 + STRUCT_685 + STRUCT_686 + STRUCT_687 + STRUCT_688 + STRUCT_689 + STRUCT_690 + STRUCT_691 + STRUCT_692 + STRUCT_693 + STRUCT_694 + STRUCT_695 + STRUCT_696 + STRUCT_697 + STRUCT_698 + STRUCT_699 + STRUCT_700 + STRUCT_701 + STRUCT_702 + STRUCT_703 + STRUCT_704 + STRUCT_705 + STRUCT_706 + STRUCT_707 + STRUCT_708 + STRUCT_709 + STRUCT_710 + STRUCT_711 + STRUCT_712 + STRUCT_713 + STRUCT_714 + STRUCT_715 + STRUCT_716 + STRUCT_717 + STRUCT_718 + STRUCT_719 + STRUCT_720 + STRUCT_721 + STRUCT_722 + STRUCT_723 + STRUCT_724 + STRUCT_725 + STRUCT_726 + STRUCT_727 + STRUCT_728 + STRUCT_729 + STRUCT_730 + STRUCT_731 + STRUCT_732 + STRUCT_733 + STRUCT_734 + STRUCT_735 + STRUCT_736 + STRUCT_737 + STRUCT_738 + STRUCT_739 + STRUCT_740 + STRUCT_741 + STRUCT_742 + STRUCT_743 + STRUCT_744 + STRUCT_745 + STRUCT_746 + STRUCT_747 + STRUCT_748 + STRUCT_749 + STRUCT_750 + STRUCT_751 + STRUCT_752 + STRUCT_753 + STRUCT_754 + STRUCT_755 + STRUCT_756 + STRUCT_757 + STRUCT_758 + STRUCT_759 + STRUCT_760 + STRUCT_761 + STRUCT_762 + STRUCT_763 + STRUCT_764 + STRUCT_765 + STRUCT_766 + STRUCT_767 + STRUCT_768 + STRUCT_769 + STRUCT_770 + STRUCT_771 + STRUCT_772 + STRUCT_773 + STRUCT_774 + STRUCT_775 + STRUCT_776 + STRUCT_777 + STRUCT_778 + STRUCT_779 + STRUCT_780 + STRUCT_781 + STRUCT_782 + STRUCT_783 + STRUCT_784 + STRUCT_785 + STRUCT_786 + STRUCT_787 + STRUCT_788 + STRUCT_789 + STRUCT_790 + STRUCT_791 + STRUCT_792 + STRUCT_793 + STRUCT_794 + STRUCT_795 + STRUCT_796 + STRUCT_797 + STRUCT_798 + STRUCT_799 + STRUCT_800 + STRUCT_801 + STRUCT_802 + STRUCT_803 + STRUCT_804 + STRUCT_805 + STRUCT_806 + STRUCT_807 + STRUCT_808 + STRUCT_809 + STRUCT_810 + STRUCT_811 + STRUCT_812 + STRUCT_813 + STRUCT_814 + STRUCT_815 + STRUCT_816 + STRUCT_817 + STRUCT_818 + STRUCT_819 + STRUCT_820 + STRUCT_821 + STRUCT_822 + STRUCT_823 + STRUCT_824 + STRUCT_825 + STRUCT_826 + STRUCT_827 + STRUCT_828 + STRUCT_829 + STRUCT_830 + STRUCT_831 + STRUCT_832 + STRUCT_833 + STRUCT_834 + STRUCT_835 + STRUCT_836 + STRUCT_837 + STRUCT_838 + STRUCT_839 + STRUCT_840 + STRUCT_841 + STRUCT_842 + STRUCT_843 + STRUCT_844 + STRUCT_845 + STRUCT_846 + STRUCT_847 + STRUCT_848 + STRUCT_849 + STRUCT_850 + STRUCT_851 + STRUCT_852 + STRUCT_853 + STRUCT_854 + STRUCT_855 + STRUCT_856 + STRUCT_857 + STRUCT_858 + STRUCT_859 + STRUCT_860 + STRUCT_861 + STRUCT_862 + STRUCT_863 + STRUCT_864 + STRUCT_865 + STRUCT_866 + STRUCT_867 + STRUCT_868 + STRUCT_869 + STRUCT_870 + STRUCT_871 + STRUCT_872 + STRUCT_873 + STRUCT_874 + STRUCT_875 + STRUCT_876 + STRUCT_877 + STRUCT_878 + STRUCT_879 + STRUCT_880 + STRUCT_881 + STRUCT_882 + STRUCT_883 + STRUCT_884 + STRUCT_885 + STRUCT_886 + STRUCT_887 + STRUCT_888 + STRUCT_889 + STRUCT_890 + STRUCT_891 + STRUCT_892 + STRUCT_893 + STRUCT_894 + STRUCT_895 + STRUCT_896 + STRUCT_897 + STRUCT_898 + STRUCT_899 + STRUCT_900 + STRUCT_901 + STRUCT_902 + STRUCT_903 + STRUCT_904 + STRUCT_905 + STRUCT_906 + STRUCT_907 + STRUCT_908 + STRUCT_909 + STRUCT_910 + STRUCT_911 + STRUCT_912 + STRUCT_913 + STRUCT_914 + STRUCT_915 + STRUCT_916 + STRUCT_917 + STRUCT_918 + STRUCT_919 + STRUCT_920 + STRUCT_921 + STRUCT_922 + STRUCT_923 + STRUCT_924 + STRUCT_925 + STRUCT_926 + STRUCT_927 + STRUCT_928 + STRUCT_929 + STRUCT_930 + STRUCT_931 + STRUCT_932 + STRUCT_933 + STRUCT_934 + STRUCT_935 + STRUCT_936 + STRUCT_937 + STRUCT_938 + STRUCT_939 + STRUCT_940 + STRUCT_941 + STRUCT_942 + STRUCT_943 + STRUCT_944 + STRUCT_945 + STRUCT_946 + STRUCT_947 + STRUCT_948 + STRUCT_949 + STRUCT_950 + STRUCT_951 + STRUCT_952 + STRUCT_953 + STRUCT_954 + STRUCT_955 + STRUCT_956 + STRUCT_957 + STRUCT_958 + STRUCT_959 + STRUCT_960 + STRUCT_961 + STRUCT_962 + STRUCT_963 + STRUCT_964 + STRUCT_965 + STRUCT_966 + STRUCT_967 + STRUCT_968 + STRUCT_969 + STRUCT_970 + STRUCT_971 + STRUCT_972 + STRUCT_973 + STRUCT_974 + STRUCT_975 + STRUCT_976 + STRUCT_977 + STRUCT_978 + STRUCT_979 + STRUCT_980 + STRUCT_981 + STRUCT_982 + STRUCT_983 + STRUCT_984 + STRUCT_985 + STRUCT_986 + STRUCT_987 + STRUCT_988 + STRUCT_989 + STRUCT_990 + STRUCT_991 + STRUCT_992 + STRUCT_993 + STRUCT_994 + STRUCT_995 + STRUCT_996 + STRUCT_997 + STRUCT_998 + STRUCT_999 + STRUCT_1000 + STRUCT_1001 + STRUCT_1002 + STRUCT_1003 + STRUCT_1004 + STRUCT_1005 + STRUCT_1006 + STRUCT_1007 + STRUCT_1008 + STRUCT_1009 + STRUCT_1010 + STRUCT_1011 + STRUCT_1012 + STRUCT_1013 + STRUCT_1014 + STRUCT_1015 + STRUCT_1016 + STRUCT_1017 + STRUCT_1018 + STRUCT_1019 + STRUCT_1020 + STRUCT_1021 + STRUCT_1022 + STRUCT_1023 + STRUCT_1024 + STRUCT_1025 + STRUCT_1026 + STRUCT_1027 + STRUCT_1028 + STRUCT_1029 + STRUCT_1030 + STRUCT_1031 + STRUCT_1032 + STRUCT_1033 + STRUCT_1034 + STRUCT_1035 + STRUCT_1036 + STRUCT_1037 + STRUCT_1038 + STRUCT_1039 + STRUCT_1040 + STRUCT_1041 + STRUCT_1042 + STRUCT_1043 + STRUCT_1044 + STRUCT_1045 + STRUCT_1046 + STRUCT_1047 + STRUCT_1048 + STRUCT_1049 + STRUCT_1050 + STRUCT_1051 + STRUCT_1052 + STRUCT_1053 + STRUCT_1054 + STRUCT_1055 + STRUCT_1056 + STRUCT_1057 + STRUCT_1058 + STRUCT_1059 + STRUCT_1060 + STRUCT_1061 + STRUCT_1062 + STRUCT_1063 + STRUCT_1064 + STRUCT_1065 + STRUCT_1066 + STRUCT_1067 + STRUCT_1068 + STRUCT_1069 + STRUCT_1070 + STRUCT_1071 + STRUCT_1072 + STRUCT_1073 + STRUCT_1074 + STRUCT_1075 + STRUCT_1076 + STRUCT_1077 + STRUCT_1078 + STRUCT_1079 + STRUCT_1080 + STRUCT_1081 + STRUCT_1082 + STRUCT_1083 + STRUCT_1084 + STRUCT_1085 + STRUCT_1086 + STRUCT_1087 + STRUCT_1088 + STRUCT_1089 + STRUCT_1090 + STRUCT_1091 + STRUCT_1092 + STRUCT_1093 + STRUCT_1094 + STRUCT_1095 + STRUCT_1096 + STRUCT_1097 + STRUCT_1098 + STRUCT_1099 + STRUCT_1100 + STRUCT_1101 + STRUCT_1102 + STRUCT_1103 + STRUCT_1104 + STRUCT_1105 + STRUCT_1106 + STRUCT_1107 + STRUCT_1108 + STRUCT_1109 + STRUCT_1110 + STRUCT_1111 + STRUCT_1112 + STRUCT_1113 + STRUCT_1114 + STRUCT_1115 + STRUCT_1116 + STRUCT_1117 + STRUCT_1118 + STRUCT_1119 + STRUCT_1120 + STRUCT_1121 + STRUCT_1122 + STRUCT_1123 + STRUCT_1124 + STRUCT_1125 + STRUCT_1126 + STRUCT_1127 + STRUCT_1128 + STRUCT_1129 + STRUCT_1130 + STRUCT_1131 + STRUCT_1132 + STRUCT_1133 + STRUCT_1134 + STRUCT_1135 + STRUCT_1136 + STRUCT_1137 + STRUCT_1138 + STRUCT_1139 + STRUCT_1140 + STRUCT_1141 + STRUCT_1142 + STRUCT_1143 + STRUCT_1144 + STRUCT_1145 + STRUCT_1146 + STRUCT_1147 + STRUCT_1148 + STRUCT_1149 + STRUCT_1150 + STRUCT_1151 + STRUCT_1152 + STRUCT_1153 + STRUCT_1154 + STRUCT_1155 + STRUCT_1156 + STRUCT_1157 + STRUCT_1158 + STRUCT_1159 + STRUCT_1160 + STRUCT_1161 + STRUCT_1162 + STRUCT_1163 + STRUCT_1164 + STRUCT_1165 + STRUCT_1166 + STRUCT_1167 + STRUCT_1168 + STRUCT_1169 + STRUCT_1170 + STRUCT_1171 + STRUCT_1172 + STRUCT_1173 + STRUCT_1174 + STRUCT_1175 + STRUCT_1176 + STRUCT_1177 + STRUCT_1178 + STRUCT_1179 + STRUCT_1180 + STRUCT_1181 + STRUCT_1182 + STRUCT_1183 + STRUCT_1184 + STRUCT_1185 + STRUCT_1186 + STRUCT_1187 + STRUCT_1188 + STRUCT_1189 + STRUCT_1190 + STRUCT_1191 + STRUCT_1192 + STRUCT_1193 + STRUCT_1194 + STRUCT_1195 + STRUCT_1196 + STRUCT_1197 + STRUCT_1198 + STRUCT_1199 + STRUCT_1200 + STRUCT_1201 + STRUCT_1202 + STRUCT_1203 + STRUCT_1204 + STRUCT_1205 + STRUCT_1206 + STRUCT_1207 + STRUCT_1208 + STRUCT_1209 + STRUCT_1210 + STRUCT_1211 + STRUCT_1212 + STRUCT_1213 + STRUCT_1214 + STRUCT_1215 + STRUCT_1216 + STRUCT_1217 + STRUCT_1218 + STRUCT_1219 + STRUCT_1220 + STRUCT_1221 + STRUCT_1222 + STRUCT_1223 + STRUCT_1224 + STRUCT_1225 + STRUCT_1226 + STRUCT_1227 + STRUCT_1228 + STRUCT_1229 + STRUCT_1230 + STRUCT_1231 + STRUCT_1232 + STRUCT_1233 + STRUCT_1234 + STRUCT_1235 + STRUCT_1236 + STRUCT_1237 + STRUCT_1238 + STRUCT_1239 + STRUCT_1240 + STRUCT_1241 + STRUCT_1242 + STRUCT_1243 + STRUCT_1244 + STRUCT_1245 + STRUCT_1246 + STRUCT_1247 + STRUCT_1248 + STRUCT_1249 + STRUCT_1250 + STRUCT_1251 + STRUCT_1252 + STRUCT_1253 + STRUCT_1254 + STRUCT_1255 + STRUCT_1256 + STRUCT_1257 + STRUCT_1258 + STRUCT_1259 + STRUCT_1260 + STRUCT_1261 + STRUCT_1262 + STRUCT_1263 + STRUCT_1264 + STRUCT_1265 + STRUCT_1266 + STRUCT_1267 + STRUCT_1268 + STRUCT_1269 + STRUCT_1270 + STRUCT_1271 + STRUCT_1272 + STRUCT_1273 + STRUCT_1274 + STRUCT_1275 + STRUCT_1276 + STRUCT_1277 + STRUCT_1278 + STRUCT_1279 + STRUCT_1280 + STRUCT_1281 + STRUCT_1282 + STRUCT_1283 + STRUCT_1284 + STRUCT_1285 + STRUCT_1286 + STRUCT_1287 + STRUCT_1288 + STRUCT_1289 + STRUCT_1290 + STRUCT_1291 + STRUCT_1292 + STRUCT_1293 + STRUCT_1294 + STRUCT_1295 + STRUCT_1296 + STRUCT_1297 + STRUCT_1298 + STRUCT_1299 + STRUCT_1300 + STRUCT_1301 + STRUCT_1302 + STRUCT_1303 + STRUCT_1304 + STRUCT_1305 + STRUCT_1306 + STRUCT_1307 + STRUCT_1308 + STRUCT_1309 + STRUCT_1310 + STRUCT_1311 + STRUCT_1312 + STRUCT_1313 + STRUCT_1314 + STRUCT_1315 + STRUCT_1316 + STRUCT_1317 + STRUCT_1318 + STRUCT_1319 + STRUCT_1320 + STRUCT_1321 + STRUCT_1322 + STRUCT_1323 + STRUCT_1324 + STRUCT_1325 + STRUCT_1326 + STRUCT_1327 + STRUCT_1328 + STRUCT_1329 + STRUCT_1330 + STRUCT_1331 + STRUCT_1332 + STRUCT_1333 + STRUCT_1334 + STRUCT_1335 + STRUCT_1336 + STRUCT_1337 + STRUCT_1338 + STRUCT_1339 + STRUCT_1340 + STRUCT_1341 + STRUCT_1342 + STRUCT_1343 + STRUCT_1344 + STRUCT_1345 + STRUCT_1346 + STRUCT_1347 + STRUCT_1348 + STRUCT_1349 + STRUCT_1350 + STRUCT_1351 + STRUCT_1352 + STRUCT_1353 + STRUCT_1354 + STRUCT_1355 + STRUCT_1356 + STRUCT_1357 + STRUCT_1358 + STRUCT_1359 + STRUCT_1360 + STRUCT_1361 + STRUCT_1362 + STRUCT_1363 + STRUCT_1364 + STRUCT_1365 + STRUCT_1366 + STRUCT_1367 + STRUCT_1368 + STRUCT_1369 + STRUCT_1370 + STRUCT_1371 + STRUCT_1372 + STRUCT_1373 + STRUCT_1374 + STRUCT_1375 + STRUCT_1376 + STRUCT_1377 + STRUCT_1378 + STRUCT_1379 + STRUCT_1380 + STRUCT_1381 + STRUCT_1382 + STRUCT_1383 + STRUCT_1384 + STRUCT_1385 + STRUCT_1386 + STRUCT_1387 + STRUCT_1388 + STRUCT_1389 + STRUCT_1390 + STRUCT_1391 + STRUCT_1392 + STRUCT_1393 + STRUCT_1394 + STRUCT_1395 + STRUCT_1396 + STRUCT_1397 + STRUCT_1398 + STRUCT_1399 + STRUCT_1400 + STRUCT_1401 + STRUCT_1402 + STRUCT_1403 + STRUCT_1404 + STRUCT_1405 + STRUCT_1406 + STRUCT_1407 + STRUCT_1408 + STRUCT_1409 + STRUCT_1410 + STRUCT_1411 + STRUCT_1412 + STRUCT_1413 + STRUCT_1414 + STRUCT_1415 + STRUCT_1416 + STRUCT_1417 + STRUCT_1418 + STRUCT_1419 + STRUCT_1420 + STRUCT_1421 + STRUCT_1422 + STRUCT_1423 + STRUCT_1424 + STRUCT_1425 + STRUCT_1426 + STRUCT_1427 + STRUCT_1428 + STRUCT_1429 + STRUCT_1430 + STRUCT_1431 + STRUCT_1432 + STRUCT_1433 + STRUCT_1434 + STRUCT_1435 + STRUCT_1436 + STRUCT_1437 + STRUCT_1438 + STRUCT_1439 + STRUCT_1440 + STRUCT_1441 + STRUCT_1442 + STRUCT_1443 + STRUCT_1444 + STRUCT_1445 + STRUCT_1446 + STRUCT_1447 + STRUCT_1448 + STRUCT_1449 + STRUCT_1450 + STRUCT_1451 + STRUCT_1452 + STRUCT_1453 + STRUCT_1454 + STRUCT_1455 + STRUCT_1456 + STRUCT_1457 + STRUCT_1458 + STRUCT_1459 + STRUCT_1460 + STRUCT_1461 + STRUCT_1462 + STRUCT_1463 + STRUCT_1464 + STRUCT_1465 + STRUCT_1466 + STRUCT_1467 + STRUCT_1468 + STRUCT_1469 + STRUCT_1470 + STRUCT_1471 + STRUCT_1472 + STRUCT_1473 + STRUCT_1474 + STRUCT_1475 + STRUCT_1476 + STRUCT_1477 + STRUCT_1478 + STRUCT_1479 + STRUCT_1480 + STRUCT_1481 + STRUCT_1482 + STRUCT_1483 + STRUCT_1484 + STRUCT_1485 + STRUCT_1486 + STRUCT_1487 + STRUCT_1488 + STRUCT_1489 + STRUCT_1490 + STRUCT_1491 + STRUCT_1492 + STRUCT_1493 + STRUCT_1494 + STRUCT_1495 + STRUCT_1496 + STRUCT_1497 + STRUCT_1498 + STRUCT_1499 + STRUCT_1500 + STRUCT_1501 + STRUCT_1502 + STRUCT_1503 + STRUCT_1504 + STRUCT_1505 + STRUCT_1506 + STRUCT_1507 + STRUCT_1508 + STRUCT_1509 + STRUCT_1510 + STRUCT_1511 + STRUCT_1512 + STRUCT_1513 + STRUCT_1514 + STRUCT_1515 + STRUCT_1516 + STRUCT_1517 + STRUCT_1518 + STRUCT_1519 + STRUCT_1520 + STRUCT_1521 + STRUCT_1522 + STRUCT_1523 + STRUCT_1524 + STRUCT_1525 + STRUCT_1526 + STRUCT_1527 + STRUCT_1528 + STRUCT_1529 + STRUCT_1530 + STRUCT_1531 + STRUCT_1532 + STRUCT_1533 + STRUCT_1534 + STRUCT_1535 + STRUCT_1536 + STRUCT_1537 + STRUCT_1538 + STRUCT_1539 + STRUCT_1540 + STRUCT_1541 + STRUCT_1542 + STRUCT_1543 + STRUCT_1544 + STRUCT_1545 + STRUCT_1546 + STRUCT_1547 + STRUCT_1548 + STRUCT_1549 + STRUCT_1550 + STRUCT_1551 + STRUCT_1552 + STRUCT_1553 + STRUCT_1554 + STRUCT_1555 + STRUCT_1556 + STRUCT_1557 + STRUCT_1558 + STRUCT_1559 + STRUCT_1560 + STRUCT_1561 + STRUCT_1562 + STRUCT_1563 + STRUCT_1564 + STRUCT_1565 + STRUCT_1566 + STRUCT_1567 + STRUCT_1568 + STRUCT_1569 + STRUCT_1570 + STRUCT_1571 + STRUCT_1572 + STRUCT_1573 + STRUCT_1574 + STRUCT_1575 + STRUCT_1576 + STRUCT_1577 + STRUCT_1578 + STRUCT_1579 + STRUCT_1580 + STRUCT_1581 + STRUCT_1582 + STRUCT_1583 + STRUCT_1584 + STRUCT_1585 + STRUCT_1586 + STRUCT_1587 + STRUCT_1588 + STRUCT_1589 + STRUCT_1590 + STRUCT_1591 + STRUCT_1592 + STRUCT_1593 + STRUCT_1594 + STRUCT_1595 + STRUCT_1596 + STRUCT_1597 + STRUCT_1598 + STRUCT_1599 + STRUCT_1600 + STRUCT_1601 + STRUCT_1602 + STRUCT_1603 + STRUCT_1604 + STRUCT_1605 + STRUCT_1606 + STRUCT_1607 + STRUCT_1608 + STRUCT_1609 + STRUCT_1610 + STRUCT_1611 + STRUCT_1612 + STRUCT_1613 + STRUCT_1614 + STRUCT_1615 + STRUCT_1616 + STRUCT_1617 + STRUCT_1618 + STRUCT_1619 + STRUCT_1620 + STRUCT_1621 + STRUCT_1622 + STRUCT_1623 + STRUCT_1624 + STRUCT_1625 + STRUCT_1626 + STRUCT_1627 + STRUCT_1628 + STRUCT_1629 + STRUCT_1630 + STRUCT_1631 + STRUCT_1632 + STRUCT_1633 + STRUCT_1634 + STRUCT_1635 + STRUCT_1636 + STRUCT_1637 + STRUCT_1638 + STRUCT_1639 + STRUCT_1640 + STRUCT_1641 + STRUCT_1642 + STRUCT_1643 + STRUCT_1644 + STRUCT_1645 + STRUCT_1646 + STRUCT_1647 + STRUCT_1648 + STRUCT_1649 + STRUCT_1650 + STRUCT_1651 + STRUCT_1652 + STRUCT_1653 + STRUCT_1654 + STRUCT_1655 + STRUCT_1656 + STRUCT_1657 + STRUCT_1658 + STRUCT_1659 + STRUCT_1660 + STRUCT_1661 + STRUCT_1662 + STRUCT_1663 + STRUCT_1664 + STRUCT_1665 + STRUCT_1666 + STRUCT_1667 + STRUCT_1668 + STRUCT_1669 + STRUCT_1670 + STRUCT_1671 + STRUCT_1672 + STRUCT_1673 + STRUCT_1674 + STRUCT_1675 + STRUCT_1676 + STRUCT_1677 + STRUCT_1678 + STRUCT_1679 + STRUCT_1680 + STRUCT_1681 + STRUCT_1682 + STRUCT_1683 + STRUCT_1684 + STRUCT_1685 + STRUCT_1686 + STRUCT_1687 + STRUCT_1688 + STRUCT_1689 + STRUCT_1690 + STRUCT_1691 + STRUCT_1692 + STRUCT_1693 + STRUCT_1694 + STRUCT_1695 + STRUCT_1696 + STRUCT_1697 + STRUCT_1698 + STRUCT_1699 + STRUCT_1700 + STRUCT_1701 + STRUCT_1702 + STRUCT_1703 + STRUCT_1704 + STRUCT_1705 + STRUCT_1706 + STRUCT_1707 + STRUCT_1708 + STRUCT_1709 + STRUCT_1710 + STRUCT_1711 + STRUCT_1712 + STRUCT_1713 + STRUCT_1714 + STRUCT_1715 + STRUCT_1716 + STRUCT_1717 + STRUCT_1718 + STRUCT_1719 + STRUCT_1720 + STRUCT_1721 + STRUCT_1722 + STRUCT_1723 + STRUCT_1724 + STRUCT_1725 + STRUCT_1726 + STRUCT_1727 + STRUCT_1728 + STRUCT_1729 + STRUCT_1730 + STRUCT_1731 + STRUCT_1732 + STRUCT_1733 + STRUCT_1734 + STRUCT_1735 + STRUCT_1736 + STRUCT_1737 + STRUCT_1738 + STRUCT_1739 + STRUCT_1740 + STRUCT_1741 + STRUCT_1742 + STRUCT_1743 + STRUCT_1744 + STRUCT_1745 + STRUCT_1746 + STRUCT_1747 + STRUCT_1748 + STRUCT_1749 + STRUCT_1750 + STRUCT_1751 + STRUCT_1752 + STRUCT_1753 + STRUCT_1754 + STRUCT_1755 + STRUCT_1756 + STRUCT_1757 + STRUCT_1758 + STRUCT_1759 + STRUCT_1760 + STRUCT_1761 + STRUCT_1762 + STRUCT_1763 + STRUCT_1764 + STRUCT_1765 + STRUCT_1766 + STRUCT_1767 + STRUCT_1768 + STRUCT_1769 + STRUCT_1770 + STRUCT_1771 + STRUCT_1772 + STRUCT_1773 + STRUCT_1774 + STRUCT_1775 + STRUCT_1776 + STRUCT_1777 + STRUCT_1778 + STRUCT_1779 + STRUCT_1780 + STRUCT_1781 + STRUCT_1782 + STRUCT_1783 + STRUCT_1784 + STRUCT_1785 + STRUCT_1786 + STRUCT_1787 + STRUCT_1788 + STRUCT_1789 + STRUCT_1790 + STRUCT_1791 + STRUCT_1792 + STRUCT_1793 + STRUCT_1794 + STRUCT_1795 + STRUCT_1796 + STRUCT_1797 + STRUCT_1798 + STRUCT_1799 + STRUCT_1800 + STRUCT_1801 + STRUCT_1802 + STRUCT_1803 + STRUCT_1804 + STRUCT_1805 + STRUCT_1806 + STRUCT_1807 + STRUCT_1808 + STRUCT_1809 + STRUCT_1810 + STRUCT_1811 + STRUCT_1812 + STRUCT_1813 + STRUCT_1814 + STRUCT_1815 + STRUCT_1816 + STRUCT_1817 + STRUCT_1818 + STRUCT_1819 + STRUCT_1820 + STRUCT_1821 + STRUCT_1822 + STRUCT_1823 + STRUCT_1824 + STRUCT_1825 + STRUCT_1826 + STRUCT_1827 + STRUCT_1828 + STRUCT_1829 + STRUCT_1830 + STRUCT_1831 + STRUCT_1832 + STRUCT_1833 + STRUCT_1834 + STRUCT_1835 + STRUCT_1836 + STRUCT_1837 + STRUCT_1838 + STRUCT_1839 + STRUCT_1840 + STRUCT_1841 + STRUCT_1842 + STRUCT_1843 + STRUCT_1844 + STRUCT_1845 + STRUCT_1846 + STRUCT_1847 + STRUCT_1848 + STRUCT_1849 + STRUCT_1850 + STRUCT_1851 + STRUCT_1852 + STRUCT_1853 + STRUCT_1854 + STRUCT_1855 + STRUCT_1856 + STRUCT_1857 + STRUCT_1858 + STRUCT_1859 + STRUCT_1860 + STRUCT_1861 + STRUCT_1862 + STRUCT_1863 + STRUCT_1864 + STRUCT_1865 + STRUCT_1866 + STRUCT_1867 + STRUCT_1868 + STRUCT_1869 + STRUCT_1870 + STRUCT_1871 + STRUCT_1872 + STRUCT_1873 + STRUCT_1874 + STRUCT_1875 + STRUCT_1876 + STRUCT_1877 + STRUCT_1878 + STRUCT_1879 + STRUCT_1880 + STRUCT_1881 + STRUCT_1882 + STRUCT_1883 + STRUCT_1884 + STRUCT_1885 + STRUCT_1886 + STRUCT_1887 + STRUCT_1888 + STRUCT_1889 + STRUCT_1890 + STRUCT_1891 + STRUCT_1892 + STRUCT_1893 + STRUCT_1894 + STRUCT_1895 + STRUCT_1896 + STRUCT_1897 + STRUCT_1898 + STRUCT_1899 + STRUCT_1900 + STRUCT_1901 + STRUCT_1902 + STRUCT_1903 + STRUCT_1904 + STRUCT_1905 + STRUCT_1906 + STRUCT_1907 + STRUCT_1908 + STRUCT_1909 + STRUCT_1910 + STRUCT_1911 + STRUCT_1912 + STRUCT_1913 + STRUCT_1914 + STRUCT_1915 + STRUCT_1916 + STRUCT_1917 + STRUCT_1918 + STRUCT_1919 + STRUCT_1920 + STRUCT_1921 + STRUCT_1922 + STRUCT_1923 + STRUCT_1924 + STRUCT_1925 + STRUCT_1926 + STRUCT_1927 + STRUCT_1928 + STRUCT_1929 + STRUCT_1930 + STRUCT_1931 + STRUCT_1932 + STRUCT_1933 + STRUCT_1934 + STRUCT_1935 + STRUCT_1936 + STRUCT_1937 + STRUCT_1938 + STRUCT_1939 + STRUCT_1940 + STRUCT_1941 + STRUCT_1942 + STRUCT_1943 + STRUCT_1944 + STRUCT_1945 + STRUCT_1946 + STRUCT_1947 + STRUCT_1948 + STRUCT_1949 + STRUCT_1950 + STRUCT_1951 + STRUCT_1952 + STRUCT_1953 + STRUCT_1954 + STRUCT_1955 + STRUCT_1956 + STRUCT_1957 + STRUCT_1958 + STRUCT_1959 + STRUCT_1960 + STRUCT_1961 + STRUCT_1962 + STRUCT_1963 + STRUCT_1964 + STRUCT_1965 + STRUCT_1966 + STRUCT_1967 + STRUCT_1968 + STRUCT_1969 + STRUCT_1970 + STRUCT_1971 + STRUCT_1972 + STRUCT_1973 + STRUCT_1974 + STRUCT_1975 + STRUCT_1976 + STRUCT_1977 + STRUCT_1978 + STRUCT_1979 + STRUCT_1980 + STRUCT_1981 + STRUCT_1982 + STRUCT_1983 + STRUCT_1984 + STRUCT_1985 + STRUCT_1986 + STRUCT_1987 + STRUCT_1988 + STRUCT_1989 + STRUCT_1990 + STRUCT_1991 + STRUCT_1992 + STRUCT_1993 + STRUCT_1994 + STRUCT_1995 + STRUCT_1996 + STRUCT_1997 + STRUCT_1998 + STRUCT_1999 + STRUCT_2000 + + + + MM + 1 + NONE + + $POSITION + $MO + $MP_0 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + DEFAULT + DEFAULT + DEFAULT + DEFAULT + 1 + 1 + + + + + 2 + M_SPECTRUM + MODULE + 0 + + + + + + + $P_0 + PSD + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $RETURN_WERT + 2 + 2 + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + $RETURN_WERT + + 1 + - + - + - + - + + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + $EH + - + 3 + 3 + + + + + 4 + M_NOP + MODULE + 0 + + + + + + + + + + + + + + + + + 4 + 4 + + + + + + MM + 1 + KONSTDEF + + $POSITION + $MO + $P_0 + $EH + $RETURN_WERT + + + + + + 1 + M_ZUWEIS + MODULE + 0 + StdPav: Zuweisung von Konstanten aus der PAV heraus + + + + + + 1 + $POSITION + $RETURN_WERT + $P_0 + - + - + $EH + + + + + 2 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 2 + $POSITION + $P_0 + $MO + 1 + - + - + - + - + $EH + + + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + INT + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + $POSITION + $MO + - + - + - + - + - + - + - + - + - + + + + + + MM + 1 + WARTEN + + $POSITION + + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Anschalten von Stimuli und abwarten der Wartezeit + + + + + + 1 + $POSITION + - + - + - + - + + + + + + MM + 1 + PRINTOUT + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &ERRORFLAG + + + + + 1 + E_OUT + MODULE + 0 + Hardware anschalten + + + + + + 1 + $POSITION + - + - + - + - + + + + + 2 + R_KUNDDAT + MODULE + 0 + + + + + + + 2 + $POSITION + - + PRINTOUT + $P_1 + - + $P_0 + $MO + - + $RETURN_WERT + TEST + - + &ERRORFLAG + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + 0 + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + - + - + - + + + + + + MM + 1 + DCV + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + + + + + 1 + E_SCANNER + MODULE + 0 + STDPAV:Gleichspannungsmessung + + + + + + 1 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + - + - + - + ON + + + + + 2 + E_OUT + MODULE + 0 + Hardware anschalten + + + + + + 2 + $POSITION + - + - + - + - + + + + + 3 + M_DMM + MODULE + 0 + Messung durchf?ren + + + + + + 3 + $POSITION + DVM_01 + DCV + $P_0 + $P_1 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 0 + OFF + FALSE + NONE + 0 + NORM + &MEWE + 0 + $EH + - + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Messung auswerten + + + + + + 4 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 5 + E_SCANNER + MODULE + 0 + Me?canner abschalten + + + + + + 5 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + - + - + - + OFF + + + + + 6 + M_NOP + MODULE + 0 + Ende Makro bekannt geben und Parameter aus der PAV auffangen + + + + + + 6 + $POSITION + - + $MP_2 + $MP_3 + - + - + - + - + - + - + - + + + + + + MM + 1 + CAN2000INI + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &FEHLERFLAG + &MAX + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Initialisierung KWP2000 ueber CAN + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + P_STEUER + MODULE + 0 + STDPAV: Init CAN + + + + + + 2 + $POSITION + SKM + $P_0 + CW2000 + 00 + 7F + 01 + &G_CAN + + + + + 3 + P_INIT + MODULE + 0 + + + + + + + 3 + 0 + SAMMLE + CAN_T_SEND + 100 + &CAN_T_SEND + + + + + 4 + P_INIT + MODULE + 0 + + + + + + + 4 + 0 + SAMMLE + CAN_T_READ + 2000 + &CAN_T_SEND + + + + + 5 + P_INIT + MODULE + 0 + + + + + + + 5 + $POSITION + SAMMLE + CAN_DRIVER + $P_1 + &CAN_DRIVER + + + + + 6 + P_INIT + MODULE + 0 + + + + + + + 6 + 0 + SAMMLE + BAUDRATE + $P_2 + &BAUDRATE + + + + + 7 + P_INIT + MODULE + 0 + + + + + + + 7 + 0 + SAMMLE + CAN_TAST + $P_3 + &CAN_TAST + + + + + 8 + P_INIT + MODULE + 0 + + + + + + + 8 + 0 + SAMMLE + CAN_WIDER + $P_4 + &CAN_WIDER + + + + + 9 + P_INIT + MODULE + 0 + + + + + + + 9 + $POSITION + CAN_SCHREIB + NA_ARCHITEKTUR + $P_5 + &CAN_SCHREIB + + + + + 11 + M_NOP + MODULE + 0 + + + + + + + 11 + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + - + - + - + + + + + 13 + P_CANSTD + MODULE + 0 + Sende- und Empfangsobjekt einstellen + + + + + + 13 + $POSITION + CANBLOCK + $P_6 + $P_7 + $P_8 + $P_9 + INITPROT + + 0 + - + &FEHLERFLAG + &MEWE + + + + + 14 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 14 + 0 + &MEWE + C2000INI + 1 + - + - + - + - + $EH + + + - + - + - + - + - + - + - + - + - + &FEHLERFLAG + JA + NORMAL + $RETURN_WERT + - + + + + + 15 + P_AUFTRAG + MODULE + 0 + Einschalten des Protokolls ISO15765 + + + + + + 15 + $POSITION + COMMANDUI + 0 + - + - + S + - + - + 0 + - + + + + + 16 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 16 + 0 + &MEWE + C2000_EIN + 1 + - + - + - + - + STR + + + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + + MM + 1 + DCIS + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_HILF + &G_MEWE + &G_MEWEOUT + + + + + 1 + M_ZUWEIS + MODULE + 0 + + + + + + + 1 + $POSITION + &G_HILF + $P_2 + SHUNT_DCIS + - + STRING + + + + + 2 + E_SCANNER + MODULE + 0 + Mess Scanner anlegen + + + + + + 2 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + - + - + - + ON + + + + + 3 + E_OUT + MODULE + 0 + + + + + + + 3 + $POSITION + - + - + - + - + + + + + 4 + M_DMM + MODULE + 0 + Messung durchf?ren + + + + + + 4 + $POSITION + DVM_01 + DCV + $P_0 + $P_1 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 0 + OFF + FALSE + NONE + 0 + NORM + &G_MEWE + 0 + $EH + - + + + + + 5 + R_RECHNE + MODULE + 0 + + + + + + + 5 + $POSITION + (&G_MEWE)/(&G_HILF) + &G_MEWEOUT + - + 0 + + + + + 6 + M_AUSWERTUNG + MODULE + 0 + Messung auswerten + + + + + + 6 + $POSITION + &G_MEWEOUT + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 7 + E_SCANNER + MODULE + 0 + Me?canner abschalten + + + + + + 7 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + - + - + - + OFF + + + + + 8 + M_NOP + MODULE + 0 + Ende Makro bekannt geben und Parameter aus der PAV auffangen + + + + + + 8 + $POSITION + - + $MP_2 + $MP_3 + - + - + - + - + - + - + - + + + + + + MM + 1 + BERECHNEN + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &FEHLER + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + M_NOP + MODULE + 0 + STDPAV:Berechnen von Termen + + + + + + 2 + - + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + - + - + - + - + - + + + + + 3 + R_RECHNE + MODULE + 0 + + + + + + + 3 + $POSITION + $P_0 + $RETURN_WERT + &FEHLER + $P_1 + + + + + 4 + M_ZUWEIS + MODULE + 0 + + + + + + + 4 + 0 + &MEWE + $RETURN_WERT + - + - + STRING + + + + + 5 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 5 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &FEHLER + JA + NORMAL + $RETURN_WERT + INT + + + + + + MM + 1 + COMBLOCK + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Schnittstelle sendet String an SG und empfaengt Antwort + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + P_AUFTRAG + MODULE + 0 + STDPAV: Schnittstelle sendet String an SG und empfaengt Antwort + + + + + + 2 + $POSITION + COMBLOCK + $P_0 + $P_1 + $P_2 + $P_3 + - + - + &RX_BUFFER + - + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + $POSITION + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + &TX_BUFFER + $EH + $MIN + $MAX + $RETURN_WERT + + + + + + MM + 1 + BLOCKINT + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &FEHLERFLAG + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Zerl. und vergleichen des Strings von der Schnittstelle + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + P_ZERLEGE_STR + MODULE + 0 + STDPAV: String der Schnittst. zerlegen und Auswerten + + + + + + 2 + $POSITION + - + STRING1 + $P_0 + $P_1 + &MEWELEN + &MEWE + &FEHLERFLAG + HEX + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + Auswerten als Hex-Werte mit Toleranzen + + + + + + 3 + $POSITION + &MEWE + $MO + 1 + - + JA + - + - + $EH + $MIN + $MAX + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + - + - + - + - + &FEHLERFLAG + JA + NORMAL + $RETURN_WERT + HEX + &MEWELEN + + + + + + MM + 1 + STRCAT + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + M_NOP + MODULE + 0 + STDPAV: ZusammenfOgen von Strings + + + + + + 2 + 0 + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $EH + - + - + - + - + - + + + + + 3 + R_STRCAT + MODULE + 0 + + + + + + + 3 + $POSITION + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $RETURN_WERT + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR + + + + + + 4 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + STRCMP + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + &MEWE + - + + + + + + MM + 1 + HEXSTRINGTOSTR + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_STRFORMAT + MODULE + 0 + STDPAV: Umwandeln eines ASCII-Strings in seinen Hex-String + + + + + + 2 + $POSITION + $P_0 + HEX + 20 + - + N + ASCII + $RETURN_WERT + - + + + + + 3 + M_NOP + MODULE + 0 + STDPAV: Umwandeln eines Strings in Integer Basis 10) + + + + + + 3 + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $EH + $P_1 + - + - + - + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR, Funktioniert nur, wenn $p_1 = 0 !! + + + + + + 4 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + STRCMP + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + &MEWE + - + + + + + + MM + 1 + STRCMP + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &CMP_RESULT + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + M_NOP + MODULE + 0 + STDPAV: ZusammenfOgen von Strings + + + + + + 2 + 0 + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $EH + - + - + - + - + - + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 3 + $POSITION + $P_0 + VXI + 1 + - + NEIN + - + - + STRCMP + $P_1 + $P_1 + - + - + - + - + - + - + - + - + - + 0 + JA + CMP_VALUE + &CMP_RESULT + INT + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR + + + + + + 4 + $POSITION + &CMP_RESULT + $MO + 1 + - + - + - + - + INT + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + INT + + + + + + MM + 1 + BITOP + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $MIN + $MAX + $EH + $RETURN_WERT + + + &PAR0 + &G_FEHL1 + &PAR1 + &G_FEHL2 + &MEWE + &G_FEHL3 + &FEHLER + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_STRFORMAT + MODULE + 0 + STDPAV: Bit-Operationen + + + + + + 2 + 0 + $P_0 + INT + 16 + - + - + HEX + &PAR0 + &G_FEHL1 + + + + + 3 + R_STRFORMAT + MODULE + 0 + Parameter1 von INT in HEX + + + + + + 3 + 0 + $P_1 + INT + 16 + - + - + HEX + &PAR1 + &G_FEHL2 + + + + + 4 + R_STROPERATE + MODULE + 0 + STDPAV:Bitverk?fung von zwei Integerzahlen.Ergebnis Hex + + + + + + 4 + 0 + HEX + &PAR0 + $P_2 + &PAR1 + &MEWE + &G_FEHL3 + + + + + 5 + R_RECHNE + MODULE + 0 + + + + + + + 5 + 0 + (&G_FEHL1+&G_FEHL2+&G_FEHL3) + &FEHLER + - + 0 + + + + + 6 + M_AUSWERTUNG + MODULE + 0 + Auswertung Ergebnis + + + + + + 6 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &FEHLER + JA + NORMAL + $RETURN_WERT + HEX + + + + + 7 + M_NOP + MODULE + 0 + NOP + + + + + + 7 + 0 + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + - + - + - + - + - + + + + + + MM + 1 + DCVTRG + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_TEILER_DCVT + &G_HIPI_DCVTRG + &G_SCANNER + &TRIGGER_LINE + &G_RESTZEIT + &MEWE + + + + + 1 + F_MESSTEILER + MODULE + 0 + STDPAV:Getriggerte Gleichspannung messen + + + + + + 1 + $POSITION + MESSTEILER + $P_0 + - + $MP_0 + ON + $MIN + $MAX + &G_TEILER_DCVT + + + + + 2 + M_ZUWEIS + MODULE + 0 + + + + + + + 2 + $POSITION + &G_HIPI_DCVTRG + $MP_0 + - + - + STRING + + + + + 3 + E_TRIGGER + MODULE + 0 + + + + + + + 3 + $POSITION + TRIG_01 + DVM_TRG + $P_0 + $P_2 + $P_1 + $P_3 + &G_SCANNER + &TRIGGER_LINE + &G_TEILER_DCVT + DCVTRG + &G_RESTZEIT + + + + + 4 + E_SCANNER + MODULE + 0 + + + + + + + 4 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + &G_SCANNER + $P_5 + $P_6 + ON + + + + + 5 + E_OUT + MODULE + 0 + + + + + + + 5 + $POSITION + - + - + - + - + + + + + 6 + M_DMM + MODULE + 0 + + + + + + + 6 + $POSITION + DVM_01 + DCV + $P_0 + $P_4 + &TRIGGER_LINE + 1 + &G_RESTZEIT + IMMEDIATE + 1 + 0 + OFF + FALSE + NONE + 0 + $P_8 + &MEWE + $P_7 + $EH + &G_TEILER_DCVT + + + + + 7 + M_MAKRO_ENDE + MODULE + 0 + + + + + + + 7 + $POSITION + $P_8 + + + + + 8 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 8 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 9 + E_SCANNER + MODULE + 0 + + + + + + + 9 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + &G_SCANNER + $P_5 + $P_6 + OFF + + + + + 10 + F_MESSTEILER + MODULE + 0 + + + + + + + 10 + $POSITION + MESSTEILER + $P_0 + - + &G_HIPI_DCVTRG + OFF + 0 + 0 + &G_TEILER_DCVT + + + + + 11 + M_NOP + MODULE + 0 + + + + + + + 11 + $POSITION + $MP_2 + $MP_3 + - + - + - + - + - + - + - + - + + + + + + MM + 1 + CONTROL + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + M_CONTROL + MODULE + 0 + Mess Scanner anlegen + + + + + + 1 + $POSITION + $P_0 + $P_1 + + + + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + MM + 1 + BREAK + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + M_NOP + MODULE + 0 + STDPAV: Abbruch wenn Messwert aus Toleranz + + + + + + 2 + 0 + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + - + - + - + - + - + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 3 + $POSITION + $P_0 + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + INT + + + + + 4 + M_ABBRUCH + MODULE + 0 + + + + + + + 4 + 0 + BREAK_ABBRUCH + + + + + + MM + 1 + GETDATAAF + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_GETDATA_ALIASFILE + &ERRORFLAG + + + + + 1 + E_OUT + MODULE + 0 + Hardware anschalten + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + M_ZUWEIS + MODULE + 0 + $P_0 [Aliasfilename] globaler Variablen &G_GETDATA_ALIASFILE zuweisen + + + + + + 2 + $POSITION + &G_GETDATA_ALIASFILE + $P_0 + - + - + STRING + + + + + 3 + R_DATATABLE + MODULE + 0 + Quelle [Aliasfilename] oeffnen + + + + + + 3 + $POSITION + READFILE_LC + LOAD + &G_GETDATA_ALIASFILE + ";" + - + - + - + - + + + + + + + + &ERRORFLAG + + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Fehlerflag auswerten und $P_0 [Aliasfilename] anzeigen + + + + + + 4 + $POSITION + &G_GETDATA_ALIASFILE + $MO + 1 + - + - + - + - + STR + MIN + MAX + - + - + - + - + - + - + - + - + - + &ERRORFLAG + JA + NORMAL + $RETURN_WERT + - + + + + + 5 + M_NOP + MODULE + 0 + NBT + + + + + + 5 + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + + $MIN + $MAX + $EH + + + + + + MM + 1 + GETDATASTR + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_GETDATA_ALIASFILE + &INPUTKEY + &COLUMN + &QUELLE + &PSTAND + &E1 + &E2 + &E3 + &E4 + &ERROR + + + + + 1 + E_OUT + MODULE + 0 + Hardware anschalten + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_DATATABLE + MODULE + 0 + Parameter &INPUTKEY, &COLUMN, &QUELLE aus Aliasfile mit $P_0 ermitteln + + + + + + 2 + $POSITION + GET_LC + LOAD + &G_GETDATA_ALIASFILE + ";" + $P_0 + STRING + 2 + 5 + &INPUTKEY + &COLUMN + &QUELLE + &PSTAND + + + + &E1 + + + + + + 3 + R_DATATABLE + MODULE + 0 + Quelle [&QUELLE] oeffnen + + + + + + 3 + $POSITION + READFILE_LC + LOAD + &QUELLE + ";" + - + - + - + - + + + + + + + + &E2 + + + + + + 4 + R_DATATABLE + MODULE + 0 + $RETURN_WERT aus Quelle [&QUELLE] mit Inputkey [&INPUTKEY] ermitteln + + + + + + 4 + $POSITION + GET_LC + LOAD + &QUELLE + ";" + &INPUTKEY + STRING + &COLUMN + &COLUMN + $RETURN_WERT + + + + + + &PSTAND + &E3 + + + + + + 5 + E_CONVERT + MODULE + 0 + $RETURN_WERT in gewuenschtes Format wandeln + + + + + + 5 + $POSITION + $RETURN_WERT + $P_1 + $P_2 + &E4 + $RETURN_WERT + LOAD + + + + + 6 + R_RECHNE + MODULE + 0 + 4 Fehlerflags zusammenfassen zu einem + + + + + + 6 + $POSITION + (&E1_GETDATASTR+&E2_GETDATASTR+&E3_GETDATASTR+&E4_GETDATASTR) + &ERROR + - + 0 + + + + + 7 + M_AUSWERTUNG + MODULE + 0 + Fehlerflag auswerten und $RETURN_WERT anzeigen + + + + + + 7 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + STR + MIN + MAX + - + - + - + - + - + - + - + - + - + &ERROR + JA + NORMAL + $RETURN_WERT + - + + + + + 8 + M_NOP + MODULE + 0 + NBT + + + + + + 8 + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + + + + + + + + MM + 1 + START + + + &MEWE + &G_TRG_NAME_2 + + + + + 1 + E_KOPPELFELD + MODULE + 0 + DVM01 Bruecke zwischen Massen setzen + + + + + + 1 + 0 + MESS_KF + DVM_01_MESS_R + - + >MKA10 + ON + + + + + 2 + E_KOPPELFELD + MODULE + 0 + DVM02 Bruecke zwischen Massen setzen + + + + + + 2 + 0 + MESS_KF + DVM_02_MESS_R + - + >MKA14 + ON + + + + + 4 + L_KAM_KONFIG + MODULE + 0 + L_KAM_KONFIG Standardeinstellung fuers KAM + + + + + + 4 + 0 + U_KON_KONFIG4 + UBATT_ULAST + - + - + + + + + 6 + E_KOPPELFELD + MODULE + 0 + Inputs vom DVM01 werden kurzgeschlossen + + + + + + 6 + 0 + MESS_KF + DVM_01_MESS + >MK1 + >MK1 + ON + + + + + 7 + E_KOPPELFELD + MODULE + 0 + Inputs vom DVM02 werden kurzgeschlossen + + + + + + 7 + 0 + MESS_KF + DVM_02_MESS + >MK11 + >MK11 + ON + + + + + 9 + E_OUT + MODULE + 0 + alles aktiv + + + + + + 9 + 0 + - + - + - + - + + + + + 10 + M_DMM + MODULE + 0 + DVM1 Dummymessung zwecks Reset der Eingangsbausteine + + + + + + 10 + 0 + DVM_01 + DCV + 0.1 + 0.02 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 100 + OFF + FALSE + NONE + 0 + NORM + &MEWE + 3 + V + - + + + + + 11 + M_AUSWERTUNG + MODULE + 0 + Auswertung der 1. DVM-Messung + + + + + + 11 + 0 + &MEWE + DVM1INI + 1 + - + - + - + - + MV + -100. + 100. + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + 12 + M_DMM + MODULE + 0 + DVM2 Dummymessung zwecks Reset der Eingangsbausteine + + + + + + 12 + 0 + DVM_02 + DCV + 0.1 + 0.02 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 100 + OFF + FALSE + NONE + 0 + NORM + &MEWE + 3 + V + - + + + + + 13 + M_AUSWERTUNG + MODULE + 0 + Auswertung der 2. DVM-Messung + + + + + + 13 + 0 + &MEWE + DVM2INI + 1 + - + - + - + - + MV + -100 + 100 + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + 14 + E_KOPPELFELD + MODULE + 0 + kurzgeschlossene Inputs vom DVM01 werden abgeschaltet + + + + + + 14 + 0 + MESS_KF + DVM_01_MESS + >MK1 + >MK1 + OFF + + + + + 15 + E_KOPPELFELD + MODULE + 0 + kurzgeschlossene Inputs vom DVM02 werden abgeschaltet + + + + + + 15 + 0 + MESS_KF + DVM_02_MESS + >MK11 + >MK11 + OFF + + + + + 16 + M_ZUWEIS + MODULE + 0 + + + + + + + 16 + 0 + &G_TRG_NAME_2 + DVM_TRG_2 + - + - + STRING + + + + + 20 + E_WAIT + MODULE + 0 + E_WAIT bis hierhin ist Platz + + + + + + 20 + 0 + - + 1 + 0 + 0 + &MEWE + + + + + + MM + 1 + COM_KONSTDEF + + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + + + + + + 1 + M_ZUWEIS + MODULE + 0 + + + + + + + 1 + 0 + $P_0 + $P_3 + - + - + STRING + + + + + 2 + M_ZUWEIS + MODULE + 0 + + + + + + + 2 + 0 + $P_1 + $P_4 + - + - + STRING + + + + + 3 + M_ZUWEIS + MODULE + 0 + + + + + + + 3 + 0 + $P_2 + $P_5 + - + - + STRING + + + + + 4 + M_NOP + MODULE + 0 + Nicht benutzte Parameter im Bereich SKM + + + + + + 4 + 0 + $P_6 + $P_7 + $P_8 + + + + + + + + + + + + + MM + 1 + COM_INIT + + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + + + + + + 1 + P_STEUER + MODULE + 0 + + + + + + + 1 + 0 + SKM + SKM_01 + $P_0 + - + - + $P_1 + - + + + + + 2 + P_AUFTRAG + MODULE + 0 + + + + + + + 2 + + TIMEOUT_SKM + $P_2 + - + - + - + - + - + 0 + - + + + + + 3 + P_INIT + MODULE + 0 + + + + + + + 3 + + SAMMLE + T_BYTE + $P_3 + 0 + + + + + 4 + P_INIT + MODULE + 0 + + + + + + + 4 + + SAMMLE + T_KOMMUNIK + $P_4 + 0 + + + + + 5 + P_INIT + MODULE + 0 + + + + + + + 5 + + SAMMLE + W_BLOCK + $P_5 + 0 + + + + + 6 + P_INIT + MODULE + 0 + + + + + + + 6 + + SAMMLE + WZ_BYTE + $P_6 + 0 + + + + + 7 + P_INIT + MODULE + 0 + + + + + + + 7 + + SAMMLE + BAUDRATE + $P_7 + 0 + + + + + 8 + P_INIT + MODULE + 0 + + + + + + + 8 + + SAMMLE + STEUER + $P_8 + 0 + + + + + 9 + P_INIT + MODULE + 0 + 14.06.2007 neu hinzu + + + + + + 9 + + SAMMLE + COM1 + 0000 + 0 + + + + + 10 + P_INIT + MODULE + 0 + 14.06.2007 neu hinzu + + + + + + 10 + + SAMMLE + COM2 + 0000 + 0 + + + + + 11 + P_INIT + MODULE + 0 + 15.06.2007 auf SCHREIB geaendert + + + + + + 11 + + SCHREIB + 70 + $P_9 + 0 + + + + + + MM + 1 + K2000START + + $POSITION + $ANSTEUER_UNIT + $TIMEOUT_SKM + + + &MEWE + + + + + 1 + P_STEUER + MODULE + 0 + SKM Startini im Zusammenhang mit Makro K2000INI aus STDPAV noetig + + + + + + 1 + $POSITION + SKM + $ANSTEUER_UNIT + KW2000 + 00 + 7F + 1 + - + + + + + 2 + P_INIT + MODULE + 0 + Grundinit fuer KP2000 SKM (Serielles Kommunikationsmodul) + + + + + + 2 + 0 + CLEAR + 0 + 0 + 0 + + + + + 3 + P_INIT + MODULE + 0 + COM1 mit 0B88 + + + + + + 3 + 0 + SAMMLE + COM1 + 0B88 + 0 + + + + + 4 + P_INIT + MODULE + 0 + COM2 mit 0012 + + + + + + 4 + 0 + SAMMLE + COM2 + 0012 + 0 + + + + + 5 + P_INIT + MODULE + 0 + STEUER mit 0100 + + + + + + 5 + 0 + SAMMLE + STEUER + 0100 + 0 + + + + + 6 + P_INIT + MODULE + 0 + FORMAT mit 20 + + + + + + 6 + 0 + SAMMLE + FORMAT + 20 + 0 + + + + + 7 + P_INIT + MODULE + 0 + W_VOR_REIZEN mit 50 + + + + + + 7 + 0 + SAMMLE + W_VOR_REIZEN + 50 + 0 + + + + + 8 + P_INIT + MODULE + 0 + ADRESSIERUNG 02 + + + + + + 8 + 0 + SAMMLE + ADRESSIERUNG + 02 + 0 + + + + + 9 + P_INIT + MODULE + 0 + AD_SOURCE mit F1 + + + + + + 9 + $POSITION + SCHREIB + AD_SOURCE + F1 + &MEWE + + + + + 10 + M_AUSWERTUNG + MODULE + 0 + Auswertung K2000START + + + + + + 10 + $POSITION + &MEWE + K2000START + 1 + - + - + - + - + STR + MIN + MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + 19 + P_AUFTRAG + MODULE + 0 + + + + + + + 19 + $POSITION + TIMEOUT_SKM + $TIMEOUT_SKM + - + - + L + - + - + 0 + - + + + + + + MM + 1 + PRINTINT + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &FEHLER + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + M_NOP + MODULE + 0 + STDPAV:Darstellen eines Int-Werts(Eing INT) als format. String + + + + + + 2 + - + - + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + - + - + - + $EH + + + + + 3 + R_STRFORMAT + MODULE + 0 + + + + + + + 3 + $POSITION + $P_0 + INT + $P_1 + - + $P_2 + $P_3 + &MEWE + &FEHLER + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR, kann HEX-STRING oder INT-String oder... sein + + + + + + 4 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $P_3 + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &FEHLER + JA + NORMAL + $RETURN_WERT + $P_3 + + + + + + MM + 1 + STRCOPY + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $MIN + $MAX + $EH + $RETURN_WERT + + + &ERRORFLAG + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_STRCOPY + MODULE + 0 + STDPAV: Ausschneiden eines Teilstrings + + + + + + 2 + $POSITION + INIT + - + $P_0 + - + - + - + $P_1 + $P_2 + - + - + $RETURN_WERT + &ERRORFLAG + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + - + - + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR + + + + + + 4 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + STR + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &ERRORFLAG + JA + NORMAL + &MEWE + - + + + + + + MM + 1 + STRTOINT + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &ERRORFLAG + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_STRFORMAT + MODULE + 0 + + + + + + + 2 + $POSITION + $P_0 + $P_1 + 10 + - + N + INT + &MEWE + &ERRORFLAG + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + - + - + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 4 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + INT + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &ERRORFLAG + JA + NORMAL + $RETURN_WERT + INT + + + + + + MM + 1 + ACV + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + + + + + 1 + E_SCANNER + MODULE + 0 + STDPAV: Messen einer Wechselspannung + + + + + + 1 + $POSITION + - + DVM_02_MESS + $MP_0 + $MP_1 + - + - + - + ON + + + + + 2 + M_DMM + MODULE + 0 + Messung durchf?ren + + + + + + 2 + $POSITION + DVM_02 + ACV + $P_0 + $P_1 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 100 + OFF + FALSE + NONE + 0 + INIT + &MEWE + 0 + $EH + - + + + + + 3 + E_OUT + MODULE + 0 + Hardware anschalten + + + + + + 3 + $MP_2 + - + - + - + - + + + + + 4 + M_DMM + MODULE + 0 + Messung durchf?ren + + + + + + 4 + $POSITION + DVM_02 + ACV + $P_0 + $P_1 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 100 + OFF + FALSE + NONE + 0 + AR + &MEWE + 0 + $EH + - + + + + + 5 + M_AUSWERTUNG + MODULE + 0 + Messung auswerten + + + + + + 5 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 6 + E_SCANNER + MODULE + 0 + Me?canner abschalten + + + + + + 6 + $MP_3 + - + DVM_02_MESS + $MP_0 + $MP_1 + - + - + - + OFF + + + + + + MM + 1 + FREQUENZ + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_START + &TRIGGER_LINE1 + &MEWE + + + + + 1 + E_TRIGGER + MODULE + 0 + STDPAV:Frequenzmessung + + + + + + 1 + 0 + TRIG_01 + COUN_A + $P_0 + $P_2 + $P_1 + 0 + &G_START + &TRIGGER_LINE1 + - + NORM + 0 + + + + + 2 + E_SCANNER + MODULE + 0 + + + + + + + 2 + 0 + - + &G_START + $MP_0 + $MP_1 + - + - + - + ON + + + + + 3 + E_OUT + MODULE + 0 + + + + + + + 3 + 0 + - + - + - + - + + + + + 4 + M_COUNTER + MODULE + 0 + + + + + + + 4 + $POSITION + COUN_01 + FREQ1 + M + 1.0 + 0.001 + 1 + $P_3 + 0 + $EH + 0 + 0 + &MEWE + + + + + 5 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 5 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 6 + E_SCANNER + MODULE + 0 + + + + + + + 6 + $POSITION + - + &G_START + $MP_0 + $MP_1 + - + - + - + OFF + + + + + 7 + M_NOP + MODULE + 0 + + + + + + + 7 + 0 + $MP_2 + $MP_3 + - + - + - + - + - + - + - + - + + + + + + MMXX + 1 + KUNDENDAT1 + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_MGERROR + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_KUNDDAT + MODULE + 0 + STDPAV: Kundendaten zuweisen + + + + + + 2 + $POSITION + - + $P_0 + $P_1 + $P_5 + $P_2 + $P_3 + $P_4 + $RETURN_WERT + TEST + - + &G_MGERROR + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + -- + -- + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR! + + + + + + 4 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + STRCMP + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + + MM + 1 + SEEDKEY + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $MIN + $MAX + $EH + $RETURN_WERT + + + &ERRORFLAG + &TMP1 + &TMP2 + &TMP3 + &TMP4 + &TMP5 + &TMP6 + &TMP7 + &TMP8 + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + R_DATATABLE + MODULE + 0 + STDPAV: Messfunktion zum "Aufschliessen" des Steuergeraets + + + + + + 2 + $POSITION + READFILE + LOAD + SEED_KEY_DEF + ";" + $P_1 + STRING + - + - + - + - + - + - + - + - + - + &ERRORFLAG + + + + + + 3 + R_DATATABLE + MODULE + 0 + R_DATATABLE: Holen der Paramter zu $P_1 aus seed_key_def.cnf + + + + + + 3 + $POSITION + GET + TEST + SEED_KEY_DEF + ";" + $P_1 + STRING + 2 + 7 + &TMP1 + &TMP2 + &TMP3 + &TMP4 + &TMP5 + &TMP6 + - + &ERRORFLAG + + + + + + 4 + E_ECUMEMDATA + MODULE + 0 + ECUMEMDATA: Zur Ermittlung des Parameter1 fuer RB_SEEDKEY_TYPE1/2 + + + + + + 4 + 0 + $P_0 + KWP2000-SECURITY + KWP2000_SETUP + ECU-SECURITY-PARAMETER1 + 0 + - + &TMP7 + + + + + 5 + E_ECUMEMDATA + MODULE + 0 + ECUMEMDATA: Zur Ermittlung des Parameter2 fuer RB_SEEDKEY_TYPE1/2 + + + + + + 5 + 0 + $P_0 + KWP2000-SECURITY + KWP2000_SETUP + ECU-SECURITY-PARAMETER2 + 0 + - + &TMP8 + + + + + 6 + R_SEEDKEY + MODULE + 0 + SEEDKEY: Ermitteln des Schluessel + + + + + + 6 + $POSITION + &TMP1 + &TMP2 + &TMP3 + &TMP4 + &TMP5 + &TMP6 + $P_2 + $RETURN_WERT + - + &ERRORFLAG + &TMP7 + &TMP8 + + + + + 7 + M_AUSWERTUNG + MODULE + 0 + M_AUSWERTUNG: Auswertung SEEDKEY, Einheit immer STR + + + + + + 7 + $POSITION + $RETURN_WERT + SEEDKEY + 1 + - + - + - + - + STR + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &ERRORFLAG + JA + NORMAL + &MEWE + - + + + + + 10 + M_NOP + MODULE + 0 + NOP: Obsolete Parameter + + + + + + 10 + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + $P_0 + $MIN + $MAX + $EH + + + + + + MM + 1 + STRTOHEXSTRING + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_STRFORMAT + MODULE + 0 + STDPAV: Umwandeln eines ASCII-Strings in seinen Hex-String + + + + + + 2 + $POSITION + $P_0 + ASCII + 79 + - + N + HEXSTR + $RETURN_WERT + - + + + + + 3 + M_NOP + MODULE + 0 + STDPAV: Umwandeln eines Strings in Integer Basis 10) + + + + + + 3 + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $EH + - + - + - + - + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR, Funktioniert nur, wenn $p_1 = 0 !! + + + + + + 4 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + HEXSTR + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + &MEWE + - + + + + + + MM + 1 + COM_ANSTEUER + + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + + + + + + + + 1 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 1 + SKM + ANSTEUER + 1 + - + - + - + - + STR + MIN + MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + 2 + F_ANSTEUER + MODULE + 0 + + + + + + + 2 + ASC_SWITCH + B65_S + - + - + B65 + - + ANSTEUER_PAR + 1 + + + + + 3 + F_ANSTEUER + MODULE + 0 + + + + + + + 3 + ASC_REF_SWITCH + A080_S + - + - + A080 + - + ANSTEUER_PAR + 1 + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 4 + CFI + ANSTEUER + 1 + - + - + - + - + STR + MIN + MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + 5 + F_ANSTEUER + MODULE + 0 + + + + + + + 5 + ASC_REF_CFI + B65_S + - + - + B65 + - + ANSTEUER_PAR + 1 + + + + + 6 + F_ANSTEUER + MODULE + 0 + + + + + + + 6 + ASC_REF_CFI + A080_S + - + - + A080 + - + ANSTEUER_PAR + 1 + + + + + + MMXX + 1 + CAN2000INI2 + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $P_10 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &G_MGERROR + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Initialication from KWP2000 over CAN with + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + P_STEUER + MODULE + 0 + STDPAV: Init CAN + + + + + + 2 + $POSITION + SKM + $P_0 + CW2000 + 00 + 7F + 01 + &G_CAN + + + + + 3 + P_INIT + MODULE + 0 + + + + + + + 3 + 0 + SAMMLE + CAN_T_SEND + 100 + &CAN_T_SEND + + + + + 4 + P_INIT + MODULE + 0 + + + + + + + 4 + 0 + SAMMLE + CAN_T_READ + 2000 + &CAN_T_READ + + + + + 5 + P_INIT + MODULE + 0 + + + + + + + 5 + $POSITION + SAMMLE + CAN_DRIVER + $P_1 + &CAN_DRIVER + + + + + 6 + P_INIT + MODULE + 0 + + + + + + + 6 + 0 + SAMMLE + BAUDRATE_HDR + $P_2 + &BAUDRATE_HDR + + + + + 7 + P_INIT + MODULE + 0 + + + + + + + 7 + 0 + SAMMLE + CAN_TAST + $P_3 + &CAN_TAST + + + + + 8 + P_INIT + MODULE + 0 + + + + + + + 8 + 0 + SAMMLE + CAN_WIDER + $P_4 + &CAN_WIDER + + + + + 9 + P_INIT + MODULE + 0 + + + + + + + 9 + $POSITION + SAMMLE + BAUDRATE_DATA + $P_10 + &BAUDRATE_DATA + + + + + 10 + P_INIT + MODULE + 0 + + + + + + + 10 + $POSITION + CAN_SCHREIB + NA_ARCHITEKTUR + $P_5 + &NA_ARCHITEKTUR + + + + + 11 + M_NOP + MODULE + 0 + + + + + + + 11 + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + - + -- + -- + + + + + 13 + P_CANSTD + MODULE + 0 + Sende- und Empfangsobjekt einstellen + + + + + + 13 + $POSITION + CANBLOCK + $P_6 + $P_7 + $P_8 + $P_9 + INITPROT + + 0 + - + &G_MGERROR + &MEWE + + + + + 14 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 14 + $POSITION + &MEWE + C2000INI + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 15 + P_AUFTRAG + MODULE + 0 + Einschalten des Protokolls ISO15765 + + + + + + 15 + $POSITION + COMMANDUI + 0 + - + - + S + - + - + 0 + - + + + + + 19 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 19 + 0 + &MEWE + C2000_EIN + 1 + - + - + - + - + STR + + + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + + MM + 1 + CONVERT_TYPE + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $MIN + $MAX + $EH + $RETURN_WERT + + + &ERRORFLAG + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_CONVERTTYPE + MODULE + 0 + + + + + + + 2 + $POSITION + $P_0 + $P_1 + $RETURN_WERT + $EH + $P_2 + $P_3 + $P_4 + &ERRORFLAG + + + + + + MM + 1 + STRLEN + + $POSITION + $MO + $MP_0 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &FEHLERFLAG + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Zerl. und vergleichen des Strings von der Schnittstelle + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + P_EDIT_STR + MODULE + 0 + STDPAV: String der Schnittst. zerlegen und Auswerten + + + + + + 2 + $POSITION + Etc + $P_1 + 0 + -1 + - + - + &MEWE + - + - + - + - + - + - + - + &FEHLERFLAG + $EH + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + Auswerten als Hex-Werte mit Toleranzen + + + + + + 3 + $POSITION + &MEWE + $MO + 1 + - + JA + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &FEHLERFLAG + JA + NORMAL + $RETURN_WERT + - + + + + + + MM + 1 + COMBLOCK2 + + $POSITION + $MO + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + DEFAULT + DEFAULT + DEFAULT + DEFAULT + 2 + 2 + + + + + 2 + P_TRANSMIT_CAN + MODULE + 0 + + + + + + + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + 1 + 1 + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + + + + + + &TX_BUFFER + + + + + 3 + 3 + + + + + + MM + 1 + SENDBYETHERNET + + $POSITION + $MO + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + DEFAULT + DEFAULT + DEFAULT + DEFAULT + 1 + 1 + + + + + 2 + P_ETHERNET_TX + MODULE + 0 + + + + + + + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + STRING + 2 + 2 + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + $P_5 + + 1 + - + - + - + - + STRING + + + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + STRING + - + 4 + 4 + + + + + 4 + M_NOP + MODULE + 0 + + + + + + + + + + + + + + + + + 3 + 3 + + + + + + MM + 1 + PARSEMESSAGE + + $POSITION + $MO + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + DEFAULT + DEFAULT + DEFAULT + DEFAULT + 1 + 1 + + + + + 2 + R_PARSEMESSAGE + MODULE + 0 + + + + + + + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + &MEWE + 2 + 2 + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + &MEWE + + 1 + - + - + - + - + $P_5 + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + $EH + - + 3 + 3 + + + + + 4 + M_NOP + MODULE + 0 + + + + + + + + + + + + + + + + + 4 + 4 + + + + + + MM + 1 + RFMEAS_PSD + + $POSITION + $MO + $MP_0 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + DEFAULT + DEFAULT + DEFAULT + DEFAULT + 1 + 1 + + + + + 2 + M_SPECTRUM + MODULE + 0 + + + + + + + $P_0 + PSD + $P_9 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $RETURN_WERT + 2 + 2 + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + $RETURN_WERT + + 1 + - + - + - + - + + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + $EH + - + 3 + 3 + + + + + 4 + M_NOP + MODULE + 0 + + + + + + + + + + + + + + + + + 4 + 4 + + + + + + + + + 1 + E_DOKU + MODULE + 0 + (240731) CGVCMS EOL Integrated by LEE + + + + + + + WZ + - + - + NONE + + + + + UB_IMAX + - + - + NONE + + + + + UB + - + - + NONE + + + + + IQ_UMAX + - + - + NONE + + + + + A001_S + - + - + NONE + + + + + A007_S + - + - + NONE + + + + + A007_S1 + - + - + NONE + + + + + A007_S2 + - + - + NONE + + + + + A008_S + - + - + NONE + + + + + A008_S1 + - + - + NONE + + + + + A009_S + - + - + NONE + + + + + A010_R + - + - + NONE + + + + + A011_R + - + - + NONE + + + + + A011_S + - + - + NONE + + + + + A013_R + - + - + NONE + + + + + A013_S + - + - + NONE + + + + + A015_U + - + - + NONE + + + + + A015_S + - + - + NONE + + + + + A016_S + - + - + NONE + + + + + A016_U + - + - + NONE + + + + + A017_R + - + - + NONE + + + + + A017_S + - + - + NONE + + + + + A020_R + - + - + NONE + + + + + A024_R + - + - + NONE + + + + + A025_R + - + - + NONE + + + + + A027_R + - + - + NONE + + + + + A027_S + - + - + NONE + + + + + A033_SV + - + - + NONE + + + + + A033_S + - + - + NONE + + + + + A035_I + - + - + NONE + + + + + A035_R + - + - + NONE + + + + + A035_SV + - + - + NONE + + + + + A035_S + - + - + NONE + + + + + A038_I + - + - + NONE + + + + + A038_SV + - + - + NONE + + + + + A038_S + - + - + NONE + + + + + FGNCP_TYP + - + - + NONE + + + + + FGNCP_TV + - + - + NONE + + + + + FGNCP_RI + - + - + NONE + + + + + FGNCP_OFFSET + - + - + NONE + + + + + FGNCP_NAMP + - + - + NONE + + + + + FGNCP_FREQ + - + - + NONE + + + + + PLC + - + - + NONE + + + + + A019_R + - + - + NONE + + + + + A019_U + - + - + NONE + + + + + A032_S + - + - + NONE + + + + + A032_R + - + - + NONE + + + + + A032_U + - + - + NONE + + + + + A032_R2 + - + - + NONE + + + + + STRUCT_1656 + - + - + NONE + + + + + STRUCT_1657 + - + - + NONE + + + + + STRUCT_1658 + - + - + NONE + + + + + STRUCT_1659 + - + - + NONE + + + + + STRUCT_1660 + - + - + NONE + + + + + STRUCT_1661 + - + - + NONE + + + + + STRUCT_1662 + - + - + NONE + + + + + STRUCT_1663 + - + - + NONE + + + + + STRUCT_1664 + - + - + NONE + + + + + STRUCT_1665 + - + - + NONE + + + + + STRUCT_1666 + - + - + NONE + + + + + STRUCT_1667 + - + - + NONE + + + + + STRUCT_1668 + - + - + NONE + + + + + STRUCT_1669 + - + - + NONE + + + + + STRUCT_1670 + - + - + NONE + + + + + STRUCT_1671 + - + - + NONE + + + + + STRUCT_1672 + - + - + NONE + + + + + STRUCT_1673 + - + - + NONE + + + + + STRUCT_1674 + - + - + NONE + + + + + STRUCT_1675 + - + - + NONE + + + + + STRUCT_1676 + - + - + NONE + + + + + STRUCT_1677 + - + - + NONE + + + + + STRUCT_1678 + - + - + NONE + + + + + STRUCT_1679 + - + - + NONE + + + + + STRUCT_1680 + - + - + NONE + + + + + STRUCT_1681 + - + - + NONE + + + + + STRUCT_1682 + - + - + NONE + + + + + STRUCT_1683 + - + - + NONE + + + + + STRUCT_1684 + - + - + NONE + + + + + STRUCT_1685 + - + - + NONE + + + + + STRUCT_1686 + - + - + NONE + + + + + STRUCT_1687 + - + - + NONE + + + + + STRUCT_1688 + - + - + NONE + + + + + STRUCT_1689 + - + - + NONE + + + + + STRUCT_1690 + - + - + NONE + + + + + STRUCT_1691 + - + - + NONE + + + + + STRUCT_1692 + - + - + NONE + + + + + STRUCT_1693 + - + - + NONE + + + + + STRUCT_1694 + - + - + NONE + + + + + STRUCT_1695 + - + - + NONE + + + + + STRUCT_1696 + - + - + NONE + + + + + STRUCT_1697 + - + - + NONE + + + + + STRUCT_1698 + - + - + NONE + + + + + STRUCT_1699 + - + - + NONE + + + + + STRUCT_1700 + - + - + NONE + + + + + STRUCT_1701 + - + - + NONE + + + + + STRUCT_1702 + - + - + NONE + + + + + STRUCT_1703 + - + - + NONE + + + + + STRUCT_1704 + - + - + NONE + + + + + STRUCT_1705 + - + - + NONE + + + + + STRUCT_1706 + - + - + NONE + + + + + STRUCT_1707 + - + - + NONE + + + + + STRUCT_1708 + - + - + NONE + + + + + STRUCT_1709 + - + - + NONE + + + + + STRUCT_1710 + - + - + NONE + + + + + STRUCT_1711 + - + - + NONE + + + + + STRUCT_1712 + - + - + NONE + + + + + STRUCT_1713 + - + - + NONE + + + + + STRUCT_1714 + - + - + NONE + + + + + STRUCT_1715 + - + - + NONE + + + + + STRUCT_1716 + - + - + NONE + + + + + STRUCT_1717 + - + - + NONE + + + + + STRUCT_1718 + - + - + NONE + + + + + STRUCT_1719 + - + - + NONE + + + + + STRUCT_1720 + - + - + NONE + + + + + STRUCT_1721 + - + - + NONE + + + + + STRUCT_1722 + - + - + NONE + + + + + STRUCT_1723 + - + - + NONE + + + + + STRUCT_1724 + - + - + NONE + + + + + STRUCT_1725 + - + - + NONE + + + + + STRUCT_1726 + - + - + NONE + + + + + STRUCT_1727 + - + - + NONE + + + + + STRUCT_1728 + - + - + NONE + + + + + STRUCT_1729 + - + - + NONE + + + + + STRUCT_1730 + - + - + NONE + + + + + STRUCT_1731 + - + - + NONE + + + + + STRUCT_1732 + - + - + NONE + + + + + STRUCT_1733 + - + - + NONE + + + + + STRUCT_1734 + - + - + NONE + + + + + STRUCT_1735 + - + - + NONE + + + + + STRUCT_1736 + - + - + NONE + + + + + STRUCT_1737 + - + - + NONE + + + + + STRUCT_1738 + - + - + NONE + + + + + STRUCT_1739 + - + - + NONE + + + + + STRUCT_1740 + - + - + NONE + + + + + STRUCT_1741 + - + - + NONE + + + + + STRUCT_1742 + - + - + NONE + + + + + STRUCT_1743 + - + - + NONE + + + + + STRUCT_1744 + - + - + NONE + + + + + STRUCT_1745 + - + - + NONE + + + + + STRUCT_1746 + - + - + NONE + + + + + STRUCT_1747 + - + - + NONE + + + + + STRUCT_1748 + - + - + NONE + + + + + STRUCT_1749 + - + - + NONE + + + + + STRUCT_1750 + - + - + NONE + + + + + STRUCT_1751 + - + - + NONE + + + + + STRUCT_1752 + - + - + NONE + + + + + STRUCT_1753 + - + - + NONE + + + + + STRUCT_1754 + - + - + NONE + + + + + STRUCT_1755 + - + - + NONE + + + + + STRUCT_1756 + - + - + NONE + + + + + STRUCT_1757 + - + - + NONE + + + + + STRUCT_1758 + - + - + NONE + + + + + STRUCT_1759 + - + - + NONE + + + + + STRUCT_1760 + - + - + NONE + + + + + STRUCT_1761 + - + - + NONE + + + + + STRUCT_1762 + - + - + NONE + + + + + STRUCT_1763 + - + - + NONE + + + + + STRUCT_1764 + - + - + NONE + + + + + STRUCT_1765 + - + - + NONE + + + + + STRUCT_1766 + - + - + NONE + + + + + STRUCT_1767 + - + - + NONE + + + + + STRUCT_1768 + - + - + NONE + + + + + STRUCT_1769 + - + - + NONE + + + + + STRUCT_1770 + - + - + NONE + + + + + STRUCT_1771 + - + - + NONE + + + + + STRUCT_1772 + - + - + NONE + + + + + STRUCT_1773 + - + - + NONE + + + + + STRUCT_1774 + - + - + NONE + + + + + STRUCT_1775 + - + - + NONE + + + + + STRUCT_1776 + - + - + NONE + + + + + STRUCT_1777 + - + - + NONE + + + + + STRUCT_1778 + - + - + NONE + + + + + STRUCT_1779 + - + - + NONE + + + + + STRUCT_1780 + - + - + NONE + + + + + STRUCT_1781 + - + - + NONE + + + + + STRUCT_1782 + - + - + NONE + + + + + STRUCT_1783 + - + - + NONE + + + + + STRUCT_1784 + - + - + NONE + + + + + STRUCT_1785 + - + - + NONE + + + + + STRUCT_1786 + - + - + NONE + + + + + STRUCT_1787 + - + - + NONE + + + + + STRUCT_1788 + - + - + NONE + + + + + STRUCT_1789 + - + - + NONE + + + + + STRUCT_1790 + - + - + NONE + + + + + STRUCT_1791 + - + - + NONE + + + + + STRUCT_1792 + - + - + NONE + + + + + STRUCT_1793 + - + - + NONE + + + + + STRUCT_1794 + - + - + NONE + + + + + STRUCT_1795 + - + - + NONE + + + + + STRUCT_1796 + - + - + NONE + + + + + STRUCT_1797 + - + - + NONE + + + + + STRUCT_1798 + - + - + NONE + + + + + STRUCT_1799 + - + - + NONE + + + + + STRUCT_1800 + - + - + NONE + + + + + STRUCT_1801 + - + - + NONE + + + + + STRUCT_1802 + - + - + NONE + + + + + STRUCT_1803 + - + - + NONE + + + + + STRUCT_1804 + - + - + NONE + + + + + STRUCT_1805 + - + - + NONE + + + + + STRUCT_1806 + - + - + NONE + + + + + STRUCT_1807 + - + - + NONE + + + + + STRUCT_1808 + - + - + NONE + + + + + STRUCT_1809 + - + - + NONE + + + + + STRUCT_1810 + - + - + NONE + + + + + STRUCT_1811 + - + - + NONE + + + + + STRUCT_1812 + - + - + NONE + + + + + STRUCT_1813 + - + - + NONE + + + + + STRUCT_1814 + - + - + NONE + + + + + STRUCT_1815 + - + - + NONE + + + + + STRUCT_1816 + - + - + NONE + + + + + STRUCT_1817 + - + - + NONE + + + + + STRUCT_1818 + - + - + NONE + + + + + STRUCT_1819 + - + - + NONE + + + + + STRUCT_1820 + - + - + NONE + + + + + STRUCT_1821 + - + - + NONE + + + + + STRUCT_1822 + - + - + NONE + + + + + STRUCT_1823 + - + - + NONE + + + + + STRUCT_1824 + - + - + NONE + + + + + STRUCT_1825 + - + - + NONE + + + + + STRUCT_1826 + - + - + NONE + + + + + STRUCT_1827 + - + - + NONE + + + + + STRUCT_1828 + - + - + NONE + + + + + STRUCT_1829 + - + - + NONE + + + + + STRUCT_1830 + - + - + NONE + + + + + STRUCT_1831 + - + - + NONE + + + + + STRUCT_1832 + - + - + NONE + + + + + STRUCT_1833 + - + - + NONE + + + + + STRUCT_1834 + - + - + NONE + + + + + STRUCT_1835 + - + - + NONE + + + + + STRUCT_1836 + - + - + NONE + + + + + STRUCT_1837 + - + - + NONE + + + + + STRUCT_1838 + - + - + NONE + + + + + STRUCT_1839 + - + - + NONE + + + + + STRUCT_1840 + - + - + NONE + + + + + STRUCT_1841 + - + - + NONE + + + + + STRUCT_1842 + - + - + NONE + + + + + STRUCT_1843 + - + - + NONE + + + + + STRUCT_1844 + - + - + NONE + + + + + STRUCT_1845 + - + - + NONE + + + + + STRUCT_1846 + - + - + NONE + + + + + STRUCT_1847 + - + - + NONE + + + + + STRUCT_1848 + - + - + NONE + + + + + STRUCT_1849 + - + - + NONE + + + + + STRUCT_1850 + - + - + NONE + + + + + STRUCT_1851 + - + - + NONE + + + + + STRUCT_1852 + - + - + NONE + + + + + STRUCT_1853 + - + - + NONE + + + + + STRUCT_1854 + - + - + NONE + + + + + STRUCT_1855 + - + - + NONE + + + + + STRUCT_1856 + - + - + NONE + + + + + STRUCT_1857 + - + - + NONE + + + + + STRUCT_1858 + - + - + NONE + + + + + STRUCT_1859 + - + - + NONE + + + + + STRUCT_1860 + - + - + NONE + + + + + STRUCT_1861 + - + - + NONE + + + + + STRUCT_1862 + - + - + NONE + + + + + STRUCT_1863 + - + - + NONE + + + + + STRUCT_1864 + - + - + NONE + + + + + STRUCT_1865 + - + - + NONE + + + + + STRUCT_1866 + - + - + NONE + + + + + STRUCT_1867 + - + - + NONE + + + + + STRUCT_1868 + - + - + NONE + + + + + STRUCT_1869 + - + - + NONE + + + + + STRUCT_1870 + - + - + NONE + + + + + STRUCT_1871 + - + - + NONE + + + + + STRUCT_1872 + - + - + NONE + + + + + STRUCT_1873 + - + - + NONE + + + + + STRUCT_1874 + - + - + NONE + + + + + STRUCT_1875 + - + - + NONE + + + + + STRUCT_1876 + - + - + NONE + + + + + STRUCT_1877 + - + - + NONE + + + + + STRUCT_1878 + - + - + NONE + + + + + STRUCT_1879 + - + - + NONE + + + + + STRUCT_1880 + - + - + NONE + + + + + STRUCT_1881 + - + - + NONE + + + + + STRUCT_1882 + - + - + NONE + + + + + STRUCT_1883 + - + - + NONE + + + + + STRUCT_1884 + - + - + NONE + + + + + STRUCT_1885 + - + - + NONE + + + + + STRUCT_1886 + - + - + NONE + + + + + STRUCT_1887 + - + - + NONE + + + + + STRUCT_1888 + - + - + NONE + + + + + STRUCT_1889 + - + - + NONE + + + + + STRUCT_1890 + - + - + NONE + + + + + STRUCT_1891 + - + - + NONE + + + + + STRUCT_1892 + - + - + NONE + + + + + STRUCT_1893 + - + - + NONE + + + + + STRUCT_1894 + - + - + NONE + + + + + STRUCT_1895 + - + - + NONE + + + + + STRUCT_1896 + - + - + NONE + + + + + STRUCT_1897 + - + - + NONE + + + + + STRUCT_1898 + - + - + NONE + + + + + STRUCT_1899 + - + - + NONE + + + + + STRUCT_1900 + - + - + NONE + + + + + STRUCT_1901 + - + - + NONE + + + + + STRUCT_1902 + - + - + NONE + + + + + STRUCT_1903 + - + - + NONE + + + + + STRUCT_1904 + - + - + NONE + + + + + STRUCT_1905 + - + - + NONE + + + + + STRUCT_1906 + - + - + NONE + + + + + STRUCT_1907 + - + - + NONE + + + + + STRUCT_1908 + - + - + NONE + + + + + STRUCT_1909 + - + - + NONE + + + + + STRUCT_1910 + - + - + NONE + + + + + STRUCT_1911 + - + - + NONE + + + + + STRUCT_1912 + - + - + NONE + + + + + STRUCT_1913 + - + - + NONE + + + + + STRUCT_1914 + - + - + NONE + + + + + STRUCT_1915 + - + - + NONE + + + + + STRUCT_1916 + - + - + NONE + + + + + STRUCT_1917 + - + - + NONE + + + + + STRUCT_1918 + - + - + NONE + + + + + STRUCT_1919 + - + - + NONE + + + + + STRUCT_1920 + - + - + NONE + + + + + STRUCT_1921 + - + - + NONE + + + + + STRUCT_1922 + - + - + NONE + + + + + STRUCT_1923 + - + - + NONE + + + + + STRUCT_1924 + - + - + NONE + + + + + STRUCT_1925 + - + - + NONE + + + + + STRUCT_1926 + - + - + NONE + + + + + STRUCT_1927 + - + - + NONE + + + + + STRUCT_1928 + - + - + NONE + + + + + STRUCT_1929 + - + - + NONE + + + + + STRUCT_1930 + - + - + NONE + + + + + STRUCT_1931 + - + - + NONE + + + + + STRUCT_1932 + - + - + NONE + + + + + STRUCT_1933 + - + - + NONE + + + + + STRUCT_1934 + - + - + NONE + + + + + STRUCT_1935 + - + - + NONE + + + + + STRUCT_1936 + - + - + NONE + + + + + STRUCT_1937 + - + - + NONE + + + + + STRUCT_1938 + - + - + NONE + + + + + STRUCT_1939 + - + - + NONE + + + + + STRUCT_1940 + - + - + NONE + + + + + STRUCT_1941 + - + - + NONE + + + + + STRUCT_1942 + - + - + NONE + + + + + STRUCT_1943 + - + - + NONE + + + + + STRUCT_1944 + - + - + NONE + + + + + STRUCT_1945 + - + - + NONE + + + + + STRUCT_1946 + - + - + NONE + + + + + STRUCT_1947 + - + - + NONE + + + + + STRUCT_1948 + - + - + NONE + + + + + STRUCT_1949 + - + - + NONE + + + + + STRUCT_1950 + - + - + NONE + + + + + STRUCT_1951 + - + - + NONE + + + + + STRUCT_1952 + - + - + NONE + + + + + STRUCT_1953 + - + - + NONE + + + + + STRUCT_1954 + - + - + NONE + + + + + STRUCT_1955 + - + - + NONE + + + + + STRUCT_1956 + - + - + NONE + + + + + STRUCT_1957 + - + - + NONE + + + + + STRUCT_1958 + - + - + NONE + + + + + STRUCT_1959 + - + - + NONE + + + + + STRUCT_1960 + - + - + NONE + + + + + STRUCT_1961 + - + - + NONE + + + + + STRUCT_1962 + - + - + NONE + + + + + STRUCT_1963 + - + - + NONE + + + + + STRUCT_1964 + - + - + NONE + + + + + STRUCT_1965 + - + - + NONE + + + + + STRUCT_1966 + - + - + NONE + + + + + STRUCT_1967 + - + - + NONE + + + + + STRUCT_1968 + - + - + NONE + + + + + STRUCT_1969 + - + - + NONE + + + + + STRUCT_1970 + - + - + NONE + + + + + STRUCT_1971 + - + - + NONE + + + + + STRUCT_1972 + - + - + NONE + + + + + STRUCT_1973 + - + - + NONE + + + + + STRUCT_1974 + - + - + NONE + + + + + STRUCT_1975 + - + - + NONE + + + + + STRUCT_1976 + - + - + NONE + + + + + STRUCT_1977 + - + - + NONE + + + + + STRUCT_1978 + - + - + NONE + + + + + STRUCT_1979 + - + - + NONE + + + + + STRUCT_1980 + - + - + NONE + + + + + STRUCT_1981 + - + - + NONE + + + + + STRUCT_1982 + - + - + NONE + + + + + STRUCT_1983 + - + - + NONE + + + + + STRUCT_1984 + - + - + NONE + + + + + STRUCT_1985 + - + - + NONE + + + + + STRUCT_1986 + - + - + NONE + + + + + STRUCT_1987 + - + - + NONE + + + + + STRUCT_1988 + - + - + NONE + + + + + STRUCT_1989 + - + - + NONE + + + + + STRUCT_1990 + - + - + NONE + + + + + STRUCT_1991 + - + - + NONE + + + + + STRUCT_1992 + - + - + NONE + + + + + STRUCT_1993 + - + - + NONE + + + + + STRUCT_1994 + - + - + NONE + + + + + STRUCT_1995 + - + - + NONE + + + + + STRUCT_1996 + - + - + NONE + + + + + STRUCT_1997 + - + - + NONE + + + + + STRUCT_1998 + - + - + NONE + + + + + STRUCT_1999 + - + - + NONE + + + + + STRUCT_2000 + - + - + NONE + + + + + STRUCT_71 + - + - + NONE + + + + + STRUCT_72 + - + - + NONE + + + + + STRUCT_73 + - + - + NONE + + + + + STRUCT_74 + - + - + NONE + + + + + STRUCT_75 + - + - + NONE + + + + + STRUCT_76 + - + - + NONE + + + + + STRUCT_77 + - + - + NONE + + + + + STRUCT_78 + - + - + NONE + + + + + STRUCT_79 + - + - + NONE + + + + + STRUCT_80 + - + - + NONE + + + + + STRUCT_81 + - + - + NONE + + + + + STRUCT_82 + - + - + NONE + + + + + STRUCT_83 + - + - + NONE + + + + + STRUCT_84 + - + - + NONE + + + + + STRUCT_85 + - + - + NONE + + + + + STRUCT_86 + - + - + NONE + + + + + STRUCT_87 + - + - + NONE + + + + + STRUCT_88 + - + - + NONE + + + + + STRUCT_89 + - + - + NONE + + + + + STRUCT_90 + - + - + NONE + + + + + STRUCT_91 + - + - + NONE + + + + + STRUCT_92 + - + - + NONE + + + + + STRUCT_93 + - + - + NONE + + + + + STRUCT_94 + - + - + NONE + + + + + STRUCT_95 + - + - + NONE + + + + + STRUCT_96 + - + - + NONE + + + + + STRUCT_97 + - + - + NONE + + + + + STRUCT_98 + - + - + NONE + + + + + STRUCT_99 + - + - + NONE + + + + + STRUCT_100 + - + - + NONE + + + + + STRUCT_101 + - + - + NONE + + + + + STRUCT_102 + - + - + NONE + + + + + STRUCT_103 + - + - + NONE + + + + + STRUCT_104 + - + - + NONE + + + + + STRUCT_105 + - + - + NONE + + + + + STRUCT_106 + - + - + NONE + + + + + STRUCT_107 + - + - + NONE + + + + + STRUCT_108 + - + - + NONE + + + + + STRUCT_109 + - + - + NONE + + + + + STRUCT_110 + - + - + NONE + + + + + STRUCT_111 + - + - + NONE + + + + + STRUCT_112 + - + - + NONE + + + + + STRUCT_113 + - + - + NONE + + + + + STRUCT_114 + - + - + NONE + + + + + STRUCT_115 + - + - + NONE + + + + + STRUCT_116 + - + - + NONE + + + + + STRUCT_117 + - + - + NONE + + + + + STRUCT_118 + - + - + NONE + + + + + STRUCT_119 + - + - + NONE + + + + + STRUCT_120 + - + - + NONE + + + + + STRUCT_121 + - + - + NONE + + + + + STRUCT_122 + - + - + NONE + + + + + STRUCT_123 + - + - + NONE + + + + + STRUCT_124 + - + - + NONE + + + + + STRUCT_125 + - + - + NONE + + + + + STRUCT_126 + - + - + NONE + + + + + STRUCT_127 + - + - + NONE + + + + + STRUCT_128 + - + - + NONE + + + + + STRUCT_129 + - + - + NONE + + + + + STRUCT_130 + - + - + NONE + + + + + STRUCT_131 + - + - + NONE + + + + + STRUCT_132 + - + - + NONE + + + + + STRUCT_133 + - + - + NONE + + + + + STRUCT_134 + - + - + NONE + + + + + STRUCT_135 + - + - + NONE + + + + + STRUCT_136 + - + - + NONE + + + + + STRUCT_137 + - + - + NONE + + + + + STRUCT_138 + - + - + NONE + + + + + STRUCT_139 + - + - + NONE + + + + + STRUCT_140 + - + - + NONE + + + + + STRUCT_141 + - + - + NONE + + + + + STRUCT_142 + - + - + NONE + + + + + STRUCT_143 + - + - + NONE + + + + + STRUCT_144 + - + - + NONE + + + + + STRUCT_145 + - + - + NONE + + + + + STRUCT_146 + - + - + NONE + + + + + STRUCT_147 + - + - + NONE + + + + + STRUCT_148 + - + - + NONE + + + + + STRUCT_149 + - + - + NONE + + + + + STRUCT_150 + - + - + NONE + + + + + STRUCT_151 + - + - + NONE + + + + + STRUCT_152 + - + - + NONE + + + + + STRUCT_153 + - + - + NONE + + + + + STRUCT_154 + - + - + NONE + + + + + STRUCT_155 + - + - + NONE + + + + + STRUCT_156 + - + - + NONE + + + + + STRUCT_157 + - + - + NONE + + + + + STRUCT_158 + - + - + NONE + + + + + STRUCT_159 + - + - + NONE + + + + + STRUCT_160 + - + - + NONE + + + + + STRUCT_161 + - + - + NONE + + + + + STRUCT_162 + - + - + NONE + + + + + STRUCT_163 + - + - + NONE + + + + + STRUCT_164 + - + - + NONE + + + + + STRUCT_165 + - + - + NONE + + + + + STRUCT_166 + - + - + NONE + + + + + STRUCT_167 + - + - + NONE + + + + + STRUCT_168 + - + - + NONE + + + + + STRUCT_169 + - + - + NONE + + + + + STRUCT_170 + - + - + NONE + + + + + STRUCT_171 + - + - + NONE + + + + + STRUCT_172 + - + - + NONE + + + + + STRUCT_173 + - + - + NONE + + + + + STRUCT_174 + - + - + NONE + + + + + STRUCT_175 + - + - + NONE + + + + + STRUCT_176 + - + - + NONE + + + + + STRUCT_177 + - + - + NONE + + + + + STRUCT_178 + - + - + NONE + + + + + STRUCT_179 + - + - + NONE + + + + + STRUCT_180 + - + - + NONE + + + + + STRUCT_181 + - + - + NONE + + + + + STRUCT_182 + - + - + NONE + + + + + STRUCT_183 + - + - + NONE + + + + + STRUCT_184 + - + - + NONE + + + + + STRUCT_185 + - + - + NONE + + + + + STRUCT_186 + - + - + NONE + + + + + STRUCT_187 + - + - + NONE + + + + + STRUCT_188 + - + - + NONE + + + + + STRUCT_189 + - + - + NONE + + + + + STRUCT_190 + - + - + NONE + + + + + STRUCT_191 + - + - + NONE + + + + + STRUCT_192 + - + - + NONE + + + + + STRUCT_193 + - + - + NONE + + + + + STRUCT_194 + - + - + NONE + + + + + STRUCT_195 + - + - + NONE + + + + + STRUCT_196 + - + - + NONE + + + + + STRUCT_197 + - + - + NONE + + + + + STRUCT_198 + - + - + NONE + + + + + STRUCT_199 + - + - + NONE + + + + + STRUCT_200 + - + - + NONE + + + + + STRUCT_201 + - + - + NONE + + + + + STRUCT_202 + - + - + NONE + + + + + STRUCT_203 + - + - + NONE + + + + + STRUCT_204 + - + - + NONE + + + + + STRUCT_205 + - + - + NONE + + + + + STRUCT_206 + - + - + NONE + + + + + STRUCT_207 + - + - + NONE + + + + + STRUCT_208 + - + - + NONE + + + + + STRUCT_209 + - + - + NONE + + + + + STRUCT_210 + - + - + NONE + + + + + STRUCT_211 + - + - + NONE + + + + + STRUCT_212 + - + - + NONE + + + + + STRUCT_213 + - + - + NONE + + + + + STRUCT_214 + - + - + NONE + + + + + STRUCT_215 + - + - + NONE + + + + + STRUCT_216 + - + - + NONE + + + + + STRUCT_217 + - + - + NONE + + + + + STRUCT_218 + - + - + NONE + + + + + STRUCT_219 + - + - + NONE + + + + + STRUCT_220 + - + - + NONE + + + + + STRUCT_221 + - + - + NONE + + + + + STRUCT_222 + - + - + NONE + + + + + STRUCT_223 + - + - + NONE + + + + + STRUCT_224 + - + - + NONE + + + + + STRUCT_225 + - + - + NONE + + + + + STRUCT_226 + - + - + NONE + + + + + STRUCT_227 + - + - + NONE + + + + + STRUCT_228 + - + - + NONE + + + + + STRUCT_229 + - + - + NONE + + + + + STRUCT_230 + - + - + NONE + + + + + STRUCT_231 + - + - + NONE + + + + + STRUCT_232 + - + - + NONE + + + + + STRUCT_233 + - + - + NONE + + + + + STRUCT_234 + - + - + NONE + + + + + STRUCT_235 + - + - + NONE + + + + + STRUCT_236 + - + - + NONE + + + + + STRUCT_237 + - + - + NONE + + + + + STRUCT_238 + - + - + NONE + + + + + STRUCT_239 + - + - + NONE + + + + + STRUCT_240 + - + - + NONE + + + + + STRUCT_241 + - + - + NONE + + + + + STRUCT_242 + - + - + NONE + + + + + STRUCT_243 + - + - + NONE + + + + + STRUCT_244 + - + - + NONE + + + + + STRUCT_245 + - + - + NONE + + + + + STRUCT_246 + - + - + NONE + + + + + STRUCT_247 + - + - + NONE + + + + + STRUCT_248 + - + - + NONE + + + + + STRUCT_249 + - + - + NONE + + + + + STRUCT_250 + - + - + NONE + + + + + STRUCT_251 + - + - + NONE + + + + + STRUCT_252 + - + - + NONE + + + + + STRUCT_253 + - + - + NONE + + + + + STRUCT_254 + - + - + NONE + + + + + STRUCT_255 + - + - + NONE + + + + + STRUCT_256 + - + - + NONE + + + + + STRUCT_257 + - + - + NONE + + + + + STRUCT_258 + - + - + NONE + + + + + STRUCT_259 + - + - + NONE + + + + + STRUCT_260 + - + - + NONE + + + + + STRUCT_261 + - + - + NONE + + + + + STRUCT_262 + - + - + NONE + + + + + STRUCT_263 + - + - + NONE + + + + + STRUCT_264 + - + - + NONE + + + + + STRUCT_265 + - + - + NONE + + + + + STRUCT_266 + - + - + NONE + + + + + STRUCT_267 + - + - + NONE + + + + + STRUCT_268 + - + - + NONE + + + + + STRUCT_269 + - + - + NONE + + + + + STRUCT_270 + - + - + NONE + + + + + STRUCT_271 + - + - + NONE + + + + + STRUCT_272 + - + - + NONE + + + + + STRUCT_273 + - + - + NONE + + + + + STRUCT_274 + - + - + NONE + + + + + STRUCT_275 + - + - + NONE + + + + + STRUCT_276 + - + - + NONE + + + + + STRUCT_277 + - + - + NONE + + + + + STRUCT_278 + - + - + NONE + + + + + STRUCT_279 + - + - + NONE + + + + + STRUCT_280 + - + - + NONE + + + + + STRUCT_281 + - + - + NONE + + + + + STRUCT_282 + - + - + NONE + + + + + STRUCT_283 + - + - + NONE + + + + + STRUCT_284 + - + - + NONE + + + + + STRUCT_285 + - + - + NONE + + + + + STRUCT_286 + - + - + NONE + + + + + STRUCT_287 + - + - + NONE + + + + + STRUCT_288 + - + - + NONE + + + + + STRUCT_289 + - + - + NONE + + + + + STRUCT_290 + - + - + NONE + + + + + STRUCT_291 + - + - + NONE + + + + + STRUCT_292 + - + - + NONE + + + + + STRUCT_293 + - + - + NONE + + + + + STRUCT_294 + - + - + NONE + + + + + STRUCT_295 + - + - + NONE + + + + + STRUCT_296 + - + - + NONE + + + + + STRUCT_297 + - + - + NONE + + + + + STRUCT_298 + - + - + NONE + + + + + STRUCT_299 + - + - + NONE + + + + + STRUCT_300 + - + - + NONE + + + + + STRUCT_301 + - + - + NONE + + + + + STRUCT_302 + - + - + NONE + + + + + STRUCT_303 + - + - + NONE + + + + + STRUCT_304 + - + - + NONE + + + + + STRUCT_305 + - + - + NONE + + + + + STRUCT_306 + - + - + NONE + + + + + STRUCT_307 + - + - + NONE + + + + + STRUCT_308 + - + - + NONE + + + + + STRUCT_309 + - + - + NONE + + + + + STRUCT_310 + - + - + NONE + + + + + STRUCT_311 + - + - + NONE + + + + + STRUCT_312 + - + - + NONE + + + + + STRUCT_313 + - + - + NONE + + + + + STRUCT_314 + - + - + NONE + + + + + STRUCT_315 + - + - + NONE + + + + + STRUCT_316 + - + - + NONE + + + + + STRUCT_317 + - + - + NONE + + + + + STRUCT_318 + - + - + NONE + + + + + STRUCT_319 + - + - + NONE + + + + + STRUCT_320 + - + - + NONE + + + + + STRUCT_321 + - + - + NONE + + + + + STRUCT_322 + - + - + NONE + + + + + STRUCT_323 + - + - + NONE + + + + + STRUCT_324 + - + - + NONE + + + + + STRUCT_325 + - + - + NONE + + + + + STRUCT_326 + - + - + NONE + + + + + STRUCT_327 + - + - + NONE + + + + + STRUCT_328 + - + - + NONE + + + + + STRUCT_329 + - + - + NONE + + + + + STRUCT_330 + - + - + NONE + + + + + STRUCT_331 + - + - + NONE + + + + + STRUCT_332 + - + - + NONE + + + + + STRUCT_333 + - + - + NONE + + + + + STRUCT_334 + - + - + NONE + + + + + STRUCT_335 + - + - + NONE + + + + + STRUCT_336 + - + - + NONE + + + + + STRUCT_337 + - + - + NONE + + + + + STRUCT_338 + - + - + NONE + + + + + STRUCT_339 + - + - + NONE + + + + + STRUCT_340 + - + - + NONE + + + + + STRUCT_341 + - + - + NONE + + + + + STRUCT_342 + - + - + NONE + + + + + STRUCT_343 + - + - + NONE + + + + + STRUCT_344 + - + - + NONE + + + + + STRUCT_345 + - + - + NONE + + + + + STRUCT_346 + - + - + NONE + + + + + STRUCT_347 + - + - + NONE + + + + + STRUCT_348 + - + - + NONE + + + + + STRUCT_349 + - + - + NONE + + + + + STRUCT_350 + - + - + NONE + + + + + STRUCT_351 + - + - + NONE + + + + + STRUCT_352 + - + - + NONE + + + + + STRUCT_353 + - + - + NONE + + + + + STRUCT_354 + - + - + NONE + + + + + STRUCT_355 + - + - + NONE + + + + + STRUCT_356 + - + - + NONE + + + + + STRUCT_357 + - + - + NONE + + + + + STRUCT_358 + - + - + NONE + + + + + STRUCT_359 + - + - + NONE + + + + + STRUCT_360 + - + - + NONE + + + + + STRUCT_361 + - + - + NONE + + + + + STRUCT_362 + - + - + NONE + + + + + STRUCT_363 + - + - + NONE + + + + + STRUCT_364 + - + - + NONE + + + + + STRUCT_365 + - + - + NONE + + + + + STRUCT_366 + - + - + NONE + + + + + STRUCT_367 + - + - + NONE + + + + + STRUCT_368 + - + - + NONE + + + + + STRUCT_369 + - + - + NONE + + + + + STRUCT_370 + - + - + NONE + + + + + STRUCT_371 + - + - + NONE + + + + + STRUCT_372 + - + - + NONE + + + + + STRUCT_373 + - + - + NONE + + + + + STRUCT_374 + - + - + NONE + + + + + STRUCT_375 + - + - + NONE + + + + + STRUCT_376 + - + - + NONE + + + + + STRUCT_377 + - + - + NONE + + + + + STRUCT_378 + - + - + NONE + + + + + STRUCT_379 + - + - + NONE + + + + + STRUCT_380 + - + - + NONE + + + + + STRUCT_381 + - + - + NONE + + + + + STRUCT_382 + - + - + NONE + + + + + STRUCT_383 + - + - + NONE + + + + + STRUCT_384 + - + - + NONE + + + + + STRUCT_385 + - + - + NONE + + + + + STRUCT_386 + - + - + NONE + + + + + STRUCT_387 + - + - + NONE + + + + + STRUCT_388 + - + - + NONE + + + + + STRUCT_389 + - + - + NONE + + + + + STRUCT_390 + - + - + NONE + + + + + STRUCT_391 + - + - + NONE + + + + + STRUCT_392 + - + - + NONE + + + + + STRUCT_393 + - + - + NONE + + + + + STRUCT_394 + - + - + NONE + + + + + STRUCT_395 + - + - + NONE + + + + + STRUCT_396 + - + - + NONE + + + + + STRUCT_397 + - + - + NONE + + + + + STRUCT_398 + - + - + NONE + + + + + STRUCT_399 + - + - + NONE + + + + + STRUCT_400 + - + - + NONE + + + + + STRUCT_401 + - + - + NONE + + + + + STRUCT_402 + - + - + NONE + + + + + STRUCT_403 + - + - + NONE + + + + + STRUCT_404 + - + - + NONE + + + + + STRUCT_405 + - + - + NONE + + + + + STRUCT_406 + - + - + NONE + + + + + STRUCT_407 + - + - + NONE + + + + + STRUCT_408 + - + - + NONE + + + + + STRUCT_409 + - + - + NONE + + + + + STRUCT_410 + - + - + NONE + + + + + STRUCT_411 + - + - + NONE + + + + + STRUCT_412 + - + - + NONE + + + + + STRUCT_413 + - + - + NONE + + + + + STRUCT_414 + - + - + NONE + + + + + STRUCT_415 + - + - + NONE + + + + + STRUCT_416 + - + - + NONE + + + + + STRUCT_417 + - + - + NONE + + + + + STRUCT_418 + - + - + NONE + + + + + STRUCT_419 + - + - + NONE + + + + + STRUCT_420 + - + - + NONE + + + + + STRUCT_421 + - + - + NONE + + + + + STRUCT_422 + - + - + NONE + + + + + STRUCT_423 + - + - + NONE + + + + + STRUCT_424 + - + - + NONE + + + + + STRUCT_425 + - + - + NONE + + + + + STRUCT_426 + - + - + NONE + + + + + STRUCT_427 + - + - + NONE + + + + + STRUCT_428 + - + - + NONE + + + + + STRUCT_429 + - + - + NONE + + + + + STRUCT_430 + - + - + NONE + + + + + STRUCT_431 + - + - + NONE + + + + + STRUCT_432 + - + - + NONE + + + + + STRUCT_433 + - + - + NONE + + + + + STRUCT_434 + - + - + NONE + + + + + STRUCT_435 + - + - + NONE + + + + + STRUCT_436 + - + - + NONE + + + + + STRUCT_437 + - + - + NONE + + + + + STRUCT_438 + - + - + NONE + + + + + STRUCT_439 + - + - + NONE + + + + + STRUCT_440 + - + - + NONE + + + + + STRUCT_441 + - + - + NONE + + + + + STRUCT_442 + - + - + NONE + + + + + STRUCT_443 + - + - + NONE + + + + + STRUCT_444 + - + - + NONE + + + + + STRUCT_445 + - + - + NONE + + + + + STRUCT_446 + - + - + NONE + + + + + STRUCT_447 + - + - + NONE + + + + + STRUCT_448 + - + - + NONE + + + + + STRUCT_449 + - + - + NONE + + + + + STRUCT_450 + - + - + NONE + + + + + STRUCT_451 + - + - + NONE + + + + + STRUCT_452 + - + - + NONE + + + + + STRUCT_453 + - + - + NONE + + + + + STRUCT_454 + - + - + NONE + + + + + STRUCT_455 + - + - + NONE + + + + + STRUCT_456 + - + - + NONE + + + + + STRUCT_457 + - + - + NONE + + + + + STRUCT_458 + - + - + NONE + + + + + STRUCT_459 + - + - + NONE + + + + + STRUCT_460 + - + - + NONE + + + + + STRUCT_461 + - + - + NONE + + + + + STRUCT_462 + - + - + NONE + + + + + STRUCT_463 + - + - + NONE + + + + + STRUCT_464 + - + - + NONE + + + + + STRUCT_465 + - + - + NONE + + + + + STRUCT_466 + - + - + NONE + + + + + STRUCT_467 + - + - + NONE + + + + + STRUCT_468 + - + - + NONE + + + + + STRUCT_469 + - + - + NONE + + + + + STRUCT_470 + - + - + NONE + + + + + STRUCT_471 + - + - + NONE + + + + + STRUCT_472 + - + - + NONE + + + + + STRUCT_473 + - + - + NONE + + + + + STRUCT_474 + - + - + NONE + + + + + STRUCT_475 + - + - + NONE + + + + + STRUCT_476 + - + - + NONE + + + + + STRUCT_477 + - + - + NONE + + + + + STRUCT_478 + - + - + NONE + + + + + STRUCT_479 + - + - + NONE + + + + + STRUCT_480 + - + - + NONE + + + + + STRUCT_481 + - + - + NONE + + + + + STRUCT_482 + - + - + NONE + + + + + STRUCT_483 + - + - + NONE + + + + + STRUCT_484 + - + - + NONE + + + + + STRUCT_485 + - + - + NONE + + + + + STRUCT_486 + - + - + NONE + + + + + STRUCT_487 + - + - + NONE + + + + + STRUCT_488 + - + - + NONE + + + + + STRUCT_489 + - + - + NONE + + + + + STRUCT_490 + - + - + NONE + + + + + STRUCT_491 + - + - + NONE + + + + + STRUCT_492 + - + - + NONE + + + + + STRUCT_493 + - + - + NONE + + + + + STRUCT_494 + - + - + NONE + + + + + STRUCT_495 + - + - + NONE + + + + + STRUCT_496 + - + - + NONE + + + + + STRUCT_497 + - + - + NONE + + + + + STRUCT_498 + - + - + NONE + + + + + STRUCT_499 + - + - + NONE + + + + + STRUCT_500 + - + - + NONE + + + + + STRUCT_501 + - + - + NONE + + + + + STRUCT_502 + - + - + NONE + + + + + STRUCT_503 + - + - + NONE + + + + + STRUCT_504 + - + - + NONE + + + + + STRUCT_505 + - + - + NONE + + + + + STRUCT_506 + - + - + NONE + + + + + STRUCT_507 + - + - + NONE + + + + + STRUCT_508 + - + - + NONE + + + + + STRUCT_509 + - + - + NONE + + + + + STRUCT_510 + - + - + NONE + + + + + STRUCT_511 + - + - + NONE + + + + + STRUCT_512 + - + - + NONE + + + + + STRUCT_513 + - + - + NONE + + + + + STRUCT_514 + - + - + NONE + + + + + STRUCT_515 + - + - + NONE + + + + + STRUCT_516 + - + - + NONE + + + + + STRUCT_517 + - + - + NONE + + + + + STRUCT_518 + - + - + NONE + + + + + STRUCT_519 + - + - + NONE + + + + + STRUCT_520 + - + - + NONE + + + + + STRUCT_521 + - + - + NONE + + + + + STRUCT_522 + - + - + NONE + + + + + STRUCT_523 + - + - + NONE + + + + + STRUCT_524 + - + - + NONE + + + + + STRUCT_525 + - + - + NONE + + + + + STRUCT_526 + - + - + NONE + + + + + STRUCT_527 + - + - + NONE + + + + + STRUCT_528 + - + - + NONE + + + + + STRUCT_529 + - + - + NONE + + + + + STRUCT_530 + - + - + NONE + + + + + STRUCT_531 + - + - + NONE + + + + + STRUCT_532 + - + - + NONE + + + + + STRUCT_533 + - + - + NONE + + + + + STRUCT_534 + - + - + NONE + + + + + STRUCT_535 + - + - + NONE + + + + + STRUCT_536 + - + - + NONE + + + + + STRUCT_537 + - + - + NONE + + + + + STRUCT_538 + - + - + NONE + + + + + STRUCT_539 + - + - + NONE + + + + + STRUCT_540 + - + - + NONE + + + + + STRUCT_541 + - + - + NONE + + + + + STRUCT_542 + - + - + NONE + + + + + STRUCT_543 + - + - + NONE + + + + + STRUCT_544 + - + - + NONE + + + + + STRUCT_545 + - + - + NONE + + + + + STRUCT_546 + - + - + NONE + + + + + STRUCT_547 + - + - + NONE + + + + + STRUCT_548 + - + - + NONE + + + + + STRUCT_549 + - + - + NONE + + + + + STRUCT_550 + - + - + NONE + + + + + STRUCT_551 + - + - + NONE + + + + + STRUCT_552 + - + - + NONE + + + + + STRUCT_553 + - + - + NONE + + + + + STRUCT_554 + - + - + NONE + + + + + STRUCT_555 + - + - + NONE + + + + + STRUCT_556 + - + - + NONE + + + + + STRUCT_557 + - + - + NONE + + + + + STRUCT_558 + - + - + NONE + + + + + STRUCT_559 + - + - + NONE + + + + + STRUCT_560 + - + - + NONE + + + + + STRUCT_561 + - + - + NONE + + + + + STRUCT_562 + - + - + NONE + + + + + STRUCT_563 + - + - + NONE + + + + + STRUCT_564 + - + - + NONE + + + + + STRUCT_565 + - + - + NONE + + + + + STRUCT_566 + - + - + NONE + + + + + STRUCT_567 + - + - + NONE + + + + + STRUCT_568 + - + - + NONE + + + + + STRUCT_569 + - + - + NONE + + + + + STRUCT_570 + - + - + NONE + + + + + STRUCT_571 + - + - + NONE + + + + + STRUCT_572 + - + - + NONE + + + + + STRUCT_573 + - + - + NONE + + + + + STRUCT_574 + - + - + NONE + + + + + STRUCT_575 + - + - + NONE + + + + + STRUCT_576 + - + - + NONE + + + + + STRUCT_577 + - + - + NONE + + + + + STRUCT_578 + - + - + NONE + + + + + STRUCT_579 + - + - + NONE + + + + + STRUCT_580 + - + - + NONE + + + + + STRUCT_581 + - + - + NONE + + + + + STRUCT_582 + - + - + NONE + + + + + STRUCT_583 + - + - + NONE + + + + + STRUCT_584 + - + - + NONE + + + + + STRUCT_585 + - + - + NONE + + + + + STRUCT_586 + - + - + NONE + + + + + STRUCT_587 + - + - + NONE + + + + + STRUCT_588 + - + - + NONE + + + + + STRUCT_589 + - + - + NONE + + + + + STRUCT_590 + - + - + NONE + + + + + STRUCT_591 + - + - + NONE + + + + + STRUCT_592 + - + - + NONE + + + + + STRUCT_593 + - + - + NONE + + + + + STRUCT_594 + - + - + NONE + + + + + STRUCT_595 + - + - + NONE + + + + + STRUCT_596 + - + - + NONE + + + + + STRUCT_597 + - + - + NONE + + + + + STRUCT_598 + - + - + NONE + + + + + STRUCT_599 + - + - + NONE + + + + + STRUCT_600 + - + - + NONE + + + + + STRUCT_601 + - + - + NONE + + + + + STRUCT_602 + - + - + NONE + + + + + STRUCT_603 + - + - + NONE + + + + + STRUCT_604 + - + - + NONE + + + + + STRUCT_605 + - + - + NONE + + + + + STRUCT_606 + - + - + NONE + + + + + STRUCT_607 + - + - + NONE + + + + + STRUCT_608 + - + - + NONE + + + + + STRUCT_609 + - + - + NONE + + + + + STRUCT_610 + - + - + NONE + + + + + STRUCT_611 + - + - + NONE + + + + + STRUCT_612 + - + - + NONE + + + + + STRUCT_613 + - + - + NONE + + + + + STRUCT_614 + - + - + NONE + + + + + STRUCT_615 + - + - + NONE + + + + + STRUCT_616 + - + - + NONE + + + + + STRUCT_617 + - + - + NONE + + + + + STRUCT_618 + - + - + NONE + + + + + STRUCT_619 + - + - + NONE + + + + + STRUCT_620 + - + - + NONE + + + + + STRUCT_621 + - + - + NONE + + + + + STRUCT_622 + - + - + NONE + + + + + STRUCT_623 + - + - + NONE + + + + + STRUCT_624 + - + - + NONE + + + + + STRUCT_625 + - + - + NONE + + + + + STRUCT_626 + - + - + NONE + + + + + STRUCT_627 + - + - + NONE + + + + + STRUCT_628 + - + - + NONE + + + + + STRUCT_629 + - + - + NONE + + + + + STRUCT_630 + - + - + NONE + + + + + STRUCT_631 + - + - + NONE + + + + + STRUCT_632 + - + - + NONE + + + + + STRUCT_633 + - + - + NONE + + + + + STRUCT_634 + - + - + NONE + + + + + STRUCT_635 + - + - + NONE + + + + + STRUCT_636 + - + - + NONE + + + + + STRUCT_637 + - + - + NONE + + + + + STRUCT_638 + - + - + NONE + + + + + STRUCT_639 + - + - + NONE + + + + + STRUCT_640 + - + - + NONE + + + + + STRUCT_641 + - + - + NONE + + + + + STRUCT_642 + - + - + NONE + + + + + STRUCT_643 + - + - + NONE + + + + + STRUCT_644 + - + - + NONE + + + + + STRUCT_645 + - + - + NONE + + + + + STRUCT_646 + - + - + NONE + + + + + STRUCT_647 + - + - + NONE + + + + + STRUCT_648 + - + - + NONE + + + + + STRUCT_649 + - + - + NONE + + + + + STRUCT_650 + - + - + NONE + + + + + STRUCT_651 + - + - + NONE + + + + + STRUCT_652 + - + - + NONE + + + + + STRUCT_653 + - + - + NONE + + + + + STRUCT_654 + - + - + NONE + + + + + STRUCT_655 + - + - + NONE + + + + + STRUCT_656 + - + - + NONE + + + + + STRUCT_657 + - + - + NONE + + + + + STRUCT_658 + - + - + NONE + + + + + STRUCT_659 + - + - + NONE + + + + + STRUCT_660 + - + - + NONE + + + + + STRUCT_661 + - + - + NONE + + + + + STRUCT_662 + - + - + NONE + + + + + STRUCT_663 + - + - + NONE + + + + + STRUCT_664 + - + - + NONE + + + + + STRUCT_665 + - + - + NONE + + + + + STRUCT_666 + - + - + NONE + + + + + STRUCT_667 + - + - + NONE + + + + + STRUCT_668 + - + - + NONE + + + + + STRUCT_669 + - + - + NONE + + + + + STRUCT_670 + - + - + NONE + + + + + STRUCT_671 + - + - + NONE + + + + + STRUCT_672 + - + - + NONE + + + + + STRUCT_673 + - + - + NONE + + + + + STRUCT_674 + - + - + NONE + + + + + STRUCT_675 + - + - + NONE + + + + + STRUCT_676 + - + - + NONE + + + + + STRUCT_677 + - + - + NONE + + + + + STRUCT_678 + - + - + NONE + + + + + STRUCT_679 + - + - + NONE + + + + + STRUCT_680 + - + - + NONE + + + + + STRUCT_681 + - + - + NONE + + + + + STRUCT_682 + - + - + NONE + + + + + STRUCT_683 + - + - + NONE + + + + + STRUCT_684 + - + - + NONE + + + + + STRUCT_685 + - + - + NONE + + + + + STRUCT_686 + - + - + NONE + + + + + STRUCT_687 + - + - + NONE + + + + + STRUCT_688 + - + - + NONE + + + + + STRUCT_689 + - + - + NONE + + + + + STRUCT_690 + - + - + NONE + + + + + STRUCT_691 + - + - + NONE + + + + + STRUCT_692 + - + - + NONE + + + + + STRUCT_693 + - + - + NONE + + + + + STRUCT_694 + - + - + NONE + + + + + STRUCT_695 + - + - + NONE + + + + + STRUCT_696 + - + - + NONE + + + + + STRUCT_697 + - + - + NONE + + + + + STRUCT_698 + - + - + NONE + + + + + STRUCT_699 + - + - + NONE + + + + + STRUCT_700 + - + - + NONE + + + + + STRUCT_701 + - + - + NONE + + + + + STRUCT_702 + - + - + NONE + + + + + STRUCT_703 + - + - + NONE + + + + + STRUCT_704 + - + - + NONE + + + + + STRUCT_705 + - + - + NONE + + + + + STRUCT_706 + - + - + NONE + + + + + STRUCT_707 + - + - + NONE + + + + + STRUCT_708 + - + - + NONE + + + + + STRUCT_709 + - + - + NONE + + + + + STRUCT_710 + - + - + NONE + + + + + STRUCT_711 + - + - + NONE + + + + + STRUCT_712 + - + - + NONE + + + + + STRUCT_713 + - + - + NONE + + + + + STRUCT_714 + - + - + NONE + + + + + STRUCT_715 + - + - + NONE + + + + + STRUCT_716 + - + - + NONE + + + + + STRUCT_717 + - + - + NONE + + + + + STRUCT_718 + - + - + NONE + + + + + STRUCT_719 + - + - + NONE + + + + + STRUCT_720 + - + - + NONE + + + + + STRUCT_721 + - + - + NONE + + + + + STRUCT_722 + - + - + NONE + + + + + STRUCT_723 + - + - + NONE + + + + + STRUCT_724 + - + - + NONE + + + + + STRUCT_725 + - + - + NONE + + + + + STRUCT_726 + - + - + NONE + + + + + STRUCT_727 + - + - + NONE + + + + + STRUCT_728 + - + - + NONE + + + + + STRUCT_729 + - + - + NONE + + + + + STRUCT_730 + - + - + NONE + + + + + STRUCT_731 + - + - + NONE + + + + + STRUCT_732 + - + - + NONE + + + + + STRUCT_733 + - + - + NONE + + + + + STRUCT_734 + - + - + NONE + + + + + STRUCT_735 + - + - + NONE + + + + + STRUCT_736 + - + - + NONE + + + + + STRUCT_737 + - + - + NONE + + + + + STRUCT_738 + - + - + NONE + + + + + STRUCT_739 + - + - + NONE + + + + + STRUCT_740 + - + - + NONE + + + + + STRUCT_741 + - + - + NONE + + + + + STRUCT_742 + - + - + NONE + + + + + STRUCT_743 + - + - + NONE + + + + + STRUCT_744 + - + - + NONE + + + + + STRUCT_745 + - + - + NONE + + + + + STRUCT_746 + - + - + NONE + + + + + STRUCT_747 + - + - + NONE + + + + + STRUCT_748 + - + - + NONE + + + + + STRUCT_749 + - + - + NONE + + + + + STRUCT_750 + - + - + NONE + + + + + STRUCT_751 + - + - + NONE + + + + + STRUCT_752 + - + - + NONE + + + + + STRUCT_753 + - + - + NONE + + + + + STRUCT_754 + - + - + NONE + + + + + STRUCT_755 + - + - + NONE + + + + + STRUCT_756 + - + - + NONE + + + + + STRUCT_757 + - + - + NONE + + + + + STRUCT_758 + - + - + NONE + + + + + STRUCT_759 + - + - + NONE + + + + + STRUCT_760 + - + - + NONE + + + + + STRUCT_761 + - + - + NONE + + + + + STRUCT_762 + - + - + NONE + + + + + STRUCT_763 + - + - + NONE + + + + + STRUCT_764 + - + - + NONE + + + + + STRUCT_765 + - + - + NONE + + + + + STRUCT_766 + - + - + NONE + + + + + STRUCT_767 + - + - + NONE + + + + + STRUCT_768 + - + - + NONE + + + + + STRUCT_769 + - + - + NONE + + + + + STRUCT_770 + - + - + NONE + + + + + STRUCT_771 + - + - + NONE + + + + + STRUCT_772 + - + - + NONE + + + + + STRUCT_773 + - + - + NONE + + + + + STRUCT_774 + - + - + NONE + + + + + STRUCT_775 + - + - + NONE + + + + + STRUCT_776 + - + - + NONE + + + + + STRUCT_777 + - + - + NONE + + + + + STRUCT_778 + - + - + NONE + + + + + STRUCT_779 + - + - + NONE + + + + + STRUCT_780 + - + - + NONE + + + + + STRUCT_781 + - + - + NONE + + + + + STRUCT_782 + - + - + NONE + + + + + STRUCT_783 + - + - + NONE + + + + + STRUCT_784 + - + - + NONE + + + + + STRUCT_785 + - + - + NONE + + + + + STRUCT_786 + - + - + NONE + + + + + STRUCT_787 + - + - + NONE + + + + + STRUCT_788 + - + - + NONE + + + + + STRUCT_789 + - + - + NONE + + + + + STRUCT_790 + - + - + NONE + + + + + STRUCT_791 + - + - + NONE + + + + + STRUCT_792 + - + - + NONE + + + + + STRUCT_793 + - + - + NONE + + + + + STRUCT_794 + - + - + NONE + + + + + STRUCT_795 + - + - + NONE + + + + + STRUCT_796 + - + - + NONE + + + + + STRUCT_797 + - + - + NONE + + + + + STRUCT_798 + - + - + NONE + + + + + STRUCT_799 + - + - + NONE + + + + + STRUCT_800 + - + - + NONE + + + + + STRUCT_801 + - + - + NONE + + + + + STRUCT_802 + - + - + NONE + + + + + STRUCT_803 + - + - + NONE + + + + + STRUCT_804 + - + - + NONE + + + + + STRUCT_805 + - + - + NONE + + + + + STRUCT_806 + - + - + NONE + + + + + STRUCT_807 + - + - + NONE + + + + + STRUCT_808 + - + - + NONE + + + + + STRUCT_809 + - + - + NONE + + + + + STRUCT_810 + - + - + NONE + + + + + STRUCT_811 + - + - + NONE + + + + + STRUCT_812 + - + - + NONE + + + + + STRUCT_813 + - + - + NONE + + + + + STRUCT_814 + - + - + NONE + + + + + STRUCT_815 + - + - + NONE + + + + + STRUCT_816 + - + - + NONE + + + + + STRUCT_817 + - + - + NONE + + + + + STRUCT_818 + - + - + NONE + + + + + STRUCT_819 + - + - + NONE + + + + + STRUCT_820 + - + - + NONE + + + + + STRUCT_821 + - + - + NONE + + + + + STRUCT_822 + - + - + NONE + + + + + STRUCT_823 + - + - + NONE + + + + + STRUCT_824 + - + - + NONE + + + + + STRUCT_825 + - + - + NONE + + + + + STRUCT_826 + - + - + NONE + + + + + STRUCT_827 + - + - + NONE + + + + + STRUCT_828 + - + - + NONE + + + + + STRUCT_829 + - + - + NONE + + + + + STRUCT_830 + - + - + NONE + + + + + STRUCT_831 + - + - + NONE + + + + + STRUCT_832 + - + - + NONE + + + + + STRUCT_833 + - + - + NONE + + + + + STRUCT_834 + - + - + NONE + + + + + STRUCT_835 + - + - + NONE + + + + + STRUCT_836 + - + - + NONE + + + + + STRUCT_837 + - + - + NONE + + + + + STRUCT_838 + - + - + NONE + + + + + STRUCT_839 + - + - + NONE + + + + + STRUCT_840 + - + - + NONE + + + + + STRUCT_841 + - + - + NONE + + + + + STRUCT_842 + - + - + NONE + + + + + STRUCT_843 + - + - + NONE + + + + + STRUCT_844 + - + - + NONE + + + + + STRUCT_845 + - + - + NONE + + + + + STRUCT_846 + - + - + NONE + + + + + STRUCT_847 + - + - + NONE + + + + + STRUCT_848 + - + - + NONE + + + + + STRUCT_849 + - + - + NONE + + + + + STRUCT_850 + - + - + NONE + + + + + STRUCT_851 + - + - + NONE + + + + + STRUCT_852 + - + - + NONE + + + + + STRUCT_853 + - + - + NONE + + + + + STRUCT_854 + - + - + NONE + + + + + STRUCT_855 + - + - + NONE + + + + + STRUCT_856 + - + - + NONE + + + + + STRUCT_857 + - + - + NONE + + + + + STRUCT_858 + - + - + NONE + + + + + STRUCT_859 + - + - + NONE + + + + + STRUCT_860 + - + - + NONE + + + + + STRUCT_861 + - + - + NONE + + + + + STRUCT_862 + - + - + NONE + + + + + STRUCT_863 + - + - + NONE + + + + + STRUCT_864 + - + - + NONE + + + + + STRUCT_865 + - + - + NONE + + + + + STRUCT_866 + - + - + NONE + + + + + STRUCT_867 + - + - + NONE + + + + + STRUCT_868 + - + - + NONE + + + + + STRUCT_869 + - + - + NONE + + + + + STRUCT_870 + - + - + NONE + + + + + STRUCT_871 + - + - + NONE + + + + + STRUCT_872 + - + - + NONE + + + + + STRUCT_873 + - + - + NONE + + + + + STRUCT_874 + - + - + NONE + + + + + STRUCT_875 + - + - + NONE + + + + + STRUCT_876 + - + - + NONE + + + + + STRUCT_877 + - + - + NONE + + + + + STRUCT_878 + - + - + NONE + + + + + STRUCT_879 + - + - + NONE + + + + + STRUCT_880 + - + - + NONE + + + + + STRUCT_881 + - + - + NONE + + + + + STRUCT_882 + - + - + NONE + + + + + STRUCT_883 + - + - + NONE + + + + + STRUCT_884 + - + - + NONE + + + + + STRUCT_885 + - + - + NONE + + + + + STRUCT_886 + - + - + NONE + + + + + STRUCT_887 + - + - + NONE + + + + + STRUCT_888 + - + - + NONE + + + + + STRUCT_889 + - + - + NONE + + + + + STRUCT_890 + - + - + NONE + + + + + STRUCT_891 + - + - + NONE + + + + + STRUCT_892 + - + - + NONE + + + + + STRUCT_893 + - + - + NONE + + + + + STRUCT_894 + - + - + NONE + + + + + STRUCT_895 + - + - + NONE + + + + + STRUCT_896 + - + - + NONE + + + + + STRUCT_897 + - + - + NONE + + + + + STRUCT_898 + - + - + NONE + + + + + STRUCT_899 + - + - + NONE + + + + + STRUCT_900 + - + - + NONE + + + + + STRUCT_901 + - + - + NONE + + + + + STRUCT_902 + - + - + NONE + + + + + STRUCT_903 + - + - + NONE + + + + + STRUCT_904 + - + - + NONE + + + + + STRUCT_905 + - + - + NONE + + + + + STRUCT_906 + - + - + NONE + + + + + STRUCT_907 + - + - + NONE + + + + + STRUCT_908 + - + - + NONE + + + + + STRUCT_909 + - + - + NONE + + + + + STRUCT_910 + - + - + NONE + + + + + STRUCT_911 + - + - + NONE + + + + + STRUCT_912 + - + - + NONE + + + + + STRUCT_913 + - + - + NONE + + + + + STRUCT_914 + - + - + NONE + + + + + STRUCT_915 + - + - + NONE + + + + + STRUCT_916 + - + - + NONE + + + + + STRUCT_917 + - + - + NONE + + + + + STRUCT_918 + - + - + NONE + + + + + STRUCT_919 + - + - + NONE + + + + + STRUCT_920 + - + - + NONE + + + + + STRUCT_921 + - + - + NONE + + + + + STRUCT_922 + - + - + NONE + + + + + STRUCT_923 + - + - + NONE + + + + + STRUCT_924 + - + - + NONE + + + + + STRUCT_925 + - + - + NONE + + + + + STRUCT_926 + - + - + NONE + + + + + STRUCT_927 + - + - + NONE + + + + + STRUCT_928 + - + - + NONE + + + + + STRUCT_929 + - + - + NONE + + + + + STRUCT_930 + - + - + NONE + + + + + STRUCT_931 + - + - + NONE + + + + + STRUCT_932 + - + - + NONE + + + + + STRUCT_933 + - + - + NONE + + + + + STRUCT_934 + - + - + NONE + + + + + STRUCT_935 + - + - + NONE + + + + + STRUCT_936 + - + - + NONE + + + + + STRUCT_937 + - + - + NONE + + + + + STRUCT_938 + - + - + NONE + + + + + STRUCT_939 + - + - + NONE + + + + + STRUCT_940 + - + - + NONE + + + + + STRUCT_941 + - + - + NONE + + + + + STRUCT_942 + - + - + NONE + + + + + STRUCT_943 + - + - + NONE + + + + + STRUCT_944 + - + - + NONE + + + + + STRUCT_945 + - + - + NONE + + + + + STRUCT_946 + - + - + NONE + + + + + STRUCT_947 + - + - + NONE + + + + + STRUCT_948 + - + - + NONE + + + + + STRUCT_949 + - + - + NONE + + + + + STRUCT_950 + - + - + NONE + + + + + STRUCT_951 + - + - + NONE + + + + + STRUCT_952 + - + - + NONE + + + + + STRUCT_953 + - + - + NONE + + + + + STRUCT_954 + - + - + NONE + + + + + STRUCT_955 + - + - + NONE + + + + + STRUCT_956 + - + - + NONE + + + + + STRUCT_957 + - + - + NONE + + + + + STRUCT_958 + - + - + NONE + + + + + STRUCT_959 + - + - + NONE + + + + + STRUCT_960 + - + - + NONE + + + + + STRUCT_961 + - + - + NONE + + + + + STRUCT_962 + - + - + NONE + + + + + STRUCT_963 + - + - + NONE + + + + + STRUCT_964 + - + - + NONE + + + + + STRUCT_965 + - + - + NONE + + + + + STRUCT_966 + - + - + NONE + + + + + STRUCT_967 + - + - + NONE + + + + + STRUCT_968 + - + - + NONE + + + + + STRUCT_969 + - + - + NONE + + + + + STRUCT_970 + - + - + NONE + + + + + STRUCT_971 + - + - + NONE + + + + + STRUCT_972 + - + - + NONE + + + + + STRUCT_973 + - + - + NONE + + + + + STRUCT_974 + - + - + NONE + + + + + STRUCT_975 + - + - + NONE + + + + + STRUCT_976 + - + - + NONE + + + + + STRUCT_977 + - + - + NONE + + + + + STRUCT_978 + - + - + NONE + + + + + STRUCT_979 + - + - + NONE + + + + + STRUCT_980 + - + - + NONE + + + + + STRUCT_981 + - + - + NONE + + + + + STRUCT_982 + - + - + NONE + + + + + STRUCT_983 + - + - + NONE + + + + + STRUCT_984 + - + - + NONE + + + + + STRUCT_985 + - + - + NONE + + + + + STRUCT_986 + - + - + NONE + + + + + STRUCT_987 + - + - + NONE + + + + + STRUCT_988 + - + - + NONE + + + + + STRUCT_989 + - + - + NONE + + + + + STRUCT_990 + - + - + NONE + + + + + STRUCT_991 + - + - + NONE + + + + + STRUCT_992 + - + - + NONE + + + + + STRUCT_993 + - + - + NONE + + + + + STRUCT_994 + - + - + NONE + + + + + STRUCT_995 + - + - + NONE + + + + + STRUCT_996 + - + - + NONE + + + + + STRUCT_997 + - + - + NONE + + + + + STRUCT_998 + - + - + NONE + + + + + STRUCT_999 + - + - + NONE + + + + + STRUCT_1000 + - + - + NONE + + + + + STRUCT_1001 + - + - + NONE + + + + + STRUCT_1002 + - + - + NONE + + + + + STRUCT_1003 + - + - + NONE + + + + + STRUCT_1004 + - + - + NONE + + + + + STRUCT_1005 + - + - + NONE + + + + + STRUCT_1006 + - + - + NONE + + + + + STRUCT_1007 + - + - + NONE + + + + + STRUCT_1008 + - + - + NONE + + + + + STRUCT_1009 + - + - + NONE + + + + + STRUCT_1010 + - + - + NONE + + + + + STRUCT_1011 + - + - + NONE + + + + + STRUCT_1012 + - + - + NONE + + + + + STRUCT_1013 + - + - + NONE + + + + + STRUCT_1014 + - + - + NONE + + + + + STRUCT_1015 + - + - + NONE + + + + + STRUCT_1016 + - + - + NONE + + + + + STRUCT_1017 + - + - + NONE + + + + + STRUCT_1018 + - + - + NONE + + + + + STRUCT_1019 + - + - + NONE + + + + + STRUCT_1020 + - + - + NONE + + + + + STRUCT_1021 + - + - + NONE + + + + + STRUCT_1022 + - + - + NONE + + + + + STRUCT_1023 + - + - + NONE + + + + + STRUCT_1024 + - + - + NONE + + + + + STRUCT_1025 + - + - + NONE + + + + + STRUCT_1026 + - + - + NONE + + + + + STRUCT_1027 + - + - + NONE + + + + + STRUCT_1028 + - + - + NONE + + + + + STRUCT_1029 + - + - + NONE + + + + + STRUCT_1030 + - + - + NONE + + + + + STRUCT_1031 + - + - + NONE + + + + + STRUCT_1032 + - + - + NONE + + + + + STRUCT_1033 + - + - + NONE + + + + + STRUCT_1034 + - + - + NONE + + + + + STRUCT_1035 + - + - + NONE + + + + + STRUCT_1036 + - + - + NONE + + + + + STRUCT_1037 + - + - + NONE + + + + + STRUCT_1038 + - + - + NONE + + + + + STRUCT_1039 + - + - + NONE + + + + + STRUCT_1040 + - + - + NONE + + + + + STRUCT_1041 + - + - + NONE + + + + + STRUCT_1042 + - + - + NONE + + + + + STRUCT_1043 + - + - + NONE + + + + + STRUCT_1044 + - + - + NONE + + + + + STRUCT_1045 + - + - + NONE + + + + + STRUCT_1046 + - + - + NONE + + + + + STRUCT_1047 + - + - + NONE + + + + + STRUCT_1048 + - + - + NONE + + + + + STRUCT_1049 + - + - + NONE + + + + + STRUCT_1050 + - + - + NONE + + + + + STRUCT_1051 + - + - + NONE + + + + + STRUCT_1052 + - + - + NONE + + + + + STRUCT_1053 + - + - + NONE + + + + + STRUCT_1054 + - + - + NONE + + + + + STRUCT_1055 + - + - + NONE + + + + + STRUCT_1056 + - + - + NONE + + + + + STRUCT_1057 + - + - + NONE + + + + + STRUCT_1058 + - + - + NONE + + + + + STRUCT_1059 + - + - + NONE + + + + + STRUCT_1060 + - + - + NONE + + + + + STRUCT_1061 + - + - + NONE + + + + + STRUCT_1062 + - + - + NONE + + + + + STRUCT_1063 + - + - + NONE + + + + + STRUCT_1064 + - + - + NONE + + + + + STRUCT_1065 + - + - + NONE + + + + + STRUCT_1066 + - + - + NONE + + + + + STRUCT_1067 + - + - + NONE + + + + + STRUCT_1068 + - + - + NONE + + + + + STRUCT_1069 + - + - + NONE + + + + + STRUCT_1070 + - + - + NONE + + + + + STRUCT_1071 + - + - + NONE + + + + + STRUCT_1072 + - + - + NONE + + + + + STRUCT_1073 + - + - + NONE + + + + + STRUCT_1074 + - + - + NONE + + + + + STRUCT_1075 + - + - + NONE + + + + + STRUCT_1076 + - + - + NONE + + + + + STRUCT_1077 + - + - + NONE + + + + + STRUCT_1078 + - + - + NONE + + + + + STRUCT_1079 + - + - + NONE + + + + + STRUCT_1080 + - + - + NONE + + + + + STRUCT_1081 + - + - + NONE + + + + + STRUCT_1082 + - + - + NONE + + + + + STRUCT_1083 + - + - + NONE + + + + + STRUCT_1084 + - + - + NONE + + + + + STRUCT_1085 + - + - + NONE + + + + + STRUCT_1086 + - + - + NONE + + + + + STRUCT_1087 + - + - + NONE + + + + + STRUCT_1088 + - + - + NONE + + + + + STRUCT_1089 + - + - + NONE + + + + + STRUCT_1090 + - + - + NONE + + + + + STRUCT_1091 + - + - + NONE + + + + + STRUCT_1092 + - + - + NONE + + + + + STRUCT_1093 + - + - + NONE + + + + + STRUCT_1094 + - + - + NONE + + + + + STRUCT_1095 + - + - + NONE + + + + + STRUCT_1096 + - + - + NONE + + + + + STRUCT_1097 + - + - + NONE + + + + + STRUCT_1098 + - + - + NONE + + + + + STRUCT_1099 + - + - + NONE + + + + + STRUCT_1100 + - + - + NONE + + + + + STRUCT_1101 + - + - + NONE + + + + + STRUCT_1102 + - + - + NONE + + + + + STRUCT_1103 + - + - + NONE + + + + + STRUCT_1104 + - + - + NONE + + + + + STRUCT_1105 + - + - + NONE + + + + + STRUCT_1106 + - + - + NONE + + + + + STRUCT_1107 + - + - + NONE + + + + + STRUCT_1108 + - + - + NONE + + + + + STRUCT_1109 + - + - + NONE + + + + + STRUCT_1110 + - + - + NONE + + + + + STRUCT_1111 + - + - + NONE + + + + + STRUCT_1112 + - + - + NONE + + + + + STRUCT_1113 + - + - + NONE + + + + + STRUCT_1114 + - + - + NONE + + + + + STRUCT_1115 + - + - + NONE + + + + + STRUCT_1116 + - + - + NONE + + + + + STRUCT_1117 + - + - + NONE + + + + + STRUCT_1118 + - + - + NONE + + + + + STRUCT_1119 + - + - + NONE + + + + + STRUCT_1120 + - + - + NONE + + + + + STRUCT_1121 + - + - + NONE + + + + + STRUCT_1122 + - + - + NONE + + + + + STRUCT_1123 + - + - + NONE + + + + + STRUCT_1124 + - + - + NONE + + + + + STRUCT_1125 + - + - + NONE + + + + + STRUCT_1126 + - + - + NONE + + + + + STRUCT_1127 + - + - + NONE + + + + + STRUCT_1128 + - + - + NONE + + + + + STRUCT_1129 + - + - + NONE + + + + + STRUCT_1130 + - + - + NONE + + + + + STRUCT_1131 + - + - + NONE + + + + + STRUCT_1132 + - + - + NONE + + + + + STRUCT_1133 + - + - + NONE + + + + + STRUCT_1134 + - + - + NONE + + + + + STRUCT_1135 + - + - + NONE + + + + + STRUCT_1136 + - + - + NONE + + + + + STRUCT_1137 + - + - + NONE + + + + + STRUCT_1138 + - + - + NONE + + + + + STRUCT_1139 + - + - + NONE + + + + + STRUCT_1140 + - + - + NONE + + + + + STRUCT_1141 + - + - + NONE + + + + + STRUCT_1142 + - + - + NONE + + + + + STRUCT_1143 + - + - + NONE + + + + + STRUCT_1144 + - + - + NONE + + + + + STRUCT_1145 + - + - + NONE + + + + + STRUCT_1146 + - + - + NONE + + + + + STRUCT_1147 + - + - + NONE + + + + + STRUCT_1148 + - + - + NONE + + + + + STRUCT_1149 + - + - + NONE + + + + + STRUCT_1150 + - + - + NONE + + + + + STRUCT_1151 + - + - + NONE + + + + + STRUCT_1152 + - + - + NONE + + + + + STRUCT_1153 + - + - + NONE + + + + + STRUCT_1154 + - + - + NONE + + + + + STRUCT_1155 + - + - + NONE + + + + + STRUCT_1156 + - + - + NONE + + + + + STRUCT_1157 + - + - + NONE + + + + + STRUCT_1158 + - + - + NONE + + + + + STRUCT_1159 + - + - + NONE + + + + + STRUCT_1160 + - + - + NONE + + + + + STRUCT_1161 + - + - + NONE + + + + + STRUCT_1162 + - + - + NONE + + + + + STRUCT_1163 + - + - + NONE + + + + + STRUCT_1164 + - + - + NONE + + + + + STRUCT_1165 + - + - + NONE + + + + + STRUCT_1166 + - + - + NONE + + + + + STRUCT_1167 + - + - + NONE + + + + + STRUCT_1168 + - + - + NONE + + + + + STRUCT_1169 + - + - + NONE + + + + + STRUCT_1170 + - + - + NONE + + + + + STRUCT_1171 + - + - + NONE + + + + + STRUCT_1172 + - + - + NONE + + + + + STRUCT_1173 + - + - + NONE + + + + + STRUCT_1174 + - + - + NONE + + + + + STRUCT_1175 + - + - + NONE + + + + + STRUCT_1176 + - + - + NONE + + + + + STRUCT_1177 + - + - + NONE + + + + + STRUCT_1178 + - + - + NONE + + + + + STRUCT_1179 + - + - + NONE + + + + + STRUCT_1180 + - + - + NONE + + + + + STRUCT_1181 + - + - + NONE + + + + + STRUCT_1182 + - + - + NONE + + + + + STRUCT_1183 + - + - + NONE + + + + + STRUCT_1184 + - + - + NONE + + + + + STRUCT_1185 + - + - + NONE + + + + + STRUCT_1186 + - + - + NONE + + + + + STRUCT_1187 + - + - + NONE + + + + + STRUCT_1188 + - + - + NONE + + + + + STRUCT_1189 + - + - + NONE + + + + + STRUCT_1190 + - + - + NONE + + + + + STRUCT_1191 + - + - + NONE + + + + + STRUCT_1192 + - + - + NONE + + + + + STRUCT_1193 + - + - + NONE + + + + + STRUCT_1194 + - + - + NONE + + + + + STRUCT_1195 + - + - + NONE + + + + + STRUCT_1196 + - + - + NONE + + + + + STRUCT_1197 + - + - + NONE + + + + + STRUCT_1198 + - + - + NONE + + + + + STRUCT_1199 + - + - + NONE + + + + + STRUCT_1200 + - + - + NONE + + + + + STRUCT_1201 + - + - + NONE + + + + + STRUCT_1202 + - + - + NONE + + + + + STRUCT_1203 + - + - + NONE + + + + + STRUCT_1204 + - + - + NONE + + + + + STRUCT_1205 + - + - + NONE + + + + + STRUCT_1206 + - + - + NONE + + + + + STRUCT_1207 + - + - + NONE + + + + + STRUCT_1208 + - + - + NONE + + + + + STRUCT_1209 + - + - + NONE + + + + + STRUCT_1210 + - + - + NONE + + + + + STRUCT_1211 + - + - + NONE + + + + + STRUCT_1212 + - + - + NONE + + + + + STRUCT_1213 + - + - + NONE + + + + + STRUCT_1214 + - + - + NONE + + + + + STRUCT_1215 + - + - + NONE + + + + + STRUCT_1216 + - + - + NONE + + + + + STRUCT_1217 + - + - + NONE + + + + + STRUCT_1218 + - + - + NONE + + + + + STRUCT_1219 + - + - + NONE + + + + + STRUCT_1220 + - + - + NONE + + + + + STRUCT_1221 + - + - + NONE + + + + + STRUCT_1222 + - + - + NONE + + + + + STRUCT_1223 + - + - + NONE + + + + + STRUCT_1224 + - + - + NONE + + + + + STRUCT_1225 + - + - + NONE + + + + + STRUCT_1226 + - + - + NONE + + + + + STRUCT_1227 + - + - + NONE + + + + + STRUCT_1228 + - + - + NONE + + + + + STRUCT_1229 + - + - + NONE + + + + + STRUCT_1230 + - + - + NONE + + + + + STRUCT_1231 + - + - + NONE + + + + + STRUCT_1232 + - + - + NONE + + + + + STRUCT_1233 + - + - + NONE + + + + + STRUCT_1234 + - + - + NONE + + + + + STRUCT_1235 + - + - + NONE + + + + + STRUCT_1236 + - + - + NONE + + + + + STRUCT_1237 + - + - + NONE + + + + + STRUCT_1238 + - + - + NONE + + + + + STRUCT_1239 + - + - + NONE + + + + + STRUCT_1240 + - + - + NONE + + + + + STRUCT_1241 + - + - + NONE + + + + + STRUCT_1242 + - + - + NONE + + + + + STRUCT_1243 + - + - + NONE + + + + + STRUCT_1244 + - + - + NONE + + + + + STRUCT_1245 + - + - + NONE + + + + + STRUCT_1246 + - + - + NONE + + + + + STRUCT_1247 + - + - + NONE + + + + + STRUCT_1248 + - + - + NONE + + + + + STRUCT_1249 + - + - + NONE + + + + + STRUCT_1250 + - + - + NONE + + + + + STRUCT_1251 + - + - + NONE + + + + + STRUCT_1252 + - + - + NONE + + + + + STRUCT_1253 + - + - + NONE + + + + + STRUCT_1254 + - + - + NONE + + + + + STRUCT_1255 + - + - + NONE + + + + + STRUCT_1256 + - + - + NONE + + + + + STRUCT_1257 + - + - + NONE + + + + + STRUCT_1258 + - + - + NONE + + + + + STRUCT_1259 + - + - + NONE + + + + + STRUCT_1260 + - + - + NONE + + + + + STRUCT_1261 + - + - + NONE + + + + + STRUCT_1262 + - + - + NONE + + + + + STRUCT_1263 + - + - + NONE + + + + + STRUCT_1264 + - + - + NONE + + + + + STRUCT_1265 + - + - + NONE + + + + + STRUCT_1266 + - + - + NONE + + + + + STRUCT_1267 + - + - + NONE + + + + + STRUCT_1268 + - + - + NONE + + + + + STRUCT_1269 + - + - + NONE + + + + + STRUCT_1270 + - + - + NONE + + + + + STRUCT_1271 + - + - + NONE + + + + + STRUCT_1272 + - + - + NONE + + + + + STRUCT_1273 + - + - + NONE + + + + + STRUCT_1274 + - + - + NONE + + + + + STRUCT_1275 + - + - + NONE + + + + + STRUCT_1276 + - + - + NONE + + + + + STRUCT_1277 + - + - + NONE + + + + + STRUCT_1278 + - + - + NONE + + + + + STRUCT_1279 + - + - + NONE + + + + + STRUCT_1280 + - + - + NONE + + + + + STRUCT_1281 + - + - + NONE + + + + + STRUCT_1282 + - + - + NONE + + + + + STRUCT_1283 + - + - + NONE + + + + + STRUCT_1284 + - + - + NONE + + + + + STRUCT_1285 + - + - + NONE + + + + + STRUCT_1286 + - + - + NONE + + + + + STRUCT_1287 + - + - + NONE + + + + + STRUCT_1288 + - + - + NONE + + + + + STRUCT_1289 + - + - + NONE + + + + + STRUCT_1290 + - + - + NONE + + + + + STRUCT_1291 + - + - + NONE + + + + + STRUCT_1292 + - + - + NONE + + + + + STRUCT_1293 + - + - + NONE + + + + + STRUCT_1294 + - + - + NONE + + + + + STRUCT_1295 + - + - + NONE + + + + + STRUCT_1296 + - + - + NONE + + + + + STRUCT_1297 + - + - + NONE + + + + + STRUCT_1298 + - + - + NONE + + + + + STRUCT_1299 + - + - + NONE + + + + + STRUCT_1300 + - + - + NONE + + + + + STRUCT_1301 + - + - + NONE + + + + + STRUCT_1302 + - + - + NONE + + + + + STRUCT_1303 + - + - + NONE + + + + + STRUCT_1304 + - + - + NONE + + + + + STRUCT_1305 + - + - + NONE + + + + + STRUCT_1306 + - + - + NONE + + + + + STRUCT_1307 + - + - + NONE + + + + + STRUCT_1308 + - + - + NONE + + + + + STRUCT_1309 + - + - + NONE + + + + + STRUCT_1310 + - + - + NONE + + + + + STRUCT_1311 + - + - + NONE + + + + + STRUCT_1312 + - + - + NONE + + + + + STRUCT_1313 + - + - + NONE + + + + + STRUCT_1314 + - + - + NONE + + + + + STRUCT_1315 + - + - + NONE + + + + + STRUCT_1316 + - + - + NONE + + + + + STRUCT_1317 + - + - + NONE + + + + + STRUCT_1318 + - + - + NONE + + + + + STRUCT_1319 + - + - + NONE + + + + + STRUCT_1320 + - + - + NONE + + + + + STRUCT_1321 + - + - + NONE + + + + + STRUCT_1322 + - + - + NONE + + + + + STRUCT_1323 + - + - + NONE + + + + + STRUCT_1324 + - + - + NONE + + + + + STRUCT_1325 + - + - + NONE + + + + + STRUCT_1326 + - + - + NONE + + + + + STRUCT_1327 + - + - + NONE + + + + + STRUCT_1328 + - + - + NONE + + + + + STRUCT_1329 + - + - + NONE + + + + + STRUCT_1330 + - + - + NONE + + + + + STRUCT_1331 + - + - + NONE + + + + + STRUCT_1332 + - + - + NONE + + + + + STRUCT_1333 + - + - + NONE + + + + + STRUCT_1334 + - + - + NONE + + + + + STRUCT_1335 + - + - + NONE + + + + + STRUCT_1336 + - + - + NONE + + + + + STRUCT_1337 + - + - + NONE + + + + + STRUCT_1338 + - + - + NONE + + + + + STRUCT_1339 + - + - + NONE + + + + + STRUCT_1340 + - + - + NONE + + + + + STRUCT_1341 + - + - + NONE + + + + + STRUCT_1342 + - + - + NONE + + + + + STRUCT_1343 + - + - + NONE + + + + + STRUCT_1344 + - + - + NONE + + + + + STRUCT_1345 + - + - + NONE + + + + + STRUCT_1346 + - + - + NONE + + + + + STRUCT_1347 + - + - + NONE + + + + + STRUCT_1348 + - + - + NONE + + + + + STRUCT_1349 + - + - + NONE + + + + + STRUCT_1350 + - + - + NONE + + + + + STRUCT_1351 + - + - + NONE + + + + + STRUCT_1352 + - + - + NONE + + + + + STRUCT_1353 + - + - + NONE + + + + + STRUCT_1354 + - + - + NONE + + + + + STRUCT_1355 + - + - + NONE + + + + + STRUCT_1356 + - + - + NONE + + + + + STRUCT_1357 + - + - + NONE + + + + + STRUCT_1358 + - + - + NONE + + + + + STRUCT_1359 + - + - + NONE + + + + + STRUCT_1360 + - + - + NONE + + + + + STRUCT_1361 + - + - + NONE + + + + + STRUCT_1362 + - + - + NONE + + + + + STRUCT_1363 + - + - + NONE + + + + + STRUCT_1364 + - + - + NONE + + + + + STRUCT_1365 + - + - + NONE + + + + + STRUCT_1366 + - + - + NONE + + + + + STRUCT_1367 + - + - + NONE + + + + + STRUCT_1368 + - + - + NONE + + + + + STRUCT_1369 + - + - + NONE + + + + + STRUCT_1370 + - + - + NONE + + + + + STRUCT_1371 + - + - + NONE + + + + + STRUCT_1372 + - + - + NONE + + + + + STRUCT_1373 + - + - + NONE + + + + + STRUCT_1374 + - + - + NONE + + + + + STRUCT_1375 + - + - + NONE + + + + + STRUCT_1376 + - + - + NONE + + + + + STRUCT_1377 + - + - + NONE + + + + + STRUCT_1378 + - + - + NONE + + + + + STRUCT_1379 + - + - + NONE + + + + + STRUCT_1380 + - + - + NONE + + + + + STRUCT_1381 + - + - + NONE + + + + + STRUCT_1382 + - + - + NONE + + + + + STRUCT_1383 + - + - + NONE + + + + + STRUCT_1384 + - + - + NONE + + + + + STRUCT_1385 + - + - + NONE + + + + + STRUCT_1386 + - + - + NONE + + + + + STRUCT_1387 + - + - + NONE + + + + + STRUCT_1388 + - + - + NONE + + + + + STRUCT_1389 + - + - + NONE + + + + + STRUCT_1390 + - + - + NONE + + + + + STRUCT_1391 + - + - + NONE + + + + + STRUCT_1392 + - + - + NONE + + + + + STRUCT_1393 + - + - + NONE + + + + + STRUCT_1394 + - + - + NONE + + + + + STRUCT_1395 + - + - + NONE + + + + + STRUCT_1396 + - + - + NONE + + + + + STRUCT_1397 + - + - + NONE + + + + + STRUCT_1398 + - + - + NONE + + + + + STRUCT_1399 + - + - + NONE + + + + + STRUCT_1400 + - + - + NONE + + + + + STRUCT_1401 + - + - + NONE + + + + + STRUCT_1402 + - + - + NONE + + + + + STRUCT_1403 + - + - + NONE + + + + + STRUCT_1404 + - + - + NONE + + + + + STRUCT_1405 + - + - + NONE + + + + + STRUCT_1406 + - + - + NONE + + + + + STRUCT_1407 + - + - + NONE + + + + + STRUCT_1408 + - + - + NONE + + + + + STRUCT_1409 + - + - + NONE + + + + + STRUCT_1410 + - + - + NONE + + + + + STRUCT_1411 + - + - + NONE + + + + + STRUCT_1412 + - + - + NONE + + + + + STRUCT_1413 + - + - + NONE + + + + + STRUCT_1414 + - + - + NONE + + + + + STRUCT_1415 + - + - + NONE + + + + + STRUCT_1416 + - + - + NONE + + + + + STRUCT_1417 + - + - + NONE + + + + + STRUCT_1418 + - + - + NONE + + + + + STRUCT_1419 + - + - + NONE + + + + + STRUCT_1420 + - + - + NONE + + + + + STRUCT_1421 + - + - + NONE + + + + + STRUCT_1422 + - + - + NONE + + + + + STRUCT_1423 + - + - + NONE + + + + + STRUCT_1424 + - + - + NONE + + + + + STRUCT_1425 + - + - + NONE + + + + + STRUCT_1426 + - + - + NONE + + + + + STRUCT_1427 + - + - + NONE + + + + + STRUCT_1428 + - + - + NONE + + + + + STRUCT_1429 + - + - + NONE + + + + + STRUCT_1430 + - + - + NONE + + + + + STRUCT_1431 + - + - + NONE + + + + + STRUCT_1432 + - + - + NONE + + + + + STRUCT_1433 + - + - + NONE + + + + + STRUCT_1434 + - + - + NONE + + + + + STRUCT_1435 + - + - + NONE + + + + + STRUCT_1436 + - + - + NONE + + + + + STRUCT_1437 + - + - + NONE + + + + + STRUCT_1438 + - + - + NONE + + + + + STRUCT_1439 + - + - + NONE + + + + + STRUCT_1440 + - + - + NONE + + + + + STRUCT_1441 + - + - + NONE + + + + + STRUCT_1442 + - + - + NONE + + + + + STRUCT_1443 + - + - + NONE + + + + + STRUCT_1444 + - + - + NONE + + + + + STRUCT_1445 + - + - + NONE + + + + + STRUCT_1446 + - + - + NONE + + + + + STRUCT_1447 + - + - + NONE + + + + + STRUCT_1448 + - + - + NONE + + + + + STRUCT_1449 + - + - + NONE + + + + + STRUCT_1450 + - + - + NONE + + + + + STRUCT_1451 + - + - + NONE + + + + + STRUCT_1452 + - + - + NONE + + + + + STRUCT_1453 + - + - + NONE + + + + + STRUCT_1454 + - + - + NONE + + + + + STRUCT_1455 + - + - + NONE + + + + + STRUCT_1456 + - + - + NONE + + + + + STRUCT_1457 + - + - + NONE + + + + + STRUCT_1458 + - + - + NONE + + + + + STRUCT_1459 + - + - + NONE + + + + + STRUCT_1460 + - + - + NONE + + + + + STRUCT_1461 + - + - + NONE + + + + + STRUCT_1462 + - + - + NONE + + + + + STRUCT_1463 + - + - + NONE + + + + + STRUCT_1464 + - + - + NONE + + + + + STRUCT_1465 + - + - + NONE + + + + + STRUCT_1466 + - + - + NONE + + + + + STRUCT_1467 + - + - + NONE + + + + + STRUCT_1468 + - + - + NONE + + + + + STRUCT_1469 + - + - + NONE + + + + + STRUCT_1470 + - + - + NONE + + + + + STRUCT_1471 + - + - + NONE + + + + + STRUCT_1472 + - + - + NONE + + + + + STRUCT_1473 + - + - + NONE + + + + + STRUCT_1474 + - + - + NONE + + + + + STRUCT_1475 + - + - + NONE + + + + + STRUCT_1476 + - + - + NONE + + + + + STRUCT_1477 + - + - + NONE + + + + + STRUCT_1478 + - + - + NONE + + + + + STRUCT_1479 + - + - + NONE + + + + + STRUCT_1480 + - + - + NONE + + + + + STRUCT_1481 + - + - + NONE + + + + + STRUCT_1482 + - + - + NONE + + + + + STRUCT_1483 + - + - + NONE + + + + + STRUCT_1484 + - + - + NONE + + + + + STRUCT_1485 + - + - + NONE + + + + + STRUCT_1486 + - + - + NONE + + + + + STRUCT_1487 + - + - + NONE + + + + + STRUCT_1488 + - + - + NONE + + + + + STRUCT_1489 + - + - + NONE + + + + + STRUCT_1490 + - + - + NONE + + + + + STRUCT_1491 + - + - + NONE + + + + + STRUCT_1492 + - + - + NONE + + + + + STRUCT_1493 + - + - + NONE + + + + + STRUCT_1494 + - + - + NONE + + + + + STRUCT_1495 + - + - + NONE + + + + + STRUCT_1496 + - + - + NONE + + + + + STRUCT_1497 + - + - + NONE + + + + + STRUCT_1498 + - + - + NONE + + + + + STRUCT_1499 + - + - + NONE + + + + + STRUCT_1500 + - + - + NONE + + + + + STRUCT_1501 + - + - + NONE + + + + + STRUCT_1502 + - + - + NONE + + + + + STRUCT_1503 + - + - + NONE + + + + + STRUCT_1504 + - + - + NONE + + + + + STRUCT_1505 + - + - + NONE + + + + + STRUCT_1506 + - + - + NONE + + + + + STRUCT_1507 + - + - + NONE + + + + + STRUCT_1508 + - + - + NONE + + + + + STRUCT_1509 + - + - + NONE + + + + + STRUCT_1510 + - + - + NONE + + + + + STRUCT_1511 + - + - + NONE + + + + + STRUCT_1512 + - + - + NONE + + + + + STRUCT_1513 + - + - + NONE + + + + + STRUCT_1514 + - + - + NONE + + + + + STRUCT_1515 + - + - + NONE + + + + + STRUCT_1516 + - + - + NONE + + + + + STRUCT_1517 + - + - + NONE + + + + + STRUCT_1518 + - + - + NONE + + + + + STRUCT_1519 + - + - + NONE + + + + + STRUCT_1520 + - + - + NONE + + + + + STRUCT_1521 + - + - + NONE + + + + + STRUCT_1522 + - + - + NONE + + + + + STRUCT_1523 + - + - + NONE + + + + + STRUCT_1524 + - + - + NONE + + + + + STRUCT_1525 + - + - + NONE + + + + + STRUCT_1526 + - + - + NONE + + + + + STRUCT_1527 + - + - + NONE + + + + + STRUCT_1528 + - + - + NONE + + + + + STRUCT_1529 + - + - + NONE + + + + + STRUCT_1530 + - + - + NONE + + + + + STRUCT_1531 + - + - + NONE + + + + + STRUCT_1532 + - + - + NONE + + + + + STRUCT_1533 + - + - + NONE + + + + + STRUCT_1534 + - + - + NONE + + + + + STRUCT_1535 + - + - + NONE + + + + + STRUCT_1536 + - + - + NONE + + + + + STRUCT_1537 + - + - + NONE + + + + + STRUCT_1538 + - + - + NONE + + + + + STRUCT_1539 + - + - + NONE + + + + + STRUCT_1540 + - + - + NONE + + + + + STRUCT_1541 + - + - + NONE + + + + + STRUCT_1542 + - + - + NONE + + + + + STRUCT_1543 + - + - + NONE + + + + + STRUCT_1544 + - + - + NONE + + + + + STRUCT_1545 + - + - + NONE + + + + + STRUCT_1546 + - + - + NONE + + + + + STRUCT_1547 + - + - + NONE + + + + + STRUCT_1548 + - + - + NONE + + + + + STRUCT_1549 + - + - + NONE + + + + + STRUCT_1550 + - + - + NONE + + + + + STRUCT_1551 + - + - + NONE + + + + + STRUCT_1552 + - + - + NONE + + + + + STRUCT_1553 + - + - + NONE + + + + + STRUCT_1554 + - + - + NONE + + + + + STRUCT_1555 + - + - + NONE + + + + + STRUCT_1556 + - + - + NONE + + + + + STRUCT_1557 + - + - + NONE + + + + + STRUCT_1558 + - + - + NONE + + + + + STRUCT_1559 + - + - + NONE + + + + + STRUCT_1560 + - + - + NONE + + + + + STRUCT_1561 + - + - + NONE + + + + + STRUCT_1562 + - + - + NONE + + + + + STRUCT_1563 + - + - + NONE + + + + + STRUCT_1564 + - + - + NONE + + + + + STRUCT_1565 + - + - + NONE + + + + + STRUCT_1566 + - + - + NONE + + + + + STRUCT_1567 + - + - + NONE + + + + + STRUCT_1568 + - + - + NONE + + + + + STRUCT_1569 + - + - + NONE + + + + + STRUCT_1570 + - + - + NONE + + + + + STRUCT_1571 + - + - + NONE + + + + + STRUCT_1572 + - + - + NONE + + + + + STRUCT_1573 + - + - + NONE + + + + + STRUCT_1574 + - + - + NONE + + + + + STRUCT_1575 + - + - + NONE + + + + + STRUCT_1576 + - + - + NONE + + + + + STRUCT_1577 + - + - + NONE + + + + + STRUCT_1578 + - + - + NONE + + + + + STRUCT_1579 + - + - + NONE + + + + + STRUCT_1580 + - + - + NONE + + + + + STRUCT_1581 + - + - + NONE + + + + + STRUCT_1582 + - + - + NONE + + + + + STRUCT_1583 + - + - + NONE + + + + + STRUCT_1584 + - + - + NONE + + + + + STRUCT_1585 + - + - + NONE + + + + + STRUCT_1586 + - + - + NONE + + + + + STRUCT_1587 + - + - + NONE + + + + + STRUCT_1588 + - + - + NONE + + + + + STRUCT_1589 + - + - + NONE + + + + + STRUCT_1590 + - + - + NONE + + + + + STRUCT_1591 + - + - + NONE + + + + + STRUCT_1592 + - + - + NONE + + + + + STRUCT_1593 + - + - + NONE + + + + + STRUCT_1594 + - + - + NONE + + + + + STRUCT_1595 + - + - + NONE + + + + + STRUCT_1596 + - + - + NONE + + + + + STRUCT_1597 + - + - + NONE + + + + + STRUCT_1598 + - + - + NONE + + + + + STRUCT_1599 + - + - + NONE + + + + + STRUCT_1600 + - + - + NONE + + + + + STRUCT_1601 + - + - + NONE + + + + + STRUCT_1602 + - + - + NONE + + + + + STRUCT_1603 + - + - + NONE + + + + + STRUCT_1604 + - + - + NONE + + + + + STRUCT_1605 + - + - + NONE + + + + + STRUCT_1606 + - + - + NONE + + + + + STRUCT_1607 + - + - + NONE + + + + + STRUCT_1608 + - + - + NONE + + + + + STRUCT_1609 + - + - + NONE + + + + + STRUCT_1610 + - + - + NONE + + + + + STRUCT_1611 + - + - + NONE + + + + + STRUCT_1612 + - + - + NONE + + + + + STRUCT_1613 + - + - + NONE + + + + + STRUCT_1614 + - + - + NONE + + + + + STRUCT_1615 + - + - + NONE + + + + + STRUCT_1616 + - + - + NONE + + + + + STRUCT_1617 + - + - + NONE + + + + + STRUCT_1618 + - + - + NONE + + + + + STRUCT_1619 + - + - + NONE + + + + + STRUCT_1620 + - + - + NONE + + + + + STRUCT_1621 + - + - + NONE + + + + + STRUCT_1622 + - + - + NONE + + + + + STRUCT_1623 + - + - + NONE + + + + + STRUCT_1624 + - + - + NONE + + + + + STRUCT_1625 + - + - + NONE + + + + + STRUCT_1626 + - + - + NONE + + + + + STRUCT_1627 + - + - + NONE + + + + + STRUCT_1628 + - + - + NONE + + + + + STRUCT_1629 + - + - + NONE + + + + + STRUCT_1630 + - + - + NONE + + + + + STRUCT_1631 + - + - + NONE + + + + + STRUCT_1632 + - + - + NONE + + + + + STRUCT_1633 + - + - + NONE + + + + + STRUCT_1634 + - + - + NONE + + + + + STRUCT_1635 + - + - + NONE + + + + + STRUCT_1636 + - + - + NONE + + + + + STRUCT_1637 + - + - + NONE + + + + + STRUCT_1638 + - + - + NONE + + + + + STRUCT_1639 + - + - + NONE + + + + + STRUCT_1640 + - + - + NONE + + + + + STRUCT_1641 + - + - + NONE + + + + + STRUCT_1642 + - + - + NONE + + + + + STRUCT_1643 + - + - + NONE + + + + + STRUCT_1644 + - + - + NONE + + + + + STRUCT_1645 + - + - + NONE + + + + + STRUCT_1646 + - + - + NONE + + + + + STRUCT_1647 + - + - + NONE + + + + + STRUCT_1648 + - + - + NONE + + + + + STRUCT_1649 + - + - + NONE + + + + + STRUCT_1650 + - + - + NONE + + + + + STRUCT_1651 + - + - + NONE + + + + + STRUCT_1652 + - + - + NONE + + + + + STRUCT_1653 + - + - + NONE + + + + + STRUCT_1654 + - + - + NONE + + + + + STRUCT_1655 + - + - + NONE + + + + + A002_U + - + - + NONE + + + + + A002_R2 + - + - + NONE + + + + + A050_U + - + - + NONE + + + + + A050_R + - + - + NONE + + + + + A019_SV + - + - + NONE + + + + + A019_S + - + - + NONE + + + + + A010_U + - + - + NONE + + + + + A026_S + - + - + NONE + + + + + A030_S + - + - + NONE + + + + + A026_L + - + - + NONE + + + + + A030_L + - + - + NONE + + + + + FGN2_TYP + - + - + NONE + + + + + FGN2_TV + - + - + NONE + + + + + FGN2_RI + - + - + NONE + + + + + FGN2_OFFSET + - + - + NONE + + + + + FGN2_NAMP + - + - + NONE + + + + + FGN2_FREQ + - + - + NONE + + + + + A001_S1 + - + - + NONE + + + + + A009_S1 + - + - + NONE + + + + + + + CH LEE + + + 2024.07/31 + + + - + + + XXSAXXXX + + + - + + + - + + + DEFAULT + + + DEFAULT + + + 0 + + + 0 + + + NEIN + + + 0 + + + NEIN + + + 1 + + + DEFAULT + + + - + + + - + + + - + + + CGVCMS1301 + + + - + + + - + + + + + + 2 + E_WAIT + MODULE + 0 + + + + + + + + + WZ + + + 0 + + + 0 + + + 0 + + + &MEWE + + + + + + 3 + GETDATAAF + MACRO + 0 + TTNr. lesen + + + + + + + ALIASFILE + + + + + + +

+ >GETDATA/STD_1.CSV +

+ + + + + NONE + +
+
+ + + 10 + GETDATASTR + MACRO + 0 + WSW-Nummer + + + + + + + + + + + + + +

+ FSW_TT + S + 10 +

+ + + + + STR + &FSW_TT +
+
+ + + 20 + GETDATASTR + MACRO + 0 + WSW-Nummer + + + + + + + + + + + + + +

+ TSW_TT + S + 10 +

+ + + + + STR + &TSW_TT +
+
+ + + 25 + GETDATASTR + MACRO + 0 + WSW-Nummer + + + + + + + + + + + + + +

+ CRUISE + S + 3 +

+ + + + + STR + &Cruise +
+
+ + + 40 + R_DATATABLE + MODULE + 0 + &HW_TTNR + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + HW_TTNR + + + STRING + + + 2 + + + 2 + + + &HW_TTNR + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 44 + R_DATATABLE + MODULE + 0 + &HW_VER + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + HW_VER + + + STRING + + + 2 + + + 2 + + + &HW_VER + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 45 + R_DATATABLE + MODULE + 0 + &CUSTOMERPNO_00 + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + CUSTOMERPNO + + + STRING + + + 2 + + + 2 + + + &CUSTOMERPNO_00 + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 46 + R_DATATABLE + MODULE + 0 + &CMS_VER + + + + + + + WZ + 0 + - + NONE + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + CMS_VER + + + STRING + + + 2 + + + 2 + + + &CMS_VER + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 47 + R_DATATABLE + MODULE + 0 + &PCM_VER + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + PCM_VER + + + STRING + + + 2 + + + 2 + + + &PCM_VER + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 49 + R_DATATABLE + MODULE + 0 + &TTNR_HW + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + HW_TTNR + + + STRING + + + 2 + + + 2 + + + &TTNR_HW + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 50 + R_DATATABLE + MODULE + 0 + V2G ROOT Load = &ROOTCERT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/V2GRootCert.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &ROOTCERT + + + r + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 51 + R_DATATABLE + MODULE + 0 + &HFID + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + HFID + + + STRING + + + 2 + + + 2 + + + &HFID + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 53 + R_DATATABLE + MODULE + 0 + &CMS_CRC + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + CMS_CHECKSUM + + + STRING + + + 2 + + + 2 + + + &CMS_CRC + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 54 + R_DATATABLE + MODULE + 0 + &PCM_CRC + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + PCM_CHECKSUM + + + STRING + + + 2 + + + 2 + + + &PCM_CRC + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 55 + R_DATATABLE + MODULE + 0 + &CMS_CALID + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + CMS_CAL_ID + + + STRING + + + 2 + + + 2 + + + &CMS_CALID + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 56 + R_DATATABLE + MODULE + 0 + &PCM_CALID + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + PCM_CAL_ID + + + STRING + + + 2 + + + 2 + + + &PCM_CALID + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 57 + R_DATATABLE + MODULE + 0 + &BrandCode + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + BRAND_CODE + + + STRING + + + 2 + + + 2 + + + &BrandCode + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 58 + R_DATATABLE + MODULE + 0 + &MarketCode + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + MARKET_CODE + + + STRING + + + 2 + + + 2 + + + &MarketCode + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 59 + R_DATATABLE + MODULE + 0 + &VehicleCode + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + VEHICLE_CODE + + + STRING + + + 2 + + + 2 + + + &VehicleCode + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 60 + E_STUELIDATA + MODULE + 0 + FSW_TT an System �bergeben (Bildet Pfad: >flash/TTNR/FSW_TT) + + + + + + + WZ + - + - + NONE + + + + + + + CONTAINER + + + SET + + + FSW + + + &FSW_TT + + + - + + + - + + + - + + + - + + + - + + + - + + + 0 + + + + + + 61 + E_STUELIDATA + MODULE + 0 + TSW_TT an System �bergeben (Bildet Pfad: >flash/tsw/TSW_TT) + + + + + + + + CONTAINER + + + SET + + + TSW + + + &TSW_TT + + + - + + + - + + + - + + + - + + + - + + + - + + + 0 + + + + + + 63 + R_DATATABLE + MODULE + 0 + CharIN ROOT Load = &CRIROOTCERT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/CharINV2GRoot.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &CRIROOTCERT + + + r + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 69 + R_DATATABLE + MODULE + 0 + SubCA Part-20 OEM Load = &SUBCAOEM_P20 + + + + + + + + GET + + + PEM + + + ./../Cert/SubCA/SubCA_P20OEM.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &SUBCAOEM_P20 + + + r + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 70 + R_DATATABLE + MODULE + 0 + SubCA Part-20 Vehicle Load = &SUBCAVHC_P20 + + + + + + + WZ + 0 + - + NONE + + + + + + + GET + + + PEM + + + ./../Cert/SubCA/SubCA_P20VHC.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &SUBCAVHC_P20 + + + r + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 71 + R_DATATABLE + MODULE + 0 + SubCA Part-02 OEM Load = &SUBCAOEM_P02 + + + + + + + + GET + + + PEM + + + ./../Cert/SubCA/SubCA_P02OEM.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &SUBCAOEM_P02 + + + r + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 72 + R_DATATABLE + MODULE + 0 + Part-02 E-Pit Root Load = &P02_EPIT_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-2/1. E-PIT/V2GRootEpit.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P02_EPIT_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 73 + R_DATATABLE + MODULE + 0 + Part-02 Hubject EU Root Load = &P02_HUBEU_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-2/2. Hubject (EU)/Hubject_V2GRoot_EU.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P02_HUBEU_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 74 + R_DATATABLE + MODULE + 0 + Part-02 Hubject US Root Load = &P02_HUBUS_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-2\3. Hubject (US)/US_V2G_RootCA_G2.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P02_HUBUS_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 75 + R_DATATABLE + MODULE + 0 + Part-02 Tesla Root Load = &P02_TESLA_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-2/4. Tesla/V2GRootG1.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P02_TESLA_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 76 + R_DATATABLE + MODULE + 0 + Part-02 Entrust Root Load = &P02_ENTRUST_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-2/5. Entrust/Entrust_V2G_EV_Charging_Root_CA.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P02_ENTRUST_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 77 + R_DATATABLE + MODULE + 0 + Part-20 E-PIT Root Load = &P20_EPIT_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-20/1. E-PIT/Part20EPitRoot.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P20_EPIT_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 78 + R_DATATABLE + MODULE + 0 + Part-20 CharIN Root Load = &P20_CHARIN_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-20/2. CharIN/CharIN_V2G_Root_CA_G1V2_433638ca6313741e81e57cfc0de55a99362d3c15.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P20_CHARIN_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 80 + START + MACRO + 0 + + + + + + + + WZ + 0 + - + NONE + + + + + + + +

+ + + + + NONE + + + + + + 100 + E_MESSAGES + MODULE + 0 + + + + + + + + + NO_MESSAGES + + + + + + FGN;FGN_REF;FGN1;FGN1_REF;FGN2;FGN2_REF + + + CAN1;CAN1_REF;ASC1;ASC1_REF + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 101 + E_TRIGGER_INIT + MODULE + 0 + E_TRIGGER_INIT: Festlegung der Triggerkanaele + + + + + + + + TRIG_01 + + + DVM_TRG + + + DEL + + + 0 + + + 10% + + + DIR + + + 8.E-6 + + + COUN_A + + + SPI + + + 4.E-6 + + + 10% + + + 1.E-6 + + + COUN_B + + + 1 + + + 4.E-6 + + + 10% + + + DIR + + + 0 + + + EXT_CLOCK_2 + + + 0 + + + 0 + + + 5% + + + 0 + + + + + + 102 + E_TRIGGER_INIT + MODULE + 0 + E_TRIGGER_INIT: Festlegung der Triggerkanaele + + + + + + + + TRIG_01 + + + DVM_TRG + + + SPI + + + 0.000001 + + + 10% + + + DIR + + + 0 + + + COUN_A + + + SPI + + + 0.000001 + + + 5% + + + 0 + + + COUN_B + + + 1 + + + 0.000001 + + + 5% + + + DIR + + + 0 + + + DVM_TRG_2 + + + 1 + + + 0.000001 + + + 10% + + + 0 + + + + + + 103 + E_ARRAY_INI + MODULE + 0 + E_ARRAY_INI &SEED 300 + + + + + + + + &SEED + + + STRING + + + 300 + + + TRUE + + + + + + 104 + E_ARRAY_INI + MODULE + 0 + E_ARRAY_INI &KEY 300 + + + + + + + + &KEY + + + STRING + + + 300 + + + TRUE + + + + + + 105 + COM_ANSTEUER + MACRO + 0 + + + + + + + + + +

+ B77_S + B77 + ANSTEUER_PAR + B60_S + B60 + ANSTEUER_PAR +

+ + + + + NONE + +
+
+ + + 111 + COM_KONSTDEF + MACRO + 0 + + + + + + + + + +

+ &G_BAUD_ASC1 + &P_STEUER + - + 250000 + SKM_01 + 0 + 1500000 + SKM_11 + 1 +

+ + + + + NONE + +
+
+ + + 119 + COM_INIT + MACRO + 0 + + + + + + + + + +

+ KW2000 + 1 + 70000 + 20 + 5000 + 0 + 0 + 57600 + 6060 + 01 +

+ + + + + NONE + +
+
+ + + 180 + STRCAT + MACRO + 0 + + + + + + + + + + + + + + +

+ CPSECURITYVCMSPCM.DLL + + + + + + + + + +

+ + + + + STR + &DLL_FILE_PCM +
+
+ + + 181 + STRCAT + MACRO + 0 + + + + + + + + + + + + + + +

+ CPSECURITYVCMSCMS.DLL + + + + + + + + + +

+ + + + + STR + &DLL_FILE_CMS +
+
+ + + 200 + KUNDENDAT1 + MACRO + 0 + Tester ID (ASCII) + + + + + + + + + + + + + +

+ WK + 2 + - + - + - + - +

+ + + + + STR + &TESTERID_ORG +
+
+ + + 210 + KUNDENDAT1 + MACRO + 0 + Tester CHANNEL (ASCII) + + + + + + + + + + + + + +

+ WK + 10 + - + - + - + - +

+ + + + + STR + &TESTERCH +
+
+ + + 220 + STRCAT + MACRO + 0 + Unit Code + + + + + + + Unit Code + + + + + + +

+ C001 + + + + + + + + + +

+ + + + + STR + &UnitCode +
+
+ + + 230 + STRCAT + MACRO + 0 + + + + + + + + Vehicle Code + + + + + + +

+ MV EV + + + + + + + + + +

+ + + + + STR + &VehicleCode +
+
+ + + 240 + STRCAT + MACRO + 0 + + + + + + + + Brand Code + + + + + + +

+ KMC + + + + + + + + + +

+ + + + + STR + &BrandCode +
+
+ + + 250 + STRCAT + MACRO + 0 + + + + + + + + Market Code(Local code) + + + + + + +

+ EU + + + + + + + + + +

+ + + + + STR + &MarketCode +
+
+ + + 261 + STRCAT + MACRO + 0 + Wenn nicht mit autom. Selektion CFI oder SKM gearbeitet werden soll + + + + + + + Tier Code + + + + + + +

+ P002 + + + + + + + + + +

+ + + + + STR + &TierCode +
+
+ + + 269 + K2000START + MACRO + 0 + Wenn nicht mit autom. Selektion CFI oder SKM gearbeitet werden soll + + + + + + + + +

+ + + + + NONE + + + + + + 282 + P_INIT + MODULE + 0 + + + + + + + + + WRITE + + + FLOW_CONTROL + + + ON + + + &MEWE + + + + + + 331 + F_ANSTEUER + MODULE + 0 + + + + + + + + + U_KON_UB4 + + + A038_SV + + + - + + + SA + + + A038 + + + A035 + + + ANSTEUER_PAR + + + 1 + + + + + + 332 + L_KAM_KONFIG + MODULE + 0 + + + + + + + + + U_KON_KONFIG4 + + + UBATT_ULAST + + + - + + + - + + + + + + 333 + F_ANSTEUER + MODULE + 0 + UB + + + + + + + + KON_U_2 + + + UB + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 334 + F_ANSTEUER + MODULE + 0 + UB Strombegrenzung + + + + + + + + KON_I_2 + + + UB_IMAX + + + - + + + A + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 335 + F_ANSTEUER + MODULE + 0 + UB4 + + + + + + + + U_KON_UB4 + + + A035_SV + + + - + + + SA + + + A035 + + + A038 + + + ANSTEUER_PAR + + + 1 + + + + + + 336 + F_ANSTEUER + MODULE + 0 + UA4 + + + + + + + + U_KON_UA4 + + + A033_SV + + + - + + + SA + + + A033 + + + A037 + + + ANSTEUER_PAR + + + 1 + + + + + + 337 + F_ANSTEUER + MODULE + 0 + UC4 + + + + + + + + U_KON_UC4 + + + A034_SV + + + - + + + DEFAULT + + + A034 + + + A038 + + + ANSTEUER_PAR + + + 1 + + + + + + 338 + F_ANSTEUER + MODULE + 0 + + + + + + + + + U_KON_UD4 + + + B05_SV + + + - + + + DEFAULT + + + B05 + + + B01 + + + ANSTEUER_PAR + + + 1 + + + + + + 339 + L_KAM_ZUSATZ + MODULE + 0 + SENSE_UB4 + + + + + + + + U_KON_KONFIG4 + + + INTERN + + + KON_A + + + - + + + - + + + - + + + - + + + - + + + KOMPLETT + + + + + + 340 + F_6069 + MODULE + 0 + FGN_16 + + + + + + + + FU3_ANSCHALT + + + 1 + + + - + + + - + + + - + + + <W/A001_S + + + <W/A009_S + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + + + + 341 + F_6069 + MODULE + 0 + FGN_17 + + + + + + + + FU3_ANSCHALT + + + 2 + + + - + + + - + + + - + + + <W/A001_S + + + <W/A009_S + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + + + + 342 + F_6069 + MODULE + 0 + FGN_18 + + + + + + + + FU3_ANSCHALT + + + 6 + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + <W/A001_S1 + + + <W/A009_S1 + + + - + + + - + + + - + + + - + + + - + + + + + + 344 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Signalpunkt + + + + + + + + FGN_16 + + + FGN + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 345 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Signalpunkt Referenz + + + + + + + + FGN_REF_16 + + + FGN_REF + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 346 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Amplitude UA1 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP1_16 + + + FGN_AMP1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 347 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Amplitude UA2 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP2_16 + + + FGN_AMP2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 348 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Amplitude UA3 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP3_16 + + + FGN_AMP3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 349 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Amplitude UA4 Std-PAV Signal 8 + + + + + + + + FGN_AMP4_16 + + + FGN_AMP4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 350 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Frequenz Std-PAV + + + + + + + + FGN_FREQ_16 + + + FGN_FREQ + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 351 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Nutzamplitude Std-PAV + + + + + + + + FGN_NAMP_16 + + + FGN_NAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 352 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Offsetspannung Std-PAV + + + + + + + + FGN_OFFSET_16 + + + FGN_OFFSET + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 353 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Innenwiderstand in Ohm Std-PAV + + + + + + + + FGN_RI_16 + + + FGN_RI + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 354 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Channel 1 Dauer des ersten neg. Puls t0 -> DZG-Signal 4 St + + + + + + + + FGN_T0_16 + + + FGN_T0 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 355 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Dauer der Rampe t1 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T1_16 + + + FGN_T1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 356 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Dauer des oberen Plateaus t2 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T2_16 + + + FGN_T2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 357 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Dauer des negativen Pulses t3 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T3_16 + + + FGN_T3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 358 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Verz�gerungszeit t4 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T4_16 + + + FGN_T4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 359 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Dauer des unteren Plateaus (fallende Rampe) t5 -> DZG + + + + + + + + FGN_T5_16 + + + FGN_T5 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 360 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Startverz�gerungszeit f�r n�chste Periode t6 -> DZG-Sig + + + + + + + + FGN_T6_16 + + + FGN_T6 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 361 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Tastverh�ltnis Std-PAV + + + + + + + + FGN_TV_16 + + + FGN_TV + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 362 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 St�ramplitude Usa Std-PAV + + + + + + + + FGN_SAMP_16 + + + FGN_SAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 363 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Funktionsgenerator-Signal Typ Std-PAV + + + + + + + + FGN_TYP_16 + + + FGN_TYP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 364 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Signalpunkt + + + + + + + + FGN_17 + + + FGN1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 365 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Signalpunkt Referenz + + + + + + + + FGN_REF_17 + + + FGN1_REF + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 366 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Amplitude UA1 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP1_17 + + + FGN1_AMP1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 367 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Amplitude UA2 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP2_17 + + + FGN1_AMP2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 368 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Amplitude UA3 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP3_17 + + + FGN1_AMP3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 369 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Amplitude UA4 Std-PAV Signal 8 + + + + + + + + FGN_AMP4_17 + + + FGN1_AMP4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 370 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Frequenz Std-PAV + + + + + + + + FGN_FREQ_17 + + + FGN1_FREQ + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 371 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Nutzamplitude Std-PAV + + + + + + + + FGN_NAMP_17 + + + FGN1_NAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 372 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Offsetspannung Std-PAV + + + + + + + + FGN_OFFSET_17 + + + FGN1_OFFSET + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 373 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Innenwiderstand in Ohm Std-PAV + + + + + + + + FGN_RI_17 + + + FGN1_RI + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 374 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Channel 2 Dauer des ersten neg. Puls t0 -> DZG-Signal 4 St + + + + + + + + FGN_T0_17 + + + FGN1_T0 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 375 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Dauer der Rampe t1 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T1_17 + + + FGN1_T1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 376 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Dauer des oberen Plateaus t2 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T2_17 + + + FGN1_T2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 377 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Dauer des negativen Pulses t3 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T3_17 + + + FGN1_T3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 378 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Verz�gerungszeit t4 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T4_17 + + + FGN1_T4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 379 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Dauer des unteren Plateaus (fallende Rampe) t5 -> DZG + + + + + + + + FGN_T5_17 + + + FGN1_T5 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 380 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Startverz�gerungszeit f�r n�chste Periode t6 -> DZG-Sig + + + + + + + + FGN_T6_17 + + + FGN1_T6 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 381 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Tastverh�ltnis Std-PAV + + + + + + + + FGN_TV_17 + + + FGN1_TV + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 382 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 St�ramplitude Usa Std-PAV + + + + + + + + FGN_SAMP_17 + + + FGN1_SAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 383 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Funktionsgenerator-Signal Typ Std-PAV + + + + + + + + FGN_TYP_17 + + + FGN1_TYP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 384 + E_AWG + MODULE + 0 + CHANNEL 1 -> Kurve0 = Gleichspg. Signal -> Standard-PAV + + + + + + + + STD_GENERATOR_16 + + + KURVE0 + + + 0 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 385 + E_AWG + MODULE + 0 + CHANNEL 1 -> Kurve1 = Rechteck-Takt -> Standard-PAV + + + + + + + + STD_GENERATOR_16 + + + KURVE1 + + + 1 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 386 + E_AWG + MODULE + 0 + CHANNEL 2 -> Kurve0 = Gleichspg. Signal -> Standard-PAV + + + + + + + + STD_GENERATOR_17 + + + KURVE0 + + + 0 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 387 + E_AWG + MODULE + 0 + CHANNEL 2 -> Kurve1 = Rechteck-Takt -> Standard-PAV + + + + + + + + STD_GENERATOR_17 + + + KURVE1 + + + 1 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 388 + E_AWG + MODULE + 0 + CHANNEL 1 -> Kurve6 + + + + + + + + STD_GENERATOR_16 + + + KURVE6 + + + 1 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 389 + E_AWG + MODULE + 0 + CHANNEL 1 -> Kurve6 + + + + + + + + STD_GENERATOR_17 + + + KURVE6 + + + 2 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 392 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Signalpunkt + + + + + + + + FGN_CP + + + FGNCP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 393 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Signalpunkt Referenz + + + + + + + + FGN_REF_CP + + + FGNCP_REF + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 394 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Amplitude UA1 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP1_CP + + + FGNCP_AMP1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 395 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Amplitude UA2 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP2_CP + + + FGNCP_AMP2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 396 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Amplitude UA3 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP3_CP + + + FGNCP_AMP3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 397 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Amplitude UA4 Std-PAV Signal 8 + + + + + + + + FGN_AMP4_CP + + + FGNCP_AMP4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 398 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Frequenz Std-PAV + + + + + + + + FGN_FREQ_CP + + + FGNCP_FREQ + + + - + + + HZ + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 399 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Nutzamplitude Std-PAV + + + + + + + + FGN_NAMP_CP + + + FGNCP_NAMP + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 400 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Offsetspannung Std-PAV + + + + + + + + FGN_OFFSET_CP + + + FGNCP_OFFSET + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 401 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Innenwiderstand in Ohm Std-PAV + + + + + + + + FGN_RI_CP + + + FGNCP_RI + + + - + + + OHM + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 402 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Channel 2 Dauer des ersten neg. Puls t0 -> DZG-Signal 4 St + + + + + + + + FGN_T0_CP + + + FGNCP_T0 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 403 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Dauer der Rampe t1 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T1_CP + + + FGNCP_T1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 404 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Dauer des oberen Plateaus t2 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T2_CP + + + FGNCP_T2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 405 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Dauer des negativen Pulses t3 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T3_CP + + + FGNCP_T3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 406 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Verz�gerungszeit t4 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T4_CP + + + FGNCP_T4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 407 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Dauer des unteren Plateaus (fallende Rampe) t5 -> DZG + + + + + + + + FGN_T5_CP + + + FGNCP_T5 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 408 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Startverz�gerungszeit f�r n�chste Periode t6 -> DZG-Sig + + + + + + + + FGN_T6_CP + + + FGNCP_T6 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 409 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Tastverh�ltnis Std-PAV + + + + + + + + FGN_TV_CP + + + FGNCP_TV + + + - + + + A + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 410 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP St�ramplitude Usa Std-PAV + + + + + + + + FGN_SAMP_CP + + + FGNCP_SAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 411 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Funktionsgenerator-Signal Typ Std-PAV + + + + + + + + FGN_TYP_CP + + + FGNCP_TYP + + + - + + + STR + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 412 + F_ANSTEUER + MODULE + 0 + PLC + + + + + + + + + + + PLC + + + - + + + STR + + + + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 413 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Signalpunkt + + + + + + + + FGN_18 + + + FGN2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 414 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Signalpunkt Referenz + + + + + + + + FGN_REF_18 + + + FGN2_REF + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 415 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Amplitude UA1 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP1_18 + + + FGN2_AMP1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 416 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Amplitude UA2 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP2_18 + + + FGN2_AMP2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 417 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Amplitude UA3 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP3_18 + + + FGN2_AMP3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 418 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Amplitude UA4 Std-PAV Signal 8 + + + + + + + + FGN_AMP4_18 + + + FGN2_AMP4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 419 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Frequenz Std-PAV + + + + + + + + FGN_FREQ_18 + + + FGN2_FREQ + + + - + + + HZ + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 420 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Nutzamplitude Std-PAV + + + + + + + + FGN_NAMP_18 + + + FGN2_NAMP + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 421 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Offsetspannung Std-PAV + + + + + + + + FGN_OFFSET_18 + + + FGN2_OFFSET + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 422 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Innenwiderstand in Ohm Std-PAV + + + + + + + + FGN_RI_18 + + + FGN2_RI + + + - + + + OHM + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 423 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Channel 2 Dauer des ersten neg. Puls t0 -> DZG-Signal 4 St + + + + + + + + FGN_T0_18 + + + FGN2_T0 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 424 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Dauer der Rampe t1 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T1_18 + + + FGN2_T1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 425 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Dauer des oberen Plateaus t2 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T2_18 + + + FGN2_T2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 426 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Dauer des negativen Pulses t3 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T3_18 + + + FGN2_T3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 427 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Verz�gerungszeit t4 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T4_18 + + + FGN2_T4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 428 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Dauer des unteren Plateaus (fallende Rampe) t5 -> DZG + + + + + + + + FGN_T5_18 + + + FGN2_T5 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 429 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Startverz�gerungszeit f�r n�chste Periode t6 -> DZG-Sig + + + + + + + + FGN_T6_18 + + + FGN2_T6 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 430 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Tastverh�ltnis Std-PAV + + + + + + + + FGN_TV_18 + + + FGN2_TV + + + - + + + A + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 431 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 St�ramplitude Usa Std-PAV + + + + + + + + FGN_SAMP_18 + + + FGN2_SAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 432 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Funktionsgenerator-Signal Typ Std-PAV + + + + + + + + FGN_TYP_18 + + + FGN2_TYP + + + - + + + STR + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 434 + F_SK_ZUSATZ + MODULE + 0 + + + + + + + + + SK_RELAIS + + + ON + + + ON + + + ON + + + ON + + + ON + + + - + + + - + + + - + + + - + + + + + + 435 + F_SK_ZUSATZ + MODULE + 0 + + + + + + + + + SK_RELAIS2 + + + ON + + + ON + + + ON + + + ON + + + ON + + + - + + + - + + + - + + + - + + + + + + 436 + F_IGEBR_ZUSATZ + MODULE + 0 + + + + + + + + + I_GEBER_SK1 + + + ANSTEUER_PAR + + + INT + + + -- + + + ON + + + - + + + + + + 437 + F_ANSTEUER + MODULE + 0 + IQ_UMAX + + + + + + + + I_QUMAX_SK1 + + + IQ_UMAX + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 438 + F_UGEBR_ZUSATZ + MODULE + 0 + + + + + + + + + U_GEBER_SK1 + + + INT + + + - + + + 10 + + + - + + + - + + + - + + + - + + + + + + 442 + F_ANSTEUER + MODULE + 0 + A026_L + + + + + + + + MS_LAST_610 + + + A026_L + + + - + + + DEFAULT + + + A026 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 443 + F_ANSTEUER + MODULE + 0 + A030_L + + + + + + + + MS_LAST_611 + + + A030_L + + + - + + + DEFAULT + + + A030 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 532 + F_ANSTEUER + MODULE + 0 + + + + + + + + + U_GEBER_SK1 + + + B05_U + + + - + + + DEFAULT + + + B05 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 533 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B16_R + + + - + + + DEFAULT + + + B16 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 534 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B17_R + + + - + + + DEFAULT + + + B17 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 535 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B18_R + + + - + + + DEFAULT + + + B18 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 536 + F_ANSTEUER + MODULE + 0 + + + + + + + + + KS_LAST_600 + + + B25_L + + + - + + + DEFAULT + + + B25 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 537 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B38_R + + + - + + + DEFAULT + + + B38 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 538 + F_ANSTEUER + MODULE + 0 + + + + + + + + + KS_LAST_601 + + + B47_L + + + - + + + DEFAULT + + + B47 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 539 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B50_R + + + - + + + DEFAULT + + + B50 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 540 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B60_R + + + - + + + DEFAULT + + + B60 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 541 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B61_R + + + - + + + DEFAULT + + + B61 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 542 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B62_R + + + - + + + DEFAULT + + + B62 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 543 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B63_R + + + - + + + DEFAULT + + + B63 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 544 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B64_R + + + - + + + DEFAULT + + + B64 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 545 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B65_R + + + - + + + DEFAULT + + + B65 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 546 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B66_R + + + - + + + DEFAULT + + + B66 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 547 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_320 + + + B74_L + + + - + + + DEFAULT + + + B74 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 548 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_822 + + + B75_L + + + - + + + DEFAULT + + + B75 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 549 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_222 + + + B76_L + + + - + + + DEFAULT + + + B76 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 550 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_872 + + + B77_L + + + - + + + DEFAULT + + + B77 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 551 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_322 + + + B78_L + + + - + + + DEFAULT + + + B78 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 552 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_870 + + + B79_L + + + - + + + DEFAULT + + + B79 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 553 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_220 + + + B80_L + + + - + + + DEFAULT + + + B80 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 554 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_852 + + + B81_L + + + - + + + DEFAULT + + + B81 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 555 + F_ANSTEUER + MODULE + 0 + A007 : CAN-REF_SWITCH + + + + + + + + CAN_REF_SWITCH + + + A007_S + + + - + + + SA + + + A007 + + + - + + + UNIT_PARALLEL + + + 1 + + + + + + 556 + F_ANSTEUER + MODULE + 0 + A008 : CAN_SWTICH + + + + + + + + CAN_SWITCH + + + A008_S + + + - + + + SA + + + A008 + + + - + + + UNIT_PARALLEL + + + 1 + + + + + + 557 + F_ANSTEUER + MODULE + 0 + + + + + + + + + SCHALTER + + + B84_S + + + - + + + DEFAULT + + + B84 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 558 + F_ANSTEUER + MODULE + 0 + + + + + + + + + SCHALTER + + + B85_S + + + - + + + DEFAULT + + + B85 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 560 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B87_R + + + - + + + DEFAULT + + + B87 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 561 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B88_R + + + - + + + DEFAULT + + + B88 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 562 + F_ANSTEUER + MODULE + 0 + + + + + + + + + U_GEBER_SK1 + + + B72_U + + + - + + + DEFAULT + + + B72 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 563 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK1 + + + B71_R + + + - + + + DEFAULT + + + B71 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 564 + F_ANSTEUER + MODULE + 0 + A017_R + + + + + + + + R_DEK_SK2 + + + A017_R + + + - + + + DEFAULT + + + A017 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 565 + F_ANSTEUER + MODULE + 0 + A020_R + + + + + + + + R_DEK_SK2 + + + A020_R + + + - + + + OHM + + + A020 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 566 + F_ANSTEUER + MODULE + 0 + A024_R + + + + + + + + R_DEK_SK2 + + + A024_R + + + - + + + OHM + + + A024 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 567 + F_ANSTEUER + MODULE + 0 + A024_U + + + + + + + + U_GEBER_SK1 + + + A024_U + + + - + + + DEFAULT + + + A024 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 568 + F_ANSTEUER + MODULE + 0 + A027_R + + + + + + + + R_DEK_SK3 + + + A027_R + + + - + + + DEFAULT + + + A027 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 569 + F_ANSTEUER + MODULE + 0 + A035_R + + + + + + + + R_DEK_SK2 + + + A035_R + + + - + + + DEFAULT + + + A035 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 570 + F_ANSTEUER + MODULE + 0 + A038_R + + + + + + + + R_DEK_SK3 + + + A038_R + + + - + + + DEFAULT + + + A038 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 571 + F_ANSTEUER + MODULE + 0 + A015_S + + + + + + + + SCHALTER + + + A015_S + + + - + + + SA + + + A015 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 572 + F_ANSTEUER + MODULE + 0 + A013_R + + + + + + + + R_DEK_SK3 + + + A013_R + + + - + + + DEFAULT + + + A013 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 573 + F_ANSTEUER + MODULE + 0 + A012_R + + + + + + + + R_DEK_SK2 + + + A012_R + + + - + + + DEFAULT + + + A012 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 574 + F_ANSTEUER + MODULE + 0 + A011_R + + + + + + + + R_DEK_SK1 + + + A011_R + + + - + + + OHM + + + A011 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 575 + F_ANSTEUER + MODULE + 0 + A009_S + + + + + + + + SCHALTER + + + A009_S + + + - + + + SA + + + A009 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 578 + F_ANSTEUER + MODULE + 0 + A001_S + + + + + + + + SCHALTER + + + A001_S + + + - + + + SA + + + A001 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 579 + F_ANSTEUER + MODULE + 0 + A035_I + + + + + + + + I_GEBER_SK1 + + + A035_I + + + - + + + DEFAULT + + + A035 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 580 + F_ANSTEUER + MODULE + 0 + A038_I + + + + + + + + I_GEBER_SK1 + + + A038_I + + + - + + + DEFAULT + + + A038 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 581 + F_ANSTEUER + MODULE + 0 + A012_U + + + + + + + + U_GEBER_SK1 + + + A012_U + + + - + + + DEFAULT + + + A012 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 584 + F_ANSTEUER + MODULE + 0 + A007_S1 + + + + + + + + SCHALTER + + + A007_S1 + + + - + + + SA + + + A007 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 585 + F_ANSTEUER + MODULE + 0 + A002_S + + + + + + + + SCHALTER + + + A002_S + + + - + + + DEFAULT + + + A002 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 586 + F_ANSTEUER + MODULE + 0 + A011_S + + + + + + + + SCHALTER + + + A011_S + + + - + + + SA + + + A011 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 587 + F_ANSTEUER + MODULE + 0 + A025_S + + + + + + + + SCHALTER + + + A025_S + + + - + + + DEFAULT + + + A025 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 588 + F_ANSTEUER + MODULE + 0 + A019_R + + + + + + + + R_DEK_SK3 + + + A019_R + + + - + + + OHM + + + A019 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 591 + F_ANSTEUER + MODULE + 0 + A016_S + + + + + + + + SCHALTER + + + A016_S + + + - + + + SA + + + A016 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 594 + F_ANSTEUER + MODULE + 0 + A019_U + + + + + + + + U_GEBER_SK1 + + + A019_U + + + - + + + V + + + A019 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 597 + F_ANSTEUER + MODULE + 0 + A019_SV + + + + + + + + U_KON_UB4 + + + A019_SV + + + - + + + SA + + + A019 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 598 + F_ANSTEUER + MODULE + 0 + A032_S + + + + + + + + SCHALTER + + + A032_S + + + - + + + DEFAULT + + + A032 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 599 + F_ANSTEUER + MODULE + 0 + A032_R + + + + + + + + R_DEK_SK3 + + + A032_R + + + - + + + OHM + + + A032 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 600 + F_ANSTEUER + MODULE + 0 + A032_U + + + + + + + + U_GEBER_SK3 + + + A032_U + + + - + + + V + + + A032 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 601 + F_ANSTEUER + MODULE + 0 + A032_R2 + + + + + + + + R_DEK_SK2 + + + A032_R2 + + + - + + + OHM + + + A032 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 602 + F_ANSTEUER + MODULE + 0 + A002_U + + + + + + + + R_GEBER_SK2 + + + A002_U + + + - + + + V + + + A002 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 603 + F_ANSTEUER + MODULE + 0 + A002_R2 + + + + + + + + R_DEK_SK2 + + + A002_R2 + + + - + + + OHM + + + A002 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 604 + F_ANSTEUER + MODULE + 0 + A050_R + + + + + + + + R_DEK_SK2 + + + A050_R + + + - + + + OHM + + + A050 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 605 + F_ANSTEUER + MODULE + 0 + A050_U + + + + + + + + U_GEBER_SK3 + + + A050_U + + + - + + + V + + + A050 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 607 + F_ANSTEUER + MODULE + 0 + A019_S + + + + + + + + SCHALTER + + + A019_S + + + - + + + SA + + + A019 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 608 + F_ANSTEUER + MODULE + 0 + A010_U + + + + + + + + U_GEBER_SK2 + + + A010_U + + + - + + + V + + + A010 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 609 + F_ANSTEUER + MODULE + 0 + A026_S + + + + + + + + SCHALTER + + + A026_S + + + - + + + DEFAULT + + + A026 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 610 + F_ANSTEUER + MODULE + 0 + A030_S + + + + + + + + SCHALTER + + + A030_S + + + - + + + SA + + + A030 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 632 + F_ANSTEUER + MODULE + 0 + A013_S + + + + + + + + SCHALTER + + + A013_S + + + - + + + SA + + + A013 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 633 + F_ANSTEUER + MODULE + 0 + A017_S + + + + + + + + SCHALTER + + + A017_S + + + - + + + SA + + + A017 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 634 + F_ANSTEUER + MODULE + 0 + A027_S + + + + + + + + SCHALTER + + + A027_S + + + - + + + SA + + + A027 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 636 + F_ANSTEUER + MODULE + 0 + A007_S2 : CAN-REF_SWITCH + + + + + + + + CAN_REF_SWITCH + + + A007_S2 + + + - + + + SA + + + A007 + + + - + + + UNIT_PARALLEL + + + 1 + + + + + + 641 + F_ANSTEUER + MODULE + 0 + A015_U + + + + + + + + U_GEBER_SK2 + + + A015_U + + + - + + + V + + + A015 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 643 + F_ANSTEUER + MODULE + 0 + A016_U + + + + + + + + U_GEBER_SK2 + + + A016_U + + + - + + + V + + + A016 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 644 + F_ANSTEUER + MODULE + 0 + A033_S + + + + + + + + + + + A033_S + + + - + + + DEFAULT + + + + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 645 + F_ANSTEUER + MODULE + 0 + A035_S + + + + + + + + + + + A035_S + + + - + + + DEFAULT + + + + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 646 + F_ANSTEUER + MODULE + 0 + A038_S + + + + + + + + + + + A038_S + + + - + + + SA + + + + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 647 + F_ANSTEUER + MODULE + 0 + A008_S1 + + + + + + + + CAN_SWITCH + + + A008_S1 + + + - + + + SA + + + A008 + + + - + + + UNIT_PARALLEL + + + 1 + + + + + + 649 + F_ANSTEUER + MODULE + 0 + A010_R + + + + + + + + R_DEK_SK2 + + + A010_R + + + - + + + OHM + + + A010 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 650 + F_ANSTEUER + MODULE + 0 + A001_S1 + + + + + + + + SCHALTER + + + A001_S1 + + + - + + + SA + + + A001 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 651 + F_ANSTEUER + MODULE + 0 + A009_S1 + + + + + + + + SCHALTER + + + A009_S1 + + + - + + + SA + + + A009 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 832 + GETDATASTR + MACRO + 0 + KEY_VAL + + + + + + + + + + + + + +

+ KEY_VAL1 + S + 10 +

+ + + + + STR + &KEY_VAL1 +
+
+ + + 852 + GETDATASTR + MACRO + 0 + KEY_VAL + + + + + + + + + + + + + +

+ KEY_VAL2 + S + 10 +

+ + + + + STR + &KEY_VAL2 +
+
+ + + 1000 + KONSTDEF + MACRO + 0 + + + + + + + + BAUDRATE + +

+ &G_BAUD_ASC1 +

+ + + + + INT + &BAUDRATE +
+
+ + + 1020 + KONSTDEF + MACRO + 0 + + + + + + + + G_NERR + +

+ 0 +

+ + + + + INT + &G_NERR +
+
+ + + 1040 + PRINTOUT + MACRO + 100010 + + + + + + + + WZ + 0 + - + MS + + + + + + ▣ Test Description + + + + + + +

+ VCMS with PCM Inc. + 0 +

+ + + + + STR + +
+
+ + + 1060 + PRINTOUT + MACRO + 100050 + + + + + + + + Testlist Version + + + + + + +

+ CGVCMS 1.30.1 SOP-Stage + 0 +

+ + + + + STR + +
+
+ + + 1080 + PRINTOUT + MACRO + 100080 + + + + + + + + PCBA Version + + + + + + +

+ 20230418 CGVCMS1.30.1 C7.0 + 0 +

+ + + + + STR + +
+
+ + + 1100 + PRINTOUT + MACRO + 110010 + + + + V:FFFFFFFFFFFFFFFF;P:H; + + + + Mode + + + + + + +

+ HT-TEST + 0 +

+ + + + + STR + +
+
+ + + 1120 + PRINTOUT + MACRO + 110020 + + + + V:FFFFFFFFFFFFFFFF;P:T; + + + + Mode + + + + + + +

+ TT-TEST + 0 +

+ + + + + STR + +
+
+ + + 1140 + PRINTOUT + MACRO + 110030 + + + + V:FFFFFFFFFFFFFFFF;P:R; + + + + Mode + + + + + + +

+ RT-TEST + 0 +

+ + + + + STR + +
+
+ + + 1160 + PRINTOUT + MACRO + 110030 + + + + V:;P:(E); + + + + Mode + + + + + + +

+ EOL-TEST + 0 +

+ + + + + STR + +
+
+ + + 1180 + STRCMP + MACRO + 0 + + + + + + + + + + + + + + +

+ &Cruise + X +

+ + + + + INT + &CR +
+
+ + + 1200 + P_INIT + MODULE + 0 + (231018) 1-> 5 BY OSM Flow Control Additional Delay Setting for EOL + + + V:;P:(E); + + + + + WRITE + + + FLOW_DELAY + + + 5 + + + &MEWE + + + + + + 1220 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 1240 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ VT Smart Charging Connection + + + + + + +

+ Measurement Start + - +

+ + + + + NONE + - +
+
+ + + 1260 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 1280 + STRCAT + MACRO + 0 + + + + V:;P:(E); + + + + VT Cfg + + + + + + +

+ DIN70121_ISO15118_EolFullTest_230703\ + SmartChargingBasic_VT7870_MV_EOL.cfg + + + + + + + + +

+ + + + + STR + &VTCfg +
+
+ + + 1300 + COMBLOCK2 + MACRO + 0 + + + + V:;P:(E); + + + + VT Smart Charging Start + +

+ + APP + START + 0 + 11 + L + 100 + &VTCfg + 1000 + +

+ + + + + STR + +
+
+ + + 1320 + WARTEN + MACRO + 0 + + + + + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 2040 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A033_SV + UB + - + SA + + + + + A035_SV + UB + - + SA + + + + + A038_SV + MASSE + - + SA + + + + + IQ_UMAX + 6 + - + V + + + + + UB + 12 + - + V + + + + + UB_IMAX + 3 + - + A + + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 2060 + PRINTOUT + MACRO + 160000 + + + PCM_CAN_INIT******************************************************* + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + PRINTMODULENAME + + + + + + +

+ CAN_INIT + 0 +

+ + + + + STR + +
+
+ + + 2080 + CAN2000INI2 + MACRO + 160020 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 2100 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 2120 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A007_S + CAN1_REF + - + SA + + + + + A008_S + CAN1 + - + SA + + + + + + + +

+ + + + + NONE + + + + + + 2140 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 20 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 2160 + PRINTOUT + MACRO + 170010 + + + + + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 301 + + + + + + +

+ PRODUCT INFORMATION + 0 +

+ + + + + STR + +
+
+ + + 2180 + WARTEN + MACRO + 0 + + + + + + + + WZ + 5 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 2200 + GETDATASTR + MACRO + 170040 + + + + + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ CUSTOMERPNO + S + 11 +

+ + + + + STR + &CUSTOMERPNO_00 +
+
+ + + 2220 + PRINTOUT + MACRO + 170050 + + + + + + + + CUSTOMERPNO + + + + + + +

+ &CUSTOMERPNO_00 + 0 +

+ + + + + STR + +
+
+ + + 2240 + STRCOPY + MACRO + 170060 + + + + + + + + + + + + + + +

+ &CUSTOMERPNO_00 + 1 + 5 +

+ + + + + STR + &CUSTOMERPNO_01 +
+
+ + + 2260 + STRCOPY + MACRO + 170070 + + + + + + + + + + + + + + +

+ &CUSTOMERPNO_00 + 7 + 11 +

+ + + + + STR + &CUSTOMERPNO_02 +
+
+ + + 2280 + PRINTOUT + MACRO + 170090 + + + + + + + + + + + + + + +

+ &CUSTOMERPNO_01 + 0 +

+ + + + + STR + +
+
+ + + 2300 + PRINTOUT + MACRO + 170100 + + + + + + + + + + + + + + +

+ &CUSTOMERPNO_02 + 0 +

+ + + + + STR + +
+
+ + + 2320 + STRCAT + MACRO + 170110 + + + + + + + + + + + + + + +

+ &CUSTOMERPNO_01 + &CUSTOMERPNO_02 + + + + + + + + +

+ + + + + STR + &CUSTOMERPNO_03 +
+
+ + + 2340 + STRTOHEXSTRING + MACRO + 170130 + + + + + + + + CUSTOMER PART NO (ASCII) + + + + + + +

+ 350001XHD0 + 0 +

+ + + + + STR + &PARTNO_ASCII +
+
+ + + 2360 + PRINTOUT + MACRO + 170140 + + + + + + + + PARTNO_HEX + + + + + + +

+ &PARTNO_ASCII + 0 +

+ + + + + STR + +
+
+ + + 2380 + PRINTOUT + MACRO + 170100 + + + + + + + + PCM PART NO (ASCII) + + + + + + +

+ &PCM_PARTNO + 0 +

+ + + + + STR + +
+
+ + + 2400 + CONVERT_TYPE + MACRO + 0 + + + + + + + + PCM PART NO (HEX) + + + + + + +

+ &PCM_PARTNO + ASCII + + + +

+ + + + + HEX + &PCM_PARTNOHEX +
+
+ + + 2420 + PRINTOUT + MACRO + 170100 + + + + + + + + PCM PART NO (HEX) + + + + + + +

+ &PCM_PARTNOHEX + 0 +

+ + + + + STR + +
+
+ + + 2440 + PRINTOUT + MACRO + 170150 + + + + + + + + KEFICO_CODE + + + + + + +

+ &HW_VER + 0 +

+ + + + + STR + +
+
+ + + 2460 + STRTOHEXSTRING + MACRO + 170160 + + + + + + + + + + + + + + +

+ &HW_VER + 0 +

+ + + + + STR + &HW_VER0 +
+
+ + + 2480 + STRCOPY + MACRO + 170170 + + + + + + + + + + + + + + +

+ &HW_VER0 + 3 + 4 +

+ + + + + STR + &HW_VER1 +
+
+ + + 2500 + STRCOPY + MACRO + 170180 + + + + + + + + + + + + + + +

+ &HW_VER0 + 7 + 10 +

+ + + + + STR + &HW_VER2 +
+
+ + + 2520 + STRCAT + MACRO + 170190 + + + + + + + + HW VERSION ASCII + + + + + + +

+ &HW_VER1 + &HW_VER2 + + + + + + + + +

+ + + + + STR + &HW_VERSION_ASCII +
+
+ + + 2540 + PRINTOUT + MACRO + 170200 + + + + + + + + KEFICO_HEX + + + + + + +

+ &HW_VERSION_ASCII + 0 +

+ + + + + STR + +
+
+ + + 2560 + KUNDENDAT1 + MACRO + 170210 + + + + + + + + + + + + + + +

+ FD + 3 + + + + ERROR +

+ + + + + STR + &FD3 +
+
+ + + 2580 + PRINTOUT + MACRO + 170220 + + + + + + + + FD3 + + + + + + +

+ &FD3 + 0 +

+ + + + + STR + +
+
+ + + 2600 + GETDATASTR + MACRO + 170230 + + + + + + + + + + + + + + +

+ KEFICOCODE + S + 4 +

+ + + + + STR + &KEFICO_CODE +
+
+ + + 2620 + PRINTOUT + MACRO + 170240 + + + + + + + + KEFICO_CODE + + + + + + +

+ &KEFICO_CODE + 0 +

+ + + + + STR + +
+
+ + + 2640 + STRTOHEXSTRING + MACRO + 170250 + + + + + + + + + + + + + + +

+ &KEFICO_CODE + 0 +

+ + + + + STR + &KEFICO_ASCII +
+
+ + + 2660 + PRINTOUT + MACRO + 170260 + + + + + + + + KEFICO_ASCII + + + + + + +

+ &KEFICO_ASCII + 0 +

+ + + + + STR + +
+
+ + + 2680 + KUNDENDAT1 + MACRO + 170270 + + + + + + + + + + + + + + +

+ TH + 3 + + + + ERROR +

+ + + + + STR + &TH1 +
+
+ + + 2700 + PRINTOUT + MACRO + 170280 + + + + + + + + TH1 + + + + + + +

+ &TH1 + 0 +

+ + + + + STR + +
+
+ + + 2720 + STRCAT + MACRO + 170290 + + + + + + + + ADD3BYTE + + + + + + +

+ 41414141 + &TH1 + + + + + + + + +

+ + + + + STR + &TH1_ASCII +
+
+ + + 2740 + PRINTOUT + MACRO + 170300 + + + + + + + + TH1_ASCII + + + + + + +

+ &TH1_ASCII + 0 +

+ + + + + STR + +
+
+ + + 2760 + KUNDENDAT1 + MACRO + 170310 + + + + + + + + + + + + + + +

+ TH + 2 + + + + ERROR +

+ + + + + STR + &TH0 +
+
+ + + 2780 + PRINTOUT + MACRO + 170320 + + + + + + + + TH0 + + + + + + +

+ &TH0 + 0 +

+ + + + + STR + +
+
+ + + 2800 + STRTOHEXSTRING + MACRO + 170330 + + + + + + + + PCM Version + + + + + + +

+ &PCM_VER + 0 +

+ + + + + STR + &PCM_VER_ASCII +
+
+ + + 2820 + STRTOHEXSTRING + MACRO + 170330 + + + + + + + + CMS Version + + + + + + +

+ &CMS_VER + 0 +

+ + + + + STR + &CMS_VER_ASCII +
+
+ + + 2840 + STRTOHEXSTRING + MACRO + 170330 + + + + + + + + PCM CAL ID + + + + + + +

+ &PCM_CALID + 0 +

+ + + + + STR + &PCM_CALID_ASCII +
+
+ + + 2860 + STRTOHEXSTRING + MACRO + 170330 + + + + + + + + CMS CAL ID + + + + + + +

+ &CMS_CALID + 0 +

+ + + + + STR + &CMS_CALID_ASCII +
+
+ + + 2880 + SENDBYETHERNET + MACRO + 170350 + + + + V:;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + MAC + TRUE + TCP + &TH0 + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 2900 + PARSEMESSAGE + MACRO + 170380 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + TCP + 1 + &MAC_ADDRESS + STR + + + + STR +

+ + + + + STR + +
+
+ + + 2910 + STRCAT + MACRO + 0 + + + + + + + + A007_S + CAN1_REF + - + SA + + + + + A008_S + CAN1 + - + SA + + + + + WZ + 100 + - + MS + + + + + + + + + + + + +

+ 757767 + + + + + + + + + +

+ + + + + NONE + &KEFICO_ASCII +
+
+ + + 2930 + PRINTOUT + MACRO + 170390 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ &MAC_ADDRESS + 0 +

+ + + + + STR + +
+
+ + + 2940 + STRCAT + MACRO + 0 + + + + + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ + + + + + + + + + +

+ + + + + STR + &MAC_ADDRESS +
+
+ + + 2950 + STRTOHEXSTRING + MACRO + 170410 + + + + V:;P:(E); + + + + + + + + + + +

+ &MAC_ADDRESS + 0 +

+ + + + + STR + &MAC_ADDRESS +
+
+ + + 2960 + BERECHNEN + MACRO + 0 + + + + + + + + + + + + + + +

+ A4231EB4D3E9 + 0 +

+ + + + + HEXSTR + &MAC_ADDRESS +
+
+ + + 2970 + STRCAT + MACRO + 170420 + + + + V:;P:(E); + + + + ADD3BYTE + + + + + + +

+ 30303030 + &MAC_ADDRESS_ASCII + + + + + + + + +

+ + + + + STR + &NMK +
+
+ + + 2990 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 3010 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Phase 302 + + + + + + +

+ PCM Data Writing + - +

+ + + + + NONE + - +
+
+ + + 3030 + WARTEN + MACRO + 0 + wz 10 -> 100, mitech + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 3050 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &VALUE +
+
+ + + 3070 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &HI +
+
+ + + 3090 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &CMeasCnt +
+
+ + + 3130 + CONTROL + MACRO + 420580 + + + + V:;P:(E); + + + + + + + + + + +

+ WHILE + (&HI!=20483) && (&CMeasCnt < 50) +

+ + + + + INT + +
+
+ + + 3150 + COMBLOCK2 + MACRO + 420590 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 3170 + BLOCKINT + MACRO + 420600 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + &HI +
+
+ + + 3190 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ &CMeasCnt+1 + 0 +

+ + + + + HEX + &CMeasCnt +
+
+ + + 3210 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 3230 + CONTROL + MACRO + 420760 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 3250 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &VALUE +
+
+ + + 4110 + CONTROL + MACRO + 420580 + + + + V:;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 4250 + COMBLOCK2 + MACRO + 420620 + + + + V:;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4270 + BLOCKINT + MACRO + 420630 + + + + V:;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 4290 + BLOCKINT + MACRO + 420640 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 4310 + BLOCKINT + MACRO + 420650 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 4330 + STRCAT + MACRO + 420680 + + + + V:;P:(E); + + + + WZ + 10 + - + MS + + + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 4350 + SEEDKEY + MACRO + 420700 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 4370 + COMBLOCK2 + MACRO + 420720 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 4390 + COMBLOCK2 + MACRO + 420730 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4410 + BLOCKINT + MACRO + 420740 + + + + V:;P:(E); + + + + WZ + 1000 + - + MS + + + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 4430 + CONTROL + MACRO + 420760 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 4450 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 3000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4470 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &VALUE +
+
+ + + 4490 + PRINTOUT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Memory Area Check + + + + + + +

+ PCM Memory Partition Swap (X→A) + 0 +

+ + + + + STR + - +
+
+ + + 4510 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4530 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4550 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 10F1FB + 7000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4570 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + + + + + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 4590 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + Command + + + + + + +

+ 4 + 4 +

+ + 10 + 10 + + HEX + +
+
+ + + 4610 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (A) + + - + - + - + - + +

+ 5 + 5 +

+ + 00 + FF + + HEX + &PartitionStatus +
+
+ + + 4630 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4650 + CONTROL + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ IF + (&PartitionStatus != 10) +

+ + + + + INT + +
+
+ + + 4670 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 4690 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4710 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 130AF1FB + 6000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4730 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + + + + + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 4750 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + Command + + + + + + +

+ 4 + 4 +

+ + 13 + 13 + + HEX + +
+
+ + + 4770 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (A) + + - + - + - + - + +

+ 5 + 5 +

+ + 00 + FF + + HEX + &PartitionStatus +
+
+ + + 4790 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4810 + CONTROL + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 4830 + WARTEN + MACRO + 0 + wz 500 -> 1000, mitech + + + V:;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4850 + WARTEN + MACRO + 0 + wz 10 -> 100, mitech + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 4870 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &VALUE +
+
+ + + 4890 + CONTROL + MACRO + 420580 + + + + V:;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 4910 + COMBLOCK2 + MACRO + 420590 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4930 + BLOCKINT + MACRO + 420600 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 4950 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 10 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4970 + COMBLOCK2 + MACRO + 420620 + + + + V:;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4990 + BLOCKINT + MACRO + 420630 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 5010 + BLOCKINT + MACRO + 420640 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 5030 + BLOCKINT + MACRO + 420650 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 5050 + STRCAT + MACRO + 420680 + + + + V:;P:(E); + + + + WZ + 10 + - + MS + + + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 5070 + SEEDKEY + MACRO + 420700 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 5090 + COMBLOCK2 + MACRO + 420720 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 5110 + COMBLOCK2 + MACRO + 420730 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 5130 + BLOCKINT + MACRO + 420740 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 5150 + CONTROL + MACRO + 420760 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 5170 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 5190 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &VALUE +
+
+ + + 5210 + COMBLOCK2 + MACRO + 170620 + + + + V:;P:(E); + + + + WRITEF18B + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF18B + 1000 + +

+ + + + + STR + +
+
+ + + 5230 + COMBLOCK2 + MACRO + 170630 + + + + V:;P:(E); + + + + WRITEF18B + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &FD3 + 2000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 5250 + BLOCKINT + MACRO + 170640 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF18B + 6EF18B + + HEX + +
+
+ + + 5270 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5290 + COMBLOCK2 + MACRO + 170660 + + + + V:;P:(E); + + + + WRITEF18C + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF18C + 1000 + +

+ + + + + STR + +
+
+ + + 5310 + COMBLOCK2 + MACRO + 170670 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + WRITEF18C + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &TH1_ASCII + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 5330 + BLOCKINT + MACRO + 170680 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF18C + 6EF18C + + HEX + +
+
+ + + 5350 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5370 + COMBLOCK2 + MACRO + 170700 + + + + V:;P:(E); + + + + WRITEF193 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF193 + 1000 + +

+ + + + + STR + +
+
+ + + 5390 + COMBLOCK2 + MACRO + 170710 + + + + V:;P:(E); + + + + WRITEF193 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &HW_VERSION_ASCII + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 5410 + BLOCKINT + MACRO + 170720 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF193 + 6EF193 + + HEX + +
+
+ + + 5430 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5450 + COMBLOCK2 + MACRO + 170740 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + WRITEF102 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF102 + 1000 + +

+ + + + + STR + +
+
+ + + 5470 + COMBLOCK2 + MACRO + 170750 + + + + V:;P:(E); + + + + WRITEF102 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &MAC_ADDRESS + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 5490 + BLOCKINT + MACRO + 170760 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF102 + 6EF102 + + HEX + +
+
+ + + 5510 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5530 + COMBLOCK2 + MACRO + 170780 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + WRITEF1A1 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF1A1 + 1000 + +

+ + + + + STR + +
+
+ + + 5550 + COMBLOCK2 + MACRO + 170790 + + + + V:;P:(E); + + + + WRITEF1A1 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &KEFICO_ASCII + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 5570 + BLOCKINT + MACRO + 170800 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF1A1 + 6EF1A1 + + HEX + +
+
+ + + 5590 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5610 + COMBLOCK2 + MACRO + 170780 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + WRITEF187 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF187 + 1000 + +

+ + + + + STR + +
+
+ + + 5630 + COMBLOCK2 + MACRO + 170790 + + + + V:;P:(E); + + + + WRITEF187 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 51534848484988726848 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 5650 + BLOCKINT + MACRO + 170800 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF187 + 6EF187 + + HEX + +
+
+ + + 5670 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5690 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + A033_SV + - + - + NONE + + + + + A035_SV + - + - + NONE + + + + + A038_SV + - + - + NONE + + + + + + + +

+ + + + + NONE + + + + + + 5710 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5730 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + A033_SV + UB + - + SA + + + + + A035_SV + UB + - + SA + + + + + A038_SV + MASSE + - + SA + + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5750 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 5000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5770 + CAN2000INI2 + MACRO + 160020 + CAN Port Close + + + V:0000000000000007;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 5790 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E|R); + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 5810 + CAN2000INI2 + MACRO + 160020 + CAN Port Open + + + V:0000000000000007;P:(E|R); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 5830 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E|R); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 5850 + PRINTOUT + MACRO + 0 + + + + V:;P:(E|R); + + + + ▣ Phase 303 + + + + + + +

+ PCM Product Information + - +

+ + + + + NONE + - +
+
+ + + 5870 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5890 + WARTEN + MACRO + 0 + 300ms + + + V:;P:(E|R); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5910 + COMBLOCK2 + MACRO + 170860 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + UDS_DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 5930 + BLOCKINT + MACRO + 170870 + + + + V:;P:(E|R); + + + + POSITIVE + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 5950 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E|R); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5970 + COMBLOCK2 + MACRO + 170910 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F187 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 5990 + BLOCKINT + MACRO + 170920 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F187 + 62F187 + + HEX + +
+
+ + + 6010 + BLOCKINT + MACRO + 170930 + + + + V:;P:(E); + + + + ASCII10BYTE + + + + + + +

+ 4 + 13 +

+ + + + + HEX + &F187_CHECK +
+
+ + + 6030 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6050 + COMBLOCK2 + MACRO + 170910 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F188 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 6070 + BLOCKINT + MACRO + 170920 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F188 + 62F188 + + HEX + +
+
+ + + 6090 + BLOCKINT + MACRO + 170930 + + + + V:;P:(E|R); + + + + ASCII16BYTE + + + + + + +

+ 4 + 19 +

+ + + + + HEX + &F188_CHECK +
+
+ + + 6110 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E|R); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6130 + COMBLOCK2 + MACRO + 170950 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F18B + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 6150 + BLOCKINT + MACRO + 170960 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F18B + 62F18B + + HEX + +
+
+ + + 6170 + BLOCKINT + MACRO + 170970 + + + + V:;P:(E); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F18B_CHECK +
+
+ + + 6190 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6210 + COMBLOCK2 + MACRO + 170990 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F18C + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 6230 + BLOCKINT + MACRO + 171000 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F18C + 62F18C + + HEX + +
+
+ + + 6250 + BLOCKINT + MACRO + 171010 + + + + V:;P:(E); + + + + ASCII15BYTE + + + + + + +

+ 4 + 18 +

+ + + + + HEX + &F18C_CHECK +
+
+ + + 6270 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6290 + COMBLOCK2 + MACRO + 171030 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F101 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 6310 + BLOCKINT + MACRO + 171040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F101 + 62F101 + + HEX + +
+
+ + + 6330 + BLOCKINT + MACRO + 171050 + + + + V:;P:(E); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F101_CHECK +
+
+ + + 6350 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6370 + COMBLOCK2 + MACRO + 171070 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F193 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 6390 + BLOCKINT + MACRO + 171080 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F193 + 62F193 + + HEX + +
+
+ + + 6410 + BLOCKINT + MACRO + 171090 + + + + V:;P:(E); + + + + ASCII3BYTE + + + + + + +

+ 4 + 6 +

+ + + + + HEX + &F193_CHECK +
+
+ + + 6430 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6450 + COMBLOCK2 + MACRO + 171110 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F103 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 6470 + BLOCKINT + MACRO + 171120 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F103 + 62F103 + + HEX + +
+
+ + + 6490 + BLOCKINT + MACRO + 171130 + + + + V:;P:(E); + + + + ASCII2BYTE + + + + + + +

+ 4 + 5 +

+ + + + + HEX + &F103_CHECK +
+
+ + + 6510 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6530 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &CMeasCnt +
+
+ + + 6550 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ 1 + 0 +

+ + + + + INT + &CrcR +
+
+ + + 6570 + CONTROL + MACRO + 0 + + + + + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&CrcR!=0) && (&CMeasCnt < 50) +

+ + + + + NONE + +
+
+ + + 6590 + COMBLOCK2 + MACRO + 171150 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F102 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 6610 + BLOCKINT + MACRO + 171160 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F102 + 62F102 + + HEX + +
+
+ + + 6630 + BLOCKINT + MACRO + 171170 + + + + V:;P:(E); + + + + HEX6BYTE + + + + + + +

+ 4 + 9 +

+ + + + + HEX + &F102_CHECK +
+
+ + + 6650 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ &F102_CHECK + 0 +

+ + + + + HEX + &MAC_ADDRESS +
+
+ + + 6750 + STRCMP + MACRO + 171740 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + F102_COMP + + + + + + +

+ &MAC_ADDRESS + &F102_CHECK +

+ + + + + INT + &CrcR +
+
+ + + 6770 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ &CMeasCnt+1 + 0 +

+ + + + + INT + &CMeasCnt +
+
+ + + 6790 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6810 + CONTROL + MACRO + 0 + + + + + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + NONE + +
+
+ + + 6830 + PRINTOUT + MACRO + 400010 + + + + V:;P:(E|R); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ &CMeasCnt + 0 +

+ + + + + STR + +
+
+ + + 6850 + COMBLOCK2 + MACRO + 171150 + + + + V:;P:(E|R); + + + + WZ + 50 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F156 + 1000 + +

+ + + + + STR + +
+
+ + + 6870 + BLOCKINT + MACRO + 171160 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F156 + 62F156 + + HEX + +
+
+ + + 6890 + BLOCKINT + MACRO + 171170 + + + + V:;P:(E|R); + + + + HEX4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F156_CHECK +
+
+ + + 6910 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E|R); + + + + + +

+ + + + + NONE + + + + + + 6930 + COMBLOCK2 + MACRO + 171190 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F1B2 + 1000 + +

+ + + + + STR + +
+
+ + + 6950 + BLOCKINT + MACRO + 171200 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1B2 + 62F1B2 + + HEX + +
+
+ + + 6970 + BLOCKINT + MACRO + 171210 + + + + V:;P:(E); + + + + ASCII10BYTE + + + + + + +

+ 4 + 13 +

+ + + + + HEX + &F1B2_CHECK +
+
+ + + 6990 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7010 + COMBLOCK2 + MACRO + 171230 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F1A1 + 1000 + +

+ + + + + STR + +
+
+ + + 7030 + BLOCKINT + MACRO + 171240 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1A1 + 62F1A1 + + HEX + +
+
+ + + 7050 + BLOCKINT + MACRO + 171250 + + + + V:;P:(E); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F1A1_CHECK +
+
+ + + 7070 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7090 + COMBLOCK2 + MACRO + 171270 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F1C2 + 1000 + +

+ + + + + STR + +
+
+ + + 7110 + BLOCKINT + MACRO + 171280 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1C2 + 62F1C2 + + HEX + +
+
+ + + 7130 + BLOCKINT + MACRO + 171290 + + + + V:;P:(E); + + + + HEX32BYTE + + + + + + +

+ 4 + 35 +

+ + + + + HEX + &F1C2_CHECK +
+
+ + + 7150 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7170 + COMBLOCK2 + MACRO + 171310 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F1EF + 1000 + +

+ + + + + STR + +
+
+ + + 7190 + BLOCKINT + MACRO + 171320 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1EF + 62F1EF + + HEX + +
+
+ + + 7210 + BLOCKINT + MACRO + 171330 + + + + V:;P:(E); + + + + ASCII40BYTE + + + + + + +

+ 4 + 43 +

+ + + + + HEX + &F1EF_CHECK +
+
+ + + 7230 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7250 + COMBLOCK2 + MACRO + 171350 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F148 + 1000 + +

+ + + + + STR + +
+
+ + + 7270 + BLOCKINT + MACRO + 171360 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F148 + 62F148 + + HEX + +
+
+ + + 7290 + BLOCKINT + MACRO + 171370 + + + + V:;P:(E); + + + + ASCII 3BYTE + + + + + + +

+ 4 + 6 +

+ + 584443 + 584443 + + HEX + &F148_CHECK +
+
+ + + 7310 + WARTEN + MACRO + 0 + 200ms + + + V:;P:(E); + + + + WZ + 1200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7330 + PRINTOUT + MACRO + 400010 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ HFID_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7350 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 3000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7410 + COMBLOCK2 + MACRO + 400050 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F147 + 2000 + +

+ + + + + STR + +
+
+ + + 7450 + BLOCKINT + MACRO + 400060 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F147 + 62F147 + + HEX + +
+
+ + + 7470 + BLOCKINT + MACRO + 400070 + + + + V:;P:(E|R); + + + + HEX20BYTE + + + + + + +

+ 4 + 23 +

+ + + + + HEX + &F147_CHECK +
+
+ + + 7490 + STRTOHEXSTRING + MACRO + 400080 + + + + V:;P:(E|R); + + + + + + + + + + +

+ &HFID + 0 +

+ + + + + STR + &HFID_HEX +
+
+ + + 7510 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 30 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7530 + PRINTOUT + MACRO + 171390 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + PCM Part No. + + + + + + +

+ &PARTNO_ASCII + 0 +

+ + + + + STR + +
+
+ + + 7550 + PRINTOUT + MACRO + 171400 + + + + V:;P:(E); + + + + 2-1. F187 : Part No. + + + + + + +

+ &F187_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7570 + PRINTOUT + MACRO + 171390 + + + + V:;P:(E|R); + + + + ROM ID + + + + + + +

+ &PCM_CALID_ASCII + 0 +

+ + + + + STR + +
+
+ + + 7590 + PRINTOUT + MACRO + 171400 + + + + V:;P:(E|R); + + + + 2-2. F188 : ROM ID + + + + + + +

+ &F188_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7610 + PRINTOUT + MACRO + 171420 + + + + V:;P:(E); + + + + Date + + + + + + +

+ &FD3 + 0 +

+ + + + + STR + +
+
+ + + 7630 + PRINTOUT + MACRO + 171430 + + + + V:;P:(E); + + + + 2-3. F18B : Date + + + + + + +

+ &F18B_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7650 + PRINTOUT + MACRO + 171450 + + + + V:;P:(E); + + + + Serial No. + + + + + + +

+ &TH1_ASCII + 0 +

+ + + + + STR + +
+
+ + + 7670 + PRINTOUT + MACRO + 171460 + + + + V:;P:(E); + + + + 2-4. F18C : Serial No. + + + + + + +

+ &F18C_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7690 + PRINTOUT + MACRO + 171480 + + + + V:;P:(E); + + + + 2-5. F101 : QCA Ver. + + + + + + +

+ &F101_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7710 + PRINTOUT + MACRO + 171500 + + + + V:;P:(E); + + + + H/W Ver. + + + + + + +

+ &HW_VERSION_ASCII + 0 +

+ + + + + STR + +
+
+ + + 7730 + PRINTOUT + MACRO + 171510 + + + + V:;P:(E); + + + + 2-6. F193 : H/W Ver. + + + + + + +

+ &F193_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7750 + PRINTOUT + MACRO + 171530 + + + + V:;P:(E); + + + + 2-7. F103 : CAN DB Ver. + + + + + + +

+ &F103_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7770 + PRINTOUT + MACRO + 171550 + + + + V:;P:(E); + + + + 2-8. F102 : MAC Address + + + + + + +

+ &F102_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7790 + PRINTOUT + MACRO + 0 + + + + V:;P:(E|R); + + + + PCM Checksum + + + + + + +

+ &PCM_CRC + 0 +

+ + + + + STR + - +
+
+ + + 7810 + PRINTOUT + MACRO + 171550 + + + + V:;P:(E|R); + + + + 2-9. F156 : Checksum + + + + + + +

+ &F156_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7830 + PRINTOUT + MACRO + 171580 + + + + V:;P:(E); + + + + PCM SW Ver. + + + + + + +

+ &PCM_VER + 0 +

+ + + + + STR + +
+
+ + + 7850 + PRINTOUT + MACRO + 171570 + + + + V:;P:(E); + + + + 2-10. F1B2 : SW Ver. + + + + + + +

+ &F1B2_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7870 + PRINTOUT + MACRO + 171600 + + + + V:;P:(E); + + + + Kefico Supplier Code + + + + + + +

+ &KEFICO_HEX + 0 +

+ + + + + STR + +
+
+ + + 7890 + PRINTOUT + MACRO + 171610 + + + + V:;P:(E); + + + + 2-11. F1A1 : ECU Supplier Code + + + + + + +

+ &F1A1_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7910 + PRINTOUT + MACRO + 171630 + + + + V:;P:(E); + + + + 2-12. F1C2 : IVD Data + + + + + + +

+ &F1C2_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7930 + PRINTOUT + MACRO + 171650 + + + + V:;P:(E); + + + + 2-13. F1EF : RXSWIN Data + + + + + + +

+ &F1EF_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7950 + PRINTOUT + MACRO + 171670 + + + + V:;P:(E); + + + + 2-14. F148 : CPU Information + + + + + + +

+ &F148_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7970 + PRINTOUT + MACRO + 0 + + + + V:;P:(E|R); + + + + HFID + + + + + + +

+ &HFID_HEX + - +

+ + + + + STR + - +
+
+ + + 7990 + PRINTOUT + MACRO + 0 + + + + V:;P:(E|R); + + + + 2-15. F147 : HFID + + + + + + +

+ &F147_CHECK + - +

+ + + + + STR + - +
+
+ + + 8010 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&CR != 0) +

+ + + + + NONE + +
+
+ + + 8030 + STRCMP + MACRO + 171700 + + + + V:;P:(E); + + + + F187_COMP + + + + + + +

+ &PARTNO_ASCII + &F187_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8050 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 8070 + STRCMP + MACRO + 171700 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + F188_COMP + + + + + + +

+ &PCM_CALID_ASCII + &F188_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8090 + STRCMP + MACRO + 171710 + + + + V:;P:(E); + + + + F18B_COMP + + + + + + +

+ &FD3 + &F18B_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8110 + STRCMP + MACRO + 171720 + + + + V:;P:(E); + + + + F18C_COMP + + + + + + +

+ &TH1_ASCII + &F18C_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8130 + STRCMP + MACRO + 171730 + + + + V:;P:(E); + + + + F193_COMP + + + + + + +

+ &HW_VERSION_ASCII + &F193_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8150 + STRCMP + MACRO + 171740 + + + + V:;P:(E); + + + + F102_COMP + + + + + + +

+ &MAC_ADDRESS + &F102_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8170 + STRCMP + MACRO + 171740 + + + + V:;P:(E|R); + + + + F156_COMP + + + + + + +

+ &PCM_CRC + &F156_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8190 + STRCMP + MACRO + 171750 + + + + V:;P:(E); + + + + F1B2_COMP + + + + + + +

+ &PCM_VER_ASCII + &F1B2_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8210 + STRCMP + MACRO + 171760 + + + + V:;P:(E); + + + + F1A1_COMP + + + + + + +

+ &KEFICO_ASCII + &F1A1_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8230 + STRCMP + MACRO + 400100 + + + + V:;P:(E|R); + + + + F147_COMP + + + + + + +

+ &HFID_HEX + &F147_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8250 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + + +

+ + + + + NONE + + + + + + 8270 + PRINTOUT + MACRO + 180000 + + + CMS_CAN_INIT******************************************************* + V:;P:(E|R); + + + + WZ + 200 + - + MS + + + + + + CAN Port Open + + + + + + +

+ CMS CAN INIT + 0 +

+ + + + + STR + +
+
+ + + 8290 + CAN2000INI2 + MACRO + 180020 + + + + V:0000000000000007;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 8310 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E|R); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 +

+ + + + + STR + +
+
+ + + 8330 + WARTEN + MACRO + 0 + wz 30 -> 500, mitech + + + V:;P:(E|R); + + + + WZ + 150 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 8350 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + UB_IMAX + 10 + - + A + + + + + WZ + - + - + NONE + + + + + + ▣ Phase 304 + + + + + + +

+ CSM Product Data Writing + - +

+ + + + + NONE + - +
+
+ + + 8390 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 8410 + COMBLOCK2 + MACRO + 170450 + + + + V:;P:(E); + + + + UDS_DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 8430 + BLOCKINT + MACRO + 170460 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 8450 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 8470 + COMBLOCK2 + MACRO + 170480 + + + + V:;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 8490 + BLOCKINT + MACRO + 170490 + + + + V:;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 8510 + BLOCKINT + MACRO + 170500 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 8530 + BLOCKINT + MACRO + 170510 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 8550 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 8570 + PRINTOUT + MACRO + 170530 + + + + V:;P:(E); + + + + + + + + + + +

+ *** ASK SEQUENCE *** + 0 +

+ + + + + STR + +
+
+ + + 8590 + STRCAT + MACRO + 170540 + + + + V:;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 8610 + SEEDKEY + MACRO + 170560 + + + + V:;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_CMS + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 8630 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 8650 + COMBLOCK2 + MACRO + 170580 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 8670 + COMBLOCK2 + MACRO + 170590 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 8690 + BLOCKINT + MACRO + 170600 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 6712 + 6712 + + HEX + +
+
+ + + 8710 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 8730 + COMBLOCK2 + MACRO + 170620 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + WRITEF18B + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2EF18B + 1000 + +

+ + + + + STR + +
+
+ + + 8750 + COMBLOCK2 + MACRO + 170630 + + + + V:;P:(E); + + + + WRITEF18B + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &FD3 + 1000 + +

+ + + + + STR + +
+
+ + + 8770 + BLOCKINT + MACRO + 170640 + + + + V:;P:(E); + + + + Manuf. Date Writing + + + + + + +

+ 1 + 3 +

+ + 6EF18B + 6EF18B + + HEX + +
+
+ + + 8790 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 8810 + COMBLOCK2 + MACRO + 170660 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + WRITEF18C + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2EF18C + 1000 + +

+ + + + + STR + +
+
+ + + 8830 + COMBLOCK2 + MACRO + 170670 + + + + V:;P:(E); + + + + WRITEF18C + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &TH1_ASCII + 1000 + +

+ + + + + STR + +
+
+ + + 8850 + BLOCKINT + MACRO + 170680 + + + + V:;P:(E); + + + + Serial No. Writing + + + + + + +

+ 1 + 3 +

+ + 6EF18C + 6EF18C + + HEX + +
+
+ + + 8870 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 8890 + COMBLOCK2 + MACRO + 170780 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + WRITEF1A1 + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2EF1A1 + 1000 + +

+ + + + + STR + +
+
+ + + 8910 + COMBLOCK2 + MACRO + 170790 + + + + V:;P:(E); + + + + WRITEF1A1 + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &KEFICO_ASCII + 1000 + +

+ + + + + STR + +
+
+ + + 8930 + BLOCKINT + MACRO + 170800 + + + + V:;P:(E); + + + + Supplier Code Writing + + + + + + +

+ 1 + 3 +

+ + 6EF1A1 + 6EF1A1 + + HEX + +
+
+ + + 8950 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 8970 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 20 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 8990 + PRINTOUT + MACRO + 190010 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 305 + + + + + + +

+ CMS Product Information + 0 +

+ + + + + STR + +
+
+ + + 9010 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 5 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 9030 + COMBLOCK2 + MACRO + 190060 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + UDS_DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 9050 + BLOCKINT + MACRO + 190070 + + + + V:;P:(E|R); + + + + POSITIVE + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 9070 + COMBLOCK2 + MACRO + 190090 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F181 + 1000 + +

+ + + + + STR + +
+
+ + + 9090 + BLOCKINT + MACRO + 190100 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F181 + 62F181 + + HEX + +
+
+ + + 9110 + BLOCKINT + MACRO + 190110 + + + + V:;P:(E|R); + + + + ASCII10BYTE + + + + + + +

+ 4 + 13 +

+ + + + + HEX + &F181_CHECK +
+
+ + + 9130 + COMBLOCK2 + MACRO + 190130 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F188 + 1000 + +

+ + + + + STR + +
+
+ + + 9150 + BLOCKINT + MACRO + 190140 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F188 + 62F188 + + HEX + +
+
+ + + 9170 + BLOCKINT + MACRO + 190150 + + + + V:;P:(E|R); + + + + ASCII16BYTE + + + + + + +

+ 4 + 19 +

+ + + + + HEX + &F188_CHECK +
+
+ + + 9190 + COMBLOCK2 + MACRO + 190170 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F191 + 1000 + +

+ + + + + STR + +
+
+ + + 9210 + BLOCKINT + MACRO + 190180 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F191 + 62F191 + + HEX + +
+
+ + + 9230 + BLOCKINT + MACRO + 190190 + + + + V:;P:(E|R); + + + + ASCII10BYTE + + + + + + +

+ 4 + 13 +

+ + + + + HEX + &F191_CHECK +
+
+ + + 9250 + COMBLOCK2 + MACRO + 190210 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F187 + 1000 + +

+ + + + + STR + +
+
+ + + 9270 + BLOCKINT + MACRO + 190220 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F187 + 62F187 + + HEX + +
+
+ + + 9290 + BLOCKINT + MACRO + 190230 + + + + V:;P:(E|R); + + + + ASCII10BYTE + + + + + + +

+ 4 + 13 +

+ + + + + HEX + &F187_CHECK +
+
+ + + 9310 + COMBLOCK2 + MACRO + 190250 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1A0 + 1000 + +

+ + + + + STR + +
+
+ + + 9330 + BLOCKINT + MACRO + 190260 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1A0 + 62F1A0 + + HEX + +
+
+ + + 9350 + BLOCKINT + MACRO + 190270 + + + + V:;P:(E|R); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F1A0_CHECK +
+
+ + + 9370 + COMBLOCK2 + MACRO + 190290 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F156 + 1000 + +

+ + + + + STR + +
+
+ + + 9390 + BLOCKINT + MACRO + 190300 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F156 + 62F156 + + HEX + +
+
+ + + 9410 + BLOCKINT + MACRO + 190310 + + + + V:;P:(E|R); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F156_CHECK +
+
+ + + 9430 + BLOCKINT + MACRO + 190310 + + + + V:;P:(E|R); + + + + F156_BYTE:1 + + + + + + +

+ 4 + 4 +

+ + + + + HEX + &F156_RC1 +
+
+ + + 9450 + BLOCKINT + MACRO + 190310 + + + + V:;P:(E|R); + + + + F156_BYTE:2 + + + + + + +

+ 5 + 5 +

+ + + + + HEX + &F156_RC2 +
+
+ + + 9470 + BLOCKINT + MACRO + 190310 + + + + V:;P:(E|R); + + + + F156_BYTE:3 + + + + + + +

+ 6 + 6 +

+ + + + + HEX + &F156_RC3 +
+
+ + + 9490 + BLOCKINT + MACRO + 190310 + + + + V:;P:(E|R); + + + + F156_BYTE:4 + + + + + + +

+ 7 + 7 +

+ + + + + HEX + &F156_RC4 +
+
+ + + 9510 + STRCAT + MACRO + 0 + + + + V:;P:(E|R); + + + + F156_REVERSE + + + + + + +

+ &F156_RC4 + &F156_RC3 + &F156_RC2 + &F156_RC1 + + + + + + +

+ + + + + STR + &F156_RCHECK +
+
+ + + 9530 + COMBLOCK2 + MACRO + 190330 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1B0 + 1000 + +

+ + + + + STR + +
+
+ + + 9550 + BLOCKINT + MACRO + 190340 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1B0 + 62F1B0 + + HEX + +
+
+ + + 9570 + BLOCKINT + MACRO + 190350 + + + + V:;P:(E|R); + + + + HEX1BYTE + + + + + + +

+ 4 + 4 +

+ + + + + HEX + &F1B0_CHECK +
+
+ + + 9590 + COMBLOCK2 + MACRO + 190370 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1B1 + 1000 + +

+ + + + + STR + +
+
+ + + 9610 + BLOCKINT + MACRO + 190380 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1B1 + 62F1B1 + + HEX + +
+
+ + + 9630 + BLOCKINT + MACRO + 190390 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + ASCII16BYTE + + + + + + +

+ 4 + 19 +

+ + + + + HEX + &F1B1_CHECK +
+
+ + + 9650 + COMBLOCK2 + MACRO + 190410 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1C1 + 10000 + +

+ + + + + STR + +
+
+ + + 9670 + BLOCKINT + MACRO + 190420 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1C1 + 62F1C1 + + HEX + +
+
+ + + 9690 + BLOCKINT + MACRO + 190430 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + HEX32BYTE + + + + + + +

+ 4 + 35 +

+ + + + + HEX + &F1C1_CHECK +
+
+ + + 9710 + COMBLOCK2 + MACRO + 190450 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1EF + 1000 + +

+ + + + + STR + +
+
+ + + 9730 + BLOCKINT + MACRO + 190460 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1EF + 62F1EF + + HEX + +
+
+ + + 9750 + BLOCKINT + MACRO + 190470 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + HEXASCII40BYTE + + + + + + +

+ 4 + 43 +

+ + + + + HEX + &F1EF_CHECK +
+
+ + + 9770 + COMBLOCK2 + MACRO + 190490 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F197 + 1000 + +

+ + + + + STR + +
+
+ + + 9790 + BLOCKINT + MACRO + 190500 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F197 + 62F197 + + HEX + +
+
+ + + 9810 + BLOCKINT + MACRO + 190510 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F197_CHECK +
+
+ + + 9830 + COMBLOCK2 + MACRO + 190250 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F18B + 1000 + +

+ + + + + STR + +
+
+ + + 9850 + BLOCKINT + MACRO + 190260 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F18B + 62F18B + + HEX + +
+
+ + + 9870 + BLOCKINT + MACRO + 190270 + + + + V:;P:(E); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F18B_CHECK +
+
+ + + 9890 + COMBLOCK2 + MACRO + 190250 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F18C + 1000 + +

+ + + + + STR + +
+
+ + + 9910 + BLOCKINT + MACRO + 190260 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F18C + 62F18C + + HEX + +
+
+ + + 9930 + BLOCKINT + MACRO + 190270 + + + + V:;P:(E); + + + + ASCII15BYTE + + + + + + +

+ 4 + 18 +

+ + + + + HEX + &F18C_CHECK +
+
+ + + 9950 + COMBLOCK2 + MACRO + 190250 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1A1 + 1000 + +

+ + + + + STR + +
+
+ + + 9970 + BLOCKINT + MACRO + 190260 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1A1 + 62F1A1 + + HEX + +
+
+ + + 9990 + BLOCKINT + MACRO + 190270 + + + + V:;P:(E); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F1A1_CHECK +
+
+ + + 10010 + PRINTOUT + MACRO + 190530 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + CMS SW Ver. + + + + + + +

+ &CMS_VER + 0 +

+ + + + + STR + +
+
+ + + 10030 + PRINTOUT + MACRO + 190540 + + + + V:;P:(E|R); + + + + 1-1. F181 : SW Ver. + + + + + + +

+ &F181_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10050 + PRINTOUT + MACRO + 190530 + + + + V:;P:(E|R); + + + + CMS CAL ID + + + + + + +

+ &CMS_CALID_ASCII + 0 +

+ + + + + STR + +
+
+ + + 10070 + PRINTOUT + MACRO + 190550 + + + + V:;P:(E|R); + + + + 1-2. F188 : ROM ID + + + + + + +

+ &F188_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10090 + PRINTOUT + MACRO + 190560 + + + + V:;P:(E|R); + + + + 1-3. F191 : HW Ver. + + + + + + +

+ &F191_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10110 + PRINTOUT + MACRO + 190570 + + + + V:;P:(E|R); + + + + 1-4. F187 : Part No. + + + + + + +

+ &F187_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10130 + PRINTOUT + MACRO + 190580 + + + + V:;P:(E|R); + + + + 1-5. F1A0 : HKMC SW Ver. + + + + + + +

+ &F1A0_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10150 + PRINTOUT + MACRO + 0 + + + + V:;P:(E|R); + + + + CMS Checksum + + + + + + +

+ &CMS_CRC + 0 +

+ + + + + STR + - +
+
+ + + 10170 + PRINTOUT + MACRO + 190590 + + + + V:;P:(E|R); + + + + 1-6. F156 : Checksum + + + + + + +

+ &F156_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10190 + PRINTOUT + MACRO + 190590 + + + + V:;P:(E|R); + + + + 1-6. F156 : Checksum-Reverse + + + + + + +

+ &F156_RCHECK + 0 +

+ + + + + STR + +
+
+ + + 10210 + PRINTOUT + MACRO + 190600 + + + + V:;P:(E|R); + + + + 1-7. F1B0 : ECU Unit No. + + + + + + +

+ &F1B0_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10230 + PRINTOUT + MACRO + 190610 + + + + V:;P:(E|R); + + + + 1-8. F1B1 : ECU Unit 1 S/W Ver. + + + + + + +

+ &F1B1_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10250 + PRINTOUT + MACRO + 190620 + + + + V:;P:(E|R); + + + + 1-9. F1C1 : IVD Data + + + + + + +

+ &F1C1_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10270 + PRINTOUT + MACRO + 190630 + + + + V:;P:(E|R); + + + + 1-10. F1EF : RXSWIN Data + + + + + + +

+ &F1EF_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10290 + PRINTOUT + MACRO + 190640 + + + + V:;P:(E|R); + + + + 1-11. F197 : System Name + + + + + + +

+ &F197_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10310 + PRINTOUT + MACRO + 190580 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + 1-12. F18B : Product Date + + + + + + +

+ &F18B_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10330 + PRINTOUT + MACRO + 190580 + + + + V:;P:(E); + + + + 1-13. F18C : Serial No. + + + + + + +

+ &F18C_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10350 + PRINTOUT + MACRO + 190580 + + + + V:;P:(E); + + + + 1-14. F1A1 : Supplier Code + + + + + + +

+ &F1A1_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10370 + STRCMP + MACRO + 190680 + + + + V:;P:(E|R); + + + + F156_COMP + + + + + + +

+ &CMS_CRC + &F156_RCHECK +

+ + 0 + 0 + + INT + +
+
+ + + 10390 + STRCMP + MACRO + 190660 + + + + V:;P:(E|R); + + + + F181_COMP + + + + + + +

+ &CMS_VER_ASCII + &F181_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 10410 + STRCMP + MACRO + 190670 + + + + V:;P:(E|R); + + + + F188_COMP + + + + + + +

+ &CMS_CALID_ASCII + &F188_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 10430 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&CR != 0) +

+ + + + + NONE + +
+
+ + + 10450 + STRCMP + MACRO + 190680 + + + + V:;P:(E|R); + + + + F187_COMP + + + + + + +

+ &PARTNO_ASCII + &F187_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 10470 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 10490 + STRCMP + MACRO + 190660 + + + + V:;P:(E); + + + + F18B_COMP + + + + + + +

+ &FD3 + &F18B_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 10510 + STRCMP + MACRO + 190670 + + + + V:;P:(E); + + + + F18C_COMP + + + + + + +

+ &TH1_ASCII + &F18C_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 10530 + STRCMP + MACRO + 190680 + + + + V:;P:(E); + + + + F1A1_COMP + + + + + + +

+ &KEFICO_ASCII + &F1A1_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 10550 + WARTEN + MACRO + 0 + + + + + + + + + +

+ + + + + NONE + + + + + + 10570 + WARTEN + MACRO + 0 + + + + + + + + A007_S2 + CAN2_REF + - + SA + + + + + A008_S1 + CAN2 + - + SA + + + + + PLC + 0 + - + STR + + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 10590 + CAN2000INI2 + MACRO + 230050 + + + + V:0000000000000007;P:; + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 10610 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:; + + + + A007_S2 + - + - + NONE + + + + + A008_S1 + - + - + NONE + + + + + PLC + - + - + NONE + + + + + UB_IMAX + 3 + - + A + + + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 +

+ + + + + STR + +
+
+ + + 10630 + WARTEN + MACRO + 0 + wz 30 -> 500, mitech + + + + + + + WZ + 150 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 10650 + WARTEN + MACRO + 0 + + + + + + + + A001_S1 + FGN2 + - + SA + + + + + A009_S1 + FGN2_REF + - + SA + + + + + PLC + 7 + - + STR + + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 10670 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Phase 521-1 + + + + + + +

+ PSD Measurement Start + - +

+ + + + + STR + - +
+
+ + + 10690 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 10710 + RFMEAS_PSD + MACRO + 0 + + + + V:;P:(E); + + + + PSD Measure Start + + + +

+ PSD + 15000000 + 30000000 + 10000 + 100000 + ON + 26000000 + 32 + OFF + S +

+ + + + + DEZ + &ResultPSD +
+
+ + + 10730 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A001_S1 + FGN2 + - + SA + + + + + A007_S2 + - + - + NONE + + + + + A008_S1 + - + - + NONE + + + + + A009_S1 + FGN2_REF + - + SA + + + + + PLC + 7 + - + STR + + + + + WZ + 5000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 10750 + CAN2000INI2 + MACRO + 390010 + + + PCM_CAN_INIT******************************************************* + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + PCMCANINIT + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 10770 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + PCMCANINIT + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 10790 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 10810 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Cert. Publish Tester ID + + + + + + +

+ Tester ID Update + - +

+ + + + + NONE + - +
+
+ + + 10830 + STRCAT + MACRO + 0 + + + + V:;P:(E); + + + + Tester ID Update + + + + + + +

+ &TESTERID_ORG + _ + &TESTERCH + + + + + + + +

+ + + + + STR + &TESTERID +
+
+ + + 10850 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Updated Tester ID + + + + + + +

+ &TESTERID + - +

+ + + + + STR + - +
+
+ + + 10870 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 10890 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 401 + + + + + + +

+ Inserting V2G Root (Part-2) Certification + - +

+ + + + + NONE + - +
+
+ + + 10910 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 10930 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P02 + + + + + + +

+ &SUBCAOEM_P02 + 0 +

+ + + + + STR + - +
+
+ + + 10950 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P20 + + + + + + +

+ &SUBCAOEM_P20 + 0 +

+ + + + + STR + - +
+
+ + + 10970 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - VEHICLE P20 + + + + + + +

+ &SUBCAVHC_P20 + 0 +

+ + + + + STR + - +
+
+ + + 10990 + STRLEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + OEM P02 Sub CA Count + + + +

+ + &SUBCAOEM_P02 +

+ + 0 + 999999 + + INT + &CountP02SubCAOEM +
+
+ + + 11010 + STRLEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + OEM P20 Sub CA Count + + + +

+ + &SUBCAOEM_P20 +

+ + 0 + 999999 + + INT + &CountP20SubCAOEM +
+
+ + + 11030 + STRLEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Vehicle P20 Sub CA Count + + + +

+ + &SUBCAVHC_P20 +

+ + 0 + 999999 + + INT + &CountP20SubCAVHC +
+
+ + + 11050 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (&CountP02SubCAOEM)-3 + 0 +

+ + + + + INT + &CountP02SubCAOEMS +
+
+ + + 11070 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (&CountP20SubCAOEM)-3 + 0 +

+ + + + + INT + &CountP20SubCAOEMS +
+
+ + + 11090 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (&CountP20SubCAVHC)-3 + 0 +

+ + + + + INT + &CountP20SubCAVHCS +
+
+ + + 11110 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCAOEM_P02 + 1857 + 1860 +

+ + + + + STR + &P02SubCAOEMCRC +
+
+ + + 11130 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCAOEM_P20 + 1889 + 1892 +

+ + + + + STR + &P20SubCAOEMCRC +
+
+ + + 11150 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCAVHC_P20 + 1889 + 1892 +

+ + + + + STR + &P20SubCAVHCCRC +
+
+ + + 11170 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P02 CRC + + + + + + +

+ &P02SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 11190 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P20 CRC + + + + + + +

+ &P20SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 11210 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - VEHICLE P20 CRC + + + + + + +

+ &P20SubCAVHCCRC + 0 +

+ + + + + STR + - +
+
+ + + 11230 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 11250 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F153 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 11270 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READ_CERT_COUNT + + + + + + +

+ 1 + 3 +

+ + 62F153 + 62F153 + + HEX + +
+
+ + + 11290 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + DATA_CERT_COUNT + + + + + + +

+ 4 + 9 +

+ + + + + HEX + &CertInfo +
+
+ + + 11310 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Cert. Input Info. + + + + + + +

+ &CertInfo + 0 +

+ + + + + STR + +
+
+ + + 11330 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 01 + + + + + + +

+ 5 + 5 +

+ + 0 + 9 + + INT + &ROOTCOUNT_01 +
+
+ + + 11350 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 02 + + + + + + +

+ 6 + 6 +

+ + 0 + 9 + + INT + &ROOTCOUNT_02 +
+
+ + + 11370 + BLOCKINT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + No. of OEM Leaf (P-02) Cert. + + - + - + - + - + +

+ 4 + 4 +

+ + 0 + 9 + + INT + &OEMCOUNT +
+
+ + + 11390 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + No. of Part-02 Root Cert. + + + + + + +

+ &ROOTCOUNT_01 + &ROOTCOUNT_02 + 0 +

+ + 0 + 9 + + INT + &ROOTCOUNT +
+
+ + + 11410 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Root Cert. Counting + + + + + + +

+ &ROOTCOUNT + 0 +

+ + + + + STR + +
+
+ + + 11430 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-02 OEM Leaf Cert. Counting + + + + + + +

+ &OEMCOUNT + 0 +

+ + + + + STR + +
+
+ + + 11450 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 11470 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ IF + (&ROOTCOUNT > 0) +

+ + + + + NONE + +
+
+ + + 11490 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 11510 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 402 + + + + + + +

+ V2G Root Cert. Initaiilization + - +

+ + + + + NONE + - +
+
+ + + 11530 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 11550 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 11570 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 11590 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 11610 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 11630 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 11650 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 11670 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 11690 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 11710 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 11730 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 11750 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 11770 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 11790 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 11810 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 11830 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 11850 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 11870 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 11890 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + P02 E-PIT DELETE INDEX ADD + + + + + + +

+ 0002 + &P02_EPIT_ROOT + + + + + + + + +

+ + + + + STR + &F115_HEX +
+
+ + + 11910 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 11930 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 11950 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 11970 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 11990 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 12010 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12030 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 12050 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12070 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12090 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 12110 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 12130 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 12150 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 12170 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 12190 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 12210 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12230 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 12250 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 12270 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 12290 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 12310 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + P02 HUBJECT EU DELETE INDEX ADD + + + + + + +

+ 0002 + &P02_HUBEU_ROOT + + + + + + + + +

+ + + + + STR + &F115_HEX +
+
+ + + 12330 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 12350 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12370 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 12390 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12410 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 12430 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12450 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 12470 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12490 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12510 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 12530 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 12550 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 12570 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 12590 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 12610 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 12630 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12650 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 12670 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 12690 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12710 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 12730 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + P02 HUBJECT US DELETE INDEX ADD + + + + + + +

+ 0002 + &P02_HUBUS_ROOT + + + + + + + + +

+ + + + + STR + &F115_HEX +
+
+ + + 12750 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 12770 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12790 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 12810 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12830 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 12850 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12870 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 12890 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12910 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12930 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 12950 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 12970 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 12990 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 13010 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 13030 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 13050 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 13070 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 13090 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 13110 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 13130 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 13150 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + P02 ENTRUST DELETE INDEX ADD + + + + + + +

+ 0002 + &P02_ENTRUST_ROOT + + + + + + + + +

+ + + + + STR + &F115_HEX +
+
+ + + 13170 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 13190 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 13210 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 13230 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 13250 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 13270 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 13290 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 13310 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 13330 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 13350 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 13370 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 13390 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 13410 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 13430 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 13450 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 13470 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 13490 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 13510 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 13530 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 13550 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 13570 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + P02 TESLA DELETE INDEX ADD + + + + + + +

+ 0002 + &P02_TESLA_ROOT + + + + + + + + +

+ + + + + STR + &F115_HEX +
+
+ + + 13590 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 13610 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 13630 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 13650 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 13670 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 13690 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 13710 + PRINTOUT + MACRO + 410010 + + + + V:0000000000000077;P:(E); + + + + ▣ Step 403 + + + + + + +

+ Inserting Part-02 Root Cert. + 0 +

+ + + + + STR + +
+
+ + + 13730 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 10 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 13750 + BERECHNEN + MACRO + 0 + + + + V:0000000000000044;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 13770 + CONTROL + MACRO + 410050 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 13790 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000044;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 13810 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 13830 + WARTEN + MACRO + 0 + + + + V:0000000000000044;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 13850 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000044;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 13870 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000044;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 13890 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000044;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 13910 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000044;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 13930 + STRCAT + MACRO + 410150 + + + + V:0000000000000044;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 13950 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000044;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 13970 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 13990 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000044;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 14010 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000044;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 14030 + CONTROL + MACRO + 410230 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 14050 + WARTEN + MACRO + 0 + + + + V:0000000000000044;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14070 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000044;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 14090 + STRCAT + MACRO + 410270 + + + + V:0000000000000044;P:(E); + + + + Hubject EU Root Cert. Index Add + + + + + + +

+ 0001 + &P02_HUBEU_ROOT + + + + + + + + +

+ + + + + STR + &F115_ROOTCERT_HEX +
+
+ + + 14110 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 14130 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 14150 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000044;P:(E); + + + + HUBJECT EU : WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 14170 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 2500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14190 + BERECHNEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 14210 + CONTROL + MACRO + 410050 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 14230 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000022;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 14250 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 14270 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14290 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000022;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 14310 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000022;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 14330 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000022;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 14350 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000022;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 14370 + STRCAT + MACRO + 410150 + + + + V:0000000000000022;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 14390 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000022;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 14410 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 14430 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 14450 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 14470 + CONTROL + MACRO + 410230 + + + + V:0000000000000022;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 14490 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14510 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000022;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 14530 + STRCAT + MACRO + 410270 + + + + V:0000000000000022;P:(E); + + + + Hubject US Root Cert. Index Add + + + + + + +

+ 0001 + &P02_HUBUS_ROOT + + + + + + + + +

+ + + + + STR + &F115_ROOTCERT_HEX +
+
+ + + 14550 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 14570 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 14590 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000022;P:(E); + + + + HUBJECT US : WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 14610 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 2500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14630 + BERECHNEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 14650 + CONTROL + MACRO + 410050 + + + + V:0000000000000022;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 14670 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000022;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 14690 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 14710 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + + +

+ + + + + NONE + + + + + + 14730 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000022;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 14750 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000022;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 14770 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000022;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 14790 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000022;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 14810 + STRCAT + MACRO + 410150 + + + + V:0000000000000022;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 14830 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000022;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 14850 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 14870 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 14890 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 14910 + CONTROL + MACRO + 410230 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 14930 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14950 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 14970 + STRCAT + MACRO + 410270 + + + + V:0000000000000022;P:(E); + + + + Tesla Root Cert. Index Add + + + + + + +

+ 0001 + &P02_TESLA_ROOT + + + + + + + + +

+ + + + + STR + &F115_ROOTCERT_HEX +
+
+ + + 14990 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 15010 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 15030 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000022;P:(E); + + + + TESLA : WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 15050 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 2500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 15070 + BERECHNEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 15090 + CONTROL + MACRO + 410050 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 15110 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000022;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 15130 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 15150 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + + +

+ + + + + NONE + + + + + + 15170 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000022;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 15190 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000022;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 15210 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000022;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 15230 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000022;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 15250 + STRCAT + MACRO + 410150 + + + + V:0000000000000022;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 15270 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000022;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 15290 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 15310 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 15330 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 15350 + CONTROL + MACRO + 410230 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 15370 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 15390 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 15410 + STRCAT + MACRO + 410270 + + + + V:0000000000000022;P:(E); + + + + Entrust Root Cert. Index Add + + + + + + +

+ 0001 + &P02_ENTRUST_ROOT + + + + + + + + +

+ + + + + STR + &F115_ROOTCERT_HEX +
+
+ + + 15430 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 15450 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 15470 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000022;P:(E); + + + + ENTRUST : WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 15490 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 2500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 15510 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 15530 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 15550 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 15570 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 15590 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 15610 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 15630 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 15650 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 15670 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 15690 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 15710 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 15730 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 15750 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 15770 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 15790 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 15810 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 900 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 15830 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 15850 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + ADDCERTIFICATEINDEX + + + + + + +

+ 0001 + &P02_EPIT_ROOT + + + + + + + + +

+ + + + + STR + &F115_ROOTCERT_HEX +
+
+ + + 15870 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 15890 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_ROOTCERT_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 15910 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + E-PIT : WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 15930 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 15950 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ IF + (&OEMCOUNT > 0) +

+ + + + + NONE + +
+
+ + + 15970 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 15990 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 404 + + + + + + +

+ Part-02 OEM Leaf Cert. Initaiilization + - +

+ + + + + NONE + - +
+
+ + + 16010 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 5000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 16030 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 16050 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16070 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 16090 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 16110 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 16130 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16150 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 16170 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 16190 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 16210 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 16230 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 16250 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 16270 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 16290 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 16310 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 16330 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 16350 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 16370 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 16390 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 16410 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0102FFFF + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 16430 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE OEM Leaf Cert. + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 16450 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16470 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 16490 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0202FFFF + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 16510 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE Sub CA Cert. + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 16530 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16550 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 16570 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 16590 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 411 + + + + + + +

+ Server CSR Gen. + 0 +

+ + + + + STR + +
+
+ + + 16610 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16630 + COMBLOCK2 + MACRO + 420040 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F112 + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 16650 + BLOCKINT + MACRO + 420050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F112 + 62F112 + + HEX + +
+
+ + + 16670 + BLOCKINT + MACRO + 420060 + + + + V:0000000000000077;P:(E); + + + + Read PUBLICKEY (HEX64BYTE) + + + + + + +

+ 4 + 67 +

+ + + + + STR + &F112_PUBLICKEY_HEX +
+
+ + + 16690 + PRINTOUT + MACRO + 420070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F112_PUBLICKEY_HEX + 0 +

+ + + + + STR + +
+
+ + + 16710 + STRCAT + MACRO + 420080 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &MAC_ADDRESS + : + 04 + &F112_PUBLICKEY_HEX + :P:2:OEM:KM8: + &UnitCode + : + &TierCode +

+ + + + + STR + &CSRMESSAGE1 +
+
+ + + 16730 + SENDBYETHERNET + MACRO + 420100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + https://127.0.0.1:8080/api/v1/tbscsr + TRUE + VPKI_CSRGEN_02PRVC + &CSRMESSAGE1 + &TX_RESULT + 1000 +

+ + + + + STR + &TX_RESULT +
+
+ + + 16750 + PARSEMESSAGE + MACRO + 420120 + + + + V:0000000000000077;P:(E); + + + + Server - PCID ASCII + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/PCID + &PCID_ASCII + STR + + + + STR +

+ + + + + STR + +
+
+ + + 16770 + PRINTOUT + MACRO + 420130 + + + + V:0000000000000077;P:(E); + + + + Server - PCID ASCII + + + + + + +

+ &PCID_ASCII + 0 +

+ + + + + STR + +
+
+ + + 16790 + STRCOPY + MACRO + 420140 + + + + V:0000000000000077;P:(E); + + + + Server - PCID ASCII + + + + + + +

+ &PCID_ASCII + 3 + 38 +

+ + + + + STR + &F111_PCID_ASCII +
+
+ + + 16810 + PARSEMESSAGE + MACRO + 420150 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/HASHEDTBSCSR + &CSRHASH_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 16830 + PRINTOUT + MACRO + 420160 + + + + V:0000000000000077;P:(E); + + + + Server - CSR HASH (HEX34BYTE) + + + + + + +

+ &CSRHASH_HEX + 0 +

+ + + + + STR + +
+
+ + + 16850 + STRCAT + MACRO + 420170 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index for CSR HASH + + + + + + +

+ 01 + &CSRHASH_HEX + + + + + + + + +

+ + + + + STR + &F113_CSRHASH_HEX +
+
+ + + 16870 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16890 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 412 + + + + + + +

+ VCMS Signing Hash + 0 +

+ + + + + STR + +
+
+ + + 16910 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 20 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 16930 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 16950 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16970 + CONTROL + MACRO + 420200 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 16990 + COMBLOCK2 + MACRO + 420210 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 17010 + BLOCKINT + MACRO + 420220 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 17030 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 17050 + COMBLOCK2 + MACRO + 420240 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 17070 + BLOCKINT + MACRO + 420250 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 17090 + BLOCKINT + MACRO + 420260 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 17110 + BLOCKINT + MACRO + 420270 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 17130 + STRCAT + MACRO + 420300 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 17150 + SEEDKEY + MACRO + 420320 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 17170 + COMBLOCK2 + MACRO + 420340 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 17190 + COMBLOCK2 + MACRO + 420350 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 17210 + BLOCKINT + MACRO + 420360 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 17230 + CONTROL + MACRO + 420380 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 17250 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 17270 + BERECHNEN + MACRO + 420400 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 17290 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 17310 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF111 + 1000 + +

+ + + + + STR + +
+
+ + + 17330 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &PCID_ASCII + 3000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 17350 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write CSR HASH (15118-2) + + + + + + +

+ 1 + 3 +

+ + 6EF111 + 6EF111 + + HEX + +
+
+ + + 17370 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 17490 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF113 + 1000 + +

+ + + + + STR + +
+
+ + + 17510 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F113_CSRHASH_HEX + 3000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 17530 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write CSR HASH (15118-2) + + + + + + +

+ 1 + 3 +

+ + 6EF113 + 6EF113 + + HEX + +
+
+ + + 17550 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 17570 + COMBLOCK2 + MACRO + 420440 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F114 + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 17590 + BLOCKINT + MACRO + 420450 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F114 + 62F114 + + HEX + +
+
+ + + 17610 + BLOCKINT + MACRO + 420460 + + + + V:0000000000000077;P:(E); + + + + Read Signed HASH (15118-2) 67-BYTE + + + + + + +

+ 5 + 68 +

+ + + + + STR + &F114_CSRHASHSIGNEDVALUE_HEX +
+
+ + + 17630 + PRINTOUT + MACRO + 420470 + + + + V:0000000000000077;P:(E); + + + + Signed HASH (15118-2) 67-BYTE + + + + + + +

+ &F114_CSRHASHSIGNEDVALUE_HEX + 0 +

+ + + + + STR + +
+
+ + + 17650 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &F114_CSRHASHSIGNEDVALUE_HEX + : + &UnitCode + : + &TierCode + : + &VehicleCode + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 17670 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &CSRSIGNEDMESSAGE + : + &MarketCode + : + &BrandCode + + + + + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 17690 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 17710 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 413 + + + + + + +

+ Cert. Issue from Server + 0 +

+ + + + + STR + +
+
+ + + 17730 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 17750 + SENDBYETHERNET + MACRO + 420500 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + https://127.0.0.1:8080/api/v1/certificate + TRUE + VPKI_CERTPUB_02PRVC + &CSRSIGNEDMESSAGE + &TX_RESULT + 1000 +

+ + + + + STR + &TX_RESULT +
+
+ + + 17770 + PARSEMESSAGE + MACRO + 420510 + + + + V:0000000000000077;P:(E); + + + + OEM Leaf Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/LEAFCERTIFICATE + &OEMLEAF_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 17790 + PRINTOUT + MACRO + 420520 + + + + V:0000000000000077;P:(E); + + + + OEM Leaf Cert. from Server + + + + + + +

+ &OEMLEAF_HEX + 0 +

+ + + + + STR + +
+
+ + + 17810 + PARSEMESSAGE + MACRO + 420530 + + + + V:0000000000000077;P:(E); + + + + SubCA Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/SUBCACERTIFICATE + &SUBCA_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 17830 + PRINTOUT + MACRO + 420540 + + + + V:0000000000000077;P:(E); + + + + SubCA Cert. from Server + + + + + + +

+ &SUBCA_HEX + 0 +

+ + + + + STR + +
+
+ + + 17850 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCA_HEX + 1857 + 1860 +

+ + + + + STR + &RP02SubCAOEMCRC +
+
+ + + 17870 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Received Sub CA - OEM P02 CRC + + + + + + +

+ &RP02SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 17890 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P02 CRC + + + + + + +

+ &P02SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 17910 + STRCMP + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part-02 Sub CA CRC Comp + + + + + + +

+ &RP02SubCAOEMCRC + &P02SubCAOEMCRC +

+ + 0 + 0 + + INT + +
+
+ + + 17930 + STRCAT + MACRO + 420550 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0101 + &OEMLEAF_HEX + + + + + + + + +

+ + + + + STR + &F115_OEMLEAF_HEX +
+
+ + + 17950 + STRCAT + MACRO + 420560 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0201 + &SUBCA_HEX + + + + + + + + +

+ + + + + STR + &F115_SUBCA_HEX +
+
+ + + 17970 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 17990 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 414 + + + + + + +

+ Inserting OEM Leaf Cert. + 0 +

+ + + + + STR + +
+
+ + + 18010 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 18030 + CONTROL + MACRO + 420580 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 18050 + COMBLOCK2 + MACRO + 420590 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18070 + BLOCKINT + MACRO + 420600 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 18090 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 18110 + COMBLOCK2 + MACRO + 420620 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18130 + BLOCKINT + MACRO + 420630 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 18150 + BLOCKINT + MACRO + 420640 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 18170 + BLOCKINT + MACRO + 420650 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 18190 + STRCAT + MACRO + 420680 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 18210 + SEEDKEY + MACRO + 420700 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 18230 + COMBLOCK2 + MACRO + 420720 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 18250 + COMBLOCK2 + MACRO + 420730 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18270 + BLOCKINT + MACRO + 420740 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 18290 + CONTROL + MACRO + 420760 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 18310 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 18330 + BERECHNEN + MACRO + 420780 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 18350 + COMBLOCK2 + MACRO + 420820 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 5000 + +

+ + + + + STR + +
+
+ + + 18370 + COMBLOCK2 + MACRO + 420830 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_OEMLEAF_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18390 + BLOCKINT + MACRO + 420840 + + + + V:0000000000000077;P:(E); + + + + OEMLEAFCERTIFICATEDATA + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 18410 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 18430 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 415 + + + + + + +

+ Inserting SubCA Cert. + 0 +

+ + + + + STR + +
+
+ + + 18450 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 18470 + BERECHNEN + MACRO + 420400 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 18490 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 18510 + CONTROL + MACRO + 420850 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 18530 + COMBLOCK2 + MACRO + 420860 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18550 + BLOCKINT + MACRO + 420870 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 18570 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 18590 + COMBLOCK2 + MACRO + 420890 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18610 + BLOCKINT + MACRO + 420900 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 18630 + BLOCKINT + MACRO + 420910 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 18650 + BLOCKINT + MACRO + 420920 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 18670 + STRCAT + MACRO + 420950 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 18690 + SEEDKEY + MACRO + 420970 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 18710 + COMBLOCK2 + MACRO + 420990 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 18730 + COMBLOCK2 + MACRO + 421000 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18750 + BLOCKINT + MACRO + 421010 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 18770 + CONTROL + MACRO + 421030 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 18790 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 18810 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 18830 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 5000 + +

+ + + + + STR + +
+
+ + + 18850 + COMBLOCK2 + MACRO + 421100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_SUBCA_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18870 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000077;P:(E); + + + + SUBCACERTIFICATEDATA + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 18890 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 18910 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 416 + + + + + + +

+ Verifying Cert. Result + 0 +

+ + + + + STR + +
+
+ + + 18930 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 18950 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F111 + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18970 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READPCIDDATA(15118-2) + + + + + + +

+ 1 + 3 +

+ + 62F111 + 62F111 + + HEX + +
+
+ + + 18990 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Read PCID (15118-2) + + + + + + +

+ 5 + 22 +

+ + + + + HEX + &READ_PCID +
+
+ + + 19010 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F111_PCID_ASCII + 0 +

+ + + + + STR + +
+
+ + + 19030 + PRINTOUT + MACRO + 421180 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &READ_PCID + 0 +

+ + + + + STR + +
+
+ + + 19050 + STRCMP + MACRO + 421190 + + + + V:0000000000000077;P:(E); + + + + Compare PCID + + + + + + +

+ &F111_PCID_ASCII + &READ_PCID +

+ + 0 + 0 + + INT + +
+
+ + + 19070 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F153 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 19090 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + Read Cert. Count + + + + + + +

+ 1 + 3 +

+ + 62F153 + 62F153 + + HEX + +
+
+ + + 19110 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + Read Cert. Count + + + + + + +

+ 4 + 9 +

+ + + + + HEX + &CertInfo +
+
+ + + 19130 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Cert. Input Info. + + + + + + +

+ &CertInfo + 0 +

+ + + + + STR + +
+
+ + + 19150 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 01 + + + + + + +

+ 5 + 5 +

+ + 0 + 9 + + INT + &ROOTCOUNT_01 +
+
+ + + 19170 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 02 + + + + + + +

+ 6 + 6 +

+ + 0 + 9 + + INT + &ROOTCOUNT_02 +
+
+ + + 19190 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 03 + + + + + + +

+ 7 + 7 +

+ + 0 + 9 + + INT + &ROOTCOUNT_03 +
+
+ + + 19210 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 04 + + + + + + +

+ 8 + 8 +

+ + 0 + 9 + + INT + &ROOTCOUNT_04 +
+
+ + + 19230 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 05 + + + + + + +

+ 9 + 9 +

+ + 0 + 9 + + INT + &ROOTCOUNT_05 +
+
+ + + 19250 + BERECHNEN + MACRO + 0 + + + + V:0000000000000011;P:(E); + + + + No. of Part-02 Root Cert + + + + + + +

+ &ROOTCOUNT_01 + &ROOTCOUNT_02+&ROOTCOUNT_03 + &ROOTCOUNT_04 + &ROOTCOUNT_05 + 0 +

+ + 1 + 1 + + INT + &ROOTCOUNT +
+
+ + + 19270 + BERECHNEN + MACRO + 0 + + + + V:0000000000000044;P:(E); + + + + No. of Part-02 Root Cert + + + + + + +

+ &ROOTCOUNT_01 + &ROOTCOUNT_02+&ROOTCOUNT_03 + &ROOTCOUNT_04+&ROOTCOUNT_05 + 0 +

+ + 2 + 2 + + INT + &ROOTCOUNT +
+
+ + + 19290 + BERECHNEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + No. of Part-02 Root Cert + + + + + + +

+ &ROOTCOUNT_01 + &ROOTCOUNT_02+&ROOTCOUNT_03 + &ROOTCOUNT_04+&ROOTCOUNT_05 + 0 +

+ + 4 + 4 + + INT + &ROOTCOUNT +
+
+ + + 19310 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Root Cert. Count + + + + + + +

+ &ROOTCOUNT + 0 +

+ + + + + STR + +
+
+ + + 19330 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + No. of OEM Leaf + + + + + + +

+ 4 + 4 +

+ + 1 + 1 + + HEX + &OEM02LEAFCOUNT +
+
+ + + 19350 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + OEM Leaf Cert. Count + + + + + + +

+ &OEM02LEAFCOUNT + 0 +

+ + + + + STR + +
+
+ + + 19370 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + No. of Sub CA + + + + + + +

+ 9 + 9 +

+ + + + + HEX + &SUBCA02COUNT +
+
+ + + 19390 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Sub CA Cert. Count + + + + + + +

+ &SUBCA02COUNT + 0 +

+ + + + + STR + +
+
+ + + 19410 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 19430 + HEXSTRINGTOSTR + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + PCID ASCII + + + + + + +

+ &F111_PCID_ASCII + +

+ + + + + STR + &PCIDServer +
+
+ + + 19450 + STRCAT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TH0 + ; + &HW_TTNR + ; + &MAC_ADDRESS + ; + &PCIDServer + + + +

+ + + + + STR + &ServerPCIDSave +
+
+ + + 19470 + STRCAT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &ServerPCIDSave + ; + &MarketCode + ; + &VehicleCode + + + + + +

+ + + + + STR + &ServerPCIDSave +
+
+ + + 19490 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + PCID Save Format + + + + + + +

+ &ServerPCIDSave + - +

+ + + + + NONE + - +
+
+ + + 19510 + SENDBYETHERNET + MACRO + 170350 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + PCID_SAVE + TRUE + PCID_SAVE + &ServerPCIDSave + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 19530 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 5000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 19550 + CAN2000INI2 + MACRO + 390010 + + + PCM_CAN_INIT******************************************************* + V:0000000000000007;P:(E); + + + + WZ + 5000 + - + MS + + + + + + PCMCANINIT + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 19570 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + PCMCANINIT + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 19590 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 421 + + + + + + +

+ Inserting V2G Root (Part-20) Certification + - +

+ + + + + NONE + - +
+
+ + + 19610 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 19630 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 19650 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F153 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 19670 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READ_CERT_COUNT + + + + + + +

+ 1 + 3 +

+ + 62F153 + 62F153 + + HEX + +
+
+ + + 19690 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + Part20 OEM Cert. + + + + + + +

+ 13 + 13 +

+ + 00 + 09 + + INT + &P20OEMCnt +
+
+ + + 19710 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part20 EVCC Cert. + + + + + + +

+ 14 + 14 +

+ + 00 + 09 + + INT + &P20EVCCCnt +
+
+ + + 19730 + BLOCKINT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part20 V2G Root Cert. Index 01 + + - + - + - + - + +

+ 15 + 15 +

+ + 00 + 09 + + INT + &P20RootCnt_01 +
+
+ + + 19750 + BLOCKINT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part20 V2G Root Cert. Index 02 + + - + - + - + - + +

+ 16 + 16 +

+ + 00 + 09 + + INT + &P20RootCnt_02 +
+
+ + + 19770 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + No. of Part20 V2G Root Cert. + + + + + + +

+ &P20RootCnt_01 + &P20RootCnt_02 + 0 +

+ + 00 + 09 + + INT + &P20RootCnt +
+
+ + + 19790 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + V2G Root P20 Cert. Counting + + + + + + +

+ &P20RootCnt + 0 +

+ + + + + STR + +
+
+ + + 19810 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-20 OEM Leaf Cert. Counting + + + + + + +

+ &P20OEMCnt + 0 +

+ + + + + STR + +
+
+ + + 19830 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-20 EVCC Cert. Counting + + + + + + +

+ &P20EVCCCnt + 0 +

+ + + + + STR + +
+
+ + + 19850 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 19870 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ IF + (&P20RootCnt > 0) +

+ + + + + NONE + +
+
+ + + 19890 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 19910 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 422 + + + + + + +

+ Part-20 Root Cert. Initaiilization + - +

+ + + + + NONE + - +
+
+ + + 19930 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 19950 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 422-1 + + + + + + +

+ Part-20 V2G Root Cert. Initaiilization + - +

+ + + + + NONE + - +
+
+ + + 19970 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 19990 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 20010 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 20030 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 20050 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20070 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 20090 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20110 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20130 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 20150 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 20170 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 20190 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 20210 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 20230 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 20250 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20270 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 20290 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 20310 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20330 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 20350 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + ADDCERTIFICATEINDEX + + + + + + +

+ 0002 + &P20_EPIT_ROOT + + + + + + + + +

+ + + + + STR + &F145_ROOTCERT_HEX +
+
+ + + 20370 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 20390 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_ROOTCERT_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20410 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE Part20 V2G ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 20430 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20450 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 422-2 + + + + + + +

+ Part-20 CharIN Root Cert. Initaiilization + - +

+ + + + + NONE + - +
+
+ + + 20470 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 20490 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 20510 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 20530 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 20550 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20570 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 20590 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20610 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20630 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 20650 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 20670 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 20690 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 20710 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 20730 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 20750 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20770 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 20790 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 20810 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20830 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 20850 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + ADDCERTIFICATEINDEX + + + + + + +

+ 0002 + &P20_CHARIN_ROOT + + + + + + + + +

+ + + + + STR + &F145_ROOTCERT_HEX +
+
+ + + 20870 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 20890 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_ROOTCERT_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20910 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE Part20 CharIN ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 20930 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20950 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 20970 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20990 + PRINTOUT + MACRO + 410010 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 423 + + + + + + +

+ Inserting V2G Root Part-20 Cert. + 0 +

+ + + + + STR + +
+
+ + + 21010 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 21030 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 21050 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 21070 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 21090 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 21110 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21130 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 21150 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 21170 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 21190 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 21210 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 21230 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 21250 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 21270 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 21290 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 21310 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 21330 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 900 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21350 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 21370 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + ADDCERTIFICATEINDEX + + + + + + +

+ 0001 + &P20_EPIT_ROOT + + + + + + + + +

+ + + + + STR + &F145_ROOTCERT_HEX +
+
+ + + 21390 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 21410 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_ROOTCERT_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 21430 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 21450 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 21470 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21490 + PRINTOUT + MACRO + 410010 + + + + V:0000000000000066;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 424 + + + + + + +

+ Inserting Part-20 CharIN Root Cert. + 0 +

+ + + + + STR + +
+
+ + + 21510 + WARTEN + MACRO + 0 + + + + V:0000000000000066;P:(E); + + + + + +

+ + + + + NONE + + + + + + 21530 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 21550 + CONTROL + MACRO + 410050 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 21570 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000066;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 21590 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 21610 + WARTEN + MACRO + 0 + + + + V:0000000000000066;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21630 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000066;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 21650 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000066;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 21670 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000066;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 21690 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000066;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 21710 + STRCAT + MACRO + 410150 + + + + V:0000000000000066;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 21730 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000066;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 21750 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 21770 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000066;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 21790 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000066;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 21810 + CONTROL + MACRO + 410230 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 21830 + WARTEN + MACRO + 0 + + + + V:0000000000000066;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21850 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000066;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 21870 + STRCAT + MACRO + 410270 + + + + V:0000000000000066;P:(E); + + + + ADDCERTIFICATEINDEX + + + + + + +

+ 0001 + &P20_CHARIN_ROOT + + + + + + + + +

+ + + + + STR + &F145_ROOTCERT_HEX +
+
+ + + 21890 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 21910 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 21930 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000066;P:(E); + + + + WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 21950 + WARTEN + MACRO + 0 + + + + V:0000000000000066;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21970 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21990 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ IF + ((&P20OEMCnt >= 01) || (&P20EVCCCnt >= 01)) +

+ + + + + NONE + +
+
+ + + 22010 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 22030 + PRINTOUT + MACRO + 410010 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 425 + + + + + + +

+ Delete Part20 OEM Leaf Cert. + 0 +

+ + + + + STR + +
+
+ + + 22050 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 22070 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 22090 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22110 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 22130 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 22150 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 22170 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22190 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 22210 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 22230 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 22250 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 22270 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 22290 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 22310 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + WZ + 10 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 22330 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 22350 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 22370 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 22390 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22410 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 22430 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 22450 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0102FFFF + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 22470 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + Delete Part20 OEM Leaf Cert. + + + + + + +

+ 1 + 3 +

+ + 000000 + FFFFFF + + HEX + +
+
+ + + 22490 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22510 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 22530 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0202FFFF + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 22550 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + Delete Part20 OEM SubCA Cert. + + + + + + +

+ 1 + 3 +

+ + 000000 + FFFFFF + + HEX + +
+
+ + + 22570 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22590 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 22610 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0302FFFF + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 22630 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + Delete Vehicle Leaf Cert. + + + + + + +

+ 1 + 3 +

+ + 000000 + FFFFFF + + HEX + +
+
+ + + 22650 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22670 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 22690 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0402FFFF + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 22710 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + Delete Vehicle SubCA Cert. + + + + + + +

+ 1 + 3 +

+ + 000000 + FFFFFF + + HEX + +
+
+ + + 22730 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22750 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 22770 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22790 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 431 + + + + + + +

+ Server : Part-20 OEM CSR Gen. + 0 +

+ + + + + STR + +
+
+ + + 22810 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 22830 + COMBLOCK2 + MACRO + 420040 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F142 + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 22850 + BLOCKINT + MACRO + 420050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F142 + 62F142 + + HEX + +
+
+ + + 22870 + BLOCKINT + MACRO + 420060 + + + + V:0000000000000077;P:(E); + + + + Read PUBLICKEY (HEX132BYTE) + + + + + + +

+ 4 + 135 +

+ + + + + STR + &F142_PUBLICKEY_HEX +
+
+ + + 22890 + PRINTOUT + MACRO + 420070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F142_PUBLICKEY_HEX + 0 +

+ + + + + STR + +
+
+ + + 22910 + STRCAT + MACRO + 420080 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &MAC_ADDRESS + : + 04 + &F142_PUBLICKEY_HEX + :P:2:OEM20:KM7: + &UnitCode + : + &TierCode +

+ + + + + STR + &CSRMESSAGE1 +
+
+ + + 22930 + SENDBYETHERNET + MACRO + 420100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + VPKI + TRUE + VPKI_CSRGEN_20PRVC + &CSRMESSAGE1 + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 22950 + PARSEMESSAGE + MACRO + 420120 + + + + V:0000000000000077;P:(E); + + + + Server - PCID ASCII + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/PCID + &F141_PCID20_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 22970 + PRINTOUT + MACRO + 420130 + + + + V:0000000000000077;P:(E); + + + + Server - PCID ASCII + + + + + + +

+ &F141_PCID20_HEX + 0 +

+ + + + + STR + +
+
+ + + 22990 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F141_PCID20_HEX + 3 + 38 +

+ + + + + STR + &PCID_ASCII_OEM20 +
+
+ + + 23010 + PARSEMESSAGE + MACRO + 420150 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/HASHEDTBSCSR + &CSRHASH_HEX_OEM20 + STR + + + + STR +

+ + + + + STR + +
+
+ + + 23030 + PRINTOUT + MACRO + 420160 + + + + V:0000000000000077;P:(E); + + + + Server - CSR HASH (HEX66BYTE) + + + + + + +

+ &CSRHASH_HEX_OEM20 + 0 +

+ + + + + STR + +
+
+ + + 23050 + STRCAT + MACRO + 420170 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index for CSR HASH + + + + + + +

+ 01 + &CSRHASH_HEX_OEM20 + + + + + + + + +

+ + + + + STR + &F143_CSRHASH_HEX +
+
+ + + 23070 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 23090 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 432 + + + + + + +

+ VCMS Signing Hash + 0 +

+ + + + + STR + +
+
+ + + 23110 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 23130 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 23150 + WARTEN + MACRO + 0 + wz 0 > 500, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23170 + CONTROL + MACRO + 420200 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 23190 + COMBLOCK2 + MACRO + 420210 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 23210 + BLOCKINT + MACRO + 420220 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 23230 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23250 + COMBLOCK2 + MACRO + 420240 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 23270 + BLOCKINT + MACRO + 420250 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 23290 + BLOCKINT + MACRO + 420260 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 23310 + BLOCKINT + MACRO + 420270 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 23330 + STRCAT + MACRO + 420300 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 23350 + SEEDKEY + MACRO + 420320 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 23370 + COMBLOCK2 + MACRO + 420340 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 23390 + COMBLOCK2 + MACRO + 420350 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 23410 + BLOCKINT + MACRO + 420360 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 23430 + CONTROL + MACRO + 420380 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 23450 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23470 + BERECHNEN + MACRO + 420400 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 23490 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF141 + 1000 + +

+ + + + + STR + +
+
+ + + 23510 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F141_PCID20_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 23530 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write PCID (15118-20) + + + + + + +

+ 1 + 3 +

+ + 6EF141 + 6EF141 + + HEX + +
+
+ + + 23550 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23570 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF143 + 1000 + +

+ + + + + STR + +
+
+ + + 23590 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F143_CSRHASH_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 23610 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write CSR HASH (15118-20) + + + + + + +

+ 1 + 3 +

+ + 6EF143 + 6EF143 + + HEX + +
+
+ + + 23630 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23650 + COMBLOCK2 + MACRO + 420440 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F144 + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 23670 + BLOCKINT + MACRO + 420450 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F144 + 62F144 + + HEX + +
+
+ + + 23690 + BLOCKINT + MACRO + 420460 + + + + V:0000000000000077;P:(E); + + + + Read Signed HASH (15118-20) 132-BYTE + + + + + + +

+ 5 + 136 +

+ + + + + STR + &F144_CSRHASHSIGNEDVALUE_HEX +
+
+ + + 23710 + PRINTOUT + MACRO + 420470 + + + + V:0000000000000077;P:(E); + + + + Signed HASH (15118-20) 132-BYTE + + + + + + +

+ &F144_CSRHASHSIGNEDVALUE_HEX + 0 +

+ + + + + STR + +
+
+ + + 23730 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &F144_CSRHASHSIGNEDVALUE_HEX + : + &UnitCode + : + &TierCode + : + &VehicleCode + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 23750 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &CSRSIGNEDMESSAGE + : + &MarketCode + : + &BrandCode + + + + + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 23770 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 23790 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 433 + + + + + + +

+ Part-20 OEM Cert. Issue from Server + 0 +

+ + + + + STR + +
+
+ + + 23810 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 23830 + SENDBYETHERNET + MACRO + 420500 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + VPKI + TRUE + VPKI_CERTPUB_20PRVC + &CSRSIGNEDMESSAGE + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 23850 + PARSEMESSAGE + MACRO + 420510 + + + + V:0000000000000077;P:(E); + + + + P20 OEM Leaf Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/LEAFCERTIFICATE + &OEMLEAF_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 23870 + PRINTOUT + MACRO + 420520 + + + + V:0000000000000077;P:(E); + + + + Part 20 OEM Leaf + + + + + + +

+ &OEMLEAF_HEX + 0 +

+ + + + + STR + +
+
+ + + 23890 + PARSEMESSAGE + MACRO + 420530 + + + + V:0000000000000077;P:(E); + + + + P20 SubCA Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/SUBCACERTIFICATE + &SUBCA_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 23910 + PRINTOUT + MACRO + 420540 + + + + V:0000000000000077;P:(E); + + + + Part 20 OEM Sub CA + + + + + + +

+ &SUBCA_HEX + 0 +

+ + + + + STR + +
+
+ + + 23930 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCA_HEX + 1889 + 1892 +

+ + + + + STR + &RP20SubCAOEMCRC +
+
+ + + 23950 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Received Sub CA - OEM P20 CRC + + + + + + +

+ &RP20SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 23970 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P20 CRC + + + + + + +

+ &P20SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 23990 + STRCMP + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part-20 Sub CA CRC Comp + + + + + + +

+ &RP20SubCAOEMCRC + &P20SubCAOEMCRC +

+ + 0 + 0 + + INT + +
+
+ + + 24010 + STRCAT + MACRO + 420550 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0101 + &OEMLEAF_HEX + + + + + + + + +

+ + + + + STR + &F145_OEMLEAF_HEX +
+
+ + + 24030 + STRCAT + MACRO + 420560 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0201 + &SUBCA_HEX + + + + + + + + +

+ + + + + STR + &F145_SUBCA_HEX +
+
+ + + 24050 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 24070 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 434 + + + + + + +

+ Inserting Part-20 OEM Leaf Cert. + 0 +

+ + + + + STR + +
+
+ + + 24090 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 24110 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 24130 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 24150 + CONTROL + MACRO + 420580 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 24170 + COMBLOCK2 + MACRO + 420590 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24190 + BLOCKINT + MACRO + 420600 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 24210 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24230 + COMBLOCK2 + MACRO + 420620 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24250 + BLOCKINT + MACRO + 420630 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 24270 + BLOCKINT + MACRO + 420640 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 24290 + BLOCKINT + MACRO + 420650 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 24310 + STRCAT + MACRO + 420680 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 24330 + SEEDKEY + MACRO + 420700 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 24350 + COMBLOCK2 + MACRO + 420720 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 24370 + COMBLOCK2 + MACRO + 420730 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24390 + BLOCKINT + MACRO + 420740 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 24410 + CONTROL + MACRO + 420760 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 24430 + WARTEN + MACRO + 0 + 600 > 700, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24450 + BERECHNEN + MACRO + 420780 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 24470 + COMBLOCK2 + MACRO + 420820 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 5000 + +

+ + + + + STR + +
+
+ + + 24490 + COMBLOCK2 + MACRO + 420830 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_OEMLEAF_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24510 + BLOCKINT + MACRO + 420840 + + + + V:0000000000000077;P:(E); + + + + OEMLEAFCERTIFICATEDATA + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 24530 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24550 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 435 + + + + + + +

+ Inserting Part-20 SubCA Cert. + 0 +

+ + + + + STR + +
+
+ + + 24570 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 24590 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 24610 + WARTEN + MACRO + 0 + wz 0 > 500, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24630 + CONTROL + MACRO + 420850 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 24650 + COMBLOCK2 + MACRO + 420860 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24670 + BLOCKINT + MACRO + 420870 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 24690 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24710 + COMBLOCK2 + MACRO + 420890 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24730 + BLOCKINT + MACRO + 420900 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 24750 + BLOCKINT + MACRO + 420910 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 24770 + BLOCKINT + MACRO + 420920 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 24790 + STRCAT + MACRO + 420950 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 24810 + SEEDKEY + MACRO + 420970 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 24830 + COMBLOCK2 + MACRO + 420990 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 24850 + COMBLOCK2 + MACRO + 421000 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24870 + BLOCKINT + MACRO + 421010 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 24890 + CONTROL + MACRO + 421030 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 24910 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24930 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 24950 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 5000 + +

+ + + + + STR + +
+
+ + + 24970 + COMBLOCK2 + MACRO + 421100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_SUBCA_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24990 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000077;P:(E); + + + + SUBCACERTIFICATEDATA + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 25010 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 25030 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 436 + + + + + + +

+ Verifying Cert. Result + 0 +

+ + + + + STR + +
+
+ + + 25050 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 25070 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F141 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 25090 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READPCIDDATA(15118-20) + + + + + + +

+ 1 + 3 +

+ + 62F141 + 62F141 + + HEX + +
+
+ + + 25110 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Read PCID (15118-20) + + + + + + +

+ 5 + 22 +

+ + + + + STR + &READ_PCID +
+
+ + + 25130 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-20 PCID (Server) + + + + + + +

+ &PCID_ASCII_OEM20 + 0 +

+ + + + + STR + +
+
+ + + 25150 + PRINTOUT + MACRO + 421180 + + + + V:0000000000000077;P:(E); + + + + Part-20 PCID (VCMS) + + + + + + +

+ &READ_PCID + 0 +

+ + + + + STR + +
+
+ + + 25170 + STRCMP + MACRO + 421190 + + + + V:0000000000000077;P:(E); + + + + Compare PCID + + + + + + +

+ &PCID_ASCII_OEM20 + &READ_PCID +

+ + 0 + 0 + + INT + +
+
+ + + 25190 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 25210 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 20 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 25230 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + ▣ Phase 441 + + + + + + +

+ Server : Part-20 EVCC CSR Gen. + 0 +

+ + + + + STR + +
+
+ + + 25250 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 25270 + COMBLOCK2 + MACRO + 420040 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F152 + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 25290 + BLOCKINT + MACRO + 420050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F152 + 62F152 + + HEX + +
+
+ + + 25310 + BLOCKINT + MACRO + 420060 + + + + V:0000000000000077;P:(E); + + + + Read PUBLICKEY (HEX132BYTE) + + + + + + +

+ 4 + 135 +

+ + + + + STR + &F142_PUBLICKEY_HEX +
+
+ + + 25330 + PRINTOUT + MACRO + 420070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F142_PUBLICKEY_HEX + 0 +

+ + + + + STR + +
+
+ + + 25350 + STRCAT + MACRO + 420080 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &MAC_ADDRESS + : + 04 + &F142_PUBLICKEY_HEX + :V:2:EV:KM7: + &UnitCode + : + &TierCode +

+ + + + + STR + &CSRMESSAGE1 +
+
+ + + 25370 + SENDBYETHERNET + MACRO + 420100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + VPKI + TRUE + VPKI_CSRGEN_20VHCC + &CSRMESSAGE1 + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 25390 + PARSEMESSAGE + MACRO + 420120 + + + + V:0000000000000077;P:(E); + + + + Server - EVCC ID ASCII + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/EVCCID + &F140_EVCCID_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 25410 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F140_EVCCID_HEX + 3 + 42 +

+ + + + + STR + &EVCCID_HEX +
+
+ + + 25430 + PRINTOUT + MACRO + 420130 + + + + V:0000000000000077;P:(E); + + + + Server - EVCC ID ASCII + + + + + + +

+ &F140_EVCCID_HEX + 0 +

+ + + + + STR + +
+
+ + + 25450 + PARSEMESSAGE + MACRO + 420150 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/HASHEDTBSCSR + &CSRHASH_HEX_EV20 + STR + + + + STR +

+ + + + + STR + +
+
+ + + 25470 + PRINTOUT + MACRO + 420160 + + + + V:0000000000000077;P:(E); + + + + Server - CSR HASH (HEX66BYTE) + + + + + + +

+ &CSRHASH_HEX_EV20 + 0 +

+ + + + + STR + +
+
+ + + 25490 + STRCAT + MACRO + 420170 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index for CSR HASH + + + + + + +

+ 03 + &CSRHASH_HEX_EV20 + + + + + + + + +

+ + + + + STR + &F143_CSRHASH_HEX +
+
+ + + 25510 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 25530 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 442 + + + + + + +

+ VCMS Signing Hash + 0 +

+ + + + + STR + +
+
+ + + 25550 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 25570 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 25590 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 25610 + CONTROL + MACRO + 420200 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 25630 + COMBLOCK2 + MACRO + 420210 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 25650 + BLOCKINT + MACRO + 420220 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 25670 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 25690 + COMBLOCK2 + MACRO + 420240 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 25710 + BLOCKINT + MACRO + 420250 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 25730 + BLOCKINT + MACRO + 420260 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 25750 + BLOCKINT + MACRO + 420270 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 25770 + STRCAT + MACRO + 420300 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 25790 + SEEDKEY + MACRO + 420320 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 25810 + COMBLOCK2 + MACRO + 420340 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 25830 + COMBLOCK2 + MACRO + 420350 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 25850 + BLOCKINT + MACRO + 420360 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 25870 + CONTROL + MACRO + 420380 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 25890 + WARTEN + MACRO + 0 + 600 > 700, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 400 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 25910 + BERECHNEN + MACRO + 420400 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 25930 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF140 + 1000 + +

+ + + + + STR + +
+
+ + + 25950 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F140_EVCCID_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 25970 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write EVCC ID (EVCC) + + + + + + +

+ 1 + 3 +

+ + 6EF140 + 6EF140 + + HEX + +
+
+ + + 25990 + WARTEN + MACRO + 0 + 20 > 30, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26010 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF143 + 1000 + +

+ + + + + STR + +
+
+ + + 26030 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F143_CSRHASH_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 26050 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write CSR HASH (EVCC) + + + + + + +

+ 1 + 3 +

+ + 6EF143 + 6EF143 + + HEX + +
+
+ + + 26070 + WARTEN + MACRO + 0 + 20 > 30, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26090 + COMBLOCK2 + MACRO + 420440 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F144 + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 26110 + BLOCKINT + MACRO + 420450 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F144 + 62F144 + + HEX + +
+
+ + + 26130 + BLOCKINT + MACRO + 420460 + + + + V:0000000000000077;P:(E); + + + + Read Signed HASH (EVCC) 132-BYTE + + + + + + +

+ 5 + 136 +

+ + + + + STR + &F144_CSRHASHSIGNEDVALUE_HEX +
+
+ + + 26150 + PRINTOUT + MACRO + 420470 + + + + V:0000000000000077;P:(E); + + + + Signed HASH (EVCC) 132-BYTE + + + + + + +

+ &F144_CSRHASHSIGNEDVALUE_HEX + 0 +

+ + + + + STR + +
+
+ + + 26170 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &F144_CSRHASHSIGNEDVALUE_HEX + : + &UnitCode + : + &TierCode + : + &VehicleCode + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 26190 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &CSRSIGNEDMESSAGE + : + &MarketCode + : + &BrandCode + + + + + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 26210 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 20 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26230 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 443 + + + + + + +

+ Vehicle Cert. Issue from Server + 0 +

+ + + + + STR + +
+
+ + + 26250 + WARTEN + MACRO + 0 + 0 > 100, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26270 + SENDBYETHERNET + MACRO + 420500 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ SENDBYETHERNET + VPKI + TRUE + VPKI_CERTPUB_20VHCC + &CSRSIGNEDMESSAGE + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 26290 + PARSEMESSAGE + MACRO + 420510 + + + + V:0000000000000077;P:(E); + + + + Vehicle Leaf Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/LEAFCERTIFICATE + &OEMLEAF_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 26310 + PRINTOUT + MACRO + 420520 + + + + V:0000000000000077;P:(E); + + + + Vehicle Leaf Cert. + + + + + + +

+ &OEMLEAF_HEX + 0 +

+ + + + + STR + +
+
+ + + 26330 + PARSEMESSAGE + MACRO + 420530 + + + + V:0000000000000077;P:(E); + + + + Vechicle SubCA Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/SUBCACERTIFICATE + &SUBCA_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 26350 + PRINTOUT + MACRO + 420540 + + + + V:0000000000000077;P:(E); + + + + Vechicle SubCA Cert. + + + + + + +

+ &SUBCA_HEX + 0 +

+ + + + + STR + +
+
+ + + 26370 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCA_HEX + 1889 + 1892 +

+ + + + + STR + &RP20SubCAVHCCRC +
+
+ + + 26390 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Received Sub CA - Vehicle P20 CRC + + + + + + +

+ &RP20SubCAVHCCRC + 0 +

+ + + + + STR + - +
+
+ + + 26410 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - Vehicle P20 CRC + + + + + + +

+ &P20SubCAVHCCRC + 0 +

+ + + + + STR + - +
+
+ + + 26430 + STRCMP + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part-20 Vehicle Sub CA CRC Comp + + + + + + +

+ &RP20SubCAVHCCRC + &P20SubCAVHCCRC +

+ + 0 + 0 + + INT + +
+
+ + + 26450 + STRCAT + MACRO + 420550 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0301 + &OEMLEAF_HEX + + + + + + + + +

+ + + + + STR + &F145_OEMLEAF_HEX +
+
+ + + 26470 + STRCAT + MACRO + 420560 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0401 + &SUBCA_HEX + + + + + + + + +

+ + + + + STR + &F145_SUBCA_HEX +
+
+ + + 26490 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 26510 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 444 + + + + + + +

+ Inserting Vehicle Leaf Cert. + 0 +

+ + + + + STR + +
+
+ + + 26530 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 26550 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 26570 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 26590 + CONTROL + MACRO + 420580 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 26610 + COMBLOCK2 + MACRO + 420590 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 26630 + BLOCKINT + MACRO + 420600 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 26650 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26670 + COMBLOCK2 + MACRO + 420620 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 26690 + BLOCKINT + MACRO + 420630 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 26710 + BLOCKINT + MACRO + 420640 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 26730 + BLOCKINT + MACRO + 420650 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 26750 + STRCAT + MACRO + 420680 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 26770 + SEEDKEY + MACRO + 420700 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 26790 + COMBLOCK2 + MACRO + 420720 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 26810 + COMBLOCK2 + MACRO + 420730 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 26830 + BLOCKINT + MACRO + 420740 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 26850 + CONTROL + MACRO + 420760 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 26870 + WARTEN + MACRO + 0 + 600 > 700, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26890 + BERECHNEN + MACRO + 420780 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 26910 + COMBLOCK2 + MACRO + 420820 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 5000 + +

+ + + + + STR + +
+
+ + + 26930 + COMBLOCK2 + MACRO + 420830 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_OEMLEAF_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 26950 + BLOCKINT + MACRO + 420840 + + + + V:0000000000000077;P:(E); + + + + VEHICLE LEAF CERTIFICATE DATA + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 26970 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26990 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 445 + + + + + + +

+ Inserting Vehicle SubCA Cert. + 0 +

+ + + + + STR + +
+
+ + + 27010 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 27030 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 27050 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 27070 + CONTROL + MACRO + 420850 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 27090 + COMBLOCK2 + MACRO + 420860 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 27110 + BLOCKINT + MACRO + 420870 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 27130 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 27150 + COMBLOCK2 + MACRO + 420890 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 27170 + BLOCKINT + MACRO + 420900 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 27190 + BLOCKINT + MACRO + 420910 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 27210 + BLOCKINT + MACRO + 420920 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 27230 + STRCAT + MACRO + 420950 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 27250 + SEEDKEY + MACRO + 420970 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 27270 + COMBLOCK2 + MACRO + 420990 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 27290 + COMBLOCK2 + MACRO + 421000 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 27310 + BLOCKINT + MACRO + 421010 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 27330 + CONTROL + MACRO + 421030 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 27350 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 27370 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 27390 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 5000 + +

+ + + + + STR + +
+
+ + + 27410 + COMBLOCK2 + MACRO + 421100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_SUBCA_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 27430 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000077;P:(E); + + + + SUBCACERTIFICATEDATA + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 27450 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 27470 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 446 + + + + + + +

+ Verifying Cert. Result + 0 +

+ + + + + STR + +
+
+ + + 27490 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 27510 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F140 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 27530 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READPCIDDATA(15118-20) + + + + + + +

+ 1 + 3 +

+ + 62F140 + 62F140 + + HEX + +
+
+ + + 27550 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Read EVCC ID (15118-20) + + + + + + +

+ 5 + 24 +

+ + + + + HEX + &READ_EVCCID +
+
+ + + 27570 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + EVCC ID (Server) + + + + + + +

+ &EVCCID_HEX + 0 +

+ + + + + STR + +
+
+ + + 27590 + PRINTOUT + MACRO + 421180 + + + + V:0000000000000077;P:(E); + + + + EVCC ID (VCMS) + + + + + + +

+ &READ_EVCCID + 0 +

+ + + + + STR + +
+
+ + + 27610 + STRCMP + MACRO + 421190 + + + + V:0000000000000077;P:(E); + + + + Compare EVCC ID + + + + + + +

+ &EVCCID_HEX + &READ_EVCCID +

+ + 0 + 0 + + INT + +
+
+ + + 27630 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F153 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 27650 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READ_CERT_COUNT + + + + + + +

+ 1 + 3 +

+ + 62F153 + 62F153 + + HEX + +
+
+ + + 27670 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + Part20 OEM Cert. + + + + + + +

+ 13 + 13 +

+ + 1 + 1 + + INT + &P20OEMCnt +
+
+ + + 27690 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part20 EVCC Cert. + + + + + + +

+ 14 + 14 +

+ + 1 + 1 + + INT + &P20EVCCCnt +
+
+ + + 27710 + BLOCKINT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part20 V2G Root Cert. Index 01 + + - + - + - + - + +

+ 15 + 15 +

+ + 0 + 1 + + INT + &P20RootCnt_01 +
+
+ + + 27730 + BLOCKINT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part20 V2G Root Cert. Index 02 + + - + - + - + - + +

+ 16 + 16 +

+ + 0 + 1 + + INT + &P20RootCnt_02 +
+
+ + + 27750 + BERECHNEN + MACRO + 0 + + + + V:0000000000000011;P:(E); + + + + No. of Part20 V2G Root Cert. + + + + + + +

+ &P20RootCnt_01 + &P20RootCnt_02 + 0 +

+ + 1 + 1 + + INT + &P20RootCnt +
+
+ + + 27770 + BERECHNEN + MACRO + 0 + + + + V:0000000000000066;P:(E); + + + + No. of Part20 V2G Root Cert. + + + + + + +

+ &P20RootCnt_01 + &P20RootCnt_02 + 0 +

+ + 2 + 2 + + INT + &P20RootCnt +
+
+ + + 27790 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + V2G Root P20 Cert. Counting + + + + + + +

+ &P20RootCnt + 0 +

+ + + + + STR + +
+
+ + + 27810 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-20 OEM Leaf Cert. Counting + + + + + + +

+ &P20OEMCnt + 0 +

+ + + + + STR + +
+
+ + + 27830 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-20 EVCC Cert. Counting + + + + + + +

+ &P20EVCCCnt + 0 +

+ + + + + STR + +
+
+ + + 27850 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 27870 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Phase 521-2 + + + + + + +

+ PSD Measurement Read + - +

+ + + + + STR + - +
+
+ + + 27890 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 27910 + RFMEAS_PSD + MACRO + 0 + + + + V:;P:(E); + + + + PSD Evaluation + + + +

+ PSD + 15000000 + 30000000 + 10000 + 100000 + ON + 26000000 + 32 + OFF + READ +

+ + -90 + -60 + + DEZ + &ResultPSD +
+
+ + + 27930 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 40 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 27950 + WARTEN + MACRO + 0 + + + + + + + + WZ + - + - + NONE + + + + + + + +

+ + + + + NONE + + + + + + 27970 + WARTEN + MACRO + 0 + + + + + + + + + +

+ + + + + NONE + + + + + + 27990 + WARTEN + MACRO + 0 + + + PLC_OFF5********************************************************** + + + + + A033_SV + - + - + NONE + + + + + A035_SV + - + - + NONE + + + + + IQ_UMAX + - + - + NONE + + + + + PLC + - + - + NONE + + + + + UB + - + - + NONE + + + + + UB_IMAX + 10 + - + A + + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 28010 + PRINTOUT + MACRO + 610000 + + + PCM_CAN_INIT******************************************************* + V:;P:(E); + + + + IQ_UMAX + 6 + - + V + + + + + UB + 12 + - + V + + + + + UB_IMAX + 3 + - + A + + + + + + PRINTMODULENAME + + + + + + +

+ CAN_INIT + 0 +

+ + + + + STR + +
+
+ + + 28030 + CAN2000INI2 + MACRO + 630040 + CAN Port Close + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 28050 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 28070 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 28090 + CAN2000INI2 + MACRO + 610020 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 28110 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A033_SV + UB + - + SA + + + + + A035_SV + UB + - + SA + + + + + + + +

+ + + + + NONE + + + + + + 28130 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 28150 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 321 + + + + + + +

+ Secure Debug (PCM) Check + +

+ + + + + NONE + - +
+
+ + + 28170 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28190 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + UDS DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 28210 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 28230 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28250 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 322 + + + + + + +

+ PCM Password Generation + 0 +

+ + + + + STR + - +
+
+ + + 28270 + KUNDENDAT1 + MACRO + 0 + SFRV (Seed Fixed Random Variable) - 010 = 호기번호 ASCII 4-Byte (HEXString) + + + V:;P:(E); + + + + + + + + + + +

+ SFRV + 010 + - + - + - + - +

+ + + + + HEX + &SFRV010 +
+
+ + + 28290 + KUNDENDAT1 + MACRO + 0 + SFRV (Seed Fixed Random Variable) : 020 = 일시분초 (ddHHmmss) 4-Byte + + + V:;P:(E); + + + + + + + + + + +

+ SFRV + 020 + - + - + - + - +

+ + + + + HEX + &SFRV020 +
+
+ + + 28310 + KUNDENDAT1 + MACRO + 0 + RN (Random Number) : 320 = 32-Byte Password 생성. 4-Byte 2개 변수를 입력하여 생성. + + + V:;P:(E); + + + + + + + + + + +

+ RN + 320 + &SFRV010 + &SFRV020 + - + - +

+ + + + + HEX + &RN320 +
+
+ + + 28330 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Password Seed RV 01 + + + + + + +

+ &SFRV010 + - +

+ + + + + STR + - +
+
+ + + 28350 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Password Seed RV 02 + + + + + + +

+ &SFRV020 + - +

+ + + + + STR + - +
+
+ + + 28370 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + PCM Password + + + + + + +

+ &RN320 + - +

+ + + + + STR + - +
+
+ + + 28390 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F151 + 1000 + +

+ + + + + STR + +
+
+ + + 28410 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Activation + + + + + + +

+ 1 + 3 +

+ + 62F151 + 62F151 + + HEX + +
+
+ + + 28430 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status + + + + + + +

+ 4 + 4 +

+ + 00 + FF + + HEX + &PCM_SB +
+
+ + + 28450 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Firmware Tamper Det. Status + + + + + + +

+ 5 + 5 +

+ + 00 + FF + + HEX + &PCM_FTD +
+
+ + + 28470 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Status + + + + + + +

+ 6 + 6 +

+ + 00 + FF + + HEX + &PCM_SDS +
+
+ + + 28490 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Config Lock Status + + + + + + +

+ 7 + 7 +

+ + 00 + FF + + HEX + &PCM_CFGLock +
+
+ + + 28510 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28530 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 28550 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28570 + CONTROL + MACRO + 420580 + + + + V:;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 28590 + COMBLOCK2 + MACRO + 420590 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 28610 + BLOCKINT + MACRO + 420600 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 28630 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28650 + COMBLOCK2 + MACRO + 420620 + + + + V:;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 28670 + BLOCKINT + MACRO + 420630 + + + + V:;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 28690 + BLOCKINT + MACRO + 420640 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 28710 + BLOCKINT + MACRO + 420650 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 28730 + STRCAT + MACRO + 420680 + + + + V:;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 28750 + SEEDKEY + MACRO + 420700 + + + + V:;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 28770 + COMBLOCK2 + MACRO + 420720 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 28790 + COMBLOCK2 + MACRO + 420730 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 28810 + BLOCKINT + MACRO + 420740 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 28830 + CONTROL + MACRO + 420760 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 28850 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 900 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 28870 + PRINTOUT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 323 + + + + + + +

+ PCM Memory Partition Swap (A→B) + 0 +

+ + + + + STR + - +
+
+ + + 28890 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28910 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + +

+ + + + + STR + +
+
+ + + 28930 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 10F1FB + 5000 + +

+ + + + + STR + +
+
+ + + 28950 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + + + + + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 28970 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + Command + + + + + + +

+ 4 + 4 +

+ + 10 + 10 + + HEX + +
+
+ + + 28990 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (A) + + - + - + - + - + +

+ 5 + 5 +

+ + 00 + FF + + HEX + &PartitionStatus +
+
+ + + 29010 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29030 + CONTROL + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ IF + (&PartitionStatus != 11) +

+ + + + + INT + +
+
+ + + 29050 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + +

+ + + + + STR + +
+
+ + + 29070 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 130BF1FB + 5000 + +

+ + + + + STR + +
+
+ + + 29090 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + + + + + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 29110 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Command + + - + - + - + - + +

+ 4 + 4 +

+ + 13 + 13 + + HEX + +
+
+ + + 29130 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (B) + + - + - + - + - + +

+ 5 + 5 +

+ + 0B + 0B + + HEX + +
+
+ + + 29150 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29170 + CONTROL + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 29190 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29210 + BERECHNEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 29230 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29250 + CONTROL + MACRO + 420580 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 29270 + COMBLOCK2 + MACRO + 420590 + + + + V:0000000000000007;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 29290 + BLOCKINT + MACRO + 420600 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 29310 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29330 + COMBLOCK2 + MACRO + 420620 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 29350 + BLOCKINT + MACRO + 420630 + + + + V:0000000000000007;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 29370 + BLOCKINT + MACRO + 420640 + + + + V:0000000000000007;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 29390 + BLOCKINT + MACRO + 420650 + + + + V:0000000000000007;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 29410 + STRCAT + MACRO + 420680 + + + + V:0000000000000007;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 29430 + SEEDKEY + MACRO + 420700 + + + + V:0000000000000007;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 29450 + COMBLOCK2 + MACRO + 420720 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 29470 + COMBLOCK2 + MACRO + 420730 + + + + V:0000000000000007;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 29490 + BLOCKINT + MACRO + 420740 + + + + V:0000000000000007;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 29510 + CONTROL + MACRO + 420760 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 29530 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29550 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 324 + + + + + + +

+ Secure Boot Enable + - +

+ + + + + STR + - +
+
+ + + 29570 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 110 + 0 +

+ + + + + INT + &SBResult +
+
+ + + 29590 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29610 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&PCM_SB != 3) +

+ + + + + NONE + +
+
+ + + 29630 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29650 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF150 + 5000 + +

+ + + + + STR + +
+
+ + + 29670 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 01 + 5000 + +

+ + + + + STR + +
+
+ + + 29690 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Secure Boot Enable + + + + + + +

+ 1 + 3 +

+ + 6EF150 + 6EF150 + + HEX + +
+
+ + + 29710 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Action Result + + + + + + +

+ 1 + 1 +

+ + 6E + 6E + + HEX + &SBResult +
+
+ + + 29730 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29750 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ IF + (&SBResult != 110) +

+ + + + + NONE + +
+
+ + + 29770 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &SBResult +
+
+ + + 29790 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 29810 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 29830 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29850 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 325 + + + + + + +

+ FTD Run Disable + 0 +

+ + + + + STR + - +
+
+ + + 29870 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 110 + 0 +

+ + + + + INT + &FTDResult +
+
+ + + 29890 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29910 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&PCM_FTD != 2)&&(&SBResult == 110) +

+ + + + + NONE + +
+
+ + + 29930 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29950 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF150 + 5000 + +

+ + + + + STR + +
+
+ + + 29970 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 02 + 5000 + +

+ + + + + STR + +
+
+ + + 29990 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + F/W Tamper Det. Disable + + + + + + +

+ 1 + 3 +

+ + 6EF150 + 6EF150 + + HEX + +
+
+ + + 30010 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Action Result + + + + + + +

+ 1 + 1 +

+ + 6E + 6E + + HEX + &FTDResult +
+
+ + + 30030 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30050 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ELSE + +

+ + + + + NONE + +
+
+ + + 30070 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &FTDResult +
+
+ + + 30090 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 30110 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30130 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 326 + + + + + + +

+ Secure Debug Enable + - +

+ + + + + STR + - +
+
+ + + 30150 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 110 + 0 +

+ + + + + INT + &SDSResult +
+
+ + + 30170 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30190 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&PCM_SDS!= 1)&&(&FTDResult == 110) +

+ + + + + NONE + +
+
+ + + 30210 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30230 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF150 + 5000 + +

+ + + + + STR + +
+
+ + + 30250 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 03 + 5000 + +

+ + + + + STR + +
+
+ + + 30270 + COMBLOCK2 + MACRO + 421100 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &RN320 + 5000 + +

+ + + + + STR + +
+
+ + + 30290 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Secure Debug Enable + + + + + + +

+ 1 + 3 +

+ + 6EF150 + 6EF150 + + HEX + +
+
+ + + 30310 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Action Result + + + + + + +

+ 1 + 1 +

+ + 6E + 6E + + HEX + &SDSResult +
+
+ + + 30330 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30350 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ELSE + +

+ + + + + NONE + +
+
+ + + 30370 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &SDSResult +
+
+ + + 30390 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 30410 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30430 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 327 + + + + + + +

+ Confguration Lock + - +

+ + + + + STR + - +
+
+ + + 30450 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30470 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&PCM_CFGLock != 1)&&(&SDSResult == 110) +

+ + + + + NONE + +
+
+ + + 30490 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30510 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF150 + 5000 + +

+ + + + + STR + +
+
+ + + 30530 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 04 + 5000 + +

+ + + + + STR + +
+
+ + + 30550 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Configuration Lock + + + + + + +

+ 1 + 3 +

+ + 6EF150 + 6EF150 + + HEX + +
+
+ + + 30570 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30590 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 30610 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30630 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30650 + PRINTOUT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 328 + + + + + + +

+ PCM Memory Partition Swap (B→A) + 0 +

+ + + + + STR + - +
+
+ + + 30670 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30690 + BERECHNEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 30710 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30730 + CONTROL + MACRO + 420580 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 30750 + COMBLOCK2 + MACRO + 420590 + + + + V:0000000000000007;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 30770 + BLOCKINT + MACRO + 420600 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 30790 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30810 + COMBLOCK2 + MACRO + 420620 + + + + V:0000000000000007;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 30830 + BLOCKINT + MACRO + 420630 + + + + V:0000000000000007;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 30850 + BLOCKINT + MACRO + 420640 + + + + V:0000000000000007;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 30870 + BLOCKINT + MACRO + 420650 + + + + V:0000000000000007;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 30890 + STRCAT + MACRO + 420680 + + + + V:0000000000000007;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 30910 + SEEDKEY + MACRO + 420700 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 30930 + COMBLOCK2 + MACRO + 420720 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 30950 + COMBLOCK2 + MACRO + 420730 + + + + V:0000000000000007;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 30970 + BLOCKINT + MACRO + 420740 + + + + V:0000000000000007;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 30990 + CONTROL + MACRO + 420760 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 31010 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31030 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + +

+ + + + + STR + +
+
+ + + 31050 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 10F1FB + 5000 + +

+ + + + + STR + +
+
+ + + 31070 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + - + - + - + - + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 31090 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + Command + + + + + + +

+ 4 + 4 +

+ + 10 + 10 + + HEX + +
+
+ + + 31110 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (B) + + - + - + - + - + +

+ 5 + 5 +

+ + 00 + FF + + HEX + +
+
+ + + 31130 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31150 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + +

+ + + + + STR + +
+
+ + + 31170 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 130AF1FB + 20000 + +

+ + + + + STR + +
+
+ + + 31190 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + + + + + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 31210 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Command + + - + - + - + - + +

+ 4 + 4 +

+ + 13 + 13 + + HEX + +
+
+ + + 31230 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (A) + + - + - + - + - + +

+ 5 + 5 +

+ + 0A + 0A + + HEX + +
+
+ + + 31250 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31270 + PRINTOUT + MACRO + 610000 + + + PCM_CAN_INIT******************************************************* + V:;P:(E); + + + + PRINTMODULENAME + + + + + + +

+ CAN_INIT + 0 +

+ + + + + STR + +
+
+ + + 31290 + CAN2000INI2 + MACRO + 630040 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 31310 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:; + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 +

+ + + + + STR + +
+
+ + + 31330 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31350 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A019_SV + UB + A038 + NONE + + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31370 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + ▣ Step 329 + + + + + + +

+ Secure Debug (CMS) Check + +

+ + + + + NONE + - +
+
+ + + 31390 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31410 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + UDS DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 31430 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 31450 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31470 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 330 + + + + + + +

+ CMS Password Generation + 0 +

+ + + + + STR + - +
+
+ + + 31490 + KUNDENDAT1 + MACRO + 0 + SFRV (Seed Fixed Random Variable) - 010 = 호기번호 ASCII 4-Byte (HEXString) + + + V:;P:(E); + + + + + + + + + + +

+ SFRV + 010 + - + - + - + - +

+ + + + + HEX + &SFRV010 +
+
+ + + 31510 + KUNDENDAT1 + MACRO + 0 + SFRV (Seed Fixed Random Variable) : 021 = 일시분초 (ssmmHHdd) 4-Byte + + + V:;P:(E); + + + + + + + + + + +

+ SFRV + 021 + - + - + - + - +

+ + + + + HEX + &SFRV021 +
+
+ + + 31530 + KUNDENDAT1 + MACRO + 0 + RN (Random Number) : 160 = 16-Byte Password 생성. 4-Byte 2개 변수를 입력하여 생성. + + + V:;P:(E); + + + + + + + + + + +

+ RN + 160 + &SFRV010 + &SFRV021 + - + - +

+ + + + + HEX + &RN160 +
+
+ + + 31550 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Password Seed RV 01 + + + + + + +

+ &SFRV010 + - +

+ + + + + STR + - +
+
+ + + 31570 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Password Seed RV 02 + + + + + + +

+ &SFRV021 + - +

+ + + + + STR + - +
+
+ + + 31590 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + CMS Password + + + + + + +

+ &RN160 + - +

+ + + + + STR + - +
+
+ + + 31610 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31630 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F14A + 1000 + +

+ + + + + STR + +
+
+ + + 31650 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Activation + + + + + + +

+ 1 + 3 +

+ + 62F14A + 62F14A + + HEX + +
+
+ + + 31670 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #1 + + + + + + +

+ 4 + 4 +

+ + 00 + FF + + HEX + &PCM_SB1 +
+
+ + + 31690 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #2 + + + + + + +

+ 5 + 5 +

+ + 00 + FF + + HEX + &PCM_SB2 +
+
+ + + 31710 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #3 + + + + + + +

+ 6 + 6 +

+ + 00 + FF + + HEX + &PCM_SB3 +
+
+ + + 31730 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #4 + + + + + + +

+ 7 + 7 +

+ + 00 + FF + + HEX + &PCM_SB4 +
+
+ + + 31750 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #5 + + + + + + +

+ 8 + 8 +

+ + 00 + FF + + HEX + &PCM_SB5 +
+
+ + + 31770 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31790 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ IF + (&PCM_SB3 == 0) +

+ + + + + INT + +
+
+ + + 31810 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 31830 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31850 + CONTROL + MACRO + 420580 + + + + V:;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 31870 + COMBLOCK2 + MACRO + 420590 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 31890 + BLOCKINT + MACRO + 420600 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 31910 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31930 + COMBLOCK2 + MACRO + 420620 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 31950 + BLOCKINT + MACRO + 420630 + + + + V:;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 31970 + BLOCKINT + MACRO + 420640 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 31990 + BLOCKINT + MACRO + 420650 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 32010 + STRCAT + MACRO + 420680 + + + + V:;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 32030 + SEEDKEY + MACRO + 420700 + + + + V:;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_CMS + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 32050 + COMBLOCK2 + MACRO + 420720 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 32070 + COMBLOCK2 + MACRO + 420730 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 32090 + BLOCKINT + MACRO + 420740 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 32110 + CONTROL + MACRO + 420760 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 32130 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 32150 + PRINTOUT + MACRO + 420770 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ &VALUE + 0 +

+ + + + + STR + +
+
+ + + 32170 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 331 + + + + + + +

+ CMS Secure Debug Enable + 0 +

+ + + + + STR + - +
+
+ + + 32190 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2EF149 + 5000 + +

+ + + + + STR + +
+
+ + + 32210 + COMBLOCK2 + MACRO + 421100 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &RN160 + 5000 + +

+ + + + + STR + +
+
+ + + 32230 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Secure Debug Enable + + + + + + +

+ 1 + 3 +

+ + 6EF149 + 6EF149 + + HEX + +
+
+ + + 32250 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 1200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 32270 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 32290 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32310 + PRINTOUT + MACRO + 610000 + + + PCM_CAN_INIT******************************************************* + V:;P:(E); + + + + A033_SV + - + - + NONE + + + + + A035_SV + - + - + NONE + + + + + + Power Off + + + + + + +

+ VCMS and CAN Channel Reset + 0 +

+ + + + + STR + +
+
+ + + 32330 + CAN2000INI2 + MACRO + 630040 + CAN Port Close + + + V:0000000000000007;P:(E); + + + + WZ + 200 + - + MS + + + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 32350 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 32370 + CAN2000INI2 + MACRO + 610020 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 32390 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + WZ + 200 + - + MS + + + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 32410 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32430 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A033_SV + UB + - + SA + + + + + A035_SV + UB + - + SA + + + + + + + +

+ + + + + NONE + + + + + + 32450 + WARTEN + MACRO + 0 + 300 > 500, mitech 2023.5.29 + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 32470 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 332 + + + + + + +

+ Secure Debug (PCM) Verification + +

+ + + + + NONE + - +
+
+ + + 32490 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32510 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + UDS DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 32530 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 32550 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32570 + COMBLOCK2 + MACRO + 170480 + + + + V:;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 32590 + BLOCKINT + MACRO + 170490 + + + + V:;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 32610 + BLOCKINT + MACRO + 170500 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 32630 + BLOCKINT + MACRO + 170510 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 32650 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32670 + STRCAT + MACRO + 170540 + + + + V:;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 32690 + SEEDKEY + MACRO + 170560 + + + + V:;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 32710 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32730 + COMBLOCK2 + MACRO + 170580 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 32750 + COMBLOCK2 + MACRO + 170590 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 32770 + BLOCKINT + MACRO + 170600 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 6712 + 6712 + + HEX + +
+
+ + + 32790 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 32810 + COMBLOCK2 + MACRO + 170620 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + WRITEF18B (HSM Verify) + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF18B + 1000 + +

+ + + + + STR + +
+
+ + + 32830 + COMBLOCK2 + MACRO + 170630 + + + + V:;P:(E); + + + + WRITEF18B (HSM Verify) + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &FD3 + 2000 + +

+ + + + + STR + +
+
+ + + 32850 + BLOCKINT + MACRO + 170640 + + + + V:;P:(E); + + + + WRITEF18B (HSM Verify) + + + + + + +

+ 1 + 3 +

+ + 6EF18B + 6EF18B + + HEX + +
+
+ + + 32870 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32890 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 32910 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F151 + 1000 + +

+ + + + + STR + +
+
+ + + 32930 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Activation + + + + + + +

+ 1 + 3 +

+ + 62F151 + 62F151 + + HEX + +
+
+ + + 32950 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status + + + + + + +

+ 4 + 4 +

+ + 03 + 03 + + HEX + &PCM_SB +
+
+ + + 32970 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Firmware Tamper Det. Status + + + + + + +

+ 5 + 5 +

+ + 02 + 02 + + HEX + &PCM_FTD +
+
+ + + 32990 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Status + + + + + + +

+ 6 + 6 +

+ + 01 + 01 + + HEX + &PCM_SDS +
+
+ + + 33010 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Config Lock Status + + + + + + +

+ 7 + 7 +

+ + 01 + 01 + + HEX + &PCM_CFGLock +
+
+ + + 33030 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 33050 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 333 + + + + + + +

+ Secure Debug (CSM) Verification + +

+ + + + + NONE + - +
+
+ + + 33070 + CAN2000INI2 + MACRO + 630040 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 33090 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + A019_SV + - + - + NONE + + + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 +

+ + + + + STR + +
+
+ + + 33110 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 33130 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + UDS DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 33150 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 33170 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 33190 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F14A + 8000 + +

+ + + + + STR + +
+
+ + + 33210 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Activation + + + + + + +

+ 1 + 3 +

+ + 62F14A + 62F14A + + HEX + +
+
+ + + 33230 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #1 + + + + + + +

+ 4 + 4 +

+ + 01 + 01 + + HEX + &PCM_SB1 +
+
+ + + 33250 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #2 + + + + + + +

+ 5 + 5 +

+ + 01 + 01 + + HEX + &PCM_SB2 +
+
+ + + 33270 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #3 + + + + + + +

+ 6 + 6 +

+ + 01 + 01 + + HEX + &PCM_SB3 +
+
+ + + 33290 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #4 + + + + + + +

+ 7 + 7 +

+ + 01 + 01 + + HEX + &PCM_SB4 +
+
+ + + 33310 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #5 + + + + + + +

+ 8 + 8 +

+ + 01 + 01 + + HEX + &PCM_SB5 +
+
+ + + 33330 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 33350 + PRINTOUT + MACRO + 620010 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 301 + + + + + + +

+ DTC_CLEAR (PCM) + 0 +

+ + + + + STR + +
+
+ + + 33370 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + UDS Diagnosis + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 33390 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 33410 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 33430 + COMBLOCK2 + MACRO + 620070 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 14FFFFFF + 1000 + +

+ + + + + STR + +
+
+ + + 33450 + BLOCKINT + MACRO + 620080 + + + + V:;P:(E); + + + + POSITIVE + + + + + + +

+ 1 + 1 +

+ + 54 + 54 + + HEX + +
+
+ + + 33470 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 33490 + COMBLOCK2 + MACRO + 620100 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 190209 + 1000 + +

+ + + + + STR + +
+
+ + + 33510 + BLOCKINT + MACRO + 620110 + + + + V:;P:(E); + + + + POSITIVE + + + + + + +

+ 1 + 2 +

+ + 5902 + 5902 + + HEX + +
+
+ + + 33530 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 33550 + PRINTOUT + MACRO + 630000 + + + CMS_CAN_INIT******************************************************* + V:;P:(E); + + + + PRINTMODULENAME + + + + + + +

+ CAN_INIT + 0 +

+ + + + + STR + +
+
+ + + 33570 + CAN2000INI2 + MACRO + 630040 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 33590 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 +

+ + + + + STR + +
+
+ + + 33610 + WARTEN + MACRO + 0 + 500 > 700, mitech + + + V:;P:(E); + + + + WZ + 700 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 33630 + PRINTOUT + MACRO + 640010 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 302 + + + + + + +

+ DTC_CLEAR (CMS) + 0 +

+ + + + + STR + +
+
+ + + 33650 + COMBLOCK2 + MACRO + 640030 + + + + V:;P:(E); + + + + UDS_DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 5000 + +

+ + + + + STR + +
+
+ + + 33670 + BLOCKINT + MACRO + 640040 + + + + V:;P:(E); + + + + POSITIVE + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 33690 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 33710 + COMBLOCK2 + MACRO + 640060 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 14FFFFFF + 5000 + +

+ + + + + STR + +
+
+ + + 33730 + BLOCKINT + MACRO + 640070 + + + + V:;P:(E); + + + + POSITIVE + + + + + + +

+ 1 + 1 +

+ + 54 + 54 + + HEX + +
+
+ + + 33750 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 33770 + COMBLOCK2 + MACRO + 640090 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 190209 + 5000 + +

+ + + + + STR + +
+
+ + + 33790 + BLOCKINT + MACRO + 640100 + + + + V:;P:(E); + + + + POSITIVE + + + + + + +

+ 1 + 2 +

+ + 5902 + 5902 + + HEX + +
+
+ + + 33810 + WARTEN + MACRO + 0 + + + + + + + + A019_SV + - + - + NONE + + + + + PLC + - + - + NONE + + + + + + + +

+ + + + + NONE + + + + + + 33830 + PRINTOUT + MACRO + 650000 + + + STIMULI_OFF******************************************************** + + + + + PRINTMODULENAME + + + + + + +

+ STIMULI_OFF + 0 +

+ + + + + STR + +
+
+ + + 33850 + WARTEN + MACRO + 0 + + + + + + + + IQ_UMAX + - + - + NONE + + + + + UB + 0 + - + V + + + + + UB_IMAX + 0 + - + A + + + + + + + +

+ + + + + NONE + + + + + + 33870 + WARTEN + MACRO + 0 + + + + + + + + + +

+ + + + + NONE + + + + + + 33890 + WARTEN + MACRO + 0 + + + + + + + + A007_S + - + - + NONE + + + + + A008_S + - + - + NONE + + + + + A033_SV + - + - + NONE + + + + + A035_SV + - + - + NONE + + + + + + + +

+ + + + + NONE + + + + + + 33910 + PRINTOUT + MACRO + 660000 + + + NUMBER_OF_NG'S***************************************************** + + + + + A038_SV + - + - + NONE + + + + + + PRINTMODULENAME + + + + + + +

+ NUMBER OF NG'S + 0 +

+ + + + + STR + +
+
+ + + 33930 + BREAK + MACRO + 660010 + + + + + + + + BREAK + + + + + + +

+ &G_NERR +

+ + 0 + 0 + + INT + +
+
+ + + 33950 + WARTEN + MACRO + 0 + + + + + + + + + +

+ + + + + NONE + + + + + + \ No newline at end of file diff --git a/Projects/VPKI/Doc/pEOLSVRT001_orgin.CpXv01e b/Projects/VPKI/Doc/pEOLSVRT001_orgin.CpXv01e new file mode 100644 index 0000000..feecd94 --- /dev/null +++ b/Projects/VPKI/Doc/pEOLSVRT001_orgin.CpXv01e @@ -0,0 +1,89427 @@ + + + + Empty + Empty + ME1ME1ME1 + Empty + Empty + Empty + confidential - protection class 2 document + + + MMXX + 0000000000000001 + 9109FDDOM1 + c:\temp\typ\mmxx.bin + + AM240D + 3.24.8.31290 + + + + + + + + + + + + &BAUDRATE + &BAUDRATE_DATA + &BAUDRATE_HDR + &BRANDCODE + &CAN_DRIVER + &CAN_SCHREIB + &CAN_T_READ + &CAN_T_SEND + &CAN_TAST + &CAN_WIDER + &CERTINFO + &CMEASCNT + &CMP_RESULT + &CMS_CALID + &CMS_CALID_ASCII + &CMS_CRC + &CMS_VER + &CMS_VER_ASCII + &COLUMN + &COUNTP02SUBCAOEM + &COUNTP02SUBCAOEMS + &COUNTP20SUBCAOEM + &COUNTP20SUBCAOEMS + &COUNTP20SUBCAVHC + &COUNTP20SUBCAVHCS + &CR + &CRCR + &CRIROOTCERT + &CRUISE + &CSRHASH_HEX + &CSRHASH_HEX_EV20 + &CSRHASH_HEX_OEM20 + &CSRMESSAGE1 + &CSRSIGNEDMESSAGE + &CUSTOMERPNO_00 + &CUSTOMERPNO_01 + &CUSTOMERPNO_02 + &CUSTOMERPNO_03 + &DEL_RESULT + &DLL_FILE_CMS + &DLL_FILE_PCM + &E1 + &E2 + &E3 + &E4 + &ERROR + &ERRORFLAG + &EVCCID_HEX + &F101_CHECK + &F102_CHECK + &F103_CHECK + &F111_PCID_ASCII + &F112_PUBLICKEY_HEX + &F113_CSRHASH_HEX + &F114_CSRHASHSIGNEDVALUE_HEX + &F115_HEX + &F115_OEMLEAF_HEX + &F115_ROOTCERT_HEX + &F115_SUBCA_HEX + &F140_EVCCID_HEX + &F141_PCID20_HEX + &F142_PUBLICKEY_HEX + &F143_CSRHASH_HEX + &F144_CSRHASHSIGNEDVALUE_HEX + &F145_OEMLEAF_HEX + &F145_ROOTCERT_HEX + &F145_SUBCA_HEX + &F147_CHECK + &F148_CHECK + &F156_CHECK + &F156_RC1 + &F156_RC2 + &F156_RC3 + &F156_RC4 + &F156_RCHECK + &F181_CHECK + &F187_CHECK + &F188_CHECK + &F18B_CHECK + &F18C_CHECK + &F191_CHECK + &F193_CHECK + &F197_CHECK + &F1A0_CHECK + &F1A1_CHECK + &F1B0_CHECK + &F1B1_CHECK + &F1B2_CHECK + &F1C1_CHECK + &F1C2_CHECK + &F1EF_CHECK + &FD3 + &FEHLER + &FEHLERFLAG + &FSW_TT + &FTDRESULT + &G_BAUD_ASC1 + &G_CAN + &G_GETDATA_ALIASFILE + &G_MGERROR + &G_NERR + &G_TRG_NAME_2 + &HFID + &HFID_HEX + &HI + &HW_TTNR + &HW_VER + &HW_VER0 + &HW_VER1 + &HW_VER2 + &HW_VERSION_ASCII + &INPUTKEY + &KEFICO_ASCII + &KEFICO_CODE + &KEFICO_HEX + &KEY + &KEY_VAL1 + &KEY_VAL2 + &MAC_ADDRESS + &MAC_ADDRESS_ASCII + &MARKETCODE + &MEWE + &MEWELEN + &NA_ARCHITEKTUR + &NMK + &OEM02LEAFCOUNT + &OEMCOUNT + &OEMLEAF_HEX + &P_STEUER + &P02_ENTRUST_ROOT + &P02_EPIT_ROOT + &P02_HUBEU_ROOT + &P02_HUBUS_ROOT + &P02_TESLA_ROOT + &P02SUBCAOEMCRC + &P20_CHARIN_ROOT + &P20_EPIT_ROOT + &P20EVCCCNT + &P20OEMCNT + &P20ROOTCNT + &P20ROOTCNT_01 + &P20ROOTCNT_02 + &P20SUBCAOEMCRC + &P20SUBCAVHCCRC + &PARTITIONSTATUS + &PARTNO_ASCII + &PCID_ASCII + &PCID_ASCII_OEM20 + &PCIDSERVER + &PCM_CALID + &PCM_CALID_ASCII + &PCM_CFGLOCK + &PCM_CRC + &PCM_FTD + &PCM_PARTNO + &PCM_PARTNOHEX + &PCM_SB + &PCM_SB1 + &PCM_SB2 + &PCM_SB3 + &PCM_SB4 + &PCM_SB5 + &PCM_SDS + &PCM_VER + &PCM_VER_ASCII + &PSTAND + &QUELLE + &READ_EVCCID + &READ_PCID + &RESULTPSD + &RN160 + &RN320 + &ROOTCERT + &ROOTCOUNT + &ROOTCOUNT_01 + &ROOTCOUNT_02 + &ROOTCOUNT_03 + &ROOTCOUNT_04 + &ROOTCOUNT_05 + &RP02SUBCAOEMCRC + &RP20SUBCAOEMCRC + &RP20SUBCAVHCCRC + &SBRESULT + &SDSRESULT + &SEED + &SEED_INPUT + &SEED1 + &SEED2 + &SEEDKEY + &SERVERPCIDSAVE + &SFRV010 + &SFRV020 + &SFRV021 + &SUBCA_HEX + &SUBCA02COUNT + &SUBCAOEM_P02 + &SUBCAOEM_P20 + &SUBCAVHC_P20 + &TESTERCH + &TESTERID + &TESTERID_ORG + &TH0 + &TH1 + &TH1_ASCII + &TIERCODE + &TMP1 + &TMP2 + &TMP3 + &TMP4 + &TMP5 + &TMP6 + &TMP7 + &TMP8 + &TSW_TT + &TTNR_HW + &TX_BUFFER + &TX_RESULT + &UNITCODE + &VALUE + &VEHICLECODE + &VTCFG + + + WZ + UB_IMAX + UB + IQ_UMAX + FGN2_TYP + FGN2_TV + FGN2_RI + FGN2_OFFSET + FGN2_NAMP + FGN2_FREQ + A001_S + A007_S + A007_S1 + A007_S2 + A008_S + A008_S1 + A009_S + A010_R + A011_R + A011_S + A013_R + A013_S + A015_U + A015_S + A016_S + A016_U + A017_R + A017_S + A020_R + A024_R + A025_R + A027_R + A027_S + A033_SV + A033_S + A035_I + A035_R + A035_SV + A035_S + A038_I + A038_SV + A038_S + FGNCP_TYP + FGNCP_TV + FGNCP_RI + FGNCP_OFFSET + FGNCP_NAMP + FGNCP_FREQ + PLC + A001_S1 + A009_S1 + A019_R + A019_U + A019_SV + A032_S + A032_R + A032_U + A032_R2 + A002_U + A002_R2 + A050_R + A050_U + A019_S + A010_U + A026_S + A030_S + A026_L + A030_L + STRUCT_71 + STRUCT_72 + STRUCT_73 + STRUCT_74 + STRUCT_75 + STRUCT_76 + STRUCT_77 + STRUCT_78 + STRUCT_79 + STRUCT_80 + STRUCT_81 + STRUCT_82 + STRUCT_83 + STRUCT_84 + STRUCT_85 + STRUCT_86 + STRUCT_87 + STRUCT_88 + STRUCT_89 + STRUCT_90 + STRUCT_91 + STRUCT_92 + STRUCT_93 + STRUCT_94 + STRUCT_95 + STRUCT_96 + STRUCT_97 + STRUCT_98 + STRUCT_99 + STRUCT_100 + STRUCT_101 + STRUCT_102 + STRUCT_103 + STRUCT_104 + STRUCT_105 + STRUCT_106 + STRUCT_107 + STRUCT_108 + STRUCT_109 + STRUCT_110 + STRUCT_111 + STRUCT_112 + STRUCT_113 + STRUCT_114 + STRUCT_115 + STRUCT_116 + STRUCT_117 + STRUCT_118 + STRUCT_119 + STRUCT_120 + STRUCT_121 + STRUCT_122 + STRUCT_123 + STRUCT_124 + STRUCT_125 + STRUCT_126 + STRUCT_127 + STRUCT_128 + STRUCT_129 + STRUCT_130 + STRUCT_131 + STRUCT_132 + STRUCT_133 + STRUCT_134 + STRUCT_135 + STRUCT_136 + STRUCT_137 + STRUCT_138 + STRUCT_139 + STRUCT_140 + STRUCT_141 + STRUCT_142 + STRUCT_143 + STRUCT_144 + STRUCT_145 + STRUCT_146 + STRUCT_147 + STRUCT_148 + STRUCT_149 + STRUCT_150 + STRUCT_151 + STRUCT_152 + STRUCT_153 + STRUCT_154 + STRUCT_155 + STRUCT_156 + STRUCT_157 + STRUCT_158 + STRUCT_159 + STRUCT_160 + STRUCT_161 + STRUCT_162 + STRUCT_163 + STRUCT_164 + STRUCT_165 + STRUCT_166 + STRUCT_167 + STRUCT_168 + STRUCT_169 + STRUCT_170 + STRUCT_171 + STRUCT_172 + STRUCT_173 + STRUCT_174 + STRUCT_175 + STRUCT_176 + STRUCT_177 + STRUCT_178 + STRUCT_179 + STRUCT_180 + STRUCT_181 + STRUCT_182 + STRUCT_183 + STRUCT_184 + STRUCT_185 + STRUCT_186 + STRUCT_187 + STRUCT_188 + STRUCT_189 + STRUCT_190 + STRUCT_191 + STRUCT_192 + STRUCT_193 + STRUCT_194 + STRUCT_195 + STRUCT_196 + STRUCT_197 + STRUCT_198 + STRUCT_199 + STRUCT_200 + STRUCT_201 + STRUCT_202 + STRUCT_203 + STRUCT_204 + STRUCT_205 + STRUCT_206 + STRUCT_207 + STRUCT_208 + STRUCT_209 + STRUCT_210 + STRUCT_211 + STRUCT_212 + STRUCT_213 + STRUCT_214 + STRUCT_215 + STRUCT_216 + STRUCT_217 + STRUCT_218 + STRUCT_219 + STRUCT_220 + STRUCT_221 + STRUCT_222 + STRUCT_223 + STRUCT_224 + STRUCT_225 + STRUCT_226 + STRUCT_227 + STRUCT_228 + STRUCT_229 + STRUCT_230 + STRUCT_231 + STRUCT_232 + STRUCT_233 + STRUCT_234 + STRUCT_235 + STRUCT_236 + STRUCT_237 + STRUCT_238 + STRUCT_239 + STRUCT_240 + STRUCT_241 + STRUCT_242 + STRUCT_243 + STRUCT_244 + STRUCT_245 + STRUCT_246 + STRUCT_247 + STRUCT_248 + STRUCT_249 + STRUCT_250 + STRUCT_251 + STRUCT_252 + STRUCT_253 + STRUCT_254 + STRUCT_255 + STRUCT_256 + STRUCT_257 + STRUCT_258 + STRUCT_259 + STRUCT_260 + STRUCT_261 + STRUCT_262 + STRUCT_263 + STRUCT_264 + STRUCT_265 + STRUCT_266 + STRUCT_267 + STRUCT_268 + STRUCT_269 + STRUCT_270 + STRUCT_271 + STRUCT_272 + STRUCT_273 + STRUCT_274 + STRUCT_275 + STRUCT_276 + STRUCT_277 + STRUCT_278 + STRUCT_279 + STRUCT_280 + STRUCT_281 + STRUCT_282 + STRUCT_283 + STRUCT_284 + STRUCT_285 + STRUCT_286 + STRUCT_287 + STRUCT_288 + STRUCT_289 + STRUCT_290 + STRUCT_291 + STRUCT_292 + STRUCT_293 + STRUCT_294 + STRUCT_295 + STRUCT_296 + STRUCT_297 + STRUCT_298 + STRUCT_299 + STRUCT_300 + STRUCT_301 + STRUCT_302 + STRUCT_303 + STRUCT_304 + STRUCT_305 + STRUCT_306 + STRUCT_307 + STRUCT_308 + STRUCT_309 + STRUCT_310 + STRUCT_311 + STRUCT_312 + STRUCT_313 + STRUCT_314 + STRUCT_315 + STRUCT_316 + STRUCT_317 + STRUCT_318 + STRUCT_319 + STRUCT_320 + STRUCT_321 + STRUCT_322 + STRUCT_323 + STRUCT_324 + STRUCT_325 + STRUCT_326 + STRUCT_327 + STRUCT_328 + STRUCT_329 + STRUCT_330 + STRUCT_331 + STRUCT_332 + STRUCT_333 + STRUCT_334 + STRUCT_335 + STRUCT_336 + STRUCT_337 + STRUCT_338 + STRUCT_339 + STRUCT_340 + STRUCT_341 + STRUCT_342 + STRUCT_343 + STRUCT_344 + STRUCT_345 + STRUCT_346 + STRUCT_347 + STRUCT_348 + STRUCT_349 + STRUCT_350 + STRUCT_351 + STRUCT_352 + STRUCT_353 + STRUCT_354 + STRUCT_355 + STRUCT_356 + STRUCT_357 + STRUCT_358 + STRUCT_359 + STRUCT_360 + STRUCT_361 + STRUCT_362 + STRUCT_363 + STRUCT_364 + STRUCT_365 + STRUCT_366 + STRUCT_367 + STRUCT_368 + STRUCT_369 + STRUCT_370 + STRUCT_371 + STRUCT_372 + STRUCT_373 + STRUCT_374 + STRUCT_375 + STRUCT_376 + STRUCT_377 + STRUCT_378 + STRUCT_379 + STRUCT_380 + STRUCT_381 + STRUCT_382 + STRUCT_383 + STRUCT_384 + STRUCT_385 + STRUCT_386 + STRUCT_387 + STRUCT_388 + STRUCT_389 + STRUCT_390 + STRUCT_391 + STRUCT_392 + STRUCT_393 + STRUCT_394 + STRUCT_395 + STRUCT_396 + STRUCT_397 + STRUCT_398 + STRUCT_399 + STRUCT_400 + STRUCT_401 + STRUCT_402 + STRUCT_403 + STRUCT_404 + STRUCT_405 + STRUCT_406 + STRUCT_407 + STRUCT_408 + STRUCT_409 + STRUCT_410 + STRUCT_411 + STRUCT_412 + STRUCT_413 + STRUCT_414 + STRUCT_415 + STRUCT_416 + STRUCT_417 + STRUCT_418 + STRUCT_419 + STRUCT_420 + STRUCT_421 + STRUCT_422 + STRUCT_423 + STRUCT_424 + STRUCT_425 + STRUCT_426 + STRUCT_427 + STRUCT_428 + STRUCT_429 + STRUCT_430 + STRUCT_431 + STRUCT_432 + STRUCT_433 + STRUCT_434 + STRUCT_435 + STRUCT_436 + STRUCT_437 + STRUCT_438 + STRUCT_439 + STRUCT_440 + STRUCT_441 + STRUCT_442 + STRUCT_443 + STRUCT_444 + STRUCT_445 + STRUCT_446 + STRUCT_447 + STRUCT_448 + STRUCT_449 + STRUCT_450 + STRUCT_451 + STRUCT_452 + STRUCT_453 + STRUCT_454 + STRUCT_455 + STRUCT_456 + STRUCT_457 + STRUCT_458 + STRUCT_459 + STRUCT_460 + STRUCT_461 + STRUCT_462 + STRUCT_463 + STRUCT_464 + STRUCT_465 + STRUCT_466 + STRUCT_467 + STRUCT_468 + STRUCT_469 + STRUCT_470 + STRUCT_471 + STRUCT_472 + STRUCT_473 + STRUCT_474 + STRUCT_475 + STRUCT_476 + STRUCT_477 + STRUCT_478 + STRUCT_479 + STRUCT_480 + STRUCT_481 + STRUCT_482 + STRUCT_483 + STRUCT_484 + STRUCT_485 + STRUCT_486 + STRUCT_487 + STRUCT_488 + STRUCT_489 + STRUCT_490 + STRUCT_491 + STRUCT_492 + STRUCT_493 + STRUCT_494 + STRUCT_495 + STRUCT_496 + STRUCT_497 + STRUCT_498 + STRUCT_499 + STRUCT_500 + STRUCT_501 + STRUCT_502 + STRUCT_503 + STRUCT_504 + STRUCT_505 + STRUCT_506 + STRUCT_507 + STRUCT_508 + STRUCT_509 + STRUCT_510 + STRUCT_511 + STRUCT_512 + STRUCT_513 + STRUCT_514 + STRUCT_515 + STRUCT_516 + STRUCT_517 + STRUCT_518 + STRUCT_519 + STRUCT_520 + STRUCT_521 + STRUCT_522 + STRUCT_523 + STRUCT_524 + STRUCT_525 + STRUCT_526 + STRUCT_527 + STRUCT_528 + STRUCT_529 + STRUCT_530 + STRUCT_531 + STRUCT_532 + STRUCT_533 + STRUCT_534 + STRUCT_535 + STRUCT_536 + STRUCT_537 + STRUCT_538 + STRUCT_539 + STRUCT_540 + STRUCT_541 + STRUCT_542 + STRUCT_543 + STRUCT_544 + STRUCT_545 + STRUCT_546 + STRUCT_547 + STRUCT_548 + STRUCT_549 + STRUCT_550 + STRUCT_551 + STRUCT_552 + STRUCT_553 + STRUCT_554 + STRUCT_555 + STRUCT_556 + STRUCT_557 + STRUCT_558 + STRUCT_559 + STRUCT_560 + STRUCT_561 + STRUCT_562 + STRUCT_563 + STRUCT_564 + STRUCT_565 + STRUCT_566 + STRUCT_567 + STRUCT_568 + STRUCT_569 + STRUCT_570 + STRUCT_571 + STRUCT_572 + STRUCT_573 + STRUCT_574 + STRUCT_575 + STRUCT_576 + STRUCT_577 + STRUCT_578 + STRUCT_579 + STRUCT_580 + STRUCT_581 + STRUCT_582 + STRUCT_583 + STRUCT_584 + STRUCT_585 + STRUCT_586 + STRUCT_587 + STRUCT_588 + STRUCT_589 + STRUCT_590 + STRUCT_591 + STRUCT_592 + STRUCT_593 + STRUCT_594 + STRUCT_595 + STRUCT_596 + STRUCT_597 + STRUCT_598 + STRUCT_599 + STRUCT_600 + STRUCT_601 + STRUCT_602 + STRUCT_603 + STRUCT_604 + STRUCT_605 + STRUCT_606 + STRUCT_607 + STRUCT_608 + STRUCT_609 + STRUCT_610 + STRUCT_611 + STRUCT_612 + STRUCT_613 + STRUCT_614 + STRUCT_615 + STRUCT_616 + STRUCT_617 + STRUCT_618 + STRUCT_619 + STRUCT_620 + STRUCT_621 + STRUCT_622 + STRUCT_623 + STRUCT_624 + STRUCT_625 + STRUCT_626 + STRUCT_627 + STRUCT_628 + STRUCT_629 + STRUCT_630 + STRUCT_631 + STRUCT_632 + STRUCT_633 + STRUCT_634 + STRUCT_635 + STRUCT_636 + STRUCT_637 + STRUCT_638 + STRUCT_639 + STRUCT_640 + STRUCT_641 + STRUCT_642 + STRUCT_643 + STRUCT_644 + STRUCT_645 + STRUCT_646 + STRUCT_647 + STRUCT_648 + STRUCT_649 + STRUCT_650 + STRUCT_651 + STRUCT_652 + STRUCT_653 + STRUCT_654 + STRUCT_655 + STRUCT_656 + STRUCT_657 + STRUCT_658 + STRUCT_659 + STRUCT_660 + STRUCT_661 + STRUCT_662 + STRUCT_663 + STRUCT_664 + STRUCT_665 + STRUCT_666 + STRUCT_667 + STRUCT_668 + STRUCT_669 + STRUCT_670 + STRUCT_671 + STRUCT_672 + STRUCT_673 + STRUCT_674 + STRUCT_675 + STRUCT_676 + STRUCT_677 + STRUCT_678 + STRUCT_679 + STRUCT_680 + STRUCT_681 + STRUCT_682 + STRUCT_683 + STRUCT_684 + STRUCT_685 + STRUCT_686 + STRUCT_687 + STRUCT_688 + STRUCT_689 + STRUCT_690 + STRUCT_691 + STRUCT_692 + STRUCT_693 + STRUCT_694 + STRUCT_695 + STRUCT_696 + STRUCT_697 + STRUCT_698 + STRUCT_699 + STRUCT_700 + STRUCT_701 + STRUCT_702 + STRUCT_703 + STRUCT_704 + STRUCT_705 + STRUCT_706 + STRUCT_707 + STRUCT_708 + STRUCT_709 + STRUCT_710 + STRUCT_711 + STRUCT_712 + STRUCT_713 + STRUCT_714 + STRUCT_715 + STRUCT_716 + STRUCT_717 + STRUCT_718 + STRUCT_719 + STRUCT_720 + STRUCT_721 + STRUCT_722 + STRUCT_723 + STRUCT_724 + STRUCT_725 + STRUCT_726 + STRUCT_727 + STRUCT_728 + STRUCT_729 + STRUCT_730 + STRUCT_731 + STRUCT_732 + STRUCT_733 + STRUCT_734 + STRUCT_735 + STRUCT_736 + STRUCT_737 + STRUCT_738 + STRUCT_739 + STRUCT_740 + STRUCT_741 + STRUCT_742 + STRUCT_743 + STRUCT_744 + STRUCT_745 + STRUCT_746 + STRUCT_747 + STRUCT_748 + STRUCT_749 + STRUCT_750 + STRUCT_751 + STRUCT_752 + STRUCT_753 + STRUCT_754 + STRUCT_755 + STRUCT_756 + STRUCT_757 + STRUCT_758 + STRUCT_759 + STRUCT_760 + STRUCT_761 + STRUCT_762 + STRUCT_763 + STRUCT_764 + STRUCT_765 + STRUCT_766 + STRUCT_767 + STRUCT_768 + STRUCT_769 + STRUCT_770 + STRUCT_771 + STRUCT_772 + STRUCT_773 + STRUCT_774 + STRUCT_775 + STRUCT_776 + STRUCT_777 + STRUCT_778 + STRUCT_779 + STRUCT_780 + STRUCT_781 + STRUCT_782 + STRUCT_783 + STRUCT_784 + STRUCT_785 + STRUCT_786 + STRUCT_787 + STRUCT_788 + STRUCT_789 + STRUCT_790 + STRUCT_791 + STRUCT_792 + STRUCT_793 + STRUCT_794 + STRUCT_795 + STRUCT_796 + STRUCT_797 + STRUCT_798 + STRUCT_799 + STRUCT_800 + STRUCT_801 + STRUCT_802 + STRUCT_803 + STRUCT_804 + STRUCT_805 + STRUCT_806 + STRUCT_807 + STRUCT_808 + STRUCT_809 + STRUCT_810 + STRUCT_811 + STRUCT_812 + STRUCT_813 + STRUCT_814 + STRUCT_815 + STRUCT_816 + STRUCT_817 + STRUCT_818 + STRUCT_819 + STRUCT_820 + STRUCT_821 + STRUCT_822 + STRUCT_823 + STRUCT_824 + STRUCT_825 + STRUCT_826 + STRUCT_827 + STRUCT_828 + STRUCT_829 + STRUCT_830 + STRUCT_831 + STRUCT_832 + STRUCT_833 + STRUCT_834 + STRUCT_835 + STRUCT_836 + STRUCT_837 + STRUCT_838 + STRUCT_839 + STRUCT_840 + STRUCT_841 + STRUCT_842 + STRUCT_843 + STRUCT_844 + STRUCT_845 + STRUCT_846 + STRUCT_847 + STRUCT_848 + STRUCT_849 + STRUCT_850 + STRUCT_851 + STRUCT_852 + STRUCT_853 + STRUCT_854 + STRUCT_855 + STRUCT_856 + STRUCT_857 + STRUCT_858 + STRUCT_859 + STRUCT_860 + STRUCT_861 + STRUCT_862 + STRUCT_863 + STRUCT_864 + STRUCT_865 + STRUCT_866 + STRUCT_867 + STRUCT_868 + STRUCT_869 + STRUCT_870 + STRUCT_871 + STRUCT_872 + STRUCT_873 + STRUCT_874 + STRUCT_875 + STRUCT_876 + STRUCT_877 + STRUCT_878 + STRUCT_879 + STRUCT_880 + STRUCT_881 + STRUCT_882 + STRUCT_883 + STRUCT_884 + STRUCT_885 + STRUCT_886 + STRUCT_887 + STRUCT_888 + STRUCT_889 + STRUCT_890 + STRUCT_891 + STRUCT_892 + STRUCT_893 + STRUCT_894 + STRUCT_895 + STRUCT_896 + STRUCT_897 + STRUCT_898 + STRUCT_899 + STRUCT_900 + STRUCT_901 + STRUCT_902 + STRUCT_903 + STRUCT_904 + STRUCT_905 + STRUCT_906 + STRUCT_907 + STRUCT_908 + STRUCT_909 + STRUCT_910 + STRUCT_911 + STRUCT_912 + STRUCT_913 + STRUCT_914 + STRUCT_915 + STRUCT_916 + STRUCT_917 + STRUCT_918 + STRUCT_919 + STRUCT_920 + STRUCT_921 + STRUCT_922 + STRUCT_923 + STRUCT_924 + STRUCT_925 + STRUCT_926 + STRUCT_927 + STRUCT_928 + STRUCT_929 + STRUCT_930 + STRUCT_931 + STRUCT_932 + STRUCT_933 + STRUCT_934 + STRUCT_935 + STRUCT_936 + STRUCT_937 + STRUCT_938 + STRUCT_939 + STRUCT_940 + STRUCT_941 + STRUCT_942 + STRUCT_943 + STRUCT_944 + STRUCT_945 + STRUCT_946 + STRUCT_947 + STRUCT_948 + STRUCT_949 + STRUCT_950 + STRUCT_951 + STRUCT_952 + STRUCT_953 + STRUCT_954 + STRUCT_955 + STRUCT_956 + STRUCT_957 + STRUCT_958 + STRUCT_959 + STRUCT_960 + STRUCT_961 + STRUCT_962 + STRUCT_963 + STRUCT_964 + STRUCT_965 + STRUCT_966 + STRUCT_967 + STRUCT_968 + STRUCT_969 + STRUCT_970 + STRUCT_971 + STRUCT_972 + STRUCT_973 + STRUCT_974 + STRUCT_975 + STRUCT_976 + STRUCT_977 + STRUCT_978 + STRUCT_979 + STRUCT_980 + STRUCT_981 + STRUCT_982 + STRUCT_983 + STRUCT_984 + STRUCT_985 + STRUCT_986 + STRUCT_987 + STRUCT_988 + STRUCT_989 + STRUCT_990 + STRUCT_991 + STRUCT_992 + STRUCT_993 + STRUCT_994 + STRUCT_995 + STRUCT_996 + STRUCT_997 + STRUCT_998 + STRUCT_999 + STRUCT_1000 + STRUCT_1001 + STRUCT_1002 + STRUCT_1003 + STRUCT_1004 + STRUCT_1005 + STRUCT_1006 + STRUCT_1007 + STRUCT_1008 + STRUCT_1009 + STRUCT_1010 + STRUCT_1011 + STRUCT_1012 + STRUCT_1013 + STRUCT_1014 + STRUCT_1015 + STRUCT_1016 + STRUCT_1017 + STRUCT_1018 + STRUCT_1019 + STRUCT_1020 + STRUCT_1021 + STRUCT_1022 + STRUCT_1023 + STRUCT_1024 + STRUCT_1025 + STRUCT_1026 + STRUCT_1027 + STRUCT_1028 + STRUCT_1029 + STRUCT_1030 + STRUCT_1031 + STRUCT_1032 + STRUCT_1033 + STRUCT_1034 + STRUCT_1035 + STRUCT_1036 + STRUCT_1037 + STRUCT_1038 + STRUCT_1039 + STRUCT_1040 + STRUCT_1041 + STRUCT_1042 + STRUCT_1043 + STRUCT_1044 + STRUCT_1045 + STRUCT_1046 + STRUCT_1047 + STRUCT_1048 + STRUCT_1049 + STRUCT_1050 + STRUCT_1051 + STRUCT_1052 + STRUCT_1053 + STRUCT_1054 + STRUCT_1055 + STRUCT_1056 + STRUCT_1057 + STRUCT_1058 + STRUCT_1059 + STRUCT_1060 + STRUCT_1061 + STRUCT_1062 + STRUCT_1063 + STRUCT_1064 + STRUCT_1065 + STRUCT_1066 + STRUCT_1067 + STRUCT_1068 + STRUCT_1069 + STRUCT_1070 + STRUCT_1071 + STRUCT_1072 + STRUCT_1073 + STRUCT_1074 + STRUCT_1075 + STRUCT_1076 + STRUCT_1077 + STRUCT_1078 + STRUCT_1079 + STRUCT_1080 + STRUCT_1081 + STRUCT_1082 + STRUCT_1083 + STRUCT_1084 + STRUCT_1085 + STRUCT_1086 + STRUCT_1087 + STRUCT_1088 + STRUCT_1089 + STRUCT_1090 + STRUCT_1091 + STRUCT_1092 + STRUCT_1093 + STRUCT_1094 + STRUCT_1095 + STRUCT_1096 + STRUCT_1097 + STRUCT_1098 + STRUCT_1099 + STRUCT_1100 + STRUCT_1101 + STRUCT_1102 + STRUCT_1103 + STRUCT_1104 + STRUCT_1105 + STRUCT_1106 + STRUCT_1107 + STRUCT_1108 + STRUCT_1109 + STRUCT_1110 + STRUCT_1111 + STRUCT_1112 + STRUCT_1113 + STRUCT_1114 + STRUCT_1115 + STRUCT_1116 + STRUCT_1117 + STRUCT_1118 + STRUCT_1119 + STRUCT_1120 + STRUCT_1121 + STRUCT_1122 + STRUCT_1123 + STRUCT_1124 + STRUCT_1125 + STRUCT_1126 + STRUCT_1127 + STRUCT_1128 + STRUCT_1129 + STRUCT_1130 + STRUCT_1131 + STRUCT_1132 + STRUCT_1133 + STRUCT_1134 + STRUCT_1135 + STRUCT_1136 + STRUCT_1137 + STRUCT_1138 + STRUCT_1139 + STRUCT_1140 + STRUCT_1141 + STRUCT_1142 + STRUCT_1143 + STRUCT_1144 + STRUCT_1145 + STRUCT_1146 + STRUCT_1147 + STRUCT_1148 + STRUCT_1149 + STRUCT_1150 + STRUCT_1151 + STRUCT_1152 + STRUCT_1153 + STRUCT_1154 + STRUCT_1155 + STRUCT_1156 + STRUCT_1157 + STRUCT_1158 + STRUCT_1159 + STRUCT_1160 + STRUCT_1161 + STRUCT_1162 + STRUCT_1163 + STRUCT_1164 + STRUCT_1165 + STRUCT_1166 + STRUCT_1167 + STRUCT_1168 + STRUCT_1169 + STRUCT_1170 + STRUCT_1171 + STRUCT_1172 + STRUCT_1173 + STRUCT_1174 + STRUCT_1175 + STRUCT_1176 + STRUCT_1177 + STRUCT_1178 + STRUCT_1179 + STRUCT_1180 + STRUCT_1181 + STRUCT_1182 + STRUCT_1183 + STRUCT_1184 + STRUCT_1185 + STRUCT_1186 + STRUCT_1187 + STRUCT_1188 + STRUCT_1189 + STRUCT_1190 + STRUCT_1191 + STRUCT_1192 + STRUCT_1193 + STRUCT_1194 + STRUCT_1195 + STRUCT_1196 + STRUCT_1197 + STRUCT_1198 + STRUCT_1199 + STRUCT_1200 + STRUCT_1201 + STRUCT_1202 + STRUCT_1203 + STRUCT_1204 + STRUCT_1205 + STRUCT_1206 + STRUCT_1207 + STRUCT_1208 + STRUCT_1209 + STRUCT_1210 + STRUCT_1211 + STRUCT_1212 + STRUCT_1213 + STRUCT_1214 + STRUCT_1215 + STRUCT_1216 + STRUCT_1217 + STRUCT_1218 + STRUCT_1219 + STRUCT_1220 + STRUCT_1221 + STRUCT_1222 + STRUCT_1223 + STRUCT_1224 + STRUCT_1225 + STRUCT_1226 + STRUCT_1227 + STRUCT_1228 + STRUCT_1229 + STRUCT_1230 + STRUCT_1231 + STRUCT_1232 + STRUCT_1233 + STRUCT_1234 + STRUCT_1235 + STRUCT_1236 + STRUCT_1237 + STRUCT_1238 + STRUCT_1239 + STRUCT_1240 + STRUCT_1241 + STRUCT_1242 + STRUCT_1243 + STRUCT_1244 + STRUCT_1245 + STRUCT_1246 + STRUCT_1247 + STRUCT_1248 + STRUCT_1249 + STRUCT_1250 + STRUCT_1251 + STRUCT_1252 + STRUCT_1253 + STRUCT_1254 + STRUCT_1255 + STRUCT_1256 + STRUCT_1257 + STRUCT_1258 + STRUCT_1259 + STRUCT_1260 + STRUCT_1261 + STRUCT_1262 + STRUCT_1263 + STRUCT_1264 + STRUCT_1265 + STRUCT_1266 + STRUCT_1267 + STRUCT_1268 + STRUCT_1269 + STRUCT_1270 + STRUCT_1271 + STRUCT_1272 + STRUCT_1273 + STRUCT_1274 + STRUCT_1275 + STRUCT_1276 + STRUCT_1277 + STRUCT_1278 + STRUCT_1279 + STRUCT_1280 + STRUCT_1281 + STRUCT_1282 + STRUCT_1283 + STRUCT_1284 + STRUCT_1285 + STRUCT_1286 + STRUCT_1287 + STRUCT_1288 + STRUCT_1289 + STRUCT_1290 + STRUCT_1291 + STRUCT_1292 + STRUCT_1293 + STRUCT_1294 + STRUCT_1295 + STRUCT_1296 + STRUCT_1297 + STRUCT_1298 + STRUCT_1299 + STRUCT_1300 + STRUCT_1301 + STRUCT_1302 + STRUCT_1303 + STRUCT_1304 + STRUCT_1305 + STRUCT_1306 + STRUCT_1307 + STRUCT_1308 + STRUCT_1309 + STRUCT_1310 + STRUCT_1311 + STRUCT_1312 + STRUCT_1313 + STRUCT_1314 + STRUCT_1315 + STRUCT_1316 + STRUCT_1317 + STRUCT_1318 + STRUCT_1319 + STRUCT_1320 + STRUCT_1321 + STRUCT_1322 + STRUCT_1323 + STRUCT_1324 + STRUCT_1325 + STRUCT_1326 + STRUCT_1327 + STRUCT_1328 + STRUCT_1329 + STRUCT_1330 + STRUCT_1331 + STRUCT_1332 + STRUCT_1333 + STRUCT_1334 + STRUCT_1335 + STRUCT_1336 + STRUCT_1337 + STRUCT_1338 + STRUCT_1339 + STRUCT_1340 + STRUCT_1341 + STRUCT_1342 + STRUCT_1343 + STRUCT_1344 + STRUCT_1345 + STRUCT_1346 + STRUCT_1347 + STRUCT_1348 + STRUCT_1349 + STRUCT_1350 + STRUCT_1351 + STRUCT_1352 + STRUCT_1353 + STRUCT_1354 + STRUCT_1355 + STRUCT_1356 + STRUCT_1357 + STRUCT_1358 + STRUCT_1359 + STRUCT_1360 + STRUCT_1361 + STRUCT_1362 + STRUCT_1363 + STRUCT_1364 + STRUCT_1365 + STRUCT_1366 + STRUCT_1367 + STRUCT_1368 + STRUCT_1369 + STRUCT_1370 + STRUCT_1371 + STRUCT_1372 + STRUCT_1373 + STRUCT_1374 + STRUCT_1375 + STRUCT_1376 + STRUCT_1377 + STRUCT_1378 + STRUCT_1379 + STRUCT_1380 + STRUCT_1381 + STRUCT_1382 + STRUCT_1383 + STRUCT_1384 + STRUCT_1385 + STRUCT_1386 + STRUCT_1387 + STRUCT_1388 + STRUCT_1389 + STRUCT_1390 + STRUCT_1391 + STRUCT_1392 + STRUCT_1393 + STRUCT_1394 + STRUCT_1395 + STRUCT_1396 + STRUCT_1397 + STRUCT_1398 + STRUCT_1399 + STRUCT_1400 + STRUCT_1401 + STRUCT_1402 + STRUCT_1403 + STRUCT_1404 + STRUCT_1405 + STRUCT_1406 + STRUCT_1407 + STRUCT_1408 + STRUCT_1409 + STRUCT_1410 + STRUCT_1411 + STRUCT_1412 + STRUCT_1413 + STRUCT_1414 + STRUCT_1415 + STRUCT_1416 + STRUCT_1417 + STRUCT_1418 + STRUCT_1419 + STRUCT_1420 + STRUCT_1421 + STRUCT_1422 + STRUCT_1423 + STRUCT_1424 + STRUCT_1425 + STRUCT_1426 + STRUCT_1427 + STRUCT_1428 + STRUCT_1429 + STRUCT_1430 + STRUCT_1431 + STRUCT_1432 + STRUCT_1433 + STRUCT_1434 + STRUCT_1435 + STRUCT_1436 + STRUCT_1437 + STRUCT_1438 + STRUCT_1439 + STRUCT_1440 + STRUCT_1441 + STRUCT_1442 + STRUCT_1443 + STRUCT_1444 + STRUCT_1445 + STRUCT_1446 + STRUCT_1447 + STRUCT_1448 + STRUCT_1449 + STRUCT_1450 + STRUCT_1451 + STRUCT_1452 + STRUCT_1453 + STRUCT_1454 + STRUCT_1455 + STRUCT_1456 + STRUCT_1457 + STRUCT_1458 + STRUCT_1459 + STRUCT_1460 + STRUCT_1461 + STRUCT_1462 + STRUCT_1463 + STRUCT_1464 + STRUCT_1465 + STRUCT_1466 + STRUCT_1467 + STRUCT_1468 + STRUCT_1469 + STRUCT_1470 + STRUCT_1471 + STRUCT_1472 + STRUCT_1473 + STRUCT_1474 + STRUCT_1475 + STRUCT_1476 + STRUCT_1477 + STRUCT_1478 + STRUCT_1479 + STRUCT_1480 + STRUCT_1481 + STRUCT_1482 + STRUCT_1483 + STRUCT_1484 + STRUCT_1485 + STRUCT_1486 + STRUCT_1487 + STRUCT_1488 + STRUCT_1489 + STRUCT_1490 + STRUCT_1491 + STRUCT_1492 + STRUCT_1493 + STRUCT_1494 + STRUCT_1495 + STRUCT_1496 + STRUCT_1497 + STRUCT_1498 + STRUCT_1499 + STRUCT_1500 + STRUCT_1501 + STRUCT_1502 + STRUCT_1503 + STRUCT_1504 + STRUCT_1505 + STRUCT_1506 + STRUCT_1507 + STRUCT_1508 + STRUCT_1509 + STRUCT_1510 + STRUCT_1511 + STRUCT_1512 + STRUCT_1513 + STRUCT_1514 + STRUCT_1515 + STRUCT_1516 + STRUCT_1517 + STRUCT_1518 + STRUCT_1519 + STRUCT_1520 + STRUCT_1521 + STRUCT_1522 + STRUCT_1523 + STRUCT_1524 + STRUCT_1525 + STRUCT_1526 + STRUCT_1527 + STRUCT_1528 + STRUCT_1529 + STRUCT_1530 + STRUCT_1531 + STRUCT_1532 + STRUCT_1533 + STRUCT_1534 + STRUCT_1535 + STRUCT_1536 + STRUCT_1537 + STRUCT_1538 + STRUCT_1539 + STRUCT_1540 + STRUCT_1541 + STRUCT_1542 + STRUCT_1543 + STRUCT_1544 + STRUCT_1545 + STRUCT_1546 + STRUCT_1547 + STRUCT_1548 + STRUCT_1549 + STRUCT_1550 + STRUCT_1551 + STRUCT_1552 + STRUCT_1553 + STRUCT_1554 + STRUCT_1555 + STRUCT_1556 + STRUCT_1557 + STRUCT_1558 + STRUCT_1559 + STRUCT_1560 + STRUCT_1561 + STRUCT_1562 + STRUCT_1563 + STRUCT_1564 + STRUCT_1565 + STRUCT_1566 + STRUCT_1567 + STRUCT_1568 + STRUCT_1569 + STRUCT_1570 + STRUCT_1571 + STRUCT_1572 + STRUCT_1573 + STRUCT_1574 + STRUCT_1575 + STRUCT_1576 + STRUCT_1577 + STRUCT_1578 + STRUCT_1579 + STRUCT_1580 + STRUCT_1581 + STRUCT_1582 + STRUCT_1583 + STRUCT_1584 + STRUCT_1585 + STRUCT_1586 + STRUCT_1587 + STRUCT_1588 + STRUCT_1589 + STRUCT_1590 + STRUCT_1591 + STRUCT_1592 + STRUCT_1593 + STRUCT_1594 + STRUCT_1595 + STRUCT_1596 + STRUCT_1597 + STRUCT_1598 + STRUCT_1599 + STRUCT_1600 + STRUCT_1601 + STRUCT_1602 + STRUCT_1603 + STRUCT_1604 + STRUCT_1605 + STRUCT_1606 + STRUCT_1607 + STRUCT_1608 + STRUCT_1609 + STRUCT_1610 + STRUCT_1611 + STRUCT_1612 + STRUCT_1613 + STRUCT_1614 + STRUCT_1615 + STRUCT_1616 + STRUCT_1617 + STRUCT_1618 + STRUCT_1619 + STRUCT_1620 + STRUCT_1621 + STRUCT_1622 + STRUCT_1623 + STRUCT_1624 + STRUCT_1625 + STRUCT_1626 + STRUCT_1627 + STRUCT_1628 + STRUCT_1629 + STRUCT_1630 + STRUCT_1631 + STRUCT_1632 + STRUCT_1633 + STRUCT_1634 + STRUCT_1635 + STRUCT_1636 + STRUCT_1637 + STRUCT_1638 + STRUCT_1639 + STRUCT_1640 + STRUCT_1641 + STRUCT_1642 + STRUCT_1643 + STRUCT_1644 + STRUCT_1645 + STRUCT_1646 + STRUCT_1647 + STRUCT_1648 + STRUCT_1649 + STRUCT_1650 + STRUCT_1651 + STRUCT_1652 + STRUCT_1653 + STRUCT_1654 + STRUCT_1655 + STRUCT_1656 + STRUCT_1657 + STRUCT_1658 + STRUCT_1659 + STRUCT_1660 + STRUCT_1661 + STRUCT_1662 + STRUCT_1663 + STRUCT_1664 + STRUCT_1665 + STRUCT_1666 + STRUCT_1667 + STRUCT_1668 + STRUCT_1669 + STRUCT_1670 + STRUCT_1671 + STRUCT_1672 + STRUCT_1673 + STRUCT_1674 + STRUCT_1675 + STRUCT_1676 + STRUCT_1677 + STRUCT_1678 + STRUCT_1679 + STRUCT_1680 + STRUCT_1681 + STRUCT_1682 + STRUCT_1683 + STRUCT_1684 + STRUCT_1685 + STRUCT_1686 + STRUCT_1687 + STRUCT_1688 + STRUCT_1689 + STRUCT_1690 + STRUCT_1691 + STRUCT_1692 + STRUCT_1693 + STRUCT_1694 + STRUCT_1695 + STRUCT_1696 + STRUCT_1697 + STRUCT_1698 + STRUCT_1699 + STRUCT_1700 + STRUCT_1701 + STRUCT_1702 + STRUCT_1703 + STRUCT_1704 + STRUCT_1705 + STRUCT_1706 + STRUCT_1707 + STRUCT_1708 + STRUCT_1709 + STRUCT_1710 + STRUCT_1711 + STRUCT_1712 + STRUCT_1713 + STRUCT_1714 + STRUCT_1715 + STRUCT_1716 + STRUCT_1717 + STRUCT_1718 + STRUCT_1719 + STRUCT_1720 + STRUCT_1721 + STRUCT_1722 + STRUCT_1723 + STRUCT_1724 + STRUCT_1725 + STRUCT_1726 + STRUCT_1727 + STRUCT_1728 + STRUCT_1729 + STRUCT_1730 + STRUCT_1731 + STRUCT_1732 + STRUCT_1733 + STRUCT_1734 + STRUCT_1735 + STRUCT_1736 + STRUCT_1737 + STRUCT_1738 + STRUCT_1739 + STRUCT_1740 + STRUCT_1741 + STRUCT_1742 + STRUCT_1743 + STRUCT_1744 + STRUCT_1745 + STRUCT_1746 + STRUCT_1747 + STRUCT_1748 + STRUCT_1749 + STRUCT_1750 + STRUCT_1751 + STRUCT_1752 + STRUCT_1753 + STRUCT_1754 + STRUCT_1755 + STRUCT_1756 + STRUCT_1757 + STRUCT_1758 + STRUCT_1759 + STRUCT_1760 + STRUCT_1761 + STRUCT_1762 + STRUCT_1763 + STRUCT_1764 + STRUCT_1765 + STRUCT_1766 + STRUCT_1767 + STRUCT_1768 + STRUCT_1769 + STRUCT_1770 + STRUCT_1771 + STRUCT_1772 + STRUCT_1773 + STRUCT_1774 + STRUCT_1775 + STRUCT_1776 + STRUCT_1777 + STRUCT_1778 + STRUCT_1779 + STRUCT_1780 + STRUCT_1781 + STRUCT_1782 + STRUCT_1783 + STRUCT_1784 + STRUCT_1785 + STRUCT_1786 + STRUCT_1787 + STRUCT_1788 + STRUCT_1789 + STRUCT_1790 + STRUCT_1791 + STRUCT_1792 + STRUCT_1793 + STRUCT_1794 + STRUCT_1795 + STRUCT_1796 + STRUCT_1797 + STRUCT_1798 + STRUCT_1799 + STRUCT_1800 + STRUCT_1801 + STRUCT_1802 + STRUCT_1803 + STRUCT_1804 + STRUCT_1805 + STRUCT_1806 + STRUCT_1807 + STRUCT_1808 + STRUCT_1809 + STRUCT_1810 + STRUCT_1811 + STRUCT_1812 + STRUCT_1813 + STRUCT_1814 + STRUCT_1815 + STRUCT_1816 + STRUCT_1817 + STRUCT_1818 + STRUCT_1819 + STRUCT_1820 + STRUCT_1821 + STRUCT_1822 + STRUCT_1823 + STRUCT_1824 + STRUCT_1825 + STRUCT_1826 + STRUCT_1827 + STRUCT_1828 + STRUCT_1829 + STRUCT_1830 + STRUCT_1831 + STRUCT_1832 + STRUCT_1833 + STRUCT_1834 + STRUCT_1835 + STRUCT_1836 + STRUCT_1837 + STRUCT_1838 + STRUCT_1839 + STRUCT_1840 + STRUCT_1841 + STRUCT_1842 + STRUCT_1843 + STRUCT_1844 + STRUCT_1845 + STRUCT_1846 + STRUCT_1847 + STRUCT_1848 + STRUCT_1849 + STRUCT_1850 + STRUCT_1851 + STRUCT_1852 + STRUCT_1853 + STRUCT_1854 + STRUCT_1855 + STRUCT_1856 + STRUCT_1857 + STRUCT_1858 + STRUCT_1859 + STRUCT_1860 + STRUCT_1861 + STRUCT_1862 + STRUCT_1863 + STRUCT_1864 + STRUCT_1865 + STRUCT_1866 + STRUCT_1867 + STRUCT_1868 + STRUCT_1869 + STRUCT_1870 + STRUCT_1871 + STRUCT_1872 + STRUCT_1873 + STRUCT_1874 + STRUCT_1875 + STRUCT_1876 + STRUCT_1877 + STRUCT_1878 + STRUCT_1879 + STRUCT_1880 + STRUCT_1881 + STRUCT_1882 + STRUCT_1883 + STRUCT_1884 + STRUCT_1885 + STRUCT_1886 + STRUCT_1887 + STRUCT_1888 + STRUCT_1889 + STRUCT_1890 + STRUCT_1891 + STRUCT_1892 + STRUCT_1893 + STRUCT_1894 + STRUCT_1895 + STRUCT_1896 + STRUCT_1897 + STRUCT_1898 + STRUCT_1899 + STRUCT_1900 + STRUCT_1901 + STRUCT_1902 + STRUCT_1903 + STRUCT_1904 + STRUCT_1905 + STRUCT_1906 + STRUCT_1907 + STRUCT_1908 + STRUCT_1909 + STRUCT_1910 + STRUCT_1911 + STRUCT_1912 + STRUCT_1913 + STRUCT_1914 + STRUCT_1915 + STRUCT_1916 + STRUCT_1917 + STRUCT_1918 + STRUCT_1919 + STRUCT_1920 + STRUCT_1921 + STRUCT_1922 + STRUCT_1923 + STRUCT_1924 + STRUCT_1925 + STRUCT_1926 + STRUCT_1927 + STRUCT_1928 + STRUCT_1929 + STRUCT_1930 + STRUCT_1931 + STRUCT_1932 + STRUCT_1933 + STRUCT_1934 + STRUCT_1935 + STRUCT_1936 + STRUCT_1937 + STRUCT_1938 + STRUCT_1939 + STRUCT_1940 + STRUCT_1941 + STRUCT_1942 + STRUCT_1943 + STRUCT_1944 + STRUCT_1945 + STRUCT_1946 + STRUCT_1947 + STRUCT_1948 + STRUCT_1949 + STRUCT_1950 + STRUCT_1951 + STRUCT_1952 + STRUCT_1953 + STRUCT_1954 + STRUCT_1955 + STRUCT_1956 + STRUCT_1957 + STRUCT_1958 + STRUCT_1959 + STRUCT_1960 + STRUCT_1961 + STRUCT_1962 + STRUCT_1963 + STRUCT_1964 + STRUCT_1965 + STRUCT_1966 + STRUCT_1967 + STRUCT_1968 + STRUCT_1969 + STRUCT_1970 + STRUCT_1971 + STRUCT_1972 + STRUCT_1973 + STRUCT_1974 + STRUCT_1975 + STRUCT_1976 + STRUCT_1977 + STRUCT_1978 + STRUCT_1979 + STRUCT_1980 + STRUCT_1981 + STRUCT_1982 + STRUCT_1983 + STRUCT_1984 + STRUCT_1985 + STRUCT_1986 + STRUCT_1987 + STRUCT_1988 + STRUCT_1989 + STRUCT_1990 + STRUCT_1991 + STRUCT_1992 + STRUCT_1993 + STRUCT_1994 + STRUCT_1995 + STRUCT_1996 + STRUCT_1997 + STRUCT_1998 + STRUCT_1999 + STRUCT_2000 + + + + MM + 1 + NONE + + $POSITION + $MO + $MP_0 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + DEFAULT + DEFAULT + DEFAULT + DEFAULT + 1 + 1 + + + + + 2 + M_SPECTRUM + MODULE + 0 + + + + + + + $P_0 + PSD + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $RETURN_WERT + 2 + 2 + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + $RETURN_WERT + + 1 + - + - + - + - + + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + $EH + - + 3 + 3 + + + + + 4 + M_NOP + MODULE + 0 + + + + + + + + + + + + + + + + + 4 + 4 + + + + + + MM + 1 + KONSTDEF + + $POSITION + $MO + $P_0 + $EH + $RETURN_WERT + + + + + + 1 + M_ZUWEIS + MODULE + 0 + StdPav: Zuweisung von Konstanten aus der PAV heraus + + + + + + 1 + $POSITION + $RETURN_WERT + $P_0 + - + - + $EH + + + + + 2 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 2 + $POSITION + $P_0 + $MO + 1 + - + - + - + - + $EH + + + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + INT + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + $POSITION + $MO + - + - + - + - + - + - + - + - + - + + + + + + MM + 1 + WARTEN + + $POSITION + + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Anschalten von Stimuli und abwarten der Wartezeit + + + + + + 1 + $POSITION + - + - + - + - + + + + + + MM + 1 + PRINTOUT + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &ERRORFLAG + + + + + 1 + E_OUT + MODULE + 0 + Hardware anschalten + + + + + + 1 + $POSITION + - + - + - + - + + + + + 2 + R_KUNDDAT + MODULE + 0 + + + + + + + 2 + $POSITION + - + PRINTOUT + $P_1 + - + $P_0 + $MO + - + $RETURN_WERT + TEST + - + &ERRORFLAG + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + 0 + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + - + - + - + + + + + + MM + 1 + DCV + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + + + + + 1 + E_SCANNER + MODULE + 0 + STDPAV:Gleichspannungsmessung + + + + + + 1 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + - + - + - + ON + + + + + 2 + E_OUT + MODULE + 0 + Hardware anschalten + + + + + + 2 + $POSITION + - + - + - + - + + + + + 3 + M_DMM + MODULE + 0 + Messung durchf?ren + + + + + + 3 + $POSITION + DVM_01 + DCV + $P_0 + $P_1 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 0 + OFF + FALSE + NONE + 0 + NORM + &MEWE + 0 + $EH + - + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Messung auswerten + + + + + + 4 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 5 + E_SCANNER + MODULE + 0 + Me?canner abschalten + + + + + + 5 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + - + - + - + OFF + + + + + 6 + M_NOP + MODULE + 0 + Ende Makro bekannt geben und Parameter aus der PAV auffangen + + + + + + 6 + $POSITION + - + $MP_2 + $MP_3 + - + - + - + - + - + - + - + + + + + + MM + 1 + CAN2000INI + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &FEHLERFLAG + &MAX + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Initialisierung KWP2000 ueber CAN + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + P_STEUER + MODULE + 0 + STDPAV: Init CAN + + + + + + 2 + $POSITION + SKM + $P_0 + CW2000 + 00 + 7F + 01 + &G_CAN + + + + + 3 + P_INIT + MODULE + 0 + + + + + + + 3 + 0 + SAMMLE + CAN_T_SEND + 100 + &CAN_T_SEND + + + + + 4 + P_INIT + MODULE + 0 + + + + + + + 4 + 0 + SAMMLE + CAN_T_READ + 2000 + &CAN_T_SEND + + + + + 5 + P_INIT + MODULE + 0 + + + + + + + 5 + $POSITION + SAMMLE + CAN_DRIVER + $P_1 + &CAN_DRIVER + + + + + 6 + P_INIT + MODULE + 0 + + + + + + + 6 + 0 + SAMMLE + BAUDRATE + $P_2 + &BAUDRATE + + + + + 7 + P_INIT + MODULE + 0 + + + + + + + 7 + 0 + SAMMLE + CAN_TAST + $P_3 + &CAN_TAST + + + + + 8 + P_INIT + MODULE + 0 + + + + + + + 8 + 0 + SAMMLE + CAN_WIDER + $P_4 + &CAN_WIDER + + + + + 9 + P_INIT + MODULE + 0 + + + + + + + 9 + $POSITION + CAN_SCHREIB + NA_ARCHITEKTUR + $P_5 + &CAN_SCHREIB + + + + + 11 + M_NOP + MODULE + 0 + + + + + + + 11 + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + - + - + - + + + + + 13 + P_CANSTD + MODULE + 0 + Sende- und Empfangsobjekt einstellen + + + + + + 13 + $POSITION + CANBLOCK + $P_6 + $P_7 + $P_8 + $P_9 + INITPROT + + 0 + - + &FEHLERFLAG + &MEWE + + + + + 14 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 14 + 0 + &MEWE + C2000INI + 1 + - + - + - + - + $EH + + + - + - + - + - + - + - + - + - + - + &FEHLERFLAG + JA + NORMAL + $RETURN_WERT + - + + + + + 15 + P_AUFTRAG + MODULE + 0 + Einschalten des Protokolls ISO15765 + + + + + + 15 + $POSITION + COMMANDUI + 0 + - + - + S + - + - + 0 + - + + + + + 16 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 16 + 0 + &MEWE + C2000_EIN + 1 + - + - + - + - + STR + + + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + + MM + 1 + DCIS + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_HILF + &G_MEWE + &G_MEWEOUT + + + + + 1 + M_ZUWEIS + MODULE + 0 + + + + + + + 1 + $POSITION + &G_HILF + $P_2 + SHUNT_DCIS + - + STRING + + + + + 2 + E_SCANNER + MODULE + 0 + Mess Scanner anlegen + + + + + + 2 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + - + - + - + ON + + + + + 3 + E_OUT + MODULE + 0 + + + + + + + 3 + $POSITION + - + - + - + - + + + + + 4 + M_DMM + MODULE + 0 + Messung durchf?ren + + + + + + 4 + $POSITION + DVM_01 + DCV + $P_0 + $P_1 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 0 + OFF + FALSE + NONE + 0 + NORM + &G_MEWE + 0 + $EH + - + + + + + 5 + R_RECHNE + MODULE + 0 + + + + + + + 5 + $POSITION + (&G_MEWE)/(&G_HILF) + &G_MEWEOUT + - + 0 + + + + + 6 + M_AUSWERTUNG + MODULE + 0 + Messung auswerten + + + + + + 6 + $POSITION + &G_MEWEOUT + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 7 + E_SCANNER + MODULE + 0 + Me?canner abschalten + + + + + + 7 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + - + - + - + OFF + + + + + 8 + M_NOP + MODULE + 0 + Ende Makro bekannt geben und Parameter aus der PAV auffangen + + + + + + 8 + $POSITION + - + $MP_2 + $MP_3 + - + - + - + - + - + - + - + + + + + + MM + 1 + BERECHNEN + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &FEHLER + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + M_NOP + MODULE + 0 + STDPAV:Berechnen von Termen + + + + + + 2 + - + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + - + - + - + - + - + + + + + 3 + R_RECHNE + MODULE + 0 + + + + + + + 3 + $POSITION + $P_0 + $RETURN_WERT + &FEHLER + $P_1 + + + + + 4 + M_ZUWEIS + MODULE + 0 + + + + + + + 4 + 0 + &MEWE + $RETURN_WERT + - + - + STRING + + + + + 5 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 5 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &FEHLER + JA + NORMAL + $RETURN_WERT + INT + + + + + + MM + 1 + COMBLOCK + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Schnittstelle sendet String an SG und empfaengt Antwort + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + P_AUFTRAG + MODULE + 0 + STDPAV: Schnittstelle sendet String an SG und empfaengt Antwort + + + + + + 2 + $POSITION + COMBLOCK + $P_0 + $P_1 + $P_2 + $P_3 + - + - + &RX_BUFFER + - + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + $POSITION + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + &TX_BUFFER + $EH + $MIN + $MAX + $RETURN_WERT + + + + + + MM + 1 + BLOCKINT + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &FEHLERFLAG + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Zerl. und vergleichen des Strings von der Schnittstelle + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + P_ZERLEGE_STR + MODULE + 0 + STDPAV: String der Schnittst. zerlegen und Auswerten + + + + + + 2 + $POSITION + - + STRING1 + $P_0 + $P_1 + &MEWELEN + &MEWE + &FEHLERFLAG + HEX + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + Auswerten als Hex-Werte mit Toleranzen + + + + + + 3 + $POSITION + &MEWE + $MO + 1 + - + JA + - + - + $EH + $MIN + $MAX + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + - + - + - + - + &FEHLERFLAG + JA + NORMAL + $RETURN_WERT + HEX + &MEWELEN + + + + + + MM + 1 + STRCAT + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + M_NOP + MODULE + 0 + STDPAV: ZusammenfOgen von Strings + + + + + + 2 + 0 + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $EH + - + - + - + - + - + + + + + 3 + R_STRCAT + MODULE + 0 + + + + + + + 3 + $POSITION + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $RETURN_WERT + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR + + + + + + 4 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + STRCMP + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + &MEWE + - + + + + + + MM + 1 + HEXSTRINGTOSTR + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_STRFORMAT + MODULE + 0 + STDPAV: Umwandeln eines ASCII-Strings in seinen Hex-String + + + + + + 2 + $POSITION + $P_0 + HEX + 20 + - + N + ASCII + $RETURN_WERT + - + + + + + 3 + M_NOP + MODULE + 0 + STDPAV: Umwandeln eines Strings in Integer Basis 10) + + + + + + 3 + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $EH + $P_1 + - + - + - + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR, Funktioniert nur, wenn $p_1 = 0 !! + + + + + + 4 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + STRCMP + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + &MEWE + - + + + + + + MM + 1 + STRCMP + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &CMP_RESULT + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + M_NOP + MODULE + 0 + STDPAV: ZusammenfOgen von Strings + + + + + + 2 + 0 + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $EH + - + - + - + - + - + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 3 + $POSITION + $P_0 + VXI + 1 + - + NEIN + - + - + STRCMP + $P_1 + $P_1 + - + - + - + - + - + - + - + - + - + 0 + JA + CMP_VALUE + &CMP_RESULT + INT + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR + + + + + + 4 + $POSITION + &CMP_RESULT + $MO + 1 + - + - + - + - + INT + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + INT + + + + + + MM + 1 + BITOP + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $MIN + $MAX + $EH + $RETURN_WERT + + + &PAR0 + &G_FEHL1 + &PAR1 + &G_FEHL2 + &MEWE + &G_FEHL3 + &FEHLER + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_STRFORMAT + MODULE + 0 + STDPAV: Bit-Operationen + + + + + + 2 + 0 + $P_0 + INT + 16 + - + - + HEX + &PAR0 + &G_FEHL1 + + + + + 3 + R_STRFORMAT + MODULE + 0 + Parameter1 von INT in HEX + + + + + + 3 + 0 + $P_1 + INT + 16 + - + - + HEX + &PAR1 + &G_FEHL2 + + + + + 4 + R_STROPERATE + MODULE + 0 + STDPAV:Bitverk?fung von zwei Integerzahlen.Ergebnis Hex + + + + + + 4 + 0 + HEX + &PAR0 + $P_2 + &PAR1 + &MEWE + &G_FEHL3 + + + + + 5 + R_RECHNE + MODULE + 0 + + + + + + + 5 + 0 + (&G_FEHL1+&G_FEHL2+&G_FEHL3) + &FEHLER + - + 0 + + + + + 6 + M_AUSWERTUNG + MODULE + 0 + Auswertung Ergebnis + + + + + + 6 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &FEHLER + JA + NORMAL + $RETURN_WERT + HEX + + + + + 7 + M_NOP + MODULE + 0 + NOP + + + + + + 7 + 0 + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + - + - + - + - + - + + + + + + MM + 1 + DCVTRG + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_TEILER_DCVT + &G_HIPI_DCVTRG + &G_SCANNER + &TRIGGER_LINE + &G_RESTZEIT + &MEWE + + + + + 1 + F_MESSTEILER + MODULE + 0 + STDPAV:Getriggerte Gleichspannung messen + + + + + + 1 + $POSITION + MESSTEILER + $P_0 + - + $MP_0 + ON + $MIN + $MAX + &G_TEILER_DCVT + + + + + 2 + M_ZUWEIS + MODULE + 0 + + + + + + + 2 + $POSITION + &G_HIPI_DCVTRG + $MP_0 + - + - + STRING + + + + + 3 + E_TRIGGER + MODULE + 0 + + + + + + + 3 + $POSITION + TRIG_01 + DVM_TRG + $P_0 + $P_2 + $P_1 + $P_3 + &G_SCANNER + &TRIGGER_LINE + &G_TEILER_DCVT + DCVTRG + &G_RESTZEIT + + + + + 4 + E_SCANNER + MODULE + 0 + + + + + + + 4 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + &G_SCANNER + $P_5 + $P_6 + ON + + + + + 5 + E_OUT + MODULE + 0 + + + + + + + 5 + $POSITION + - + - + - + - + + + + + 6 + M_DMM + MODULE + 0 + + + + + + + 6 + $POSITION + DVM_01 + DCV + $P_0 + $P_4 + &TRIGGER_LINE + 1 + &G_RESTZEIT + IMMEDIATE + 1 + 0 + OFF + FALSE + NONE + 0 + $P_8 + &MEWE + $P_7 + $EH + &G_TEILER_DCVT + + + + + 7 + M_MAKRO_ENDE + MODULE + 0 + + + + + + + 7 + $POSITION + $P_8 + + + + + 8 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 8 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 9 + E_SCANNER + MODULE + 0 + + + + + + + 9 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + &G_SCANNER + $P_5 + $P_6 + OFF + + + + + 10 + F_MESSTEILER + MODULE + 0 + + + + + + + 10 + $POSITION + MESSTEILER + $P_0 + - + &G_HIPI_DCVTRG + OFF + 0 + 0 + &G_TEILER_DCVT + + + + + 11 + M_NOP + MODULE + 0 + + + + + + + 11 + $POSITION + $MP_2 + $MP_3 + - + - + - + - + - + - + - + - + + + + + + MM + 1 + CONTROL + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + M_CONTROL + MODULE + 0 + Mess Scanner anlegen + + + + + + 1 + $POSITION + $P_0 + $P_1 + + + + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + MM + 1 + BREAK + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + M_NOP + MODULE + 0 + STDPAV: Abbruch wenn Messwert aus Toleranz + + + + + + 2 + 0 + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + - + - + - + - + - + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 3 + $POSITION + $P_0 + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + INT + + + + + 4 + M_ABBRUCH + MODULE + 0 + + + + + + + 4 + 0 + BREAK_ABBRUCH + + + + + + MM + 1 + GETDATAAF + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_GETDATA_ALIASFILE + &ERRORFLAG + + + + + 1 + E_OUT + MODULE + 0 + Hardware anschalten + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + M_ZUWEIS + MODULE + 0 + $P_0 [Aliasfilename] globaler Variablen &G_GETDATA_ALIASFILE zuweisen + + + + + + 2 + $POSITION + &G_GETDATA_ALIASFILE + $P_0 + - + - + STRING + + + + + 3 + R_DATATABLE + MODULE + 0 + Quelle [Aliasfilename] oeffnen + + + + + + 3 + $POSITION + READFILE_LC + LOAD + &G_GETDATA_ALIASFILE + ";" + - + - + - + - + + + + + + + + &ERRORFLAG + + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Fehlerflag auswerten und $P_0 [Aliasfilename] anzeigen + + + + + + 4 + $POSITION + &G_GETDATA_ALIASFILE + $MO + 1 + - + - + - + - + STR + MIN + MAX + - + - + - + - + - + - + - + - + - + &ERRORFLAG + JA + NORMAL + $RETURN_WERT + - + + + + + 5 + M_NOP + MODULE + 0 + NBT + + + + + + 5 + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + + $MIN + $MAX + $EH + + + + + + MM + 1 + GETDATASTR + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_GETDATA_ALIASFILE + &INPUTKEY + &COLUMN + &QUELLE + &PSTAND + &E1 + &E2 + &E3 + &E4 + &ERROR + + + + + 1 + E_OUT + MODULE + 0 + Hardware anschalten + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_DATATABLE + MODULE + 0 + Parameter &INPUTKEY, &COLUMN, &QUELLE aus Aliasfile mit $P_0 ermitteln + + + + + + 2 + $POSITION + GET_LC + LOAD + &G_GETDATA_ALIASFILE + ";" + $P_0 + STRING + 2 + 5 + &INPUTKEY + &COLUMN + &QUELLE + &PSTAND + + + + &E1 + + + + + + 3 + R_DATATABLE + MODULE + 0 + Quelle [&QUELLE] oeffnen + + + + + + 3 + $POSITION + READFILE_LC + LOAD + &QUELLE + ";" + - + - + - + - + + + + + + + + &E2 + + + + + + 4 + R_DATATABLE + MODULE + 0 + $RETURN_WERT aus Quelle [&QUELLE] mit Inputkey [&INPUTKEY] ermitteln + + + + + + 4 + $POSITION + GET_LC + LOAD + &QUELLE + ";" + &INPUTKEY + STRING + &COLUMN + &COLUMN + $RETURN_WERT + + + + + + &PSTAND + &E3 + + + + + + 5 + E_CONVERT + MODULE + 0 + $RETURN_WERT in gewuenschtes Format wandeln + + + + + + 5 + $POSITION + $RETURN_WERT + $P_1 + $P_2 + &E4 + $RETURN_WERT + LOAD + + + + + 6 + R_RECHNE + MODULE + 0 + 4 Fehlerflags zusammenfassen zu einem + + + + + + 6 + $POSITION + (&E1_GETDATASTR+&E2_GETDATASTR+&E3_GETDATASTR+&E4_GETDATASTR) + &ERROR + - + 0 + + + + + 7 + M_AUSWERTUNG + MODULE + 0 + Fehlerflag auswerten und $RETURN_WERT anzeigen + + + + + + 7 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + STR + MIN + MAX + - + - + - + - + - + - + - + - + - + &ERROR + JA + NORMAL + $RETURN_WERT + - + + + + + 8 + M_NOP + MODULE + 0 + NBT + + + + + + 8 + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + + + + + + + + MM + 1 + START + + + &MEWE + &G_TRG_NAME_2 + + + + + 1 + E_KOPPELFELD + MODULE + 0 + DVM01 Bruecke zwischen Massen setzen + + + + + + 1 + 0 + MESS_KF + DVM_01_MESS_R + - + >MKA10 + ON + + + + + 2 + E_KOPPELFELD + MODULE + 0 + DVM02 Bruecke zwischen Massen setzen + + + + + + 2 + 0 + MESS_KF + DVM_02_MESS_R + - + >MKA14 + ON + + + + + 4 + L_KAM_KONFIG + MODULE + 0 + L_KAM_KONFIG Standardeinstellung fuers KAM + + + + + + 4 + 0 + U_KON_KONFIG4 + UBATT_ULAST + - + - + + + + + 6 + E_KOPPELFELD + MODULE + 0 + Inputs vom DVM01 werden kurzgeschlossen + + + + + + 6 + 0 + MESS_KF + DVM_01_MESS + >MK1 + >MK1 + ON + + + + + 7 + E_KOPPELFELD + MODULE + 0 + Inputs vom DVM02 werden kurzgeschlossen + + + + + + 7 + 0 + MESS_KF + DVM_02_MESS + >MK11 + >MK11 + ON + + + + + 9 + E_OUT + MODULE + 0 + alles aktiv + + + + + + 9 + 0 + - + - + - + - + + + + + 10 + M_DMM + MODULE + 0 + DVM1 Dummymessung zwecks Reset der Eingangsbausteine + + + + + + 10 + 0 + DVM_01 + DCV + 0.1 + 0.02 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 100 + OFF + FALSE + NONE + 0 + NORM + &MEWE + 3 + V + - + + + + + 11 + M_AUSWERTUNG + MODULE + 0 + Auswertung der 1. DVM-Messung + + + + + + 11 + 0 + &MEWE + DVM1INI + 1 + - + - + - + - + MV + -100. + 100. + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + 12 + M_DMM + MODULE + 0 + DVM2 Dummymessung zwecks Reset der Eingangsbausteine + + + + + + 12 + 0 + DVM_02 + DCV + 0.1 + 0.02 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 100 + OFF + FALSE + NONE + 0 + NORM + &MEWE + 3 + V + - + + + + + 13 + M_AUSWERTUNG + MODULE + 0 + Auswertung der 2. DVM-Messung + + + + + + 13 + 0 + &MEWE + DVM2INI + 1 + - + - + - + - + MV + -100 + 100 + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + 14 + E_KOPPELFELD + MODULE + 0 + kurzgeschlossene Inputs vom DVM01 werden abgeschaltet + + + + + + 14 + 0 + MESS_KF + DVM_01_MESS + >MK1 + >MK1 + OFF + + + + + 15 + E_KOPPELFELD + MODULE + 0 + kurzgeschlossene Inputs vom DVM02 werden abgeschaltet + + + + + + 15 + 0 + MESS_KF + DVM_02_MESS + >MK11 + >MK11 + OFF + + + + + 16 + M_ZUWEIS + MODULE + 0 + + + + + + + 16 + 0 + &G_TRG_NAME_2 + DVM_TRG_2 + - + - + STRING + + + + + 20 + E_WAIT + MODULE + 0 + E_WAIT bis hierhin ist Platz + + + + + + 20 + 0 + - + 1 + 0 + 0 + &MEWE + + + + + + MM + 1 + COM_KONSTDEF + + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + + + + + + 1 + M_ZUWEIS + MODULE + 0 + + + + + + + 1 + 0 + $P_0 + $P_3 + - + - + STRING + + + + + 2 + M_ZUWEIS + MODULE + 0 + + + + + + + 2 + 0 + $P_1 + $P_4 + - + - + STRING + + + + + 3 + M_ZUWEIS + MODULE + 0 + + + + + + + 3 + 0 + $P_2 + $P_5 + - + - + STRING + + + + + 4 + M_NOP + MODULE + 0 + Nicht benutzte Parameter im Bereich SKM + + + + + + 4 + 0 + $P_6 + $P_7 + $P_8 + + + + + + + + + + + + + MM + 1 + COM_INIT + + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + + + + + + 1 + P_STEUER + MODULE + 0 + + + + + + + 1 + 0 + SKM + SKM_01 + $P_0 + - + - + $P_1 + - + + + + + 2 + P_AUFTRAG + MODULE + 0 + + + + + + + 2 + + TIMEOUT_SKM + $P_2 + - + - + - + - + - + 0 + - + + + + + 3 + P_INIT + MODULE + 0 + + + + + + + 3 + + SAMMLE + T_BYTE + $P_3 + 0 + + + + + 4 + P_INIT + MODULE + 0 + + + + + + + 4 + + SAMMLE + T_KOMMUNIK + $P_4 + 0 + + + + + 5 + P_INIT + MODULE + 0 + + + + + + + 5 + + SAMMLE + W_BLOCK + $P_5 + 0 + + + + + 6 + P_INIT + MODULE + 0 + + + + + + + 6 + + SAMMLE + WZ_BYTE + $P_6 + 0 + + + + + 7 + P_INIT + MODULE + 0 + + + + + + + 7 + + SAMMLE + BAUDRATE + $P_7 + 0 + + + + + 8 + P_INIT + MODULE + 0 + + + + + + + 8 + + SAMMLE + STEUER + $P_8 + 0 + + + + + 9 + P_INIT + MODULE + 0 + 14.06.2007 neu hinzu + + + + + + 9 + + SAMMLE + COM1 + 0000 + 0 + + + + + 10 + P_INIT + MODULE + 0 + 14.06.2007 neu hinzu + + + + + + 10 + + SAMMLE + COM2 + 0000 + 0 + + + + + 11 + P_INIT + MODULE + 0 + 15.06.2007 auf SCHREIB geaendert + + + + + + 11 + + SCHREIB + 70 + $P_9 + 0 + + + + + + MM + 1 + K2000START + + $POSITION + $ANSTEUER_UNIT + $TIMEOUT_SKM + + + &MEWE + + + + + 1 + P_STEUER + MODULE + 0 + SKM Startini im Zusammenhang mit Makro K2000INI aus STDPAV noetig + + + + + + 1 + $POSITION + SKM + $ANSTEUER_UNIT + KW2000 + 00 + 7F + 1 + - + + + + + 2 + P_INIT + MODULE + 0 + Grundinit fuer KP2000 SKM (Serielles Kommunikationsmodul) + + + + + + 2 + 0 + CLEAR + 0 + 0 + 0 + + + + + 3 + P_INIT + MODULE + 0 + COM1 mit 0B88 + + + + + + 3 + 0 + SAMMLE + COM1 + 0B88 + 0 + + + + + 4 + P_INIT + MODULE + 0 + COM2 mit 0012 + + + + + + 4 + 0 + SAMMLE + COM2 + 0012 + 0 + + + + + 5 + P_INIT + MODULE + 0 + STEUER mit 0100 + + + + + + 5 + 0 + SAMMLE + STEUER + 0100 + 0 + + + + + 6 + P_INIT + MODULE + 0 + FORMAT mit 20 + + + + + + 6 + 0 + SAMMLE + FORMAT + 20 + 0 + + + + + 7 + P_INIT + MODULE + 0 + W_VOR_REIZEN mit 50 + + + + + + 7 + 0 + SAMMLE + W_VOR_REIZEN + 50 + 0 + + + + + 8 + P_INIT + MODULE + 0 + ADRESSIERUNG 02 + + + + + + 8 + 0 + SAMMLE + ADRESSIERUNG + 02 + 0 + + + + + 9 + P_INIT + MODULE + 0 + AD_SOURCE mit F1 + + + + + + 9 + $POSITION + SCHREIB + AD_SOURCE + F1 + &MEWE + + + + + 10 + M_AUSWERTUNG + MODULE + 0 + Auswertung K2000START + + + + + + 10 + $POSITION + &MEWE + K2000START + 1 + - + - + - + - + STR + MIN + MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + 19 + P_AUFTRAG + MODULE + 0 + + + + + + + 19 + $POSITION + TIMEOUT_SKM + $TIMEOUT_SKM + - + - + L + - + - + 0 + - + + + + + + MM + 1 + PRINTINT + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &FEHLER + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + M_NOP + MODULE + 0 + STDPAV:Darstellen eines Int-Werts(Eing INT) als format. String + + + + + + 2 + - + - + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + - + - + - + $EH + + + + + 3 + R_STRFORMAT + MODULE + 0 + + + + + + + 3 + $POSITION + $P_0 + INT + $P_1 + - + $P_2 + $P_3 + &MEWE + &FEHLER + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR, kann HEX-STRING oder INT-String oder... sein + + + + + + 4 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $P_3 + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &FEHLER + JA + NORMAL + $RETURN_WERT + $P_3 + + + + + + MM + 1 + STRCOPY + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $MIN + $MAX + $EH + $RETURN_WERT + + + &ERRORFLAG + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_STRCOPY + MODULE + 0 + STDPAV: Ausschneiden eines Teilstrings + + + + + + 2 + $POSITION + INIT + - + $P_0 + - + - + - + $P_1 + $P_2 + - + - + $RETURN_WERT + &ERRORFLAG + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + - + - + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR + + + + + + 4 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + STR + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &ERRORFLAG + JA + NORMAL + &MEWE + - + + + + + + MM + 1 + STRTOINT + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &ERRORFLAG + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_STRFORMAT + MODULE + 0 + + + + + + + 2 + $POSITION + $P_0 + $P_1 + 10 + - + N + INT + &MEWE + &ERRORFLAG + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + - + - + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 4 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + INT + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &ERRORFLAG + JA + NORMAL + $RETURN_WERT + INT + + + + + + MM + 1 + ACV + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + + + + + 1 + E_SCANNER + MODULE + 0 + STDPAV: Messen einer Wechselspannung + + + + + + 1 + $POSITION + - + DVM_02_MESS + $MP_0 + $MP_1 + - + - + - + ON + + + + + 2 + M_DMM + MODULE + 0 + Messung durchf?ren + + + + + + 2 + $POSITION + DVM_02 + ACV + $P_0 + $P_1 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 100 + OFF + FALSE + NONE + 0 + INIT + &MEWE + 0 + $EH + - + + + + + 3 + E_OUT + MODULE + 0 + Hardware anschalten + + + + + + 3 + $MP_2 + - + - + - + - + + + + + 4 + M_DMM + MODULE + 0 + Messung durchf?ren + + + + + + 4 + $POSITION + DVM_02 + ACV + $P_0 + $P_1 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 100 + OFF + FALSE + NONE + 0 + AR + &MEWE + 0 + $EH + - + + + + + 5 + M_AUSWERTUNG + MODULE + 0 + Messung auswerten + + + + + + 5 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 6 + E_SCANNER + MODULE + 0 + Me?canner abschalten + + + + + + 6 + $MP_3 + - + DVM_02_MESS + $MP_0 + $MP_1 + - + - + - + OFF + + + + + + MM + 1 + FREQUENZ + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_START + &TRIGGER_LINE1 + &MEWE + + + + + 1 + E_TRIGGER + MODULE + 0 + STDPAV:Frequenzmessung + + + + + + 1 + 0 + TRIG_01 + COUN_A + $P_0 + $P_2 + $P_1 + 0 + &G_START + &TRIGGER_LINE1 + - + NORM + 0 + + + + + 2 + E_SCANNER + MODULE + 0 + + + + + + + 2 + 0 + - + &G_START + $MP_0 + $MP_1 + - + - + - + ON + + + + + 3 + E_OUT + MODULE + 0 + + + + + + + 3 + 0 + - + - + - + - + + + + + 4 + M_COUNTER + MODULE + 0 + + + + + + + 4 + $POSITION + COUN_01 + FREQ1 + M + 1.0 + 0.001 + 1 + $P_3 + 0 + $EH + 0 + 0 + &MEWE + + + + + 5 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 5 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 6 + E_SCANNER + MODULE + 0 + + + + + + + 6 + $POSITION + - + &G_START + $MP_0 + $MP_1 + - + - + - + OFF + + + + + 7 + M_NOP + MODULE + 0 + + + + + + + 7 + 0 + $MP_2 + $MP_3 + - + - + - + - + - + - + - + - + + + + + + MMXX + 1 + KUNDENDAT1 + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_MGERROR + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_KUNDDAT + MODULE + 0 + STDPAV: Kundendaten zuweisen + + + + + + 2 + $POSITION + - + $P_0 + $P_1 + $P_5 + $P_2 + $P_3 + $P_4 + $RETURN_WERT + TEST + - + &G_MGERROR + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + -- + -- + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR! + + + + + + 4 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + STRCMP + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + + MM + 1 + SEEDKEY + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $MIN + $MAX + $EH + $RETURN_WERT + + + &ERRORFLAG + &TMP1 + &TMP2 + &TMP3 + &TMP4 + &TMP5 + &TMP6 + &TMP7 + &TMP8 + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + R_DATATABLE + MODULE + 0 + STDPAV: Messfunktion zum "Aufschliessen" des Steuergeraets + + + + + + 2 + $POSITION + READFILE + LOAD + SEED_KEY_DEF + ";" + $P_1 + STRING + - + - + - + - + - + - + - + - + - + &ERRORFLAG + + + + + + 3 + R_DATATABLE + MODULE + 0 + R_DATATABLE: Holen der Paramter zu $P_1 aus seed_key_def.cnf + + + + + + 3 + $POSITION + GET + TEST + SEED_KEY_DEF + ";" + $P_1 + STRING + 2 + 7 + &TMP1 + &TMP2 + &TMP3 + &TMP4 + &TMP5 + &TMP6 + - + &ERRORFLAG + + + + + + 4 + E_ECUMEMDATA + MODULE + 0 + ECUMEMDATA: Zur Ermittlung des Parameter1 fuer RB_SEEDKEY_TYPE1/2 + + + + + + 4 + 0 + $P_0 + KWP2000-SECURITY + KWP2000_SETUP + ECU-SECURITY-PARAMETER1 + 0 + - + &TMP7 + + + + + 5 + E_ECUMEMDATA + MODULE + 0 + ECUMEMDATA: Zur Ermittlung des Parameter2 fuer RB_SEEDKEY_TYPE1/2 + + + + + + 5 + 0 + $P_0 + KWP2000-SECURITY + KWP2000_SETUP + ECU-SECURITY-PARAMETER2 + 0 + - + &TMP8 + + + + + 6 + R_SEEDKEY + MODULE + 0 + SEEDKEY: Ermitteln des Schluessel + + + + + + 6 + $POSITION + &TMP1 + &TMP2 + &TMP3 + &TMP4 + &TMP5 + &TMP6 + $P_2 + $RETURN_WERT + - + &ERRORFLAG + &TMP7 + &TMP8 + + + + + 7 + M_AUSWERTUNG + MODULE + 0 + M_AUSWERTUNG: Auswertung SEEDKEY, Einheit immer STR + + + + + + 7 + $POSITION + $RETURN_WERT + SEEDKEY + 1 + - + - + - + - + STR + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &ERRORFLAG + JA + NORMAL + &MEWE + - + + + + + 10 + M_NOP + MODULE + 0 + NOP: Obsolete Parameter + + + + + + 10 + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + $P_0 + $MIN + $MAX + $EH + + + + + + MM + 1 + STRTOHEXSTRING + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_STRFORMAT + MODULE + 0 + STDPAV: Umwandeln eines ASCII-Strings in seinen Hex-String + + + + + + 2 + $POSITION + $P_0 + ASCII + 79 + - + N + HEXSTR + $RETURN_WERT + - + + + + + 3 + M_NOP + MODULE + 0 + STDPAV: Umwandeln eines Strings in Integer Basis 10) + + + + + + 3 + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $EH + - + - + - + - + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR, Funktioniert nur, wenn $p_1 = 0 !! + + + + + + 4 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + HEXSTR + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + &MEWE + - + + + + + + MM + 1 + COM_ANSTEUER + + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + + + + + + + + 1 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 1 + SKM + ANSTEUER + 1 + - + - + - + - + STR + MIN + MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + 2 + F_ANSTEUER + MODULE + 0 + + + + + + + 2 + ASC_SWITCH + B65_S + - + - + B65 + - + ANSTEUER_PAR + 1 + + + + + 3 + F_ANSTEUER + MODULE + 0 + + + + + + + 3 + ASC_REF_SWITCH + A080_S + - + - + A080 + - + ANSTEUER_PAR + 1 + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 4 + CFI + ANSTEUER + 1 + - + - + - + - + STR + MIN + MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + 5 + F_ANSTEUER + MODULE + 0 + + + + + + + 5 + ASC_REF_CFI + B65_S + - + - + B65 + - + ANSTEUER_PAR + 1 + + + + + 6 + F_ANSTEUER + MODULE + 0 + + + + + + + 6 + ASC_REF_CFI + A080_S + - + - + A080 + - + ANSTEUER_PAR + 1 + + + + + + MMXX + 1 + CAN2000INI2 + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $P_10 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &G_MGERROR + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Initialication from KWP2000 over CAN with + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + P_STEUER + MODULE + 0 + STDPAV: Init CAN + + + + + + 2 + $POSITION + SKM + $P_0 + CW2000 + 00 + 7F + 01 + &G_CAN + + + + + 3 + P_INIT + MODULE + 0 + + + + + + + 3 + 0 + SAMMLE + CAN_T_SEND + 100 + &CAN_T_SEND + + + + + 4 + P_INIT + MODULE + 0 + + + + + + + 4 + 0 + SAMMLE + CAN_T_READ + 2000 + &CAN_T_READ + + + + + 5 + P_INIT + MODULE + 0 + + + + + + + 5 + $POSITION + SAMMLE + CAN_DRIVER + $P_1 + &CAN_DRIVER + + + + + 6 + P_INIT + MODULE + 0 + + + + + + + 6 + 0 + SAMMLE + BAUDRATE_HDR + $P_2 + &BAUDRATE_HDR + + + + + 7 + P_INIT + MODULE + 0 + + + + + + + 7 + 0 + SAMMLE + CAN_TAST + $P_3 + &CAN_TAST + + + + + 8 + P_INIT + MODULE + 0 + + + + + + + 8 + 0 + SAMMLE + CAN_WIDER + $P_4 + &CAN_WIDER + + + + + 9 + P_INIT + MODULE + 0 + + + + + + + 9 + $POSITION + SAMMLE + BAUDRATE_DATA + $P_10 + &BAUDRATE_DATA + + + + + 10 + P_INIT + MODULE + 0 + + + + + + + 10 + $POSITION + CAN_SCHREIB + NA_ARCHITEKTUR + $P_5 + &NA_ARCHITEKTUR + + + + + 11 + M_NOP + MODULE + 0 + + + + + + + 11 + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + - + -- + -- + + + + + 13 + P_CANSTD + MODULE + 0 + Sende- und Empfangsobjekt einstellen + + + + + + 13 + $POSITION + CANBLOCK + $P_6 + $P_7 + $P_8 + $P_9 + INITPROT + + 0 + - + &G_MGERROR + &MEWE + + + + + 14 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 14 + $POSITION + &MEWE + C2000INI + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 15 + P_AUFTRAG + MODULE + 0 + Einschalten des Protokolls ISO15765 + + + + + + 15 + $POSITION + COMMANDUI + 0 + - + - + S + - + - + 0 + - + + + + + 19 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 19 + 0 + &MEWE + C2000_EIN + 1 + - + - + - + - + STR + + + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + + MM + 1 + CONVERT_TYPE + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $MIN + $MAX + $EH + $RETURN_WERT + + + &ERRORFLAG + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_CONVERTTYPE + MODULE + 0 + + + + + + + 2 + $POSITION + $P_0 + $P_1 + $RETURN_WERT + $EH + $P_2 + $P_3 + $P_4 + &ERRORFLAG + + + + + + MM + 1 + STRLEN + + $POSITION + $MO + $MP_0 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &FEHLERFLAG + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Zerl. und vergleichen des Strings von der Schnittstelle + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + P_EDIT_STR + MODULE + 0 + STDPAV: String der Schnittst. zerlegen und Auswerten + + + + + + 2 + $POSITION + Etc + $P_1 + 0 + -1 + - + - + &MEWE + - + - + - + - + - + - + - + &FEHLERFLAG + $EH + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + Auswerten als Hex-Werte mit Toleranzen + + + + + + 3 + $POSITION + &MEWE + $MO + 1 + - + JA + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &FEHLERFLAG + JA + NORMAL + $RETURN_WERT + - + + + + + + MM + 1 + COMBLOCK2 + + $POSITION + $MO + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + DEFAULT + DEFAULT + DEFAULT + DEFAULT + 2 + 2 + + + + + 2 + P_TRANSMIT_CAN + MODULE + 0 + + + + + + + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + 1 + 1 + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + + + + + + &TX_BUFFER + + + + + 3 + 3 + + + + + + MM + 1 + SENDBYETHERNET + + $POSITION + $MO + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + DEFAULT + DEFAULT + DEFAULT + DEFAULT + 1 + 1 + + + + + 2 + P_ETHERNET_TX + MODULE + 0 + + + + + + + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + STRING + 2 + 2 + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + $P_5 + + 1 + - + - + - + - + STRING + + + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + STRING + - + 4 + 4 + + + + + 4 + M_NOP + MODULE + 0 + + + + + + + + + + + + + + + + + 3 + 3 + + + + + + MM + 1 + PARSEMESSAGE + + $POSITION + $MO + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + DEFAULT + DEFAULT + DEFAULT + DEFAULT + 1 + 1 + + + + + 2 + R_PARSEMESSAGE + MODULE + 0 + + + + + + + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + &MEWE + 2 + 2 + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + &MEWE + + 1 + - + - + - + - + $P_5 + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + $EH + - + 3 + 3 + + + + + 4 + M_NOP + MODULE + 0 + + + + + + + + + + + + + + + + + 4 + 4 + + + + + + MM + 1 + RFMEAS_PSD + + $POSITION + $MO + $MP_0 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + DEFAULT + DEFAULT + DEFAULT + DEFAULT + 1 + 1 + + + + + 2 + M_SPECTRUM + MODULE + 0 + + + + + + + $P_0 + PSD + $P_9 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $RETURN_WERT + 2 + 2 + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + $RETURN_WERT + + 1 + - + - + - + - + + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + $EH + - + 3 + 3 + + + + + 4 + M_NOP + MODULE + 0 + + + + + + + + + + + + + + + + + 4 + 4 + + + + + + + + + 1 + E_DOKU + MODULE + 0 + (240731) CGVCMS EOL Integrated by LEE + + + + + + + WZ + - + - + NONE + + + + + UB_IMAX + - + - + NONE + + + + + UB + - + - + NONE + + + + + IQ_UMAX + - + - + NONE + + + + + A001_S + - + - + NONE + + + + + A007_S + - + - + NONE + + + + + A007_S1 + - + - + NONE + + + + + A007_S2 + - + - + NONE + + + + + A008_S + - + - + NONE + + + + + A008_S1 + - + - + NONE + + + + + A009_S + - + - + NONE + + + + + A010_R + - + - + NONE + + + + + A011_R + - + - + NONE + + + + + A011_S + - + - + NONE + + + + + A013_R + - + - + NONE + + + + + A013_S + - + - + NONE + + + + + A015_U + - + - + NONE + + + + + A015_S + - + - + NONE + + + + + A016_S + - + - + NONE + + + + + A016_U + - + - + NONE + + + + + A017_R + - + - + NONE + + + + + A017_S + - + - + NONE + + + + + A020_R + - + - + NONE + + + + + A024_R + - + - + NONE + + + + + A025_R + - + - + NONE + + + + + A027_R + - + - + NONE + + + + + A027_S + - + - + NONE + + + + + A033_SV + - + - + NONE + + + + + A033_S + - + - + NONE + + + + + A035_I + - + - + NONE + + + + + A035_R + - + - + NONE + + + + + A035_SV + - + - + NONE + + + + + A035_S + - + - + NONE + + + + + A038_I + - + - + NONE + + + + + A038_SV + - + - + NONE + + + + + A038_S + - + - + NONE + + + + + FGNCP_TYP + - + - + NONE + + + + + FGNCP_TV + - + - + NONE + + + + + FGNCP_RI + - + - + NONE + + + + + FGNCP_OFFSET + - + - + NONE + + + + + FGNCP_NAMP + - + - + NONE + + + + + FGNCP_FREQ + - + - + NONE + + + + + PLC + - + - + NONE + + + + + A019_R + - + - + NONE + + + + + A019_U + - + - + NONE + + + + + A032_S + - + - + NONE + + + + + A032_R + - + - + NONE + + + + + A032_U + - + - + NONE + + + + + A032_R2 + - + - + NONE + + + + + STRUCT_1656 + - + - + NONE + + + + + STRUCT_1657 + - + - + NONE + + + + + STRUCT_1658 + - + - + NONE + + + + + STRUCT_1659 + - + - + NONE + + + + + STRUCT_1660 + - + - + NONE + + + + + STRUCT_1661 + - + - + NONE + + + + + STRUCT_1662 + - + - + NONE + + + + + STRUCT_1663 + - + - + NONE + + + + + STRUCT_1664 + - + - + NONE + + + + + STRUCT_1665 + - + - + NONE + + + + + STRUCT_1666 + - + - + NONE + + + + + STRUCT_1667 + - + - + NONE + + + + + STRUCT_1668 + - + - + NONE + + + + + STRUCT_1669 + - + - + NONE + + + + + STRUCT_1670 + - + - + NONE + + + + + STRUCT_1671 + - + - + NONE + + + + + STRUCT_1672 + - + - + NONE + + + + + STRUCT_1673 + - + - + NONE + + + + + STRUCT_1674 + - + - + NONE + + + + + STRUCT_1675 + - + - + NONE + + + + + STRUCT_1676 + - + - + NONE + + + + + STRUCT_1677 + - + - + NONE + + + + + STRUCT_1678 + - + - + NONE + + + + + STRUCT_1679 + - + - + NONE + + + + + STRUCT_1680 + - + - + NONE + + + + + STRUCT_1681 + - + - + NONE + + + + + STRUCT_1682 + - + - + NONE + + + + + STRUCT_1683 + - + - + NONE + + + + + STRUCT_1684 + - + - + NONE + + + + + STRUCT_1685 + - + - + NONE + + + + + STRUCT_1686 + - + - + NONE + + + + + STRUCT_1687 + - + - + NONE + + + + + STRUCT_1688 + - + - + NONE + + + + + STRUCT_1689 + - + - + NONE + + + + + STRUCT_1690 + - + - + NONE + + + + + STRUCT_1691 + - + - + NONE + + + + + STRUCT_1692 + - + - + NONE + + + + + STRUCT_1693 + - + - + NONE + + + + + STRUCT_1694 + - + - + NONE + + + + + STRUCT_1695 + - + - + NONE + + + + + STRUCT_1696 + - + - + NONE + + + + + STRUCT_1697 + - + - + NONE + + + + + STRUCT_1698 + - + - + NONE + + + + + STRUCT_1699 + - + - + NONE + + + + + STRUCT_1700 + - + - + NONE + + + + + STRUCT_1701 + - + - + NONE + + + + + STRUCT_1702 + - + - + NONE + + + + + STRUCT_1703 + - + - + NONE + + + + + STRUCT_1704 + - + - + NONE + + + + + STRUCT_1705 + - + - + NONE + + + + + STRUCT_1706 + - + - + NONE + + + + + STRUCT_1707 + - + - + NONE + + + + + STRUCT_1708 + - + - + NONE + + + + + STRUCT_1709 + - + - + NONE + + + + + STRUCT_1710 + - + - + NONE + + + + + STRUCT_1711 + - + - + NONE + + + + + STRUCT_1712 + - + - + NONE + + + + + STRUCT_1713 + - + - + NONE + + + + + STRUCT_1714 + - + - + NONE + + + + + STRUCT_1715 + - + - + NONE + + + + + STRUCT_1716 + - + - + NONE + + + + + STRUCT_1717 + - + - + NONE + + + + + STRUCT_1718 + - + - + NONE + + + + + STRUCT_1719 + - + - + NONE + + + + + STRUCT_1720 + - + - + NONE + + + + + STRUCT_1721 + - + - + NONE + + + + + STRUCT_1722 + - + - + NONE + + + + + STRUCT_1723 + - + - + NONE + + + + + STRUCT_1724 + - + - + NONE + + + + + STRUCT_1725 + - + - + NONE + + + + + STRUCT_1726 + - + - + NONE + + + + + STRUCT_1727 + - + - + NONE + + + + + STRUCT_1728 + - + - + NONE + + + + + STRUCT_1729 + - + - + NONE + + + + + STRUCT_1730 + - + - + NONE + + + + + STRUCT_1731 + - + - + NONE + + + + + STRUCT_1732 + - + - + NONE + + + + + STRUCT_1733 + - + - + NONE + + + + + STRUCT_1734 + - + - + NONE + + + + + STRUCT_1735 + - + - + NONE + + + + + STRUCT_1736 + - + - + NONE + + + + + STRUCT_1737 + - + - + NONE + + + + + STRUCT_1738 + - + - + NONE + + + + + STRUCT_1739 + - + - + NONE + + + + + STRUCT_1740 + - + - + NONE + + + + + STRUCT_1741 + - + - + NONE + + + + + STRUCT_1742 + - + - + NONE + + + + + STRUCT_1743 + - + - + NONE + + + + + STRUCT_1744 + - + - + NONE + + + + + STRUCT_1745 + - + - + NONE + + + + + STRUCT_1746 + - + - + NONE + + + + + STRUCT_1747 + - + - + NONE + + + + + STRUCT_1748 + - + - + NONE + + + + + STRUCT_1749 + - + - + NONE + + + + + STRUCT_1750 + - + - + NONE + + + + + STRUCT_1751 + - + - + NONE + + + + + STRUCT_1752 + - + - + NONE + + + + + STRUCT_1753 + - + - + NONE + + + + + STRUCT_1754 + - + - + NONE + + + + + STRUCT_1755 + - + - + NONE + + + + + STRUCT_1756 + - + - + NONE + + + + + STRUCT_1757 + - + - + NONE + + + + + STRUCT_1758 + - + - + NONE + + + + + STRUCT_1759 + - + - + NONE + + + + + STRUCT_1760 + - + - + NONE + + + + + STRUCT_1761 + - + - + NONE + + + + + STRUCT_1762 + - + - + NONE + + + + + STRUCT_1763 + - + - + NONE + + + + + STRUCT_1764 + - + - + NONE + + + + + STRUCT_1765 + - + - + NONE + + + + + STRUCT_1766 + - + - + NONE + + + + + STRUCT_1767 + - + - + NONE + + + + + STRUCT_1768 + - + - + NONE + + + + + STRUCT_1769 + - + - + NONE + + + + + STRUCT_1770 + - + - + NONE + + + + + STRUCT_1771 + - + - + NONE + + + + + STRUCT_1772 + - + - + NONE + + + + + STRUCT_1773 + - + - + NONE + + + + + STRUCT_1774 + - + - + NONE + + + + + STRUCT_1775 + - + - + NONE + + + + + STRUCT_1776 + - + - + NONE + + + + + STRUCT_1777 + - + - + NONE + + + + + STRUCT_1778 + - + - + NONE + + + + + STRUCT_1779 + - + - + NONE + + + + + STRUCT_1780 + - + - + NONE + + + + + STRUCT_1781 + - + - + NONE + + + + + STRUCT_1782 + - + - + NONE + + + + + STRUCT_1783 + - + - + NONE + + + + + STRUCT_1784 + - + - + NONE + + + + + STRUCT_1785 + - + - + NONE + + + + + STRUCT_1786 + - + - + NONE + + + + + STRUCT_1787 + - + - + NONE + + + + + STRUCT_1788 + - + - + NONE + + + + + STRUCT_1789 + - + - + NONE + + + + + STRUCT_1790 + - + - + NONE + + + + + STRUCT_1791 + - + - + NONE + + + + + STRUCT_1792 + - + - + NONE + + + + + STRUCT_1793 + - + - + NONE + + + + + STRUCT_1794 + - + - + NONE + + + + + STRUCT_1795 + - + - + NONE + + + + + STRUCT_1796 + - + - + NONE + + + + + STRUCT_1797 + - + - + NONE + + + + + STRUCT_1798 + - + - + NONE + + + + + STRUCT_1799 + - + - + NONE + + + + + STRUCT_1800 + - + - + NONE + + + + + STRUCT_1801 + - + - + NONE + + + + + STRUCT_1802 + - + - + NONE + + + + + STRUCT_1803 + - + - + NONE + + + + + STRUCT_1804 + - + - + NONE + + + + + STRUCT_1805 + - + - + NONE + + + + + STRUCT_1806 + - + - + NONE + + + + + STRUCT_1807 + - + - + NONE + + + + + STRUCT_1808 + - + - + NONE + + + + + STRUCT_1809 + - + - + NONE + + + + + STRUCT_1810 + - + - + NONE + + + + + STRUCT_1811 + - + - + NONE + + + + + STRUCT_1812 + - + - + NONE + + + + + STRUCT_1813 + - + - + NONE + + + + + STRUCT_1814 + - + - + NONE + + + + + STRUCT_1815 + - + - + NONE + + + + + STRUCT_1816 + - + - + NONE + + + + + STRUCT_1817 + - + - + NONE + + + + + STRUCT_1818 + - + - + NONE + + + + + STRUCT_1819 + - + - + NONE + + + + + STRUCT_1820 + - + - + NONE + + + + + STRUCT_1821 + - + - + NONE + + + + + STRUCT_1822 + - + - + NONE + + + + + STRUCT_1823 + - + - + NONE + + + + + STRUCT_1824 + - + - + NONE + + + + + STRUCT_1825 + - + - + NONE + + + + + STRUCT_1826 + - + - + NONE + + + + + STRUCT_1827 + - + - + NONE + + + + + STRUCT_1828 + - + - + NONE + + + + + STRUCT_1829 + - + - + NONE + + + + + STRUCT_1830 + - + - + NONE + + + + + STRUCT_1831 + - + - + NONE + + + + + STRUCT_1832 + - + - + NONE + + + + + STRUCT_1833 + - + - + NONE + + + + + STRUCT_1834 + - + - + NONE + + + + + STRUCT_1835 + - + - + NONE + + + + + STRUCT_1836 + - + - + NONE + + + + + STRUCT_1837 + - + - + NONE + + + + + STRUCT_1838 + - + - + NONE + + + + + STRUCT_1839 + - + - + NONE + + + + + STRUCT_1840 + - + - + NONE + + + + + STRUCT_1841 + - + - + NONE + + + + + STRUCT_1842 + - + - + NONE + + + + + STRUCT_1843 + - + - + NONE + + + + + STRUCT_1844 + - + - + NONE + + + + + STRUCT_1845 + - + - + NONE + + + + + STRUCT_1846 + - + - + NONE + + + + + STRUCT_1847 + - + - + NONE + + + + + STRUCT_1848 + - + - + NONE + + + + + STRUCT_1849 + - + - + NONE + + + + + STRUCT_1850 + - + - + NONE + + + + + STRUCT_1851 + - + - + NONE + + + + + STRUCT_1852 + - + - + NONE + + + + + STRUCT_1853 + - + - + NONE + + + + + STRUCT_1854 + - + - + NONE + + + + + STRUCT_1855 + - + - + NONE + + + + + STRUCT_1856 + - + - + NONE + + + + + STRUCT_1857 + - + - + NONE + + + + + STRUCT_1858 + - + - + NONE + + + + + STRUCT_1859 + - + - + NONE + + + + + STRUCT_1860 + - + - + NONE + + + + + STRUCT_1861 + - + - + NONE + + + + + STRUCT_1862 + - + - + NONE + + + + + STRUCT_1863 + - + - + NONE + + + + + STRUCT_1864 + - + - + NONE + + + + + STRUCT_1865 + - + - + NONE + + + + + STRUCT_1866 + - + - + NONE + + + + + STRUCT_1867 + - + - + NONE + + + + + STRUCT_1868 + - + - + NONE + + + + + STRUCT_1869 + - + - + NONE + + + + + STRUCT_1870 + - + - + NONE + + + + + STRUCT_1871 + - + - + NONE + + + + + STRUCT_1872 + - + - + NONE + + + + + STRUCT_1873 + - + - + NONE + + + + + STRUCT_1874 + - + - + NONE + + + + + STRUCT_1875 + - + - + NONE + + + + + STRUCT_1876 + - + - + NONE + + + + + STRUCT_1877 + - + - + NONE + + + + + STRUCT_1878 + - + - + NONE + + + + + STRUCT_1879 + - + - + NONE + + + + + STRUCT_1880 + - + - + NONE + + + + + STRUCT_1881 + - + - + NONE + + + + + STRUCT_1882 + - + - + NONE + + + + + STRUCT_1883 + - + - + NONE + + + + + STRUCT_1884 + - + - + NONE + + + + + STRUCT_1885 + - + - + NONE + + + + + STRUCT_1886 + - + - + NONE + + + + + STRUCT_1887 + - + - + NONE + + + + + STRUCT_1888 + - + - + NONE + + + + + STRUCT_1889 + - + - + NONE + + + + + STRUCT_1890 + - + - + NONE + + + + + STRUCT_1891 + - + - + NONE + + + + + STRUCT_1892 + - + - + NONE + + + + + STRUCT_1893 + - + - + NONE + + + + + STRUCT_1894 + - + - + NONE + + + + + STRUCT_1895 + - + - + NONE + + + + + STRUCT_1896 + - + - + NONE + + + + + STRUCT_1897 + - + - + NONE + + + + + STRUCT_1898 + - + - + NONE + + + + + STRUCT_1899 + - + - + NONE + + + + + STRUCT_1900 + - + - + NONE + + + + + STRUCT_1901 + - + - + NONE + + + + + STRUCT_1902 + - + - + NONE + + + + + STRUCT_1903 + - + - + NONE + + + + + STRUCT_1904 + - + - + NONE + + + + + STRUCT_1905 + - + - + NONE + + + + + STRUCT_1906 + - + - + NONE + + + + + STRUCT_1907 + - + - + NONE + + + + + STRUCT_1908 + - + - + NONE + + + + + STRUCT_1909 + - + - + NONE + + + + + STRUCT_1910 + - + - + NONE + + + + + STRUCT_1911 + - + - + NONE + + + + + STRUCT_1912 + - + - + NONE + + + + + STRUCT_1913 + - + - + NONE + + + + + STRUCT_1914 + - + - + NONE + + + + + STRUCT_1915 + - + - + NONE + + + + + STRUCT_1916 + - + - + NONE + + + + + STRUCT_1917 + - + - + NONE + + + + + STRUCT_1918 + - + - + NONE + + + + + STRUCT_1919 + - + - + NONE + + + + + STRUCT_1920 + - + - + NONE + + + + + STRUCT_1921 + - + - + NONE + + + + + STRUCT_1922 + - + - + NONE + + + + + STRUCT_1923 + - + - + NONE + + + + + STRUCT_1924 + - + - + NONE + + + + + STRUCT_1925 + - + - + NONE + + + + + STRUCT_1926 + - + - + NONE + + + + + STRUCT_1927 + - + - + NONE + + + + + STRUCT_1928 + - + - + NONE + + + + + STRUCT_1929 + - + - + NONE + + + + + STRUCT_1930 + - + - + NONE + + + + + STRUCT_1931 + - + - + NONE + + + + + STRUCT_1932 + - + - + NONE + + + + + STRUCT_1933 + - + - + NONE + + + + + STRUCT_1934 + - + - + NONE + + + + + STRUCT_1935 + - + - + NONE + + + + + STRUCT_1936 + - + - + NONE + + + + + STRUCT_1937 + - + - + NONE + + + + + STRUCT_1938 + - + - + NONE + + + + + STRUCT_1939 + - + - + NONE + + + + + STRUCT_1940 + - + - + NONE + + + + + STRUCT_1941 + - + - + NONE + + + + + STRUCT_1942 + - + - + NONE + + + + + STRUCT_1943 + - + - + NONE + + + + + STRUCT_1944 + - + - + NONE + + + + + STRUCT_1945 + - + - + NONE + + + + + STRUCT_1946 + - + - + NONE + + + + + STRUCT_1947 + - + - + NONE + + + + + STRUCT_1948 + - + - + NONE + + + + + STRUCT_1949 + - + - + NONE + + + + + STRUCT_1950 + - + - + NONE + + + + + STRUCT_1951 + - + - + NONE + + + + + STRUCT_1952 + - + - + NONE + + + + + STRUCT_1953 + - + - + NONE + + + + + STRUCT_1954 + - + - + NONE + + + + + STRUCT_1955 + - + - + NONE + + + + + STRUCT_1956 + - + - + NONE + + + + + STRUCT_1957 + - + - + NONE + + + + + STRUCT_1958 + - + - + NONE + + + + + STRUCT_1959 + - + - + NONE + + + + + STRUCT_1960 + - + - + NONE + + + + + STRUCT_1961 + - + - + NONE + + + + + STRUCT_1962 + - + - + NONE + + + + + STRUCT_1963 + - + - + NONE + + + + + STRUCT_1964 + - + - + NONE + + + + + STRUCT_1965 + - + - + NONE + + + + + STRUCT_1966 + - + - + NONE + + + + + STRUCT_1967 + - + - + NONE + + + + + STRUCT_1968 + - + - + NONE + + + + + STRUCT_1969 + - + - + NONE + + + + + STRUCT_1970 + - + - + NONE + + + + + STRUCT_1971 + - + - + NONE + + + + + STRUCT_1972 + - + - + NONE + + + + + STRUCT_1973 + - + - + NONE + + + + + STRUCT_1974 + - + - + NONE + + + + + STRUCT_1975 + - + - + NONE + + + + + STRUCT_1976 + - + - + NONE + + + + + STRUCT_1977 + - + - + NONE + + + + + STRUCT_1978 + - + - + NONE + + + + + STRUCT_1979 + - + - + NONE + + + + + STRUCT_1980 + - + - + NONE + + + + + STRUCT_1981 + - + - + NONE + + + + + STRUCT_1982 + - + - + NONE + + + + + STRUCT_1983 + - + - + NONE + + + + + STRUCT_1984 + - + - + NONE + + + + + STRUCT_1985 + - + - + NONE + + + + + STRUCT_1986 + - + - + NONE + + + + + STRUCT_1987 + - + - + NONE + + + + + STRUCT_1988 + - + - + NONE + + + + + STRUCT_1989 + - + - + NONE + + + + + STRUCT_1990 + - + - + NONE + + + + + STRUCT_1991 + - + - + NONE + + + + + STRUCT_1992 + - + - + NONE + + + + + STRUCT_1993 + - + - + NONE + + + + + STRUCT_1994 + - + - + NONE + + + + + STRUCT_1995 + - + - + NONE + + + + + STRUCT_1996 + - + - + NONE + + + + + STRUCT_1997 + - + - + NONE + + + + + STRUCT_1998 + - + - + NONE + + + + + STRUCT_1999 + - + - + NONE + + + + + STRUCT_2000 + - + - + NONE + + + + + STRUCT_71 + - + - + NONE + + + + + STRUCT_72 + - + - + NONE + + + + + STRUCT_73 + - + - + NONE + + + + + STRUCT_74 + - + - + NONE + + + + + STRUCT_75 + - + - + NONE + + + + + STRUCT_76 + - + - + NONE + + + + + STRUCT_77 + - + - + NONE + + + + + STRUCT_78 + - + - + NONE + + + + + STRUCT_79 + - + - + NONE + + + + + STRUCT_80 + - + - + NONE + + + + + STRUCT_81 + - + - + NONE + + + + + STRUCT_82 + - + - + NONE + + + + + STRUCT_83 + - + - + NONE + + + + + STRUCT_84 + - + - + NONE + + + + + STRUCT_85 + - + - + NONE + + + + + STRUCT_86 + - + - + NONE + + + + + STRUCT_87 + - + - + NONE + + + + + STRUCT_88 + - + - + NONE + + + + + STRUCT_89 + - + - + NONE + + + + + STRUCT_90 + - + - + NONE + + + + + STRUCT_91 + - + - + NONE + + + + + STRUCT_92 + - + - + NONE + + + + + STRUCT_93 + - + - + NONE + + + + + STRUCT_94 + - + - + NONE + + + + + STRUCT_95 + - + - + NONE + + + + + STRUCT_96 + - + - + NONE + + + + + STRUCT_97 + - + - + NONE + + + + + STRUCT_98 + - + - + NONE + + + + + STRUCT_99 + - + - + NONE + + + + + STRUCT_100 + - + - + NONE + + + + + STRUCT_101 + - + - + NONE + + + + + STRUCT_102 + - + - + NONE + + + + + STRUCT_103 + - + - + NONE + + + + + STRUCT_104 + - + - + NONE + + + + + STRUCT_105 + - + - + NONE + + + + + STRUCT_106 + - + - + NONE + + + + + STRUCT_107 + - + - + NONE + + + + + STRUCT_108 + - + - + NONE + + + + + STRUCT_109 + - + - + NONE + + + + + STRUCT_110 + - + - + NONE + + + + + STRUCT_111 + - + - + NONE + + + + + STRUCT_112 + - + - + NONE + + + + + STRUCT_113 + - + - + NONE + + + + + STRUCT_114 + - + - + NONE + + + + + STRUCT_115 + - + - + NONE + + + + + STRUCT_116 + - + - + NONE + + + + + STRUCT_117 + - + - + NONE + + + + + STRUCT_118 + - + - + NONE + + + + + STRUCT_119 + - + - + NONE + + + + + STRUCT_120 + - + - + NONE + + + + + STRUCT_121 + - + - + NONE + + + + + STRUCT_122 + - + - + NONE + + + + + STRUCT_123 + - + - + NONE + + + + + STRUCT_124 + - + - + NONE + + + + + STRUCT_125 + - + - + NONE + + + + + STRUCT_126 + - + - + NONE + + + + + STRUCT_127 + - + - + NONE + + + + + STRUCT_128 + - + - + NONE + + + + + STRUCT_129 + - + - + NONE + + + + + STRUCT_130 + - + - + NONE + + + + + STRUCT_131 + - + - + NONE + + + + + STRUCT_132 + - + - + NONE + + + + + STRUCT_133 + - + - + NONE + + + + + STRUCT_134 + - + - + NONE + + + + + STRUCT_135 + - + - + NONE + + + + + STRUCT_136 + - + - + NONE + + + + + STRUCT_137 + - + - + NONE + + + + + STRUCT_138 + - + - + NONE + + + + + STRUCT_139 + - + - + NONE + + + + + STRUCT_140 + - + - + NONE + + + + + STRUCT_141 + - + - + NONE + + + + + STRUCT_142 + - + - + NONE + + + + + STRUCT_143 + - + - + NONE + + + + + STRUCT_144 + - + - + NONE + + + + + STRUCT_145 + - + - + NONE + + + + + STRUCT_146 + - + - + NONE + + + + + STRUCT_147 + - + - + NONE + + + + + STRUCT_148 + - + - + NONE + + + + + STRUCT_149 + - + - + NONE + + + + + STRUCT_150 + - + - + NONE + + + + + STRUCT_151 + - + - + NONE + + + + + STRUCT_152 + - + - + NONE + + + + + STRUCT_153 + - + - + NONE + + + + + STRUCT_154 + - + - + NONE + + + + + STRUCT_155 + - + - + NONE + + + + + STRUCT_156 + - + - + NONE + + + + + STRUCT_157 + - + - + NONE + + + + + STRUCT_158 + - + - + NONE + + + + + STRUCT_159 + - + - + NONE + + + + + STRUCT_160 + - + - + NONE + + + + + STRUCT_161 + - + - + NONE + + + + + STRUCT_162 + - + - + NONE + + + + + STRUCT_163 + - + - + NONE + + + + + STRUCT_164 + - + - + NONE + + + + + STRUCT_165 + - + - + NONE + + + + + STRUCT_166 + - + - + NONE + + + + + STRUCT_167 + - + - + NONE + + + + + STRUCT_168 + - + - + NONE + + + + + STRUCT_169 + - + - + NONE + + + + + STRUCT_170 + - + - + NONE + + + + + STRUCT_171 + - + - + NONE + + + + + STRUCT_172 + - + - + NONE + + + + + STRUCT_173 + - + - + NONE + + + + + STRUCT_174 + - + - + NONE + + + + + STRUCT_175 + - + - + NONE + + + + + STRUCT_176 + - + - + NONE + + + + + STRUCT_177 + - + - + NONE + + + + + STRUCT_178 + - + - + NONE + + + + + STRUCT_179 + - + - + NONE + + + + + STRUCT_180 + - + - + NONE + + + + + STRUCT_181 + - + - + NONE + + + + + STRUCT_182 + - + - + NONE + + + + + STRUCT_183 + - + - + NONE + + + + + STRUCT_184 + - + - + NONE + + + + + STRUCT_185 + - + - + NONE + + + + + STRUCT_186 + - + - + NONE + + + + + STRUCT_187 + - + - + NONE + + + + + STRUCT_188 + - + - + NONE + + + + + STRUCT_189 + - + - + NONE + + + + + STRUCT_190 + - + - + NONE + + + + + STRUCT_191 + - + - + NONE + + + + + STRUCT_192 + - + - + NONE + + + + + STRUCT_193 + - + - + NONE + + + + + STRUCT_194 + - + - + NONE + + + + + STRUCT_195 + - + - + NONE + + + + + STRUCT_196 + - + - + NONE + + + + + STRUCT_197 + - + - + NONE + + + + + STRUCT_198 + - + - + NONE + + + + + STRUCT_199 + - + - + NONE + + + + + STRUCT_200 + - + - + NONE + + + + + STRUCT_201 + - + - + NONE + + + + + STRUCT_202 + - + - + NONE + + + + + STRUCT_203 + - + - + NONE + + + + + STRUCT_204 + - + - + NONE + + + + + STRUCT_205 + - + - + NONE + + + + + STRUCT_206 + - + - + NONE + + + + + STRUCT_207 + - + - + NONE + + + + + STRUCT_208 + - + - + NONE + + + + + STRUCT_209 + - + - + NONE + + + + + STRUCT_210 + - + - + NONE + + + + + STRUCT_211 + - + - + NONE + + + + + STRUCT_212 + - + - + NONE + + + + + STRUCT_213 + - + - + NONE + + + + + STRUCT_214 + - + - + NONE + + + + + STRUCT_215 + - + - + NONE + + + + + STRUCT_216 + - + - + NONE + + + + + STRUCT_217 + - + - + NONE + + + + + STRUCT_218 + - + - + NONE + + + + + STRUCT_219 + - + - + NONE + + + + + STRUCT_220 + - + - + NONE + + + + + STRUCT_221 + - + - + NONE + + + + + STRUCT_222 + - + - + NONE + + + + + STRUCT_223 + - + - + NONE + + + + + STRUCT_224 + - + - + NONE + + + + + STRUCT_225 + - + - + NONE + + + + + STRUCT_226 + - + - + NONE + + + + + STRUCT_227 + - + - + NONE + + + + + STRUCT_228 + - + - + NONE + + + + + STRUCT_229 + - + - + NONE + + + + + STRUCT_230 + - + - + NONE + + + + + STRUCT_231 + - + - + NONE + + + + + STRUCT_232 + - + - + NONE + + + + + STRUCT_233 + - + - + NONE + + + + + STRUCT_234 + - + - + NONE + + + + + STRUCT_235 + - + - + NONE + + + + + STRUCT_236 + - + - + NONE + + + + + STRUCT_237 + - + - + NONE + + + + + STRUCT_238 + - + - + NONE + + + + + STRUCT_239 + - + - + NONE + + + + + STRUCT_240 + - + - + NONE + + + + + STRUCT_241 + - + - + NONE + + + + + STRUCT_242 + - + - + NONE + + + + + STRUCT_243 + - + - + NONE + + + + + STRUCT_244 + - + - + NONE + + + + + STRUCT_245 + - + - + NONE + + + + + STRUCT_246 + - + - + NONE + + + + + STRUCT_247 + - + - + NONE + + + + + STRUCT_248 + - + - + NONE + + + + + STRUCT_249 + - + - + NONE + + + + + STRUCT_250 + - + - + NONE + + + + + STRUCT_251 + - + - + NONE + + + + + STRUCT_252 + - + - + NONE + + + + + STRUCT_253 + - + - + NONE + + + + + STRUCT_254 + - + - + NONE + + + + + STRUCT_255 + - + - + NONE + + + + + STRUCT_256 + - + - + NONE + + + + + STRUCT_257 + - + - + NONE + + + + + STRUCT_258 + - + - + NONE + + + + + STRUCT_259 + - + - + NONE + + + + + STRUCT_260 + - + - + NONE + + + + + STRUCT_261 + - + - + NONE + + + + + STRUCT_262 + - + - + NONE + + + + + STRUCT_263 + - + - + NONE + + + + + STRUCT_264 + - + - + NONE + + + + + STRUCT_265 + - + - + NONE + + + + + STRUCT_266 + - + - + NONE + + + + + STRUCT_267 + - + - + NONE + + + + + STRUCT_268 + - + - + NONE + + + + + STRUCT_269 + - + - + NONE + + + + + STRUCT_270 + - + - + NONE + + + + + STRUCT_271 + - + - + NONE + + + + + STRUCT_272 + - + - + NONE + + + + + STRUCT_273 + - + - + NONE + + + + + STRUCT_274 + - + - + NONE + + + + + STRUCT_275 + - + - + NONE + + + + + STRUCT_276 + - + - + NONE + + + + + STRUCT_277 + - + - + NONE + + + + + STRUCT_278 + - + - + NONE + + + + + STRUCT_279 + - + - + NONE + + + + + STRUCT_280 + - + - + NONE + + + + + STRUCT_281 + - + - + NONE + + + + + STRUCT_282 + - + - + NONE + + + + + STRUCT_283 + - + - + NONE + + + + + STRUCT_284 + - + - + NONE + + + + + STRUCT_285 + - + - + NONE + + + + + STRUCT_286 + - + - + NONE + + + + + STRUCT_287 + - + - + NONE + + + + + STRUCT_288 + - + - + NONE + + + + + STRUCT_289 + - + - + NONE + + + + + STRUCT_290 + - + - + NONE + + + + + STRUCT_291 + - + - + NONE + + + + + STRUCT_292 + - + - + NONE + + + + + STRUCT_293 + - + - + NONE + + + + + STRUCT_294 + - + - + NONE + + + + + STRUCT_295 + - + - + NONE + + + + + STRUCT_296 + - + - + NONE + + + + + STRUCT_297 + - + - + NONE + + + + + STRUCT_298 + - + - + NONE + + + + + STRUCT_299 + - + - + NONE + + + + + STRUCT_300 + - + - + NONE + + + + + STRUCT_301 + - + - + NONE + + + + + STRUCT_302 + - + - + NONE + + + + + STRUCT_303 + - + - + NONE + + + + + STRUCT_304 + - + - + NONE + + + + + STRUCT_305 + - + - + NONE + + + + + STRUCT_306 + - + - + NONE + + + + + STRUCT_307 + - + - + NONE + + + + + STRUCT_308 + - + - + NONE + + + + + STRUCT_309 + - + - + NONE + + + + + STRUCT_310 + - + - + NONE + + + + + STRUCT_311 + - + - + NONE + + + + + STRUCT_312 + - + - + NONE + + + + + STRUCT_313 + - + - + NONE + + + + + STRUCT_314 + - + - + NONE + + + + + STRUCT_315 + - + - + NONE + + + + + STRUCT_316 + - + - + NONE + + + + + STRUCT_317 + - + - + NONE + + + + + STRUCT_318 + - + - + NONE + + + + + STRUCT_319 + - + - + NONE + + + + + STRUCT_320 + - + - + NONE + + + + + STRUCT_321 + - + - + NONE + + + + + STRUCT_322 + - + - + NONE + + + + + STRUCT_323 + - + - + NONE + + + + + STRUCT_324 + - + - + NONE + + + + + STRUCT_325 + - + - + NONE + + + + + STRUCT_326 + - + - + NONE + + + + + STRUCT_327 + - + - + NONE + + + + + STRUCT_328 + - + - + NONE + + + + + STRUCT_329 + - + - + NONE + + + + + STRUCT_330 + - + - + NONE + + + + + STRUCT_331 + - + - + NONE + + + + + STRUCT_332 + - + - + NONE + + + + + STRUCT_333 + - + - + NONE + + + + + STRUCT_334 + - + - + NONE + + + + + STRUCT_335 + - + - + NONE + + + + + STRUCT_336 + - + - + NONE + + + + + STRUCT_337 + - + - + NONE + + + + + STRUCT_338 + - + - + NONE + + + + + STRUCT_339 + - + - + NONE + + + + + STRUCT_340 + - + - + NONE + + + + + STRUCT_341 + - + - + NONE + + + + + STRUCT_342 + - + - + NONE + + + + + STRUCT_343 + - + - + NONE + + + + + STRUCT_344 + - + - + NONE + + + + + STRUCT_345 + - + - + NONE + + + + + STRUCT_346 + - + - + NONE + + + + + STRUCT_347 + - + - + NONE + + + + + STRUCT_348 + - + - + NONE + + + + + STRUCT_349 + - + - + NONE + + + + + STRUCT_350 + - + - + NONE + + + + + STRUCT_351 + - + - + NONE + + + + + STRUCT_352 + - + - + NONE + + + + + STRUCT_353 + - + - + NONE + + + + + STRUCT_354 + - + - + NONE + + + + + STRUCT_355 + - + - + NONE + + + + + STRUCT_356 + - + - + NONE + + + + + STRUCT_357 + - + - + NONE + + + + + STRUCT_358 + - + - + NONE + + + + + STRUCT_359 + - + - + NONE + + + + + STRUCT_360 + - + - + NONE + + + + + STRUCT_361 + - + - + NONE + + + + + STRUCT_362 + - + - + NONE + + + + + STRUCT_363 + - + - + NONE + + + + + STRUCT_364 + - + - + NONE + + + + + STRUCT_365 + - + - + NONE + + + + + STRUCT_366 + - + - + NONE + + + + + STRUCT_367 + - + - + NONE + + + + + STRUCT_368 + - + - + NONE + + + + + STRUCT_369 + - + - + NONE + + + + + STRUCT_370 + - + - + NONE + + + + + STRUCT_371 + - + - + NONE + + + + + STRUCT_372 + - + - + NONE + + + + + STRUCT_373 + - + - + NONE + + + + + STRUCT_374 + - + - + NONE + + + + + STRUCT_375 + - + - + NONE + + + + + STRUCT_376 + - + - + NONE + + + + + STRUCT_377 + - + - + NONE + + + + + STRUCT_378 + - + - + NONE + + + + + STRUCT_379 + - + - + NONE + + + + + STRUCT_380 + - + - + NONE + + + + + STRUCT_381 + - + - + NONE + + + + + STRUCT_382 + - + - + NONE + + + + + STRUCT_383 + - + - + NONE + + + + + STRUCT_384 + - + - + NONE + + + + + STRUCT_385 + - + - + NONE + + + + + STRUCT_386 + - + - + NONE + + + + + STRUCT_387 + - + - + NONE + + + + + STRUCT_388 + - + - + NONE + + + + + STRUCT_389 + - + - + NONE + + + + + STRUCT_390 + - + - + NONE + + + + + STRUCT_391 + - + - + NONE + + + + + STRUCT_392 + - + - + NONE + + + + + STRUCT_393 + - + - + NONE + + + + + STRUCT_394 + - + - + NONE + + + + + STRUCT_395 + - + - + NONE + + + + + STRUCT_396 + - + - + NONE + + + + + STRUCT_397 + - + - + NONE + + + + + STRUCT_398 + - + - + NONE + + + + + STRUCT_399 + - + - + NONE + + + + + STRUCT_400 + - + - + NONE + + + + + STRUCT_401 + - + - + NONE + + + + + STRUCT_402 + - + - + NONE + + + + + STRUCT_403 + - + - + NONE + + + + + STRUCT_404 + - + - + NONE + + + + + STRUCT_405 + - + - + NONE + + + + + STRUCT_406 + - + - + NONE + + + + + STRUCT_407 + - + - + NONE + + + + + STRUCT_408 + - + - + NONE + + + + + STRUCT_409 + - + - + NONE + + + + + STRUCT_410 + - + - + NONE + + + + + STRUCT_411 + - + - + NONE + + + + + STRUCT_412 + - + - + NONE + + + + + STRUCT_413 + - + - + NONE + + + + + STRUCT_414 + - + - + NONE + + + + + STRUCT_415 + - + - + NONE + + + + + STRUCT_416 + - + - + NONE + + + + + STRUCT_417 + - + - + NONE + + + + + STRUCT_418 + - + - + NONE + + + + + STRUCT_419 + - + - + NONE + + + + + STRUCT_420 + - + - + NONE + + + + + STRUCT_421 + - + - + NONE + + + + + STRUCT_422 + - + - + NONE + + + + + STRUCT_423 + - + - + NONE + + + + + STRUCT_424 + - + - + NONE + + + + + STRUCT_425 + - + - + NONE + + + + + STRUCT_426 + - + - + NONE + + + + + STRUCT_427 + - + - + NONE + + + + + STRUCT_428 + - + - + NONE + + + + + STRUCT_429 + - + - + NONE + + + + + STRUCT_430 + - + - + NONE + + + + + STRUCT_431 + - + - + NONE + + + + + STRUCT_432 + - + - + NONE + + + + + STRUCT_433 + - + - + NONE + + + + + STRUCT_434 + - + - + NONE + + + + + STRUCT_435 + - + - + NONE + + + + + STRUCT_436 + - + - + NONE + + + + + STRUCT_437 + - + - + NONE + + + + + STRUCT_438 + - + - + NONE + + + + + STRUCT_439 + - + - + NONE + + + + + STRUCT_440 + - + - + NONE + + + + + STRUCT_441 + - + - + NONE + + + + + STRUCT_442 + - + - + NONE + + + + + STRUCT_443 + - + - + NONE + + + + + STRUCT_444 + - + - + NONE + + + + + STRUCT_445 + - + - + NONE + + + + + STRUCT_446 + - + - + NONE + + + + + STRUCT_447 + - + - + NONE + + + + + STRUCT_448 + - + - + NONE + + + + + STRUCT_449 + - + - + NONE + + + + + STRUCT_450 + - + - + NONE + + + + + STRUCT_451 + - + - + NONE + + + + + STRUCT_452 + - + - + NONE + + + + + STRUCT_453 + - + - + NONE + + + + + STRUCT_454 + - + - + NONE + + + + + STRUCT_455 + - + - + NONE + + + + + STRUCT_456 + - + - + NONE + + + + + STRUCT_457 + - + - + NONE + + + + + STRUCT_458 + - + - + NONE + + + + + STRUCT_459 + - + - + NONE + + + + + STRUCT_460 + - + - + NONE + + + + + STRUCT_461 + - + - + NONE + + + + + STRUCT_462 + - + - + NONE + + + + + STRUCT_463 + - + - + NONE + + + + + STRUCT_464 + - + - + NONE + + + + + STRUCT_465 + - + - + NONE + + + + + STRUCT_466 + - + - + NONE + + + + + STRUCT_467 + - + - + NONE + + + + + STRUCT_468 + - + - + NONE + + + + + STRUCT_469 + - + - + NONE + + + + + STRUCT_470 + - + - + NONE + + + + + STRUCT_471 + - + - + NONE + + + + + STRUCT_472 + - + - + NONE + + + + + STRUCT_473 + - + - + NONE + + + + + STRUCT_474 + - + - + NONE + + + + + STRUCT_475 + - + - + NONE + + + + + STRUCT_476 + - + - + NONE + + + + + STRUCT_477 + - + - + NONE + + + + + STRUCT_478 + - + - + NONE + + + + + STRUCT_479 + - + - + NONE + + + + + STRUCT_480 + - + - + NONE + + + + + STRUCT_481 + - + - + NONE + + + + + STRUCT_482 + - + - + NONE + + + + + STRUCT_483 + - + - + NONE + + + + + STRUCT_484 + - + - + NONE + + + + + STRUCT_485 + - + - + NONE + + + + + STRUCT_486 + - + - + NONE + + + + + STRUCT_487 + - + - + NONE + + + + + STRUCT_488 + - + - + NONE + + + + + STRUCT_489 + - + - + NONE + + + + + STRUCT_490 + - + - + NONE + + + + + STRUCT_491 + - + - + NONE + + + + + STRUCT_492 + - + - + NONE + + + + + STRUCT_493 + - + - + NONE + + + + + STRUCT_494 + - + - + NONE + + + + + STRUCT_495 + - + - + NONE + + + + + STRUCT_496 + - + - + NONE + + + + + STRUCT_497 + - + - + NONE + + + + + STRUCT_498 + - + - + NONE + + + + + STRUCT_499 + - + - + NONE + + + + + STRUCT_500 + - + - + NONE + + + + + STRUCT_501 + - + - + NONE + + + + + STRUCT_502 + - + - + NONE + + + + + STRUCT_503 + - + - + NONE + + + + + STRUCT_504 + - + - + NONE + + + + + STRUCT_505 + - + - + NONE + + + + + STRUCT_506 + - + - + NONE + + + + + STRUCT_507 + - + - + NONE + + + + + STRUCT_508 + - + - + NONE + + + + + STRUCT_509 + - + - + NONE + + + + + STRUCT_510 + - + - + NONE + + + + + STRUCT_511 + - + - + NONE + + + + + STRUCT_512 + - + - + NONE + + + + + STRUCT_513 + - + - + NONE + + + + + STRUCT_514 + - + - + NONE + + + + + STRUCT_515 + - + - + NONE + + + + + STRUCT_516 + - + - + NONE + + + + + STRUCT_517 + - + - + NONE + + + + + STRUCT_518 + - + - + NONE + + + + + STRUCT_519 + - + - + NONE + + + + + STRUCT_520 + - + - + NONE + + + + + STRUCT_521 + - + - + NONE + + + + + STRUCT_522 + - + - + NONE + + + + + STRUCT_523 + - + - + NONE + + + + + STRUCT_524 + - + - + NONE + + + + + STRUCT_525 + - + - + NONE + + + + + STRUCT_526 + - + - + NONE + + + + + STRUCT_527 + - + - + NONE + + + + + STRUCT_528 + - + - + NONE + + + + + STRUCT_529 + - + - + NONE + + + + + STRUCT_530 + - + - + NONE + + + + + STRUCT_531 + - + - + NONE + + + + + STRUCT_532 + - + - + NONE + + + + + STRUCT_533 + - + - + NONE + + + + + STRUCT_534 + - + - + NONE + + + + + STRUCT_535 + - + - + NONE + + + + + STRUCT_536 + - + - + NONE + + + + + STRUCT_537 + - + - + NONE + + + + + STRUCT_538 + - + - + NONE + + + + + STRUCT_539 + - + - + NONE + + + + + STRUCT_540 + - + - + NONE + + + + + STRUCT_541 + - + - + NONE + + + + + STRUCT_542 + - + - + NONE + + + + + STRUCT_543 + - + - + NONE + + + + + STRUCT_544 + - + - + NONE + + + + + STRUCT_545 + - + - + NONE + + + + + STRUCT_546 + - + - + NONE + + + + + STRUCT_547 + - + - + NONE + + + + + STRUCT_548 + - + - + NONE + + + + + STRUCT_549 + - + - + NONE + + + + + STRUCT_550 + - + - + NONE + + + + + STRUCT_551 + - + - + NONE + + + + + STRUCT_552 + - + - + NONE + + + + + STRUCT_553 + - + - + NONE + + + + + STRUCT_554 + - + - + NONE + + + + + STRUCT_555 + - + - + NONE + + + + + STRUCT_556 + - + - + NONE + + + + + STRUCT_557 + - + - + NONE + + + + + STRUCT_558 + - + - + NONE + + + + + STRUCT_559 + - + - + NONE + + + + + STRUCT_560 + - + - + NONE + + + + + STRUCT_561 + - + - + NONE + + + + + STRUCT_562 + - + - + NONE + + + + + STRUCT_563 + - + - + NONE + + + + + STRUCT_564 + - + - + NONE + + + + + STRUCT_565 + - + - + NONE + + + + + STRUCT_566 + - + - + NONE + + + + + STRUCT_567 + - + - + NONE + + + + + STRUCT_568 + - + - + NONE + + + + + STRUCT_569 + - + - + NONE + + + + + STRUCT_570 + - + - + NONE + + + + + STRUCT_571 + - + - + NONE + + + + + STRUCT_572 + - + - + NONE + + + + + STRUCT_573 + - + - + NONE + + + + + STRUCT_574 + - + - + NONE + + + + + STRUCT_575 + - + - + NONE + + + + + STRUCT_576 + - + - + NONE + + + + + STRUCT_577 + - + - + NONE + + + + + STRUCT_578 + - + - + NONE + + + + + STRUCT_579 + - + - + NONE + + + + + STRUCT_580 + - + - + NONE + + + + + STRUCT_581 + - + - + NONE + + + + + STRUCT_582 + - + - + NONE + + + + + STRUCT_583 + - + - + NONE + + + + + STRUCT_584 + - + - + NONE + + + + + STRUCT_585 + - + - + NONE + + + + + STRUCT_586 + - + - + NONE + + + + + STRUCT_587 + - + - + NONE + + + + + STRUCT_588 + - + - + NONE + + + + + STRUCT_589 + - + - + NONE + + + + + STRUCT_590 + - + - + NONE + + + + + STRUCT_591 + - + - + NONE + + + + + STRUCT_592 + - + - + NONE + + + + + STRUCT_593 + - + - + NONE + + + + + STRUCT_594 + - + - + NONE + + + + + STRUCT_595 + - + - + NONE + + + + + STRUCT_596 + - + - + NONE + + + + + STRUCT_597 + - + - + NONE + + + + + STRUCT_598 + - + - + NONE + + + + + STRUCT_599 + - + - + NONE + + + + + STRUCT_600 + - + - + NONE + + + + + STRUCT_601 + - + - + NONE + + + + + STRUCT_602 + - + - + NONE + + + + + STRUCT_603 + - + - + NONE + + + + + STRUCT_604 + - + - + NONE + + + + + STRUCT_605 + - + - + NONE + + + + + STRUCT_606 + - + - + NONE + + + + + STRUCT_607 + - + - + NONE + + + + + STRUCT_608 + - + - + NONE + + + + + STRUCT_609 + - + - + NONE + + + + + STRUCT_610 + - + - + NONE + + + + + STRUCT_611 + - + - + NONE + + + + + STRUCT_612 + - + - + NONE + + + + + STRUCT_613 + - + - + NONE + + + + + STRUCT_614 + - + - + NONE + + + + + STRUCT_615 + - + - + NONE + + + + + STRUCT_616 + - + - + NONE + + + + + STRUCT_617 + - + - + NONE + + + + + STRUCT_618 + - + - + NONE + + + + + STRUCT_619 + - + - + NONE + + + + + STRUCT_620 + - + - + NONE + + + + + STRUCT_621 + - + - + NONE + + + + + STRUCT_622 + - + - + NONE + + + + + STRUCT_623 + - + - + NONE + + + + + STRUCT_624 + - + - + NONE + + + + + STRUCT_625 + - + - + NONE + + + + + STRUCT_626 + - + - + NONE + + + + + STRUCT_627 + - + - + NONE + + + + + STRUCT_628 + - + - + NONE + + + + + STRUCT_629 + - + - + NONE + + + + + STRUCT_630 + - + - + NONE + + + + + STRUCT_631 + - + - + NONE + + + + + STRUCT_632 + - + - + NONE + + + + + STRUCT_633 + - + - + NONE + + + + + STRUCT_634 + - + - + NONE + + + + + STRUCT_635 + - + - + NONE + + + + + STRUCT_636 + - + - + NONE + + + + + STRUCT_637 + - + - + NONE + + + + + STRUCT_638 + - + - + NONE + + + + + STRUCT_639 + - + - + NONE + + + + + STRUCT_640 + - + - + NONE + + + + + STRUCT_641 + - + - + NONE + + + + + STRUCT_642 + - + - + NONE + + + + + STRUCT_643 + - + - + NONE + + + + + STRUCT_644 + - + - + NONE + + + + + STRUCT_645 + - + - + NONE + + + + + STRUCT_646 + - + - + NONE + + + + + STRUCT_647 + - + - + NONE + + + + + STRUCT_648 + - + - + NONE + + + + + STRUCT_649 + - + - + NONE + + + + + STRUCT_650 + - + - + NONE + + + + + STRUCT_651 + - + - + NONE + + + + + STRUCT_652 + - + - + NONE + + + + + STRUCT_653 + - + - + NONE + + + + + STRUCT_654 + - + - + NONE + + + + + STRUCT_655 + - + - + NONE + + + + + STRUCT_656 + - + - + NONE + + + + + STRUCT_657 + - + - + NONE + + + + + STRUCT_658 + - + - + NONE + + + + + STRUCT_659 + - + - + NONE + + + + + STRUCT_660 + - + - + NONE + + + + + STRUCT_661 + - + - + NONE + + + + + STRUCT_662 + - + - + NONE + + + + + STRUCT_663 + - + - + NONE + + + + + STRUCT_664 + - + - + NONE + + + + + STRUCT_665 + - + - + NONE + + + + + STRUCT_666 + - + - + NONE + + + + + STRUCT_667 + - + - + NONE + + + + + STRUCT_668 + - + - + NONE + + + + + STRUCT_669 + - + - + NONE + + + + + STRUCT_670 + - + - + NONE + + + + + STRUCT_671 + - + - + NONE + + + + + STRUCT_672 + - + - + NONE + + + + + STRUCT_673 + - + - + NONE + + + + + STRUCT_674 + - + - + NONE + + + + + STRUCT_675 + - + - + NONE + + + + + STRUCT_676 + - + - + NONE + + + + + STRUCT_677 + - + - + NONE + + + + + STRUCT_678 + - + - + NONE + + + + + STRUCT_679 + - + - + NONE + + + + + STRUCT_680 + - + - + NONE + + + + + STRUCT_681 + - + - + NONE + + + + + STRUCT_682 + - + - + NONE + + + + + STRUCT_683 + - + - + NONE + + + + + STRUCT_684 + - + - + NONE + + + + + STRUCT_685 + - + - + NONE + + + + + STRUCT_686 + - + - + NONE + + + + + STRUCT_687 + - + - + NONE + + + + + STRUCT_688 + - + - + NONE + + + + + STRUCT_689 + - + - + NONE + + + + + STRUCT_690 + - + - + NONE + + + + + STRUCT_691 + - + - + NONE + + + + + STRUCT_692 + - + - + NONE + + + + + STRUCT_693 + - + - + NONE + + + + + STRUCT_694 + - + - + NONE + + + + + STRUCT_695 + - + - + NONE + + + + + STRUCT_696 + - + - + NONE + + + + + STRUCT_697 + - + - + NONE + + + + + STRUCT_698 + - + - + NONE + + + + + STRUCT_699 + - + - + NONE + + + + + STRUCT_700 + - + - + NONE + + + + + STRUCT_701 + - + - + NONE + + + + + STRUCT_702 + - + - + NONE + + + + + STRUCT_703 + - + - + NONE + + + + + STRUCT_704 + - + - + NONE + + + + + STRUCT_705 + - + - + NONE + + + + + STRUCT_706 + - + - + NONE + + + + + STRUCT_707 + - + - + NONE + + + + + STRUCT_708 + - + - + NONE + + + + + STRUCT_709 + - + - + NONE + + + + + STRUCT_710 + - + - + NONE + + + + + STRUCT_711 + - + - + NONE + + + + + STRUCT_712 + - + - + NONE + + + + + STRUCT_713 + - + - + NONE + + + + + STRUCT_714 + - + - + NONE + + + + + STRUCT_715 + - + - + NONE + + + + + STRUCT_716 + - + - + NONE + + + + + STRUCT_717 + - + - + NONE + + + + + STRUCT_718 + - + - + NONE + + + + + STRUCT_719 + - + - + NONE + + + + + STRUCT_720 + - + - + NONE + + + + + STRUCT_721 + - + - + NONE + + + + + STRUCT_722 + - + - + NONE + + + + + STRUCT_723 + - + - + NONE + + + + + STRUCT_724 + - + - + NONE + + + + + STRUCT_725 + - + - + NONE + + + + + STRUCT_726 + - + - + NONE + + + + + STRUCT_727 + - + - + NONE + + + + + STRUCT_728 + - + - + NONE + + + + + STRUCT_729 + - + - + NONE + + + + + STRUCT_730 + - + - + NONE + + + + + STRUCT_731 + - + - + NONE + + + + + STRUCT_732 + - + - + NONE + + + + + STRUCT_733 + - + - + NONE + + + + + STRUCT_734 + - + - + NONE + + + + + STRUCT_735 + - + - + NONE + + + + + STRUCT_736 + - + - + NONE + + + + + STRUCT_737 + - + - + NONE + + + + + STRUCT_738 + - + - + NONE + + + + + STRUCT_739 + - + - + NONE + + + + + STRUCT_740 + - + - + NONE + + + + + STRUCT_741 + - + - + NONE + + + + + STRUCT_742 + - + - + NONE + + + + + STRUCT_743 + - + - + NONE + + + + + STRUCT_744 + - + - + NONE + + + + + STRUCT_745 + - + - + NONE + + + + + STRUCT_746 + - + - + NONE + + + + + STRUCT_747 + - + - + NONE + + + + + STRUCT_748 + - + - + NONE + + + + + STRUCT_749 + - + - + NONE + + + + + STRUCT_750 + - + - + NONE + + + + + STRUCT_751 + - + - + NONE + + + + + STRUCT_752 + - + - + NONE + + + + + STRUCT_753 + - + - + NONE + + + + + STRUCT_754 + - + - + NONE + + + + + STRUCT_755 + - + - + NONE + + + + + STRUCT_756 + - + - + NONE + + + + + STRUCT_757 + - + - + NONE + + + + + STRUCT_758 + - + - + NONE + + + + + STRUCT_759 + - + - + NONE + + + + + STRUCT_760 + - + - + NONE + + + + + STRUCT_761 + - + - + NONE + + + + + STRUCT_762 + - + - + NONE + + + + + STRUCT_763 + - + - + NONE + + + + + STRUCT_764 + - + - + NONE + + + + + STRUCT_765 + - + - + NONE + + + + + STRUCT_766 + - + - + NONE + + + + + STRUCT_767 + - + - + NONE + + + + + STRUCT_768 + - + - + NONE + + + + + STRUCT_769 + - + - + NONE + + + + + STRUCT_770 + - + - + NONE + + + + + STRUCT_771 + - + - + NONE + + + + + STRUCT_772 + - + - + NONE + + + + + STRUCT_773 + - + - + NONE + + + + + STRUCT_774 + - + - + NONE + + + + + STRUCT_775 + - + - + NONE + + + + + STRUCT_776 + - + - + NONE + + + + + STRUCT_777 + - + - + NONE + + + + + STRUCT_778 + - + - + NONE + + + + + STRUCT_779 + - + - + NONE + + + + + STRUCT_780 + - + - + NONE + + + + + STRUCT_781 + - + - + NONE + + + + + STRUCT_782 + - + - + NONE + + + + + STRUCT_783 + - + - + NONE + + + + + STRUCT_784 + - + - + NONE + + + + + STRUCT_785 + - + - + NONE + + + + + STRUCT_786 + - + - + NONE + + + + + STRUCT_787 + - + - + NONE + + + + + STRUCT_788 + - + - + NONE + + + + + STRUCT_789 + - + - + NONE + + + + + STRUCT_790 + - + - + NONE + + + + + STRUCT_791 + - + - + NONE + + + + + STRUCT_792 + - + - + NONE + + + + + STRUCT_793 + - + - + NONE + + + + + STRUCT_794 + - + - + NONE + + + + + STRUCT_795 + - + - + NONE + + + + + STRUCT_796 + - + - + NONE + + + + + STRUCT_797 + - + - + NONE + + + + + STRUCT_798 + - + - + NONE + + + + + STRUCT_799 + - + - + NONE + + + + + STRUCT_800 + - + - + NONE + + + + + STRUCT_801 + - + - + NONE + + + + + STRUCT_802 + - + - + NONE + + + + + STRUCT_803 + - + - + NONE + + + + + STRUCT_804 + - + - + NONE + + + + + STRUCT_805 + - + - + NONE + + + + + STRUCT_806 + - + - + NONE + + + + + STRUCT_807 + - + - + NONE + + + + + STRUCT_808 + - + - + NONE + + + + + STRUCT_809 + - + - + NONE + + + + + STRUCT_810 + - + - + NONE + + + + + STRUCT_811 + - + - + NONE + + + + + STRUCT_812 + - + - + NONE + + + + + STRUCT_813 + - + - + NONE + + + + + STRUCT_814 + - + - + NONE + + + + + STRUCT_815 + - + - + NONE + + + + + STRUCT_816 + - + - + NONE + + + + + STRUCT_817 + - + - + NONE + + + + + STRUCT_818 + - + - + NONE + + + + + STRUCT_819 + - + - + NONE + + + + + STRUCT_820 + - + - + NONE + + + + + STRUCT_821 + - + - + NONE + + + + + STRUCT_822 + - + - + NONE + + + + + STRUCT_823 + - + - + NONE + + + + + STRUCT_824 + - + - + NONE + + + + + STRUCT_825 + - + - + NONE + + + + + STRUCT_826 + - + - + NONE + + + + + STRUCT_827 + - + - + NONE + + + + + STRUCT_828 + - + - + NONE + + + + + STRUCT_829 + - + - + NONE + + + + + STRUCT_830 + - + - + NONE + + + + + STRUCT_831 + - + - + NONE + + + + + STRUCT_832 + - + - + NONE + + + + + STRUCT_833 + - + - + NONE + + + + + STRUCT_834 + - + - + NONE + + + + + STRUCT_835 + - + - + NONE + + + + + STRUCT_836 + - + - + NONE + + + + + STRUCT_837 + - + - + NONE + + + + + STRUCT_838 + - + - + NONE + + + + + STRUCT_839 + - + - + NONE + + + + + STRUCT_840 + - + - + NONE + + + + + STRUCT_841 + - + - + NONE + + + + + STRUCT_842 + - + - + NONE + + + + + STRUCT_843 + - + - + NONE + + + + + STRUCT_844 + - + - + NONE + + + + + STRUCT_845 + - + - + NONE + + + + + STRUCT_846 + - + - + NONE + + + + + STRUCT_847 + - + - + NONE + + + + + STRUCT_848 + - + - + NONE + + + + + STRUCT_849 + - + - + NONE + + + + + STRUCT_850 + - + - + NONE + + + + + STRUCT_851 + - + - + NONE + + + + + STRUCT_852 + - + - + NONE + + + + + STRUCT_853 + - + - + NONE + + + + + STRUCT_854 + - + - + NONE + + + + + STRUCT_855 + - + - + NONE + + + + + STRUCT_856 + - + - + NONE + + + + + STRUCT_857 + - + - + NONE + + + + + STRUCT_858 + - + - + NONE + + + + + STRUCT_859 + - + - + NONE + + + + + STRUCT_860 + - + - + NONE + + + + + STRUCT_861 + - + - + NONE + + + + + STRUCT_862 + - + - + NONE + + + + + STRUCT_863 + - + - + NONE + + + + + STRUCT_864 + - + - + NONE + + + + + STRUCT_865 + - + - + NONE + + + + + STRUCT_866 + - + - + NONE + + + + + STRUCT_867 + - + - + NONE + + + + + STRUCT_868 + - + - + NONE + + + + + STRUCT_869 + - + - + NONE + + + + + STRUCT_870 + - + - + NONE + + + + + STRUCT_871 + - + - + NONE + + + + + STRUCT_872 + - + - + NONE + + + + + STRUCT_873 + - + - + NONE + + + + + STRUCT_874 + - + - + NONE + + + + + STRUCT_875 + - + - + NONE + + + + + STRUCT_876 + - + - + NONE + + + + + STRUCT_877 + - + - + NONE + + + + + STRUCT_878 + - + - + NONE + + + + + STRUCT_879 + - + - + NONE + + + + + STRUCT_880 + - + - + NONE + + + + + STRUCT_881 + - + - + NONE + + + + + STRUCT_882 + - + - + NONE + + + + + STRUCT_883 + - + - + NONE + + + + + STRUCT_884 + - + - + NONE + + + + + STRUCT_885 + - + - + NONE + + + + + STRUCT_886 + - + - + NONE + + + + + STRUCT_887 + - + - + NONE + + + + + STRUCT_888 + - + - + NONE + + + + + STRUCT_889 + - + - + NONE + + + + + STRUCT_890 + - + - + NONE + + + + + STRUCT_891 + - + - + NONE + + + + + STRUCT_892 + - + - + NONE + + + + + STRUCT_893 + - + - + NONE + + + + + STRUCT_894 + - + - + NONE + + + + + STRUCT_895 + - + - + NONE + + + + + STRUCT_896 + - + - + NONE + + + + + STRUCT_897 + - + - + NONE + + + + + STRUCT_898 + - + - + NONE + + + + + STRUCT_899 + - + - + NONE + + + + + STRUCT_900 + - + - + NONE + + + + + STRUCT_901 + - + - + NONE + + + + + STRUCT_902 + - + - + NONE + + + + + STRUCT_903 + - + - + NONE + + + + + STRUCT_904 + - + - + NONE + + + + + STRUCT_905 + - + - + NONE + + + + + STRUCT_906 + - + - + NONE + + + + + STRUCT_907 + - + - + NONE + + + + + STRUCT_908 + - + - + NONE + + + + + STRUCT_909 + - + - + NONE + + + + + STRUCT_910 + - + - + NONE + + + + + STRUCT_911 + - + - + NONE + + + + + STRUCT_912 + - + - + NONE + + + + + STRUCT_913 + - + - + NONE + + + + + STRUCT_914 + - + - + NONE + + + + + STRUCT_915 + - + - + NONE + + + + + STRUCT_916 + - + - + NONE + + + + + STRUCT_917 + - + - + NONE + + + + + STRUCT_918 + - + - + NONE + + + + + STRUCT_919 + - + - + NONE + + + + + STRUCT_920 + - + - + NONE + + + + + STRUCT_921 + - + - + NONE + + + + + STRUCT_922 + - + - + NONE + + + + + STRUCT_923 + - + - + NONE + + + + + STRUCT_924 + - + - + NONE + + + + + STRUCT_925 + - + - + NONE + + + + + STRUCT_926 + - + - + NONE + + + + + STRUCT_927 + - + - + NONE + + + + + STRUCT_928 + - + - + NONE + + + + + STRUCT_929 + - + - + NONE + + + + + STRUCT_930 + - + - + NONE + + + + + STRUCT_931 + - + - + NONE + + + + + STRUCT_932 + - + - + NONE + + + + + STRUCT_933 + - + - + NONE + + + + + STRUCT_934 + - + - + NONE + + + + + STRUCT_935 + - + - + NONE + + + + + STRUCT_936 + - + - + NONE + + + + + STRUCT_937 + - + - + NONE + + + + + STRUCT_938 + - + - + NONE + + + + + STRUCT_939 + - + - + NONE + + + + + STRUCT_940 + - + - + NONE + + + + + STRUCT_941 + - + - + NONE + + + + + STRUCT_942 + - + - + NONE + + + + + STRUCT_943 + - + - + NONE + + + + + STRUCT_944 + - + - + NONE + + + + + STRUCT_945 + - + - + NONE + + + + + STRUCT_946 + - + - + NONE + + + + + STRUCT_947 + - + - + NONE + + + + + STRUCT_948 + - + - + NONE + + + + + STRUCT_949 + - + - + NONE + + + + + STRUCT_950 + - + - + NONE + + + + + STRUCT_951 + - + - + NONE + + + + + STRUCT_952 + - + - + NONE + + + + + STRUCT_953 + - + - + NONE + + + + + STRUCT_954 + - + - + NONE + + + + + STRUCT_955 + - + - + NONE + + + + + STRUCT_956 + - + - + NONE + + + + + STRUCT_957 + - + - + NONE + + + + + STRUCT_958 + - + - + NONE + + + + + STRUCT_959 + - + - + NONE + + + + + STRUCT_960 + - + - + NONE + + + + + STRUCT_961 + - + - + NONE + + + + + STRUCT_962 + - + - + NONE + + + + + STRUCT_963 + - + - + NONE + + + + + STRUCT_964 + - + - + NONE + + + + + STRUCT_965 + - + - + NONE + + + + + STRUCT_966 + - + - + NONE + + + + + STRUCT_967 + - + - + NONE + + + + + STRUCT_968 + - + - + NONE + + + + + STRUCT_969 + - + - + NONE + + + + + STRUCT_970 + - + - + NONE + + + + + STRUCT_971 + - + - + NONE + + + + + STRUCT_972 + - + - + NONE + + + + + STRUCT_973 + - + - + NONE + + + + + STRUCT_974 + - + - + NONE + + + + + STRUCT_975 + - + - + NONE + + + + + STRUCT_976 + - + - + NONE + + + + + STRUCT_977 + - + - + NONE + + + + + STRUCT_978 + - + - + NONE + + + + + STRUCT_979 + - + - + NONE + + + + + STRUCT_980 + - + - + NONE + + + + + STRUCT_981 + - + - + NONE + + + + + STRUCT_982 + - + - + NONE + + + + + STRUCT_983 + - + - + NONE + + + + + STRUCT_984 + - + - + NONE + + + + + STRUCT_985 + - + - + NONE + + + + + STRUCT_986 + - + - + NONE + + + + + STRUCT_987 + - + - + NONE + + + + + STRUCT_988 + - + - + NONE + + + + + STRUCT_989 + - + - + NONE + + + + + STRUCT_990 + - + - + NONE + + + + + STRUCT_991 + - + - + NONE + + + + + STRUCT_992 + - + - + NONE + + + + + STRUCT_993 + - + - + NONE + + + + + STRUCT_994 + - + - + NONE + + + + + STRUCT_995 + - + - + NONE + + + + + STRUCT_996 + - + - + NONE + + + + + STRUCT_997 + - + - + NONE + + + + + STRUCT_998 + - + - + NONE + + + + + STRUCT_999 + - + - + NONE + + + + + STRUCT_1000 + - + - + NONE + + + + + STRUCT_1001 + - + - + NONE + + + + + STRUCT_1002 + - + - + NONE + + + + + STRUCT_1003 + - + - + NONE + + + + + STRUCT_1004 + - + - + NONE + + + + + STRUCT_1005 + - + - + NONE + + + + + STRUCT_1006 + - + - + NONE + + + + + STRUCT_1007 + - + - + NONE + + + + + STRUCT_1008 + - + - + NONE + + + + + STRUCT_1009 + - + - + NONE + + + + + STRUCT_1010 + - + - + NONE + + + + + STRUCT_1011 + - + - + NONE + + + + + STRUCT_1012 + - + - + NONE + + + + + STRUCT_1013 + - + - + NONE + + + + + STRUCT_1014 + - + - + NONE + + + + + STRUCT_1015 + - + - + NONE + + + + + STRUCT_1016 + - + - + NONE + + + + + STRUCT_1017 + - + - + NONE + + + + + STRUCT_1018 + - + - + NONE + + + + + STRUCT_1019 + - + - + NONE + + + + + STRUCT_1020 + - + - + NONE + + + + + STRUCT_1021 + - + - + NONE + + + + + STRUCT_1022 + - + - + NONE + + + + + STRUCT_1023 + - + - + NONE + + + + + STRUCT_1024 + - + - + NONE + + + + + STRUCT_1025 + - + - + NONE + + + + + STRUCT_1026 + - + - + NONE + + + + + STRUCT_1027 + - + - + NONE + + + + + STRUCT_1028 + - + - + NONE + + + + + STRUCT_1029 + - + - + NONE + + + + + STRUCT_1030 + - + - + NONE + + + + + STRUCT_1031 + - + - + NONE + + + + + STRUCT_1032 + - + - + NONE + + + + + STRUCT_1033 + - + - + NONE + + + + + STRUCT_1034 + - + - + NONE + + + + + STRUCT_1035 + - + - + NONE + + + + + STRUCT_1036 + - + - + NONE + + + + + STRUCT_1037 + - + - + NONE + + + + + STRUCT_1038 + - + - + NONE + + + + + STRUCT_1039 + - + - + NONE + + + + + STRUCT_1040 + - + - + NONE + + + + + STRUCT_1041 + - + - + NONE + + + + + STRUCT_1042 + - + - + NONE + + + + + STRUCT_1043 + - + - + NONE + + + + + STRUCT_1044 + - + - + NONE + + + + + STRUCT_1045 + - + - + NONE + + + + + STRUCT_1046 + - + - + NONE + + + + + STRUCT_1047 + - + - + NONE + + + + + STRUCT_1048 + - + - + NONE + + + + + STRUCT_1049 + - + - + NONE + + + + + STRUCT_1050 + - + - + NONE + + + + + STRUCT_1051 + - + - + NONE + + + + + STRUCT_1052 + - + - + NONE + + + + + STRUCT_1053 + - + - + NONE + + + + + STRUCT_1054 + - + - + NONE + + + + + STRUCT_1055 + - + - + NONE + + + + + STRUCT_1056 + - + - + NONE + + + + + STRUCT_1057 + - + - + NONE + + + + + STRUCT_1058 + - + - + NONE + + + + + STRUCT_1059 + - + - + NONE + + + + + STRUCT_1060 + - + - + NONE + + + + + STRUCT_1061 + - + - + NONE + + + + + STRUCT_1062 + - + - + NONE + + + + + STRUCT_1063 + - + - + NONE + + + + + STRUCT_1064 + - + - + NONE + + + + + STRUCT_1065 + - + - + NONE + + + + + STRUCT_1066 + - + - + NONE + + + + + STRUCT_1067 + - + - + NONE + + + + + STRUCT_1068 + - + - + NONE + + + + + STRUCT_1069 + - + - + NONE + + + + + STRUCT_1070 + - + - + NONE + + + + + STRUCT_1071 + - + - + NONE + + + + + STRUCT_1072 + - + - + NONE + + + + + STRUCT_1073 + - + - + NONE + + + + + STRUCT_1074 + - + - + NONE + + + + + STRUCT_1075 + - + - + NONE + + + + + STRUCT_1076 + - + - + NONE + + + + + STRUCT_1077 + - + - + NONE + + + + + STRUCT_1078 + - + - + NONE + + + + + STRUCT_1079 + - + - + NONE + + + + + STRUCT_1080 + - + - + NONE + + + + + STRUCT_1081 + - + - + NONE + + + + + STRUCT_1082 + - + - + NONE + + + + + STRUCT_1083 + - + - + NONE + + + + + STRUCT_1084 + - + - + NONE + + + + + STRUCT_1085 + - + - + NONE + + + + + STRUCT_1086 + - + - + NONE + + + + + STRUCT_1087 + - + - + NONE + + + + + STRUCT_1088 + - + - + NONE + + + + + STRUCT_1089 + - + - + NONE + + + + + STRUCT_1090 + - + - + NONE + + + + + STRUCT_1091 + - + - + NONE + + + + + STRUCT_1092 + - + - + NONE + + + + + STRUCT_1093 + - + - + NONE + + + + + STRUCT_1094 + - + - + NONE + + + + + STRUCT_1095 + - + - + NONE + + + + + STRUCT_1096 + - + - + NONE + + + + + STRUCT_1097 + - + - + NONE + + + + + STRUCT_1098 + - + - + NONE + + + + + STRUCT_1099 + - + - + NONE + + + + + STRUCT_1100 + - + - + NONE + + + + + STRUCT_1101 + - + - + NONE + + + + + STRUCT_1102 + - + - + NONE + + + + + STRUCT_1103 + - + - + NONE + + + + + STRUCT_1104 + - + - + NONE + + + + + STRUCT_1105 + - + - + NONE + + + + + STRUCT_1106 + - + - + NONE + + + + + STRUCT_1107 + - + - + NONE + + + + + STRUCT_1108 + - + - + NONE + + + + + STRUCT_1109 + - + - + NONE + + + + + STRUCT_1110 + - + - + NONE + + + + + STRUCT_1111 + - + - + NONE + + + + + STRUCT_1112 + - + - + NONE + + + + + STRUCT_1113 + - + - + NONE + + + + + STRUCT_1114 + - + - + NONE + + + + + STRUCT_1115 + - + - + NONE + + + + + STRUCT_1116 + - + - + NONE + + + + + STRUCT_1117 + - + - + NONE + + + + + STRUCT_1118 + - + - + NONE + + + + + STRUCT_1119 + - + - + NONE + + + + + STRUCT_1120 + - + - + NONE + + + + + STRUCT_1121 + - + - + NONE + + + + + STRUCT_1122 + - + - + NONE + + + + + STRUCT_1123 + - + - + NONE + + + + + STRUCT_1124 + - + - + NONE + + + + + STRUCT_1125 + - + - + NONE + + + + + STRUCT_1126 + - + - + NONE + + + + + STRUCT_1127 + - + - + NONE + + + + + STRUCT_1128 + - + - + NONE + + + + + STRUCT_1129 + - + - + NONE + + + + + STRUCT_1130 + - + - + NONE + + + + + STRUCT_1131 + - + - + NONE + + + + + STRUCT_1132 + - + - + NONE + + + + + STRUCT_1133 + - + - + NONE + + + + + STRUCT_1134 + - + - + NONE + + + + + STRUCT_1135 + - + - + NONE + + + + + STRUCT_1136 + - + - + NONE + + + + + STRUCT_1137 + - + - + NONE + + + + + STRUCT_1138 + - + - + NONE + + + + + STRUCT_1139 + - + - + NONE + + + + + STRUCT_1140 + - + - + NONE + + + + + STRUCT_1141 + - + - + NONE + + + + + STRUCT_1142 + - + - + NONE + + + + + STRUCT_1143 + - + - + NONE + + + + + STRUCT_1144 + - + - + NONE + + + + + STRUCT_1145 + - + - + NONE + + + + + STRUCT_1146 + - + - + NONE + + + + + STRUCT_1147 + - + - + NONE + + + + + STRUCT_1148 + - + - + NONE + + + + + STRUCT_1149 + - + - + NONE + + + + + STRUCT_1150 + - + - + NONE + + + + + STRUCT_1151 + - + - + NONE + + + + + STRUCT_1152 + - + - + NONE + + + + + STRUCT_1153 + - + - + NONE + + + + + STRUCT_1154 + - + - + NONE + + + + + STRUCT_1155 + - + - + NONE + + + + + STRUCT_1156 + - + - + NONE + + + + + STRUCT_1157 + - + - + NONE + + + + + STRUCT_1158 + - + - + NONE + + + + + STRUCT_1159 + - + - + NONE + + + + + STRUCT_1160 + - + - + NONE + + + + + STRUCT_1161 + - + - + NONE + + + + + STRUCT_1162 + - + - + NONE + + + + + STRUCT_1163 + - + - + NONE + + + + + STRUCT_1164 + - + - + NONE + + + + + STRUCT_1165 + - + - + NONE + + + + + STRUCT_1166 + - + - + NONE + + + + + STRUCT_1167 + - + - + NONE + + + + + STRUCT_1168 + - + - + NONE + + + + + STRUCT_1169 + - + - + NONE + + + + + STRUCT_1170 + - + - + NONE + + + + + STRUCT_1171 + - + - + NONE + + + + + STRUCT_1172 + - + - + NONE + + + + + STRUCT_1173 + - + - + NONE + + + + + STRUCT_1174 + - + - + NONE + + + + + STRUCT_1175 + - + - + NONE + + + + + STRUCT_1176 + - + - + NONE + + + + + STRUCT_1177 + - + - + NONE + + + + + STRUCT_1178 + - + - + NONE + + + + + STRUCT_1179 + - + - + NONE + + + + + STRUCT_1180 + - + - + NONE + + + + + STRUCT_1181 + - + - + NONE + + + + + STRUCT_1182 + - + - + NONE + + + + + STRUCT_1183 + - + - + NONE + + + + + STRUCT_1184 + - + - + NONE + + + + + STRUCT_1185 + - + - + NONE + + + + + STRUCT_1186 + - + - + NONE + + + + + STRUCT_1187 + - + - + NONE + + + + + STRUCT_1188 + - + - + NONE + + + + + STRUCT_1189 + - + - + NONE + + + + + STRUCT_1190 + - + - + NONE + + + + + STRUCT_1191 + - + - + NONE + + + + + STRUCT_1192 + - + - + NONE + + + + + STRUCT_1193 + - + - + NONE + + + + + STRUCT_1194 + - + - + NONE + + + + + STRUCT_1195 + - + - + NONE + + + + + STRUCT_1196 + - + - + NONE + + + + + STRUCT_1197 + - + - + NONE + + + + + STRUCT_1198 + - + - + NONE + + + + + STRUCT_1199 + - + - + NONE + + + + + STRUCT_1200 + - + - + NONE + + + + + STRUCT_1201 + - + - + NONE + + + + + STRUCT_1202 + - + - + NONE + + + + + STRUCT_1203 + - + - + NONE + + + + + STRUCT_1204 + - + - + NONE + + + + + STRUCT_1205 + - + - + NONE + + + + + STRUCT_1206 + - + - + NONE + + + + + STRUCT_1207 + - + - + NONE + + + + + STRUCT_1208 + - + - + NONE + + + + + STRUCT_1209 + - + - + NONE + + + + + STRUCT_1210 + - + - + NONE + + + + + STRUCT_1211 + - + - + NONE + + + + + STRUCT_1212 + - + - + NONE + + + + + STRUCT_1213 + - + - + NONE + + + + + STRUCT_1214 + - + - + NONE + + + + + STRUCT_1215 + - + - + NONE + + + + + STRUCT_1216 + - + - + NONE + + + + + STRUCT_1217 + - + - + NONE + + + + + STRUCT_1218 + - + - + NONE + + + + + STRUCT_1219 + - + - + NONE + + + + + STRUCT_1220 + - + - + NONE + + + + + STRUCT_1221 + - + - + NONE + + + + + STRUCT_1222 + - + - + NONE + + + + + STRUCT_1223 + - + - + NONE + + + + + STRUCT_1224 + - + - + NONE + + + + + STRUCT_1225 + - + - + NONE + + + + + STRUCT_1226 + - + - + NONE + + + + + STRUCT_1227 + - + - + NONE + + + + + STRUCT_1228 + - + - + NONE + + + + + STRUCT_1229 + - + - + NONE + + + + + STRUCT_1230 + - + - + NONE + + + + + STRUCT_1231 + - + - + NONE + + + + + STRUCT_1232 + - + - + NONE + + + + + STRUCT_1233 + - + - + NONE + + + + + STRUCT_1234 + - + - + NONE + + + + + STRUCT_1235 + - + - + NONE + + + + + STRUCT_1236 + - + - + NONE + + + + + STRUCT_1237 + - + - + NONE + + + + + STRUCT_1238 + - + - + NONE + + + + + STRUCT_1239 + - + - + NONE + + + + + STRUCT_1240 + - + - + NONE + + + + + STRUCT_1241 + - + - + NONE + + + + + STRUCT_1242 + - + - + NONE + + + + + STRUCT_1243 + - + - + NONE + + + + + STRUCT_1244 + - + - + NONE + + + + + STRUCT_1245 + - + - + NONE + + + + + STRUCT_1246 + - + - + NONE + + + + + STRUCT_1247 + - + - + NONE + + + + + STRUCT_1248 + - + - + NONE + + + + + STRUCT_1249 + - + - + NONE + + + + + STRUCT_1250 + - + - + NONE + + + + + STRUCT_1251 + - + - + NONE + + + + + STRUCT_1252 + - + - + NONE + + + + + STRUCT_1253 + - + - + NONE + + + + + STRUCT_1254 + - + - + NONE + + + + + STRUCT_1255 + - + - + NONE + + + + + STRUCT_1256 + - + - + NONE + + + + + STRUCT_1257 + - + - + NONE + + + + + STRUCT_1258 + - + - + NONE + + + + + STRUCT_1259 + - + - + NONE + + + + + STRUCT_1260 + - + - + NONE + + + + + STRUCT_1261 + - + - + NONE + + + + + STRUCT_1262 + - + - + NONE + + + + + STRUCT_1263 + - + - + NONE + + + + + STRUCT_1264 + - + - + NONE + + + + + STRUCT_1265 + - + - + NONE + + + + + STRUCT_1266 + - + - + NONE + + + + + STRUCT_1267 + - + - + NONE + + + + + STRUCT_1268 + - + - + NONE + + + + + STRUCT_1269 + - + - + NONE + + + + + STRUCT_1270 + - + - + NONE + + + + + STRUCT_1271 + - + - + NONE + + + + + STRUCT_1272 + - + - + NONE + + + + + STRUCT_1273 + - + - + NONE + + + + + STRUCT_1274 + - + - + NONE + + + + + STRUCT_1275 + - + - + NONE + + + + + STRUCT_1276 + - + - + NONE + + + + + STRUCT_1277 + - + - + NONE + + + + + STRUCT_1278 + - + - + NONE + + + + + STRUCT_1279 + - + - + NONE + + + + + STRUCT_1280 + - + - + NONE + + + + + STRUCT_1281 + - + - + NONE + + + + + STRUCT_1282 + - + - + NONE + + + + + STRUCT_1283 + - + - + NONE + + + + + STRUCT_1284 + - + - + NONE + + + + + STRUCT_1285 + - + - + NONE + + + + + STRUCT_1286 + - + - + NONE + + + + + STRUCT_1287 + - + - + NONE + + + + + STRUCT_1288 + - + - + NONE + + + + + STRUCT_1289 + - + - + NONE + + + + + STRUCT_1290 + - + - + NONE + + + + + STRUCT_1291 + - + - + NONE + + + + + STRUCT_1292 + - + - + NONE + + + + + STRUCT_1293 + - + - + NONE + + + + + STRUCT_1294 + - + - + NONE + + + + + STRUCT_1295 + - + - + NONE + + + + + STRUCT_1296 + - + - + NONE + + + + + STRUCT_1297 + - + - + NONE + + + + + STRUCT_1298 + - + - + NONE + + + + + STRUCT_1299 + - + - + NONE + + + + + STRUCT_1300 + - + - + NONE + + + + + STRUCT_1301 + - + - + NONE + + + + + STRUCT_1302 + - + - + NONE + + + + + STRUCT_1303 + - + - + NONE + + + + + STRUCT_1304 + - + - + NONE + + + + + STRUCT_1305 + - + - + NONE + + + + + STRUCT_1306 + - + - + NONE + + + + + STRUCT_1307 + - + - + NONE + + + + + STRUCT_1308 + - + - + NONE + + + + + STRUCT_1309 + - + - + NONE + + + + + STRUCT_1310 + - + - + NONE + + + + + STRUCT_1311 + - + - + NONE + + + + + STRUCT_1312 + - + - + NONE + + + + + STRUCT_1313 + - + - + NONE + + + + + STRUCT_1314 + - + - + NONE + + + + + STRUCT_1315 + - + - + NONE + + + + + STRUCT_1316 + - + - + NONE + + + + + STRUCT_1317 + - + - + NONE + + + + + STRUCT_1318 + - + - + NONE + + + + + STRUCT_1319 + - + - + NONE + + + + + STRUCT_1320 + - + - + NONE + + + + + STRUCT_1321 + - + - + NONE + + + + + STRUCT_1322 + - + - + NONE + + + + + STRUCT_1323 + - + - + NONE + + + + + STRUCT_1324 + - + - + NONE + + + + + STRUCT_1325 + - + - + NONE + + + + + STRUCT_1326 + - + - + NONE + + + + + STRUCT_1327 + - + - + NONE + + + + + STRUCT_1328 + - + - + NONE + + + + + STRUCT_1329 + - + - + NONE + + + + + STRUCT_1330 + - + - + NONE + + + + + STRUCT_1331 + - + - + NONE + + + + + STRUCT_1332 + - + - + NONE + + + + + STRUCT_1333 + - + - + NONE + + + + + STRUCT_1334 + - + - + NONE + + + + + STRUCT_1335 + - + - + NONE + + + + + STRUCT_1336 + - + - + NONE + + + + + STRUCT_1337 + - + - + NONE + + + + + STRUCT_1338 + - + - + NONE + + + + + STRUCT_1339 + - + - + NONE + + + + + STRUCT_1340 + - + - + NONE + + + + + STRUCT_1341 + - + - + NONE + + + + + STRUCT_1342 + - + - + NONE + + + + + STRUCT_1343 + - + - + NONE + + + + + STRUCT_1344 + - + - + NONE + + + + + STRUCT_1345 + - + - + NONE + + + + + STRUCT_1346 + - + - + NONE + + + + + STRUCT_1347 + - + - + NONE + + + + + STRUCT_1348 + - + - + NONE + + + + + STRUCT_1349 + - + - + NONE + + + + + STRUCT_1350 + - + - + NONE + + + + + STRUCT_1351 + - + - + NONE + + + + + STRUCT_1352 + - + - + NONE + + + + + STRUCT_1353 + - + - + NONE + + + + + STRUCT_1354 + - + - + NONE + + + + + STRUCT_1355 + - + - + NONE + + + + + STRUCT_1356 + - + - + NONE + + + + + STRUCT_1357 + - + - + NONE + + + + + STRUCT_1358 + - + - + NONE + + + + + STRUCT_1359 + - + - + NONE + + + + + STRUCT_1360 + - + - + NONE + + + + + STRUCT_1361 + - + - + NONE + + + + + STRUCT_1362 + - + - + NONE + + + + + STRUCT_1363 + - + - + NONE + + + + + STRUCT_1364 + - + - + NONE + + + + + STRUCT_1365 + - + - + NONE + + + + + STRUCT_1366 + - + - + NONE + + + + + STRUCT_1367 + - + - + NONE + + + + + STRUCT_1368 + - + - + NONE + + + + + STRUCT_1369 + - + - + NONE + + + + + STRUCT_1370 + - + - + NONE + + + + + STRUCT_1371 + - + - + NONE + + + + + STRUCT_1372 + - + - + NONE + + + + + STRUCT_1373 + - + - + NONE + + + + + STRUCT_1374 + - + - + NONE + + + + + STRUCT_1375 + - + - + NONE + + + + + STRUCT_1376 + - + - + NONE + + + + + STRUCT_1377 + - + - + NONE + + + + + STRUCT_1378 + - + - + NONE + + + + + STRUCT_1379 + - + - + NONE + + + + + STRUCT_1380 + - + - + NONE + + + + + STRUCT_1381 + - + - + NONE + + + + + STRUCT_1382 + - + - + NONE + + + + + STRUCT_1383 + - + - + NONE + + + + + STRUCT_1384 + - + - + NONE + + + + + STRUCT_1385 + - + - + NONE + + + + + STRUCT_1386 + - + - + NONE + + + + + STRUCT_1387 + - + - + NONE + + + + + STRUCT_1388 + - + - + NONE + + + + + STRUCT_1389 + - + - + NONE + + + + + STRUCT_1390 + - + - + NONE + + + + + STRUCT_1391 + - + - + NONE + + + + + STRUCT_1392 + - + - + NONE + + + + + STRUCT_1393 + - + - + NONE + + + + + STRUCT_1394 + - + - + NONE + + + + + STRUCT_1395 + - + - + NONE + + + + + STRUCT_1396 + - + - + NONE + + + + + STRUCT_1397 + - + - + NONE + + + + + STRUCT_1398 + - + - + NONE + + + + + STRUCT_1399 + - + - + NONE + + + + + STRUCT_1400 + - + - + NONE + + + + + STRUCT_1401 + - + - + NONE + + + + + STRUCT_1402 + - + - + NONE + + + + + STRUCT_1403 + - + - + NONE + + + + + STRUCT_1404 + - + - + NONE + + + + + STRUCT_1405 + - + - + NONE + + + + + STRUCT_1406 + - + - + NONE + + + + + STRUCT_1407 + - + - + NONE + + + + + STRUCT_1408 + - + - + NONE + + + + + STRUCT_1409 + - + - + NONE + + + + + STRUCT_1410 + - + - + NONE + + + + + STRUCT_1411 + - + - + NONE + + + + + STRUCT_1412 + - + - + NONE + + + + + STRUCT_1413 + - + - + NONE + + + + + STRUCT_1414 + - + - + NONE + + + + + STRUCT_1415 + - + - + NONE + + + + + STRUCT_1416 + - + - + NONE + + + + + STRUCT_1417 + - + - + NONE + + + + + STRUCT_1418 + - + - + NONE + + + + + STRUCT_1419 + - + - + NONE + + + + + STRUCT_1420 + - + - + NONE + + + + + STRUCT_1421 + - + - + NONE + + + + + STRUCT_1422 + - + - + NONE + + + + + STRUCT_1423 + - + - + NONE + + + + + STRUCT_1424 + - + - + NONE + + + + + STRUCT_1425 + - + - + NONE + + + + + STRUCT_1426 + - + - + NONE + + + + + STRUCT_1427 + - + - + NONE + + + + + STRUCT_1428 + - + - + NONE + + + + + STRUCT_1429 + - + - + NONE + + + + + STRUCT_1430 + - + - + NONE + + + + + STRUCT_1431 + - + - + NONE + + + + + STRUCT_1432 + - + - + NONE + + + + + STRUCT_1433 + - + - + NONE + + + + + STRUCT_1434 + - + - + NONE + + + + + STRUCT_1435 + - + - + NONE + + + + + STRUCT_1436 + - + - + NONE + + + + + STRUCT_1437 + - + - + NONE + + + + + STRUCT_1438 + - + - + NONE + + + + + STRUCT_1439 + - + - + NONE + + + + + STRUCT_1440 + - + - + NONE + + + + + STRUCT_1441 + - + - + NONE + + + + + STRUCT_1442 + - + - + NONE + + + + + STRUCT_1443 + - + - + NONE + + + + + STRUCT_1444 + - + - + NONE + + + + + STRUCT_1445 + - + - + NONE + + + + + STRUCT_1446 + - + - + NONE + + + + + STRUCT_1447 + - + - + NONE + + + + + STRUCT_1448 + - + - + NONE + + + + + STRUCT_1449 + - + - + NONE + + + + + STRUCT_1450 + - + - + NONE + + + + + STRUCT_1451 + - + - + NONE + + + + + STRUCT_1452 + - + - + NONE + + + + + STRUCT_1453 + - + - + NONE + + + + + STRUCT_1454 + - + - + NONE + + + + + STRUCT_1455 + - + - + NONE + + + + + STRUCT_1456 + - + - + NONE + + + + + STRUCT_1457 + - + - + NONE + + + + + STRUCT_1458 + - + - + NONE + + + + + STRUCT_1459 + - + - + NONE + + + + + STRUCT_1460 + - + - + NONE + + + + + STRUCT_1461 + - + - + NONE + + + + + STRUCT_1462 + - + - + NONE + + + + + STRUCT_1463 + - + - + NONE + + + + + STRUCT_1464 + - + - + NONE + + + + + STRUCT_1465 + - + - + NONE + + + + + STRUCT_1466 + - + - + NONE + + + + + STRUCT_1467 + - + - + NONE + + + + + STRUCT_1468 + - + - + NONE + + + + + STRUCT_1469 + - + - + NONE + + + + + STRUCT_1470 + - + - + NONE + + + + + STRUCT_1471 + - + - + NONE + + + + + STRUCT_1472 + - + - + NONE + + + + + STRUCT_1473 + - + - + NONE + + + + + STRUCT_1474 + - + - + NONE + + + + + STRUCT_1475 + - + - + NONE + + + + + STRUCT_1476 + - + - + NONE + + + + + STRUCT_1477 + - + - + NONE + + + + + STRUCT_1478 + - + - + NONE + + + + + STRUCT_1479 + - + - + NONE + + + + + STRUCT_1480 + - + - + NONE + + + + + STRUCT_1481 + - + - + NONE + + + + + STRUCT_1482 + - + - + NONE + + + + + STRUCT_1483 + - + - + NONE + + + + + STRUCT_1484 + - + - + NONE + + + + + STRUCT_1485 + - + - + NONE + + + + + STRUCT_1486 + - + - + NONE + + + + + STRUCT_1487 + - + - + NONE + + + + + STRUCT_1488 + - + - + NONE + + + + + STRUCT_1489 + - + - + NONE + + + + + STRUCT_1490 + - + - + NONE + + + + + STRUCT_1491 + - + - + NONE + + + + + STRUCT_1492 + - + - + NONE + + + + + STRUCT_1493 + - + - + NONE + + + + + STRUCT_1494 + - + - + NONE + + + + + STRUCT_1495 + - + - + NONE + + + + + STRUCT_1496 + - + - + NONE + + + + + STRUCT_1497 + - + - + NONE + + + + + STRUCT_1498 + - + - + NONE + + + + + STRUCT_1499 + - + - + NONE + + + + + STRUCT_1500 + - + - + NONE + + + + + STRUCT_1501 + - + - + NONE + + + + + STRUCT_1502 + - + - + NONE + + + + + STRUCT_1503 + - + - + NONE + + + + + STRUCT_1504 + - + - + NONE + + + + + STRUCT_1505 + - + - + NONE + + + + + STRUCT_1506 + - + - + NONE + + + + + STRUCT_1507 + - + - + NONE + + + + + STRUCT_1508 + - + - + NONE + + + + + STRUCT_1509 + - + - + NONE + + + + + STRUCT_1510 + - + - + NONE + + + + + STRUCT_1511 + - + - + NONE + + + + + STRUCT_1512 + - + - + NONE + + + + + STRUCT_1513 + - + - + NONE + + + + + STRUCT_1514 + - + - + NONE + + + + + STRUCT_1515 + - + - + NONE + + + + + STRUCT_1516 + - + - + NONE + + + + + STRUCT_1517 + - + - + NONE + + + + + STRUCT_1518 + - + - + NONE + + + + + STRUCT_1519 + - + - + NONE + + + + + STRUCT_1520 + - + - + NONE + + + + + STRUCT_1521 + - + - + NONE + + + + + STRUCT_1522 + - + - + NONE + + + + + STRUCT_1523 + - + - + NONE + + + + + STRUCT_1524 + - + - + NONE + + + + + STRUCT_1525 + - + - + NONE + + + + + STRUCT_1526 + - + - + NONE + + + + + STRUCT_1527 + - + - + NONE + + + + + STRUCT_1528 + - + - + NONE + + + + + STRUCT_1529 + - + - + NONE + + + + + STRUCT_1530 + - + - + NONE + + + + + STRUCT_1531 + - + - + NONE + + + + + STRUCT_1532 + - + - + NONE + + + + + STRUCT_1533 + - + - + NONE + + + + + STRUCT_1534 + - + - + NONE + + + + + STRUCT_1535 + - + - + NONE + + + + + STRUCT_1536 + - + - + NONE + + + + + STRUCT_1537 + - + - + NONE + + + + + STRUCT_1538 + - + - + NONE + + + + + STRUCT_1539 + - + - + NONE + + + + + STRUCT_1540 + - + - + NONE + + + + + STRUCT_1541 + - + - + NONE + + + + + STRUCT_1542 + - + - + NONE + + + + + STRUCT_1543 + - + - + NONE + + + + + STRUCT_1544 + - + - + NONE + + + + + STRUCT_1545 + - + - + NONE + + + + + STRUCT_1546 + - + - + NONE + + + + + STRUCT_1547 + - + - + NONE + + + + + STRUCT_1548 + - + - + NONE + + + + + STRUCT_1549 + - + - + NONE + + + + + STRUCT_1550 + - + - + NONE + + + + + STRUCT_1551 + - + - + NONE + + + + + STRUCT_1552 + - + - + NONE + + + + + STRUCT_1553 + - + - + NONE + + + + + STRUCT_1554 + - + - + NONE + + + + + STRUCT_1555 + - + - + NONE + + + + + STRUCT_1556 + - + - + NONE + + + + + STRUCT_1557 + - + - + NONE + + + + + STRUCT_1558 + - + - + NONE + + + + + STRUCT_1559 + - + - + NONE + + + + + STRUCT_1560 + - + - + NONE + + + + + STRUCT_1561 + - + - + NONE + + + + + STRUCT_1562 + - + - + NONE + + + + + STRUCT_1563 + - + - + NONE + + + + + STRUCT_1564 + - + - + NONE + + + + + STRUCT_1565 + - + - + NONE + + + + + STRUCT_1566 + - + - + NONE + + + + + STRUCT_1567 + - + - + NONE + + + + + STRUCT_1568 + - + - + NONE + + + + + STRUCT_1569 + - + - + NONE + + + + + STRUCT_1570 + - + - + NONE + + + + + STRUCT_1571 + - + - + NONE + + + + + STRUCT_1572 + - + - + NONE + + + + + STRUCT_1573 + - + - + NONE + + + + + STRUCT_1574 + - + - + NONE + + + + + STRUCT_1575 + - + - + NONE + + + + + STRUCT_1576 + - + - + NONE + + + + + STRUCT_1577 + - + - + NONE + + + + + STRUCT_1578 + - + - + NONE + + + + + STRUCT_1579 + - + - + NONE + + + + + STRUCT_1580 + - + - + NONE + + + + + STRUCT_1581 + - + - + NONE + + + + + STRUCT_1582 + - + - + NONE + + + + + STRUCT_1583 + - + - + NONE + + + + + STRUCT_1584 + - + - + NONE + + + + + STRUCT_1585 + - + - + NONE + + + + + STRUCT_1586 + - + - + NONE + + + + + STRUCT_1587 + - + - + NONE + + + + + STRUCT_1588 + - + - + NONE + + + + + STRUCT_1589 + - + - + NONE + + + + + STRUCT_1590 + - + - + NONE + + + + + STRUCT_1591 + - + - + NONE + + + + + STRUCT_1592 + - + - + NONE + + + + + STRUCT_1593 + - + - + NONE + + + + + STRUCT_1594 + - + - + NONE + + + + + STRUCT_1595 + - + - + NONE + + + + + STRUCT_1596 + - + - + NONE + + + + + STRUCT_1597 + - + - + NONE + + + + + STRUCT_1598 + - + - + NONE + + + + + STRUCT_1599 + - + - + NONE + + + + + STRUCT_1600 + - + - + NONE + + + + + STRUCT_1601 + - + - + NONE + + + + + STRUCT_1602 + - + - + NONE + + + + + STRUCT_1603 + - + - + NONE + + + + + STRUCT_1604 + - + - + NONE + + + + + STRUCT_1605 + - + - + NONE + + + + + STRUCT_1606 + - + - + NONE + + + + + STRUCT_1607 + - + - + NONE + + + + + STRUCT_1608 + - + - + NONE + + + + + STRUCT_1609 + - + - + NONE + + + + + STRUCT_1610 + - + - + NONE + + + + + STRUCT_1611 + - + - + NONE + + + + + STRUCT_1612 + - + - + NONE + + + + + STRUCT_1613 + - + - + NONE + + + + + STRUCT_1614 + - + - + NONE + + + + + STRUCT_1615 + - + - + NONE + + + + + STRUCT_1616 + - + - + NONE + + + + + STRUCT_1617 + - + - + NONE + + + + + STRUCT_1618 + - + - + NONE + + + + + STRUCT_1619 + - + - + NONE + + + + + STRUCT_1620 + - + - + NONE + + + + + STRUCT_1621 + - + - + NONE + + + + + STRUCT_1622 + - + - + NONE + + + + + STRUCT_1623 + - + - + NONE + + + + + STRUCT_1624 + - + - + NONE + + + + + STRUCT_1625 + - + - + NONE + + + + + STRUCT_1626 + - + - + NONE + + + + + STRUCT_1627 + - + - + NONE + + + + + STRUCT_1628 + - + - + NONE + + + + + STRUCT_1629 + - + - + NONE + + + + + STRUCT_1630 + - + - + NONE + + + + + STRUCT_1631 + - + - + NONE + + + + + STRUCT_1632 + - + - + NONE + + + + + STRUCT_1633 + - + - + NONE + + + + + STRUCT_1634 + - + - + NONE + + + + + STRUCT_1635 + - + - + NONE + + + + + STRUCT_1636 + - + - + NONE + + + + + STRUCT_1637 + - + - + NONE + + + + + STRUCT_1638 + - + - + NONE + + + + + STRUCT_1639 + - + - + NONE + + + + + STRUCT_1640 + - + - + NONE + + + + + STRUCT_1641 + - + - + NONE + + + + + STRUCT_1642 + - + - + NONE + + + + + STRUCT_1643 + - + - + NONE + + + + + STRUCT_1644 + - + - + NONE + + + + + STRUCT_1645 + - + - + NONE + + + + + STRUCT_1646 + - + - + NONE + + + + + STRUCT_1647 + - + - + NONE + + + + + STRUCT_1648 + - + - + NONE + + + + + STRUCT_1649 + - + - + NONE + + + + + STRUCT_1650 + - + - + NONE + + + + + STRUCT_1651 + - + - + NONE + + + + + STRUCT_1652 + - + - + NONE + + + + + STRUCT_1653 + - + - + NONE + + + + + STRUCT_1654 + - + - + NONE + + + + + STRUCT_1655 + - + - + NONE + + + + + A002_U + - + - + NONE + + + + + A002_R2 + - + - + NONE + + + + + A050_U + - + - + NONE + + + + + A050_R + - + - + NONE + + + + + A019_SV + - + - + NONE + + + + + A019_S + - + - + NONE + + + + + A010_U + - + - + NONE + + + + + A026_S + - + - + NONE + + + + + A030_S + - + - + NONE + + + + + A026_L + - + - + NONE + + + + + A030_L + - + - + NONE + + + + + FGN2_TYP + - + - + NONE + + + + + FGN2_TV + - + - + NONE + + + + + FGN2_RI + - + - + NONE + + + + + FGN2_OFFSET + - + - + NONE + + + + + FGN2_NAMP + - + - + NONE + + + + + FGN2_FREQ + - + - + NONE + + + + + A001_S1 + - + - + NONE + + + + + A009_S1 + - + - + NONE + + + + + + + CH LEE + + + 2024.07/31 + + + - + + + XXSAXXXX + + + - + + + - + + + DEFAULT + + + DEFAULT + + + 0 + + + 0 + + + NEIN + + + 0 + + + NEIN + + + 1 + + + DEFAULT + + + - + + + - + + + - + + + CGVCMS1301 + + + - + + + - + + + + + + 2 + E_WAIT + MODULE + 0 + + + + + + + + + WZ + + + 0 + + + 0 + + + 0 + + + &MEWE + + + + + + 3 + GETDATAAF + MACRO + 0 + TTNr. lesen + + + + + + + ALIASFILE + + + + + + +

+ >GETDATA/STD_1.CSV +

+ + + + + NONE + +
+
+ + + 10 + GETDATASTR + MACRO + 0 + WSW-Nummer + + + + + + + + + + + + + +

+ FSW_TT + S + 10 +

+ + + + + STR + &FSW_TT +
+
+ + + 20 + GETDATASTR + MACRO + 0 + WSW-Nummer + + + + + + + + + + + + + +

+ TSW_TT + S + 10 +

+ + + + + STR + &TSW_TT +
+
+ + + 25 + GETDATASTR + MACRO + 0 + WSW-Nummer + + + + + + + + + + + + + +

+ CRUISE + S + 3 +

+ + + + + STR + &Cruise +
+
+ + + 40 + R_DATATABLE + MODULE + 0 + &HW_TTNR + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + HW_TTNR + + + STRING + + + 2 + + + 2 + + + &HW_TTNR + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 44 + R_DATATABLE + MODULE + 0 + &HW_VER + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + HW_VER + + + STRING + + + 2 + + + 2 + + + &HW_VER + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 45 + R_DATATABLE + MODULE + 0 + &CUSTOMERPNO_00 + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + CUSTOMERPNO + + + STRING + + + 2 + + + 2 + + + &CUSTOMERPNO_00 + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 46 + R_DATATABLE + MODULE + 0 + &CMS_VER + + + + + + + WZ + 0 + - + NONE + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + CMS_VER + + + STRING + + + 2 + + + 2 + + + &CMS_VER + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 47 + R_DATATABLE + MODULE + 0 + &PCM_VER + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + PCM_VER + + + STRING + + + 2 + + + 2 + + + &PCM_VER + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 49 + R_DATATABLE + MODULE + 0 + &TTNR_HW + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + HW_TTNR + + + STRING + + + 2 + + + 2 + + + &TTNR_HW + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 50 + R_DATATABLE + MODULE + 0 + V2G ROOT Load = &ROOTCERT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/V2GRootCert.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &ROOTCERT + + + r + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 51 + R_DATATABLE + MODULE + 0 + &HFID + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + HFID + + + STRING + + + 2 + + + 2 + + + &HFID + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 53 + R_DATATABLE + MODULE + 0 + &CMS_CRC + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + CMS_CHECKSUM + + + STRING + + + 2 + + + 2 + + + &CMS_CRC + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 54 + R_DATATABLE + MODULE + 0 + &PCM_CRC + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + PCM_CHECKSUM + + + STRING + + + 2 + + + 2 + + + &PCM_CRC + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 55 + R_DATATABLE + MODULE + 0 + &CMS_CALID + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + CMS_CAL_ID + + + STRING + + + 2 + + + 2 + + + &CMS_CALID + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 56 + R_DATATABLE + MODULE + 0 + &PCM_CALID + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + PCM_CAL_ID + + + STRING + + + 2 + + + 2 + + + &PCM_CALID + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 57 + R_DATATABLE + MODULE + 0 + &BrandCode + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + BRAND_CODE + + + STRING + + + 2 + + + 2 + + + &BrandCode + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 58 + R_DATATABLE + MODULE + 0 + &MarketCode + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + MARKET_CODE + + + STRING + + + 2 + + + 2 + + + &MarketCode + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 59 + R_DATATABLE + MODULE + 0 + &VehicleCode + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + VEHICLE_CODE + + + STRING + + + 2 + + + 2 + + + &VehicleCode + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 60 + E_STUELIDATA + MODULE + 0 + FSW_TT an System �bergeben (Bildet Pfad: >flash/TTNR/FSW_TT) + + + + + + + WZ + - + - + NONE + + + + + + + CONTAINER + + + SET + + + FSW + + + &FSW_TT + + + - + + + - + + + - + + + - + + + - + + + - + + + 0 + + + + + + 61 + E_STUELIDATA + MODULE + 0 + TSW_TT an System �bergeben (Bildet Pfad: >flash/tsw/TSW_TT) + + + + + + + + CONTAINER + + + SET + + + TSW + + + &TSW_TT + + + - + + + - + + + - + + + - + + + - + + + - + + + 0 + + + + + + 63 + R_DATATABLE + MODULE + 0 + CharIN ROOT Load = &CRIROOTCERT + + + + + + + WZ + 0 + - + NONE + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/CharINV2GRoot.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &CRIROOTCERT + + + r + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 69 + R_DATATABLE + MODULE + 0 + SubCA Part-20 OEM Load = &SUBCAOEM_P20 + + + + + + + + GET + + + PEM + + + ./../Cert/SubCA/SubCA_P20OEM.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &SUBCAOEM_P20 + + + r + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 70 + R_DATATABLE + MODULE + 0 + SubCA Part-20 Vehicle Load = &SUBCAVHC_P20 + + + + + + + + GET + + + PEM + + + ./../Cert/SubCA/SubCA_P20VHC.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &SUBCAVHC_P20 + + + r + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 71 + R_DATATABLE + MODULE + 0 + SubCA Part-02 OEM Load = &SUBCAOEM_P02 + + + + + + + + GET + + + PEM + + + ./../Cert/SubCA/SubCA_P02OEM.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &SUBCAOEM_P02 + + + r + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 72 + R_DATATABLE + MODULE + 0 + Part-02 E-Pit Root Load = &P02_EPIT_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-2/1. E-PIT/V2GRootEpit.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P02_EPIT_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 73 + R_DATATABLE + MODULE + 0 + Part-02 Hubject EU Root Load = &P02_HUBEU_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-2/2. Hubject (EU)/Hubject_V2GRoot_EU.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P02_HUBEU_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 74 + R_DATATABLE + MODULE + 0 + Part-02 Hubject US Root Load = &P02_HUBUS_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-2\3. Hubject (US)/US_V2G_RootCA_G2.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P02_HUBUS_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 75 + R_DATATABLE + MODULE + 0 + Part-02 Tesla Root Load = &P02_TESLA_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-2/4. Tesla/V2GRootG1.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P02_TESLA_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 76 + R_DATATABLE + MODULE + 0 + Part-02 Entrust Root Load = &P02_ENTRUST_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-2/5. Entrust/Entrust_V2G_EV_Charging_Root_CA.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P02_ENTRUST_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 77 + R_DATATABLE + MODULE + 0 + Part-20 E-PIT Root Load = &P20_EPIT_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-20/1. E-PIT/Part20EPitRoot.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P20_EPIT_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 78 + R_DATATABLE + MODULE + 0 + Part-20 CharIN Root Load = &P20_CHARIN_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-20/2. CharIN/CharIN_V2G_Root_CA_G1V2_433638ca6313741e81e57cfc0de55a99362d3c15.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P20_CHARIN_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 80 + START + MACRO + 0 + + + + + + + + + +

+ + + + + NONE + + + + + + 100 + E_MESSAGES + MODULE + 0 + + + + + + + + + NO_MESSAGES + + + + + + FGN;FGN_REF;FGN1;FGN1_REF;FGN2;FGN2_REF + + + CAN1;CAN1_REF;ASC1;ASC1_REF + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 101 + E_TRIGGER_INIT + MODULE + 0 + E_TRIGGER_INIT: Festlegung der Triggerkanaele + + + + + + + + TRIG_01 + + + DVM_TRG + + + DEL + + + 0 + + + 10% + + + DIR + + + 8.E-6 + + + COUN_A + + + SPI + + + 4.E-6 + + + 10% + + + 1.E-6 + + + COUN_B + + + 1 + + + 4.E-6 + + + 10% + + + DIR + + + 0 + + + EXT_CLOCK_2 + + + 0 + + + 0 + + + 5% + + + 0 + + + + + + 102 + E_TRIGGER_INIT + MODULE + 0 + E_TRIGGER_INIT: Festlegung der Triggerkanaele + + + + + + + + TRIG_01 + + + DVM_TRG + + + SPI + + + 0.000001 + + + 10% + + + DIR + + + 0 + + + COUN_A + + + SPI + + + 0.000001 + + + 5% + + + 0 + + + COUN_B + + + 1 + + + 0.000001 + + + 5% + + + DIR + + + 0 + + + DVM_TRG_2 + + + 1 + + + 0.000001 + + + 10% + + + 0 + + + + + + 103 + E_ARRAY_INI + MODULE + 0 + E_ARRAY_INI &SEED 300 + + + + + + + + &SEED + + + STRING + + + 300 + + + TRUE + + + + + + 104 + E_ARRAY_INI + MODULE + 0 + E_ARRAY_INI &KEY 300 + + + + + + + + &KEY + + + STRING + + + 300 + + + TRUE + + + + + + 105 + COM_ANSTEUER + MACRO + 0 + + + + + + + + + +

+ B77_S + B77 + ANSTEUER_PAR + B60_S + B60 + ANSTEUER_PAR +

+ + + + + NONE + +
+
+ + + 111 + COM_KONSTDEF + MACRO + 0 + + + + + + + + + +

+ &G_BAUD_ASC1 + &P_STEUER + - + 250000 + SKM_01 + 0 + 1500000 + SKM_11 + 1 +

+ + + + + NONE + +
+
+ + + 119 + COM_INIT + MACRO + 0 + + + + + + + + + +

+ KW2000 + 1 + 70000 + 20 + 5000 + 0 + 0 + 57600 + 6060 + 01 +

+ + + + + NONE + +
+
+ + + 180 + STRCAT + MACRO + 0 + + + + + + + + + + + + + + +

+ CPSECURITYVCMSPCM.DLL + + + + + + + + + +

+ + + + + STR + &DLL_FILE_PCM +
+
+ + + 181 + STRCAT + MACRO + 0 + + + + + + + + + + + + + + +

+ CPSECURITYVCMSCMS.DLL + + + + + + + + + +

+ + + + + STR + &DLL_FILE_CMS +
+
+ + + 200 + KUNDENDAT1 + MACRO + 0 + Tester ID (ASCII) + + + + + + + + + + + + + +

+ WK + 2 + - + - + - + - +

+ + + + + STR + &TESTERID_ORG +
+
+ + + 210 + KUNDENDAT1 + MACRO + 0 + Tester CHANNEL (ASCII) + + + + + + + + + + + + + +

+ WK + 10 + - + - + - + - +

+ + + + + STR + &TESTERCH +
+
+ + + 220 + STRCAT + MACRO + 0 + Unit Code + + + + + + + Unit Code + + + + + + +

+ C001 + + + + + + + + + +

+ + + + + STR + &UnitCode +
+
+ + + 230 + STRCAT + MACRO + 0 + Wenn nicht mit autom. Selektion CFI oder SKM gearbeitet werden soll + + + + + + + Tier Code + + + + + + +

+ P002 + + + + + + + + + +

+ + + + + STR + &TierCode +
+
+ + + 237 + K2000START + MACRO + 0 + Wenn nicht mit autom. Selektion CFI oder SKM gearbeitet werden soll + + + + + + + + +

+ + + + + NONE + + + + + + 250 + P_INIT + MODULE + 0 + + + + + + + + + WRITE + + + FLOW_CONTROL + + + ON + + + &MEWE + + + + + + 299 + F_ANSTEUER + MODULE + 0 + + + + + + + + + U_KON_UB4 + + + A038_SV + + + - + + + SA + + + A038 + + + A035 + + + ANSTEUER_PAR + + + 1 + + + + + + 300 + L_KAM_KONFIG + MODULE + 0 + + + + + + + + + U_KON_KONFIG4 + + + UBATT_ULAST + + + - + + + - + + + + + + 301 + F_ANSTEUER + MODULE + 0 + UB + + + + + + + + KON_U_2 + + + UB + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 302 + F_ANSTEUER + MODULE + 0 + UB Strombegrenzung + + + + + + + + KON_I_2 + + + UB_IMAX + + + - + + + A + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 303 + F_ANSTEUER + MODULE + 0 + UB4 + + + + + + + + U_KON_UB4 + + + A035_SV + + + - + + + SA + + + A035 + + + A038 + + + ANSTEUER_PAR + + + 1 + + + + + + 304 + F_ANSTEUER + MODULE + 0 + UA4 + + + + + + + + U_KON_UA4 + + + A033_SV + + + - + + + SA + + + A033 + + + A037 + + + ANSTEUER_PAR + + + 1 + + + + + + 305 + F_ANSTEUER + MODULE + 0 + UC4 + + + + + + + + U_KON_UC4 + + + A034_SV + + + - + + + DEFAULT + + + A034 + + + A038 + + + ANSTEUER_PAR + + + 1 + + + + + + 306 + F_ANSTEUER + MODULE + 0 + + + + + + + + + U_KON_UD4 + + + B05_SV + + + - + + + DEFAULT + + + B05 + + + B01 + + + ANSTEUER_PAR + + + 1 + + + + + + 307 + L_KAM_ZUSATZ + MODULE + 0 + SENSE_UB4 + + + + + + + + U_KON_KONFIG4 + + + INTERN + + + KON_A + + + - + + + - + + + - + + + - + + + - + + + KOMPLETT + + + + + + 308 + F_6069 + MODULE + 0 + FGN_16 + + + + + + + + FU3_ANSCHALT + + + 1 + + + - + + + - + + + - + + + <W/A001_S + + + <W/A009_S + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + + + + 309 + F_6069 + MODULE + 0 + FGN_17 + + + + + + + + FU3_ANSCHALT + + + 2 + + + - + + + - + + + - + + + <W/A001_S + + + <W/A009_S + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + + + + 310 + F_6069 + MODULE + 0 + FGN_18 + + + + + + + + FU3_ANSCHALT + + + 6 + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + <W/A001_S1 + + + <W/A009_S1 + + + - + + + - + + + - + + + - + + + - + + + + + + 312 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Signalpunkt + + + + + + + + FGN_16 + + + FGN + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 313 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Signalpunkt Referenz + + + + + + + + FGN_REF_16 + + + FGN_REF + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 314 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Amplitude UA1 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP1_16 + + + FGN_AMP1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 315 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Amplitude UA2 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP2_16 + + + FGN_AMP2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 316 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Amplitude UA3 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP3_16 + + + FGN_AMP3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 317 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Amplitude UA4 Std-PAV Signal 8 + + + + + + + + FGN_AMP4_16 + + + FGN_AMP4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 318 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Frequenz Std-PAV + + + + + + + + FGN_FREQ_16 + + + FGN_FREQ + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 319 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Nutzamplitude Std-PAV + + + + + + + + FGN_NAMP_16 + + + FGN_NAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 320 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Offsetspannung Std-PAV + + + + + + + + FGN_OFFSET_16 + + + FGN_OFFSET + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 321 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Innenwiderstand in Ohm Std-PAV + + + + + + + + FGN_RI_16 + + + FGN_RI + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 322 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Channel 1 Dauer des ersten neg. Puls t0 -> DZG-Signal 4 St + + + + + + + + FGN_T0_16 + + + FGN_T0 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 323 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Dauer der Rampe t1 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T1_16 + + + FGN_T1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 324 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Dauer des oberen Plateaus t2 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T2_16 + + + FGN_T2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 325 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Dauer des negativen Pulses t3 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T3_16 + + + FGN_T3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 326 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Verz�gerungszeit t4 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T4_16 + + + FGN_T4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 327 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Dauer des unteren Plateaus (fallende Rampe) t5 -> DZG + + + + + + + + FGN_T5_16 + + + FGN_T5 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 328 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Startverz�gerungszeit f�r n�chste Periode t6 -> DZG-Sig + + + + + + + + FGN_T6_16 + + + FGN_T6 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 329 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Tastverh�ltnis Std-PAV + + + + + + + + FGN_TV_16 + + + FGN_TV + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 330 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 St�ramplitude Usa Std-PAV + + + + + + + + FGN_SAMP_16 + + + FGN_SAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 331 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Funktionsgenerator-Signal Typ Std-PAV + + + + + + + + FGN_TYP_16 + + + FGN_TYP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 332 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Signalpunkt + + + + + + + + FGN_17 + + + FGN1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 333 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Signalpunkt Referenz + + + + + + + + FGN_REF_17 + + + FGN1_REF + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 334 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Amplitude UA1 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP1_17 + + + FGN1_AMP1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 335 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Amplitude UA2 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP2_17 + + + FGN1_AMP2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 336 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Amplitude UA3 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP3_17 + + + FGN1_AMP3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 337 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Amplitude UA4 Std-PAV Signal 8 + + + + + + + + FGN_AMP4_17 + + + FGN1_AMP4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 338 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Frequenz Std-PAV + + + + + + + + FGN_FREQ_17 + + + FGN1_FREQ + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 339 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Nutzamplitude Std-PAV + + + + + + + + FGN_NAMP_17 + + + FGN1_NAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 340 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Offsetspannung Std-PAV + + + + + + + + FGN_OFFSET_17 + + + FGN1_OFFSET + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 341 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Innenwiderstand in Ohm Std-PAV + + + + + + + + FGN_RI_17 + + + FGN1_RI + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 342 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Channel 2 Dauer des ersten neg. Puls t0 -> DZG-Signal 4 St + + + + + + + + FGN_T0_17 + + + FGN1_T0 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 343 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Dauer der Rampe t1 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T1_17 + + + FGN1_T1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 344 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Dauer des oberen Plateaus t2 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T2_17 + + + FGN1_T2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 345 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Dauer des negativen Pulses t3 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T3_17 + + + FGN1_T3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 346 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Verz�gerungszeit t4 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T4_17 + + + FGN1_T4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 347 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Dauer des unteren Plateaus (fallende Rampe) t5 -> DZG + + + + + + + + FGN_T5_17 + + + FGN1_T5 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 348 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Startverz�gerungszeit f�r n�chste Periode t6 -> DZG-Sig + + + + + + + + FGN_T6_17 + + + FGN1_T6 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 349 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Tastverh�ltnis Std-PAV + + + + + + + + FGN_TV_17 + + + FGN1_TV + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 350 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 St�ramplitude Usa Std-PAV + + + + + + + + FGN_SAMP_17 + + + FGN1_SAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 351 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Funktionsgenerator-Signal Typ Std-PAV + + + + + + + + FGN_TYP_17 + + + FGN1_TYP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 352 + E_AWG + MODULE + 0 + CHANNEL 1 -> Kurve0 = Gleichspg. Signal -> Standard-PAV + + + + + + + + STD_GENERATOR_16 + + + KURVE0 + + + 0 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 353 + E_AWG + MODULE + 0 + CHANNEL 1 -> Kurve1 = Rechteck-Takt -> Standard-PAV + + + + + + + + STD_GENERATOR_16 + + + KURVE1 + + + 1 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 354 + E_AWG + MODULE + 0 + CHANNEL 2 -> Kurve0 = Gleichspg. Signal -> Standard-PAV + + + + + + + + STD_GENERATOR_17 + + + KURVE0 + + + 0 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 355 + E_AWG + MODULE + 0 + CHANNEL 2 -> Kurve1 = Rechteck-Takt -> Standard-PAV + + + + + + + + STD_GENERATOR_17 + + + KURVE1 + + + 1 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 356 + E_AWG + MODULE + 0 + CHANNEL 1 -> Kurve6 + + + + + + + + STD_GENERATOR_16 + + + KURVE6 + + + 1 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 357 + E_AWG + MODULE + 0 + CHANNEL 1 -> Kurve6 + + + + + + + + STD_GENERATOR_17 + + + KURVE6 + + + 2 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 360 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Signalpunkt + + + + + + + + FGN_CP + + + FGNCP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 361 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Signalpunkt Referenz + + + + + + + + FGN_REF_CP + + + FGNCP_REF + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 362 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Amplitude UA1 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP1_CP + + + FGNCP_AMP1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 363 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Amplitude UA2 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP2_CP + + + FGNCP_AMP2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 364 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Amplitude UA3 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP3_CP + + + FGNCP_AMP3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 365 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Amplitude UA4 Std-PAV Signal 8 + + + + + + + + FGN_AMP4_CP + + + FGNCP_AMP4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 366 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Frequenz Std-PAV + + + + + + + + FGN_FREQ_CP + + + FGNCP_FREQ + + + - + + + HZ + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 367 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Nutzamplitude Std-PAV + + + + + + + + FGN_NAMP_CP + + + FGNCP_NAMP + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 368 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Offsetspannung Std-PAV + + + + + + + + FGN_OFFSET_CP + + + FGNCP_OFFSET + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 369 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Innenwiderstand in Ohm Std-PAV + + + + + + + + FGN_RI_CP + + + FGNCP_RI + + + - + + + OHM + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 370 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Channel 2 Dauer des ersten neg. Puls t0 -> DZG-Signal 4 St + + + + + + + + FGN_T0_CP + + + FGNCP_T0 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 371 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Dauer der Rampe t1 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T1_CP + + + FGNCP_T1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 372 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Dauer des oberen Plateaus t2 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T2_CP + + + FGNCP_T2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 373 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Dauer des negativen Pulses t3 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T3_CP + + + FGNCP_T3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 374 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Verz�gerungszeit t4 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T4_CP + + + FGNCP_T4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 375 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Dauer des unteren Plateaus (fallende Rampe) t5 -> DZG + + + + + + + + FGN_T5_CP + + + FGNCP_T5 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 376 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Startverz�gerungszeit f�r n�chste Periode t6 -> DZG-Sig + + + + + + + + FGN_T6_CP + + + FGNCP_T6 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 377 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Tastverh�ltnis Std-PAV + + + + + + + + FGN_TV_CP + + + FGNCP_TV + + + - + + + A + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 378 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP St�ramplitude Usa Std-PAV + + + + + + + + FGN_SAMP_CP + + + FGNCP_SAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 379 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Funktionsgenerator-Signal Typ Std-PAV + + + + + + + + FGN_TYP_CP + + + FGNCP_TYP + + + - + + + STR + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 380 + F_ANSTEUER + MODULE + 0 + PLC + + + + + + + + + + + PLC + + + - + + + STR + + + + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 381 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Signalpunkt + + + + + + + + FGN_18 + + + FGN2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 382 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Signalpunkt Referenz + + + + + + + + FGN_REF_18 + + + FGN2_REF + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 383 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Amplitude UA1 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP1_18 + + + FGN2_AMP1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 384 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Amplitude UA2 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP2_18 + + + FGN2_AMP2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 385 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Amplitude UA3 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP3_18 + + + FGN2_AMP3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 386 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Amplitude UA4 Std-PAV Signal 8 + + + + + + + + FGN_AMP4_18 + + + FGN2_AMP4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 387 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Frequenz Std-PAV + + + + + + + + FGN_FREQ_18 + + + FGN2_FREQ + + + - + + + HZ + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 388 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Nutzamplitude Std-PAV + + + + + + + + FGN_NAMP_18 + + + FGN2_NAMP + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 389 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Offsetspannung Std-PAV + + + + + + + + FGN_OFFSET_18 + + + FGN2_OFFSET + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 390 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Innenwiderstand in Ohm Std-PAV + + + + + + + + FGN_RI_18 + + + FGN2_RI + + + - + + + OHM + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 391 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Channel 2 Dauer des ersten neg. Puls t0 -> DZG-Signal 4 St + + + + + + + + FGN_T0_18 + + + FGN2_T0 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 392 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Dauer der Rampe t1 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T1_18 + + + FGN2_T1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 393 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Dauer des oberen Plateaus t2 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T2_18 + + + FGN2_T2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 394 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Dauer des negativen Pulses t3 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T3_18 + + + FGN2_T3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 395 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Verz�gerungszeit t4 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T4_18 + + + FGN2_T4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 396 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Dauer des unteren Plateaus (fallende Rampe) t5 -> DZG + + + + + + + + FGN_T5_18 + + + FGN2_T5 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 397 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Startverz�gerungszeit f�r n�chste Periode t6 -> DZG-Sig + + + + + + + + FGN_T6_18 + + + FGN2_T6 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 398 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Tastverh�ltnis Std-PAV + + + + + + + + FGN_TV_18 + + + FGN2_TV + + + - + + + A + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 399 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 St�ramplitude Usa Std-PAV + + + + + + + + FGN_SAMP_18 + + + FGN2_SAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 400 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Funktionsgenerator-Signal Typ Std-PAV + + + + + + + + FGN_TYP_18 + + + FGN2_TYP + + + - + + + STR + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 402 + F_SK_ZUSATZ + MODULE + 0 + + + + + + + + + SK_RELAIS + + + ON + + + ON + + + ON + + + ON + + + ON + + + - + + + - + + + - + + + - + + + + + + 403 + F_SK_ZUSATZ + MODULE + 0 + + + + + + + + + SK_RELAIS2 + + + ON + + + ON + + + ON + + + ON + + + ON + + + - + + + - + + + - + + + - + + + + + + 404 + F_IGEBR_ZUSATZ + MODULE + 0 + + + + + + + + + I_GEBER_SK1 + + + ANSTEUER_PAR + + + INT + + + -- + + + ON + + + - + + + + + + 405 + F_ANSTEUER + MODULE + 0 + IQ_UMAX + + + + + + + + I_QUMAX_SK1 + + + IQ_UMAX + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 406 + F_UGEBR_ZUSATZ + MODULE + 0 + + + + + + + + + U_GEBER_SK1 + + + INT + + + - + + + 10 + + + - + + + - + + + - + + + - + + + + + + 410 + F_ANSTEUER + MODULE + 0 + A026_L + + + + + + + + MS_LAST_610 + + + A026_L + + + - + + + DEFAULT + + + A026 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 411 + F_ANSTEUER + MODULE + 0 + A030_L + + + + + + + + MS_LAST_611 + + + A030_L + + + - + + + DEFAULT + + + A030 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 500 + F_ANSTEUER + MODULE + 0 + + + + + + + + + U_GEBER_SK1 + + + B05_U + + + - + + + DEFAULT + + + B05 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 501 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B16_R + + + - + + + DEFAULT + + + B16 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 502 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B17_R + + + - + + + DEFAULT + + + B17 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 503 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B18_R + + + - + + + DEFAULT + + + B18 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 504 + F_ANSTEUER + MODULE + 0 + + + + + + + + + KS_LAST_600 + + + B25_L + + + - + + + DEFAULT + + + B25 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 505 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B38_R + + + - + + + DEFAULT + + + B38 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 506 + F_ANSTEUER + MODULE + 0 + + + + + + + + + KS_LAST_601 + + + B47_L + + + - + + + DEFAULT + + + B47 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 507 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B50_R + + + - + + + DEFAULT + + + B50 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 508 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B60_R + + + - + + + DEFAULT + + + B60 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 509 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B61_R + + + - + + + DEFAULT + + + B61 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 510 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B62_R + + + - + + + DEFAULT + + + B62 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 511 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B63_R + + + - + + + DEFAULT + + + B63 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 512 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B64_R + + + - + + + DEFAULT + + + B64 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 513 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B65_R + + + - + + + DEFAULT + + + B65 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 514 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B66_R + + + - + + + DEFAULT + + + B66 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 515 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_320 + + + B74_L + + + - + + + DEFAULT + + + B74 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 516 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_822 + + + B75_L + + + - + + + DEFAULT + + + B75 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 517 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_222 + + + B76_L + + + - + + + DEFAULT + + + B76 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 518 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_872 + + + B77_L + + + - + + + DEFAULT + + + B77 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 519 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_322 + + + B78_L + + + - + + + DEFAULT + + + B78 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 520 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_870 + + + B79_L + + + - + + + DEFAULT + + + B79 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 521 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_220 + + + B80_L + + + - + + + DEFAULT + + + B80 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 522 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_852 + + + B81_L + + + - + + + DEFAULT + + + B81 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 523 + F_ANSTEUER + MODULE + 0 + A007 : CAN-REF_SWITCH + + + + + + + + CAN_REF_SWITCH + + + A007_S + + + - + + + SA + + + A007 + + + - + + + UNIT_PARALLEL + + + 1 + + + + + + 524 + F_ANSTEUER + MODULE + 0 + A008 : CAN_SWTICH + + + + + + + + CAN_SWITCH + + + A008_S + + + - + + + SA + + + A008 + + + - + + + UNIT_PARALLEL + + + 1 + + + + + + 525 + F_ANSTEUER + MODULE + 0 + + + + + + + + + SCHALTER + + + B84_S + + + - + + + DEFAULT + + + B84 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 526 + F_ANSTEUER + MODULE + 0 + + + + + + + + + SCHALTER + + + B85_S + + + - + + + DEFAULT + + + B85 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 528 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B87_R + + + - + + + DEFAULT + + + B87 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 529 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B88_R + + + - + + + DEFAULT + + + B88 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 530 + F_ANSTEUER + MODULE + 0 + + + + + + + + + U_GEBER_SK1 + + + B72_U + + + - + + + DEFAULT + + + B72 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 531 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK1 + + + B71_R + + + - + + + DEFAULT + + + B71 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 532 + F_ANSTEUER + MODULE + 0 + A017_R + + + + + + + + R_DEK_SK2 + + + A017_R + + + - + + + DEFAULT + + + A017 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 533 + F_ANSTEUER + MODULE + 0 + A020_R + + + + + + + + R_DEK_SK2 + + + A020_R + + + - + + + OHM + + + A020 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 534 + F_ANSTEUER + MODULE + 0 + A024_R + + + + + + + + R_DEK_SK2 + + + A024_R + + + - + + + OHM + + + A024 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 535 + F_ANSTEUER + MODULE + 0 + A024_U + + + + + + + + U_GEBER_SK1 + + + A024_U + + + - + + + DEFAULT + + + A024 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 536 + F_ANSTEUER + MODULE + 0 + A027_R + + + + + + + + R_DEK_SK3 + + + A027_R + + + - + + + DEFAULT + + + A027 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 537 + F_ANSTEUER + MODULE + 0 + A035_R + + + + + + + + R_DEK_SK2 + + + A035_R + + + - + + + DEFAULT + + + A035 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 538 + F_ANSTEUER + MODULE + 0 + A038_R + + + + + + + + R_DEK_SK3 + + + A038_R + + + - + + + DEFAULT + + + A038 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 539 + F_ANSTEUER + MODULE + 0 + A015_S + + + + + + + + SCHALTER + + + A015_S + + + - + + + SA + + + A015 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 540 + F_ANSTEUER + MODULE + 0 + A013_R + + + + + + + + R_DEK_SK3 + + + A013_R + + + - + + + DEFAULT + + + A013 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 541 + F_ANSTEUER + MODULE + 0 + A012_R + + + + + + + + R_DEK_SK2 + + + A012_R + + + - + + + DEFAULT + + + A012 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 542 + F_ANSTEUER + MODULE + 0 + A011_R + + + + + + + + R_DEK_SK1 + + + A011_R + + + - + + + OHM + + + A011 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 543 + F_ANSTEUER + MODULE + 0 + A009_S + + + + + + + + SCHALTER + + + A009_S + + + - + + + SA + + + A009 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 546 + F_ANSTEUER + MODULE + 0 + A001_S + + + + + + + + SCHALTER + + + A001_S + + + - + + + SA + + + A001 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 547 + F_ANSTEUER + MODULE + 0 + A035_I + + + + + + + + I_GEBER_SK1 + + + A035_I + + + - + + + DEFAULT + + + A035 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 548 + F_ANSTEUER + MODULE + 0 + A038_I + + + + + + + + I_GEBER_SK1 + + + A038_I + + + - + + + DEFAULT + + + A038 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 549 + F_ANSTEUER + MODULE + 0 + A012_U + + + + + + + + U_GEBER_SK1 + + + A012_U + + + - + + + DEFAULT + + + A012 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 552 + F_ANSTEUER + MODULE + 0 + A007_S1 + + + + + + + + SCHALTER + + + A007_S1 + + + - + + + SA + + + A007 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 553 + F_ANSTEUER + MODULE + 0 + A002_S + + + + + + + + SCHALTER + + + A002_S + + + - + + + DEFAULT + + + A002 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 554 + F_ANSTEUER + MODULE + 0 + A011_S + + + + + + + + SCHALTER + + + A011_S + + + - + + + SA + + + A011 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 555 + F_ANSTEUER + MODULE + 0 + A025_S + + + + + + + + SCHALTER + + + A025_S + + + - + + + DEFAULT + + + A025 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 556 + F_ANSTEUER + MODULE + 0 + A019_R + + + + + + + + R_DEK_SK3 + + + A019_R + + + - + + + OHM + + + A019 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 559 + F_ANSTEUER + MODULE + 0 + A016_S + + + + + + + + SCHALTER + + + A016_S + + + - + + + SA + + + A016 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 562 + F_ANSTEUER + MODULE + 0 + A019_U + + + + + + + + U_GEBER_SK1 + + + A019_U + + + - + + + V + + + A019 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 565 + F_ANSTEUER + MODULE + 0 + A019_SV + + + + + + + + U_KON_UB4 + + + A019_SV + + + - + + + SA + + + A019 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 566 + F_ANSTEUER + MODULE + 0 + A032_S + + + + + + + + SCHALTER + + + A032_S + + + - + + + DEFAULT + + + A032 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 567 + F_ANSTEUER + MODULE + 0 + A032_R + + + + + + + + R_DEK_SK3 + + + A032_R + + + - + + + OHM + + + A032 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 568 + F_ANSTEUER + MODULE + 0 + A032_U + + + + + + + + U_GEBER_SK3 + + + A032_U + + + - + + + V + + + A032 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 569 + F_ANSTEUER + MODULE + 0 + A032_R2 + + + + + + + + R_DEK_SK2 + + + A032_R2 + + + - + + + OHM + + + A032 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 570 + F_ANSTEUER + MODULE + 0 + A002_U + + + + + + + + R_GEBER_SK2 + + + A002_U + + + - + + + V + + + A002 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 571 + F_ANSTEUER + MODULE + 0 + A002_R2 + + + + + + + + R_DEK_SK2 + + + A002_R2 + + + - + + + OHM + + + A002 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 572 + F_ANSTEUER + MODULE + 0 + A050_R + + + + + + + + R_DEK_SK2 + + + A050_R + + + - + + + OHM + + + A050 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 573 + F_ANSTEUER + MODULE + 0 + A050_U + + + + + + + + U_GEBER_SK3 + + + A050_U + + + - + + + V + + + A050 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 575 + F_ANSTEUER + MODULE + 0 + A019_S + + + + + + + + SCHALTER + + + A019_S + + + - + + + SA + + + A019 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 576 + F_ANSTEUER + MODULE + 0 + A010_U + + + + + + + + U_GEBER_SK2 + + + A010_U + + + - + + + V + + + A010 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 577 + F_ANSTEUER + MODULE + 0 + A026_S + + + + + + + + SCHALTER + + + A026_S + + + - + + + DEFAULT + + + A026 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 578 + F_ANSTEUER + MODULE + 0 + A030_S + + + + + + + + SCHALTER + + + A030_S + + + - + + + SA + + + A030 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 600 + F_ANSTEUER + MODULE + 0 + A013_S + + + + + + + + SCHALTER + + + A013_S + + + - + + + SA + + + A013 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 601 + F_ANSTEUER + MODULE + 0 + A017_S + + + + + + + + SCHALTER + + + A017_S + + + - + + + SA + + + A017 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 602 + F_ANSTEUER + MODULE + 0 + A027_S + + + + + + + + SCHALTER + + + A027_S + + + - + + + SA + + + A027 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 604 + F_ANSTEUER + MODULE + 0 + A007_S2 : CAN-REF_SWITCH + + + + + + + + CAN_REF_SWITCH + + + A007_S2 + + + - + + + SA + + + A007 + + + - + + + UNIT_PARALLEL + + + 1 + + + + + + 609 + F_ANSTEUER + MODULE + 0 + A015_U + + + + + + + + U_GEBER_SK2 + + + A015_U + + + - + + + V + + + A015 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 611 + F_ANSTEUER + MODULE + 0 + A016_U + + + + + + + + U_GEBER_SK2 + + + A016_U + + + - + + + V + + + A016 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 612 + F_ANSTEUER + MODULE + 0 + A033_S + + + + + + + + + + + A033_S + + + - + + + DEFAULT + + + + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 613 + F_ANSTEUER + MODULE + 0 + A035_S + + + + + + + + + + + A035_S + + + - + + + DEFAULT + + + + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 614 + F_ANSTEUER + MODULE + 0 + A038_S + + + + + + + + + + + A038_S + + + - + + + SA + + + + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 615 + F_ANSTEUER + MODULE + 0 + A008_S1 + + + + + + + + CAN_SWITCH + + + A008_S1 + + + - + + + SA + + + A008 + + + - + + + UNIT_PARALLEL + + + 1 + + + + + + 617 + F_ANSTEUER + MODULE + 0 + A010_R + + + + + + + + R_DEK_SK2 + + + A010_R + + + - + + + OHM + + + A010 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 618 + F_ANSTEUER + MODULE + 0 + A001_S1 + + + + + + + + SCHALTER + + + A001_S1 + + + - + + + SA + + + A001 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 619 + F_ANSTEUER + MODULE + 0 + A009_S1 + + + + + + + + SCHALTER + + + A009_S1 + + + - + + + SA + + + A009 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 800 + GETDATASTR + MACRO + 0 + KEY_VAL + + + + + + + + + + + + + +

+ KEY_VAL1 + S + 10 +

+ + + + + STR + &KEY_VAL1 +
+
+ + + 820 + GETDATASTR + MACRO + 0 + KEY_VAL + + + + + + + + + + + + + +

+ KEY_VAL2 + S + 10 +

+ + + + + STR + &KEY_VAL2 +
+
+ + + 980 + KONSTDEF + MACRO + 0 + + + + + + + + BAUDRATE + +

+ &G_BAUD_ASC1 +

+ + + + + INT + &BAUDRATE +
+
+ + + 1000 + KONSTDEF + MACRO + 0 + + + + + + + + G_NERR + +

+ 0 +

+ + + + + INT + &G_NERR +
+
+ + + 1020 + PRINTOUT + MACRO + 100010 + + + + + + + + WZ + 0 + - + MS + + + + + + ▣ Test Description + + + + + + +

+ VCMS with PCM Inc. + 0 +

+ + + + + STR + +
+
+ + + 1040 + PRINTOUT + MACRO + 100050 + + + + + + + + Testlist Version + + + + + + +

+ CGVCMS 1.30.1 SOP-Stage + 0 +

+ + + + + STR + +
+
+ + + 1060 + PRINTOUT + MACRO + 100080 + + + + + + + + PCBA Version + + + + + + +

+ 20230418 CGVCMS1.30.1 C7.0 + 0 +

+ + + + + STR + +
+
+ + + 1080 + PRINTOUT + MACRO + 110010 + + + + V:FFFFFFFFFFFFFFFF;P:H; + + + + Mode + + + + + + +

+ HT-TEST + 0 +

+ + + + + STR + +
+
+ + + 1100 + PRINTOUT + MACRO + 110020 + + + + V:FFFFFFFFFFFFFFFF;P:T; + + + + Mode + + + + + + +

+ TT-TEST + 0 +

+ + + + + STR + +
+
+ + + 1120 + PRINTOUT + MACRO + 110030 + + + + V:FFFFFFFFFFFFFFFF;P:R; + + + + Mode + + + + + + +

+ RT-TEST + 0 +

+ + + + + STR + +
+
+ + + 1140 + PRINTOUT + MACRO + 110030 + + + + V:;P:(E); + + + + Mode + + + + + + +

+ EOL-TEST + 0 +

+ + + + + STR + +
+
+ + + 1160 + STRCMP + MACRO + 0 + + + + + + + + + + + + + + +

+ &Cruise + X +

+ + + + + INT + &CR +
+
+ + + 1180 + P_INIT + MODULE + 0 + (231018) 1-> 5 BY OSM Flow Control Additional Delay Setting for EOL + + + V:;P:(E); + + + + + WRITE + + + FLOW_DELAY + + + 5 + + + &MEWE + + + + + + 1200 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 1220 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ VT Smart Charging Connection + + + + + + +

+ Measurement Start + - +

+ + + + + NONE + - +
+
+ + + 1240 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 1260 + STRCAT + MACRO + 0 + + + + V:;P:(E); + + + + VT Cfg + + + + + + +

+ DIN70121_ISO15118_EolFullTest_230703\ + SmartChargingBasic_VT7870_MV_EOL.cfg + + + + + + + + +

+ + + + + STR + &VTCfg +
+
+ + + 1280 + COMBLOCK2 + MACRO + 0 + + + + V:;P:(E); + + + + VT Smart Charging Start + +

+ + APP + START + 0 + 11 + L + 100 + &VTCfg + 1000 + +

+ + + + + STR + +
+
+ + + 1300 + WARTEN + MACRO + 0 + + + + + + + + + +

+ + + + + NONE + + + + + + 2020 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A033_SV + UB + - + SA + + + + + A035_SV + UB + - + SA + + + + + A038_SV + MASSE + - + SA + + + + + IQ_UMAX + 6 + - + V + + + + + UB + 12 + - + V + + + + + UB_IMAX + 3 + - + A + + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 2040 + PRINTOUT + MACRO + 160000 + + + PCM_CAN_INIT******************************************************* + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + PRINTMODULENAME + + + + + + +

+ CAN_INIT + 0 +

+ + + + + STR + +
+
+ + + 2060 + CAN2000INI2 + MACRO + 160020 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 2080 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 2100 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A007_S + CAN1_REF + - + SA + + + + + A008_S + CAN1 + - + SA + + + + + + + +

+ + + + + NONE + + + + + + 2120 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 20 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 2140 + PRINTOUT + MACRO + 170010 + + + + + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 301 + + + + + + +

+ PRODUCT INFORMATION + 0 +

+ + + + + STR + +
+
+ + + 2160 + WARTEN + MACRO + 0 + + + + + + + + WZ + 5 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 2180 + GETDATASTR + MACRO + 170040 + + + + + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ CUSTOMERPNO + S + 11 +

+ + + + + STR + &CUSTOMERPNO_00 +
+
+ + + 2200 + PRINTOUT + MACRO + 170050 + + + + + + + + CUSTOMERPNO + + + + + + +

+ &CUSTOMERPNO_00 + 0 +

+ + + + + STR + +
+
+ + + 2220 + STRCOPY + MACRO + 170060 + + + + + + + + + + + + + + +

+ &CUSTOMERPNO_00 + 1 + 5 +

+ + + + + STR + &CUSTOMERPNO_01 +
+
+ + + 2240 + STRCOPY + MACRO + 170070 + + + + + + + + + + + + + + +

+ &CUSTOMERPNO_00 + 7 + 11 +

+ + + + + STR + &CUSTOMERPNO_02 +
+
+ + + 2260 + PRINTOUT + MACRO + 170090 + + + + + + + + + + + + + + +

+ &CUSTOMERPNO_01 + 0 +

+ + + + + STR + +
+
+ + + 2280 + PRINTOUT + MACRO + 170100 + + + + + + + + + + + + + + +

+ &CUSTOMERPNO_02 + 0 +

+ + + + + STR + +
+
+ + + 2300 + STRCAT + MACRO + 170110 + + + + + + + + + + + + + + +

+ &CUSTOMERPNO_01 + &CUSTOMERPNO_02 + + + + + + + + +

+ + + + + STR + &CUSTOMERPNO_03 +
+
+ + + 2320 + STRTOHEXSTRING + MACRO + 170130 + + + + + + + + CUSTOMER PART NO (ASCII) + + + + + + +

+ &CUSTOMERPNO_03 + 0 +

+ + + + + STR + &PARTNO_ASCII +
+
+ + + 2340 + PRINTOUT + MACRO + 170140 + + + + + + + + PARTNO_HEX + + + + + + +

+ &PARTNO_ASCII + 0 +

+ + + + + STR + +
+
+ + + 2360 + PRINTOUT + MACRO + 170100 + + + + + + + + PCM PART NO (ASCII) + + + + + + +

+ &PCM_PARTNO + 0 +

+ + + + + STR + +
+
+ + + 2380 + CONVERT_TYPE + MACRO + 0 + + + + + + + + PCM PART NO (HEX) + + + + + + +

+ &PCM_PARTNO + ASCII + + + +

+ + + + + HEX + &PCM_PARTNOHEX +
+
+ + + 2400 + PRINTOUT + MACRO + 170100 + + + + + + + + PCM PART NO (HEX) + + + + + + +

+ &PCM_PARTNOHEX + 0 +

+ + + + + STR + +
+
+ + + 2420 + PRINTOUT + MACRO + 170150 + + + + + + + + KEFICO_CODE + + + + + + +

+ &HW_VER + 0 +

+ + + + + STR + +
+
+ + + 2440 + STRTOHEXSTRING + MACRO + 170160 + + + + + + + + + + + + + + +

+ &HW_VER + 0 +

+ + + + + STR + &HW_VER0 +
+
+ + + 2460 + STRCOPY + MACRO + 170170 + + + + + + + + + + + + + + +

+ &HW_VER0 + 3 + 4 +

+ + + + + STR + &HW_VER1 +
+
+ + + 2480 + STRCOPY + MACRO + 170180 + + + + + + + + + + + + + + +

+ &HW_VER0 + 7 + 10 +

+ + + + + STR + &HW_VER2 +
+
+ + + 2500 + STRCAT + MACRO + 170190 + + + + + + + + HW VERSION ASCII + + + + + + +

+ &HW_VER1 + &HW_VER2 + + + + + + + + +

+ + + + + STR + &HW_VERSION_ASCII +
+
+ + + 2520 + PRINTOUT + MACRO + 170200 + + + + + + + + KEFICO_HEX + + + + + + +

+ &HW_VERSION_ASCII + 0 +

+ + + + + STR + +
+
+ + + 2540 + KUNDENDAT1 + MACRO + 170210 + + + + + + + + + + + + + + +

+ FD + 3 + + + + ERROR +

+ + + + + STR + &FD3 +
+
+ + + 2560 + PRINTOUT + MACRO + 170220 + + + + + + + + FD3 + + + + + + +

+ &FD3 + 0 +

+ + + + + STR + +
+
+ + + 2580 + GETDATASTR + MACRO + 170230 + + + + + + + + + + + + + + +

+ KEFICOCODE + S + 4 +

+ + + + + STR + &KEFICO_CODE +
+
+ + + 2600 + PRINTOUT + MACRO + 170240 + + + + + + + + KEFICO_CODE + + + + + + +

+ &KEFICO_CODE + 0 +

+ + + + + STR + +
+
+ + + 2620 + STRTOHEXSTRING + MACRO + 170250 + + + + + + + + + + + + + + +

+ &KEFICO_CODE + 0 +

+ + + + + STR + &KEFICO_ASCII +
+
+ + + 2640 + PRINTOUT + MACRO + 170260 + + + + + + + + KEFICO_ASCII + + + + + + +

+ &KEFICO_ASCII + 0 +

+ + + + + STR + +
+
+ + + 2660 + KUNDENDAT1 + MACRO + 170270 + + + + + + + + + + + + + + +

+ TH + 3 + + + + ERROR +

+ + + + + STR + &TH1 +
+
+ + + 2680 + PRINTOUT + MACRO + 170280 + + + + + + + + TH1 + + + + + + +

+ &TH1 + 0 +

+ + + + + STR + +
+
+ + + 2700 + STRCAT + MACRO + 170290 + + + + + + + + ADD3BYTE + + + + + + +

+ 41414141 + &TH1 + + + + + + + + +

+ + + + + STR + &TH1_ASCII +
+
+ + + 2720 + PRINTOUT + MACRO + 170300 + + + + + + + + TH1_ASCII + + + + + + +

+ &TH1_ASCII + 0 +

+ + + + + STR + +
+
+ + + 2740 + KUNDENDAT1 + MACRO + 170310 + + + + + + + + + + + + + + +

+ TH + 2 + + + + ERROR +

+ + + + + STR + &TH0 +
+
+ + + 2760 + PRINTOUT + MACRO + 170320 + + + + + + + + TH0 + + + + + + +

+ &TH0 + 0 +

+ + + + + STR + +
+
+ + + 2780 + STRTOHEXSTRING + MACRO + 170330 + + + + + + + + PCM Version + + + + + + +

+ &PCM_VER + 0 +

+ + + + + STR + &PCM_VER_ASCII +
+
+ + + 2800 + STRTOHEXSTRING + MACRO + 170330 + + + + + + + + CMS Version + + + + + + +

+ &CMS_VER + 0 +

+ + + + + STR + &CMS_VER_ASCII +
+
+ + + 2820 + STRTOHEXSTRING + MACRO + 170330 + + + + + + + + PCM CAL ID + + + + + + +

+ &PCM_CALID + 0 +

+ + + + + STR + &PCM_CALID_ASCII +
+
+ + + 2840 + STRTOHEXSTRING + MACRO + 170330 + + + + + + + + CMS CAL ID + + + + + + +

+ &CMS_CALID + 0 +

+ + + + + STR + &CMS_CALID_ASCII +
+
+ + + 2860 + SENDBYETHERNET + MACRO + 170350 + + + + V:;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + MAC + TRUE + TCP + &TH0 + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 2880 + PARSEMESSAGE + MACRO + 170380 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + TCP + 1 + &MAC_ADDRESS + STR + + + + STR +

+ + + + + STR + +
+
+ + + 2900 + PRINTOUT + MACRO + 170390 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ &MAC_ADDRESS + 0 +

+ + + + + STR + +
+
+ + + 2920 + STRTOHEXSTRING + MACRO + 170410 + + + + V:;P:(E); + + + + + + + + + + +

+ &MAC_ADDRESS + 0 +

+ + + + + STR + &MAC_ADDRESS_ASCII +
+
+ + + 2940 + STRCAT + MACRO + 170420 + + + + V:;P:(E); + + + + ADD3BYTE + + + + + + +

+ 30303030 + &MAC_ADDRESS_ASCII + + + + + + + + +

+ + + + + STR + &NMK +
+
+ + + 2960 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 2980 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Phase 302 + + + + + + +

+ PCM Data Writing + - +

+ + + + + NONE + - +
+
+ + + 3000 + WARTEN + MACRO + 0 + wz 10 -> 100, mitech + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 3020 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &VALUE +
+
+ + + 3040 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &HI +
+
+ + + 3060 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &CMeasCnt +
+
+ + + 3080 + CONTROL + MACRO + 420580 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 3100 + CONTROL + MACRO + 420580 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ WHILE + (&HI!=20483) && (&CMeasCnt < 50) +

+ + + + + INT + +
+
+ + + 3120 + COMBLOCK2 + MACRO + 420590 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 3140 + BLOCKINT + MACRO + 420600 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + &HI +
+
+ + + 3160 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ &CMeasCnt+1 + 0 +

+ + + + + HEX + &CMeasCnt +
+
+ + + 3180 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 3200 + CONTROL + MACRO + 420760 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 3220 + COMBLOCK2 + MACRO + 420620 + + + + V:;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 3240 + BLOCKINT + MACRO + 420630 + + + + V:;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 3260 + BLOCKINT + MACRO + 420640 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 3280 + BLOCKINT + MACRO + 420650 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 3300 + STRCAT + MACRO + 420680 + + + + V:;P:(E); + + + + WZ + 10 + - + MS + + + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 3320 + SEEDKEY + MACRO + 420700 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 3340 + COMBLOCK2 + MACRO + 420720 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 3360 + COMBLOCK2 + MACRO + 420730 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 3380 + BLOCKINT + MACRO + 420740 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 3400 + CONTROL + MACRO + 420760 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 3420 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 3440 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &VALUE +
+
+ + + 3460 + PRINTOUT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Memory Area Check + + + + + + +

+ PCM Memory Partition Swap (X→A) + 0 +

+ + + + + STR + - +
+
+ + + 3480 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 3500 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + +

+ + + + + STR + +
+
+ + + 3520 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 10F1FB + 7000 + +

+ + + + + STR + +
+
+ + + 3540 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + + + + + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 3560 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + Command + + + + + + +

+ 4 + 4 +

+ + 10 + 10 + + HEX + +
+
+ + + 3580 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (A) + + - + - + - + - + +

+ 5 + 5 +

+ + 00 + FF + + HEX + &PartitionStatus +
+
+ + + 3600 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 3620 + CONTROL + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ IF + (&PartitionStatus != 10) +

+ + + + + INT + +
+
+ + + 3640 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 3660 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + +

+ + + + + STR + +
+
+ + + 3680 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 130AF1FB + 6000 + +

+ + + + + STR + +
+
+ + + 3700 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + + + + + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 3720 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + Command + + + + + + +

+ 4 + 4 +

+ + 13 + 13 + + HEX + +
+
+ + + 3740 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (A) + + - + - + - + - + +

+ 5 + 5 +

+ + 00 + FF + + HEX + &PartitionStatus +
+
+ + + 3760 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 3780 + CONTROL + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 3800 + WARTEN + MACRO + 0 + wz 500 -> 1000, mitech + + + V:;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 3820 + WARTEN + MACRO + 0 + wz 10 -> 100, mitech + + + V:;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 3840 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &VALUE +
+
+ + + 3860 + CONTROL + MACRO + 420580 + + + + V:;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 3880 + COMBLOCK2 + MACRO + 420590 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 3900 + BLOCKINT + MACRO + 420600 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 3920 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 10 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 3940 + COMBLOCK2 + MACRO + 420620 + + + + V:;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 3960 + BLOCKINT + MACRO + 420630 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 3980 + BLOCKINT + MACRO + 420640 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 4000 + BLOCKINT + MACRO + 420650 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 4020 + STRCAT + MACRO + 420680 + + + + V:;P:(E); + + + + WZ + 10 + - + MS + + + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 4040 + SEEDKEY + MACRO + 420700 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 4060 + COMBLOCK2 + MACRO + 420720 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 4080 + COMBLOCK2 + MACRO + 420730 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 4100 + BLOCKINT + MACRO + 420740 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 4120 + CONTROL + MACRO + 420760 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 4140 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 4160 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &VALUE +
+
+ + + 4180 + COMBLOCK2 + MACRO + 170620 + + + + V:;P:(E); + + + + WRITEF18B + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF18B + 1000 + +

+ + + + + STR + +
+
+ + + 4200 + COMBLOCK2 + MACRO + 170630 + + + + V:;P:(E); + + + + WRITEF18B + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &FD3 + 2000 + +

+ + + + + STR + +
+
+ + + 4220 + BLOCKINT + MACRO + 170640 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF18B + 6EF18B + + HEX + +
+
+ + + 4240 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4260 + COMBLOCK2 + MACRO + 170660 + + + + V:;P:(E); + + + + WRITEF18C + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF18C + 1000 + +

+ + + + + STR + +
+
+ + + 4280 + COMBLOCK2 + MACRO + 170670 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + WRITEF18C + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &TH1_ASCII + 1000 + +

+ + + + + STR + +
+
+ + + 4300 + BLOCKINT + MACRO + 170680 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF18C + 6EF18C + + HEX + +
+
+ + + 4320 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4340 + COMBLOCK2 + MACRO + 170700 + + + + V:;P:(E); + + + + WRITEF193 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF193 + 1000 + +

+ + + + + STR + +
+
+ + + 4360 + COMBLOCK2 + MACRO + 170710 + + + + V:;P:(E); + + + + WRITEF193 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &HW_VERSION_ASCII + 1000 + +

+ + + + + STR + +
+
+ + + 4380 + BLOCKINT + MACRO + 170720 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF193 + 6EF193 + + HEX + +
+
+ + + 4400 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4420 + COMBLOCK2 + MACRO + 170740 + + + + V:;P:(E); + + + + WRITEF102 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF102 + 1000 + +

+ + + + + STR + +
+
+ + + 4440 + COMBLOCK2 + MACRO + 170750 + + + + V:;P:(E); + + + + WRITEF102 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &MAC_ADDRESS + 1000 + +

+ + + + + STR + +
+
+ + + 4460 + BLOCKINT + MACRO + 170760 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF102 + 6EF102 + + HEX + +
+
+ + + 4480 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4500 + COMBLOCK2 + MACRO + 170780 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + WRITEF1A1 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF1A1 + 1000 + +

+ + + + + STR + +
+
+ + + 4520 + COMBLOCK2 + MACRO + 170790 + + + + V:;P:(E); + + + + WRITEF1A1 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &KEFICO_ASCII + 1000 + +

+ + + + + STR + +
+
+ + + 4540 + BLOCKINT + MACRO + 170800 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF1A1 + 6EF1A1 + + HEX + +
+
+ + + 4560 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 4580 + COMBLOCK2 + MACRO + 170780 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + WRITEF187 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF187 + 1000 + +

+ + + + + STR + +
+
+ + + 4600 + COMBLOCK2 + MACRO + 170790 + + + + V:;P:(E); + + + + WRITEF187 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &PARTNO_ASCII + 1000 + +

+ + + + + STR + +
+
+ + + 4620 + BLOCKINT + MACRO + 170800 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF187 + 6EF187 + + HEX + +
+
+ + + 4640 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4660 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + A033_SV + - + - + NONE + + + + + A035_SV + - + - + NONE + + + + + A038_SV + - + - + NONE + + + + + + + +

+ + + + + NONE + + + + + + 4680 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4700 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + A033_SV + UB + - + SA + + + + + A035_SV + UB + - + SA + + + + + A038_SV + MASSE + - + SA + + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4720 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 2000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4740 + CAN2000INI2 + MACRO + 160020 + CAN Port Close + + + V:0000000000000007;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 4760 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E|R); + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 4780 + CAN2000INI2 + MACRO + 160020 + CAN Port Open + + + V:0000000000000007;P:(E|R); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 4800 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E|R); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 4820 + PRINTOUT + MACRO + 0 + + + + V:;P:(E|R); + + + + ▣ Phase 303 + + + + + + +

+ PCM Product Information + - +

+ + + + + NONE + - +
+
+ + + 4840 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + + +

+ + + + + NONE + + + + + + 4860 + WARTEN + MACRO + 0 + 300ms + + + V:;P:(E|R); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4880 + COMBLOCK2 + MACRO + 170860 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + UDS_DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 4900 + BLOCKINT + MACRO + 170870 + + + + V:;P:(E|R); + + + + POSITIVE + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 4920 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E|R); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4940 + COMBLOCK2 + MACRO + 170910 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F187 + 1000 + +

+ + + + + STR + +
+
+ + + 4960 + BLOCKINT + MACRO + 170920 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F187 + 62F187 + + HEX + +
+
+ + + 4980 + BLOCKINT + MACRO + 170930 + + + + V:;P:(E); + + + + ASCII10BYTE + + + + + + +

+ 4 + 13 +

+ + + + + HEX + &F187_CHECK +
+
+ + + 5000 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5020 + COMBLOCK2 + MACRO + 170910 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F188 + 1000 + +

+ + + + + STR + +
+
+ + + 5040 + BLOCKINT + MACRO + 170920 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F188 + 62F188 + + HEX + +
+
+ + + 5060 + BLOCKINT + MACRO + 170930 + + + + V:;P:(E|R); + + + + ASCII16BYTE + + + + + + +

+ 4 + 19 +

+ + + + + HEX + &F188_CHECK +
+
+ + + 5080 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E|R); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5100 + COMBLOCK2 + MACRO + 170950 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F18B + 1000 + +

+ + + + + STR + +
+
+ + + 5120 + BLOCKINT + MACRO + 170960 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F18B + 62F18B + + HEX + +
+
+ + + 5140 + BLOCKINT + MACRO + 170970 + + + + V:;P:(E); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F18B_CHECK +
+
+ + + 5160 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5180 + COMBLOCK2 + MACRO + 170990 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F18C + 1000 + +

+ + + + + STR + +
+
+ + + 5200 + BLOCKINT + MACRO + 171000 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F18C + 62F18C + + HEX + +
+
+ + + 5220 + BLOCKINT + MACRO + 171010 + + + + V:;P:(E); + + + + ASCII15BYTE + + + + + + +

+ 4 + 18 +

+ + + + + HEX + &F18C_CHECK +
+
+ + + 5240 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5260 + COMBLOCK2 + MACRO + 171030 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F101 + 1000 + +

+ + + + + STR + +
+
+ + + 5280 + BLOCKINT + MACRO + 171040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F101 + 62F101 + + HEX + +
+
+ + + 5300 + BLOCKINT + MACRO + 171050 + + + + V:;P:(E); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F101_CHECK +
+
+ + + 5320 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5340 + COMBLOCK2 + MACRO + 171070 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F193 + 1000 + +

+ + + + + STR + +
+
+ + + 5360 + BLOCKINT + MACRO + 171080 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F193 + 62F193 + + HEX + +
+
+ + + 5380 + BLOCKINT + MACRO + 171090 + + + + V:;P:(E); + + + + ASCII3BYTE + + + + + + +

+ 4 + 6 +

+ + + + + HEX + &F193_CHECK +
+
+ + + 5400 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5420 + COMBLOCK2 + MACRO + 171110 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F103 + 1000 + +

+ + + + + STR + +
+
+ + + 5440 + BLOCKINT + MACRO + 171120 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F103 + 62F103 + + HEX + +
+
+ + + 5460 + BLOCKINT + MACRO + 171130 + + + + V:;P:(E); + + + + ASCII2BYTE + + + + + + +

+ 4 + 5 +

+ + + + + HEX + &F103_CHECK +
+
+ + + 5480 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5500 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &CMeasCnt +
+
+ + + 5520 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ 1 + 0 +

+ + + + + INT + &CrcR +
+
+ + + 5540 + CONTROL + MACRO + 0 + + + + + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&CrcR!=0) && (&CMeasCnt < 50) +

+ + + + + NONE + +
+
+ + + 5560 + COMBLOCK2 + MACRO + 171150 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F102 + 1000 + +

+ + + + + STR + +
+
+ + + 5580 + BLOCKINT + MACRO + 171160 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F102 + 62F102 + + HEX + +
+
+ + + 5600 + BLOCKINT + MACRO + 171170 + + + + V:;P:(E); + + + + HEX6BYTE + + + + + + +

+ 4 + 9 +

+ + + + + HEX + &F102_CHECK +
+
+ + + 5620 + STRCMP + MACRO + 171740 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + F102_COMP + + + + + + +

+ &MAC_ADDRESS + &F102_CHECK +

+ + + + + INT + &CrcR +
+
+ + + 5640 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ &CMeasCnt+1 + 0 +

+ + + + + INT + &CMeasCnt +
+
+ + + 5660 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5680 + CONTROL + MACRO + 0 + + + + + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + NONE + +
+
+ + + 5700 + PRINTOUT + MACRO + 400010 + + + + V:;P:(E|R); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ &CMeasCnt + 0 +

+ + + + + STR + +
+
+ + + 5720 + COMBLOCK2 + MACRO + 171150 + + + + V:;P:(E|R); + + + + WZ + 50 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F156 + 1000 + +

+ + + + + STR + +
+
+ + + 5740 + BLOCKINT + MACRO + 171160 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F156 + 62F156 + + HEX + +
+
+ + + 5760 + BLOCKINT + MACRO + 171170 + + + + V:;P:(E|R); + + + + HEX4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F156_CHECK +
+
+ + + 5780 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E|R); + + + + + +

+ + + + + NONE + + + + + + 5800 + COMBLOCK2 + MACRO + 171190 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F1B2 + 1000 + +

+ + + + + STR + +
+
+ + + 5820 + BLOCKINT + MACRO + 171200 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1B2 + 62F1B2 + + HEX + +
+
+ + + 5840 + BLOCKINT + MACRO + 171210 + + + + V:;P:(E); + + + + ASCII10BYTE + + + + + + +

+ 4 + 13 +

+ + + + + HEX + &F1B2_CHECK +
+
+ + + 5860 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5880 + COMBLOCK2 + MACRO + 171230 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F1A1 + 1000 + +

+ + + + + STR + +
+
+ + + 5900 + BLOCKINT + MACRO + 171240 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1A1 + 62F1A1 + + HEX + +
+
+ + + 5920 + BLOCKINT + MACRO + 171250 + + + + V:;P:(E); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F1A1_CHECK +
+
+ + + 5940 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5960 + COMBLOCK2 + MACRO + 171270 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F1C2 + 1000 + +

+ + + + + STR + +
+
+ + + 5980 + BLOCKINT + MACRO + 171280 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1C2 + 62F1C2 + + HEX + +
+
+ + + 6000 + BLOCKINT + MACRO + 171290 + + + + V:;P:(E); + + + + HEX32BYTE + + + + + + +

+ 4 + 35 +

+ + + + + HEX + &F1C2_CHECK +
+
+ + + 6020 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6040 + COMBLOCK2 + MACRO + 171310 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F1EF + 1000 + +

+ + + + + STR + +
+
+ + + 6060 + BLOCKINT + MACRO + 171320 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1EF + 62F1EF + + HEX + +
+
+ + + 6080 + BLOCKINT + MACRO + 171330 + + + + V:;P:(E); + + + + ASCII40BYTE + + + + + + +

+ 4 + 43 +

+ + + + + HEX + &F1EF_CHECK +
+
+ + + 6100 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6120 + COMBLOCK2 + MACRO + 171350 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F148 + 1000 + +

+ + + + + STR + +
+
+ + + 6140 + BLOCKINT + MACRO + 171360 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F148 + 62F148 + + HEX + +
+
+ + + 6160 + BLOCKINT + MACRO + 171370 + + + + V:;P:(E); + + + + ASCII 3BYTE + + + + + + +

+ 4 + 6 +

+ + 584443 + 584443 + + HEX + &F148_CHECK +
+
+ + + 6180 + WARTEN + MACRO + 0 + 200ms + + + V:;P:(E); + + + + WZ + 1200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6200 + PRINTOUT + MACRO + 400010 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ HFID_CHECK + 0 +

+ + + + + STR + +
+
+ + + 6220 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 3000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6280 + COMBLOCK2 + MACRO + 400050 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F147 + 2000 + +

+ + + + + STR + +
+
+ + + 6320 + BLOCKINT + MACRO + 400060 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F147 + 62F147 + + HEX + +
+
+ + + 6340 + BLOCKINT + MACRO + 400070 + + + + V:;P:(E|R); + + + + HEX20BYTE + + + + + + +

+ 4 + 23 +

+ + + + + HEX + &F147_CHECK +
+
+ + + 6360 + STRTOHEXSTRING + MACRO + 400080 + + + + V:;P:(E|R); + + + + + + + + + + +

+ &HFID + 0 +

+ + + + + STR + &HFID_HEX +
+
+ + + 6380 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 30 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6400 + PRINTOUT + MACRO + 171390 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + PCM Part No. + + + + + + +

+ &PARTNO_ASCII + 0 +

+ + + + + STR + +
+
+ + + 6420 + PRINTOUT + MACRO + 171400 + + + + V:;P:(E); + + + + 2-1. F187 : Part No. + + + + + + +

+ &F187_CHECK + 0 +

+ + + + + STR + +
+
+ + + 6440 + PRINTOUT + MACRO + 171390 + + + + V:;P:(E|R); + + + + ROM ID + + + + + + +

+ &PCM_CALID_ASCII + 0 +

+ + + + + STR + +
+
+ + + 6460 + PRINTOUT + MACRO + 171400 + + + + V:;P:(E|R); + + + + 2-2. F188 : ROM ID + + + + + + +

+ &F188_CHECK + 0 +

+ + + + + STR + +
+
+ + + 6480 + PRINTOUT + MACRO + 171420 + + + + V:;P:(E); + + + + Date + + + + + + +

+ &FD3 + 0 +

+ + + + + STR + +
+
+ + + 6500 + PRINTOUT + MACRO + 171430 + + + + V:;P:(E); + + + + 2-3. F18B : Date + + + + + + +

+ &F18B_CHECK + 0 +

+ + + + + STR + +
+
+ + + 6520 + PRINTOUT + MACRO + 171450 + + + + V:;P:(E); + + + + Serial No. + + + + + + +

+ &TH1_ASCII + 0 +

+ + + + + STR + +
+
+ + + 6540 + PRINTOUT + MACRO + 171460 + + + + V:;P:(E); + + + + 2-4. F18C : Serial No. + + + + + + +

+ &F18C_CHECK + 0 +

+ + + + + STR + +
+
+ + + 6560 + PRINTOUT + MACRO + 171480 + + + + V:;P:(E); + + + + 2-5. F101 : QCA Ver. + + + + + + +

+ &F101_CHECK + 0 +

+ + + + + STR + +
+
+ + + 6580 + PRINTOUT + MACRO + 171500 + + + + V:;P:(E); + + + + H/W Ver. + + + + + + +

+ &HW_VERSION_ASCII + 0 +

+ + + + + STR + +
+
+ + + 6600 + PRINTOUT + MACRO + 171510 + + + + V:;P:(E); + + + + 2-6. F193 : H/W Ver. + + + + + + +

+ &F193_CHECK + 0 +

+ + + + + STR + +
+
+ + + 6620 + PRINTOUT + MACRO + 171530 + + + + V:;P:(E); + + + + 2-7. F103 : CAN DB Ver. + + + + + + +

+ &F103_CHECK + 0 +

+ + + + + STR + +
+
+ + + 6640 + PRINTOUT + MACRO + 171550 + + + + V:;P:(E); + + + + 2-8. F102 : MAC Address + + + + + + +

+ &F102_CHECK + 0 +

+ + + + + STR + +
+
+ + + 6660 + PRINTOUT + MACRO + 0 + + + + V:;P:(E|R); + + + + PCM Checksum + + + + + + +

+ &PCM_CRC + 0 +

+ + + + + STR + - +
+
+ + + 6680 + PRINTOUT + MACRO + 171550 + + + + V:;P:(E|R); + + + + 2-9. F156 : Checksum + + + + + + +

+ &F156_CHECK + 0 +

+ + + + + STR + +
+
+ + + 6700 + PRINTOUT + MACRO + 171580 + + + + V:;P:(E); + + + + PCM SW Ver. + + + + + + +

+ &PCM_VER + 0 +

+ + + + + STR + +
+
+ + + 6720 + PRINTOUT + MACRO + 171570 + + + + V:;P:(E); + + + + 2-10. F1B2 : SW Ver. + + + + + + +

+ &F1B2_CHECK + 0 +

+ + + + + STR + +
+
+ + + 6740 + PRINTOUT + MACRO + 171600 + + + + V:;P:(E); + + + + Kefico Supplier Code + + + + + + +

+ &KEFICO_HEX + 0 +

+ + + + + STR + +
+
+ + + 6760 + PRINTOUT + MACRO + 171610 + + + + V:;P:(E); + + + + 2-11. F1A1 : ECU Supplier Code + + + + + + +

+ &F1A1_CHECK + 0 +

+ + + + + STR + +
+
+ + + 6780 + PRINTOUT + MACRO + 171630 + + + + V:;P:(E); + + + + 2-12. F1C2 : IVD Data + + + + + + +

+ &F1C2_CHECK + 0 +

+ + + + + STR + +
+
+ + + 6800 + PRINTOUT + MACRO + 171650 + + + + V:;P:(E); + + + + 2-13. F1EF : RXSWIN Data + + + + + + +

+ &F1EF_CHECK + 0 +

+ + + + + STR + +
+
+ + + 6820 + PRINTOUT + MACRO + 171670 + + + + V:;P:(E); + + + + 2-14. F148 : CPU Information + + + + + + +

+ &F148_CHECK + 0 +

+ + + + + STR + +
+
+ + + 6840 + PRINTOUT + MACRO + 0 + + + + V:;P:(E|R); + + + + HFID + + + + + + +

+ &HFID_HEX + - +

+ + + + + STR + - +
+
+ + + 6860 + PRINTOUT + MACRO + 0 + + + + V:;P:(E|R); + + + + 2-15. F147 : HFID + + + + + + +

+ &F147_CHECK + - +

+ + + + + STR + - +
+
+ + + 6880 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&CR != 0) +

+ + + + + NONE + +
+
+ + + 6900 + STRCMP + MACRO + 171700 + + + + V:;P:(E); + + + + F187_COMP + + + + + + +

+ &PARTNO_ASCII + &F187_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 6920 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 6940 + STRCMP + MACRO + 171700 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + F188_COMP + + + + + + +

+ &PCM_CALID_ASCII + &F188_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 6960 + STRCMP + MACRO + 171710 + + + + V:;P:(E); + + + + F18B_COMP + + + + + + +

+ &FD3 + &F18B_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 6980 + STRCMP + MACRO + 171720 + + + + V:;P:(E); + + + + F18C_COMP + + + + + + +

+ &TH1_ASCII + &F18C_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 7000 + STRCMP + MACRO + 171730 + + + + V:;P:(E); + + + + F193_COMP + + + + + + +

+ &HW_VERSION_ASCII + &F193_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 7020 + STRCMP + MACRO + 171740 + + + + V:;P:(E); + + + + F102_COMP + + + + + + +

+ &MAC_ADDRESS + &F102_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 7040 + STRCMP + MACRO + 171740 + + + + V:;P:(E|R); + + + + F156_COMP + + + + + + +

+ &PCM_CRC + &F156_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 7060 + STRCMP + MACRO + 171750 + + + + V:;P:(E); + + + + F1B2_COMP + + + + + + +

+ &PCM_VER_ASCII + &F1B2_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 7080 + STRCMP + MACRO + 171760 + + + + V:;P:(E); + + + + F1A1_COMP + + + + + + +

+ &KEFICO_ASCII + &F1A1_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 7100 + STRCMP + MACRO + 400100 + + + + V:;P:(E|R); + + + + F147_COMP + + + + + + +

+ &HFID_HEX + &F147_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 7120 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + + +

+ + + + + NONE + + + + + + 7140 + PRINTOUT + MACRO + 180000 + + + CMS_CAN_INIT******************************************************* + V:;P:(E|R); + + + + WZ + 200 + - + MS + + + + + + CAN Port Open + + + + + + +

+ CMS CAN INIT + 0 +

+ + + + + STR + +
+
+ + + 7160 + CAN2000INI2 + MACRO + 180020 + + + + V:0000000000000007;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 7180 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E|R); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 +

+ + + + + STR + +
+
+ + + 7200 + WARTEN + MACRO + 0 + wz 30 -> 500, mitech + + + V:;P:(E|R); + + + + WZ + 150 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7220 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + UB_IMAX + 10 + - + A + + + + + WZ + - + - + NONE + + + + + + ▣ Phase 304 + + + + + + +

+ CSM Product Data Writing + - +

+ + + + + NONE + - +
+
+ + + 7260 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 7280 + COMBLOCK2 + MACRO + 170450 + + + + V:;P:(E); + + + + UDS_DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 7300 + BLOCKINT + MACRO + 170460 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 7320 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 7340 + COMBLOCK2 + MACRO + 170480 + + + + V:;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 7360 + BLOCKINT + MACRO + 170490 + + + + V:;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 7380 + BLOCKINT + MACRO + 170500 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 7400 + BLOCKINT + MACRO + 170510 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 7420 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 7440 + PRINTOUT + MACRO + 170530 + + + + V:;P:(E); + + + + + + + + + + +

+ *** ASK SEQUENCE *** + 0 +

+ + + + + STR + +
+
+ + + 7460 + STRCAT + MACRO + 170540 + + + + V:;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 7480 + SEEDKEY + MACRO + 170560 + + + + V:;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_CMS + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 7500 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 7520 + COMBLOCK2 + MACRO + 170580 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 7540 + COMBLOCK2 + MACRO + 170590 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 7560 + BLOCKINT + MACRO + 170600 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 6712 + 6712 + + HEX + +
+
+ + + 7580 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7600 + COMBLOCK2 + MACRO + 170620 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + WRITEF18B + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2EF18B + 1000 + +

+ + + + + STR + +
+
+ + + 7620 + COMBLOCK2 + MACRO + 170630 + + + + V:;P:(E); + + + + WRITEF18B + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &FD3 + 1000 + +

+ + + + + STR + +
+
+ + + 7640 + BLOCKINT + MACRO + 170640 + + + + V:;P:(E); + + + + Manuf. Date Writing + + + + + + +

+ 1 + 3 +

+ + 6EF18B + 6EF18B + + HEX + +
+
+ + + 7660 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7680 + COMBLOCK2 + MACRO + 170660 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + WRITEF18C + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2EF18C + 1000 + +

+ + + + + STR + +
+
+ + + 7700 + COMBLOCK2 + MACRO + 170670 + + + + V:;P:(E); + + + + WRITEF18C + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &TH1_ASCII + 1000 + +

+ + + + + STR + +
+
+ + + 7720 + BLOCKINT + MACRO + 170680 + + + + V:;P:(E); + + + + Serial No. Writing + + + + + + +

+ 1 + 3 +

+ + 6EF18C + 6EF18C + + HEX + +
+
+ + + 7740 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7760 + COMBLOCK2 + MACRO + 170780 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + WRITEF1A1 + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2EF1A1 + 1000 + +

+ + + + + STR + +
+
+ + + 7780 + COMBLOCK2 + MACRO + 170790 + + + + V:;P:(E); + + + + WRITEF1A1 + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &KEFICO_ASCII + 1000 + +

+ + + + + STR + +
+
+ + + 7800 + BLOCKINT + MACRO + 170800 + + + + V:;P:(E); + + + + Supplier Code Writing + + + + + + +

+ 1 + 3 +

+ + 6EF1A1 + 6EF1A1 + + HEX + +
+
+ + + 7820 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7840 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 20 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7860 + PRINTOUT + MACRO + 190010 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 305 + + + + + + +

+ CMS Product Information + 0 +

+ + + + + STR + +
+
+ + + 7880 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 5 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7900 + COMBLOCK2 + MACRO + 190060 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + UDS_DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 7920 + BLOCKINT + MACRO + 190070 + + + + V:;P:(E|R); + + + + POSITIVE + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 7940 + COMBLOCK2 + MACRO + 190090 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F181 + 1000 + +

+ + + + + STR + +
+
+ + + 7960 + BLOCKINT + MACRO + 190100 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F181 + 62F181 + + HEX + +
+
+ + + 7980 + BLOCKINT + MACRO + 190110 + + + + V:;P:(E|R); + + + + ASCII10BYTE + + + + + + +

+ 4 + 13 +

+ + + + + HEX + &F181_CHECK +
+
+ + + 8000 + COMBLOCK2 + MACRO + 190130 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F188 + 1000 + +

+ + + + + STR + +
+
+ + + 8020 + BLOCKINT + MACRO + 190140 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F188 + 62F188 + + HEX + +
+
+ + + 8040 + BLOCKINT + MACRO + 190150 + + + + V:;P:(E|R); + + + + ASCII16BYTE + + + + + + +

+ 4 + 19 +

+ + + + + HEX + &F188_CHECK +
+
+ + + 8060 + COMBLOCK2 + MACRO + 190170 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F191 + 1000 + +

+ + + + + STR + +
+
+ + + 8080 + BLOCKINT + MACRO + 190180 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F191 + 62F191 + + HEX + +
+
+ + + 8100 + BLOCKINT + MACRO + 190190 + + + + V:;P:(E|R); + + + + ASCII10BYTE + + + + + + +

+ 4 + 13 +

+ + + + + HEX + &F191_CHECK +
+
+ + + 8120 + COMBLOCK2 + MACRO + 190210 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F187 + 1000 + +

+ + + + + STR + +
+
+ + + 8140 + BLOCKINT + MACRO + 190220 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F187 + 62F187 + + HEX + +
+
+ + + 8160 + BLOCKINT + MACRO + 190230 + + + + V:;P:(E|R); + + + + ASCII10BYTE + + + + + + +

+ 4 + 13 +

+ + + + + HEX + &F187_CHECK +
+
+ + + 8180 + COMBLOCK2 + MACRO + 190250 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1A0 + 1000 + +

+ + + + + STR + +
+
+ + + 8200 + BLOCKINT + MACRO + 190260 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1A0 + 62F1A0 + + HEX + +
+
+ + + 8220 + BLOCKINT + MACRO + 190270 + + + + V:;P:(E|R); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F1A0_CHECK +
+
+ + + 8240 + COMBLOCK2 + MACRO + 190290 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F156 + 1000 + +

+ + + + + STR + +
+
+ + + 8260 + BLOCKINT + MACRO + 190300 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F156 + 62F156 + + HEX + +
+
+ + + 8280 + BLOCKINT + MACRO + 190310 + + + + V:;P:(E|R); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F156_CHECK +
+
+ + + 8300 + BLOCKINT + MACRO + 190310 + + + + V:;P:(E|R); + + + + F156_BYTE:1 + + + + + + +

+ 4 + 4 +

+ + + + + HEX + &F156_RC1 +
+
+ + + 8320 + BLOCKINT + MACRO + 190310 + + + + V:;P:(E|R); + + + + F156_BYTE:2 + + + + + + +

+ 5 + 5 +

+ + + + + HEX + &F156_RC2 +
+
+ + + 8340 + BLOCKINT + MACRO + 190310 + + + + V:;P:(E|R); + + + + F156_BYTE:3 + + + + + + +

+ 6 + 6 +

+ + + + + HEX + &F156_RC3 +
+
+ + + 8360 + BLOCKINT + MACRO + 190310 + + + + V:;P:(E|R); + + + + F156_BYTE:4 + + + + + + +

+ 7 + 7 +

+ + + + + HEX + &F156_RC4 +
+
+ + + 8380 + STRCAT + MACRO + 0 + + + + V:;P:(E|R); + + + + F156_REVERSE + + + + + + +

+ &F156_RC4 + &F156_RC3 + &F156_RC2 + &F156_RC1 + + + + + + +

+ + + + + STR + &F156_RCHECK +
+
+ + + 8400 + COMBLOCK2 + MACRO + 190330 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1B0 + 1000 + +

+ + + + + STR + +
+
+ + + 8420 + BLOCKINT + MACRO + 190340 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1B0 + 62F1B0 + + HEX + +
+
+ + + 8440 + BLOCKINT + MACRO + 190350 + + + + V:;P:(E|R); + + + + HEX1BYTE + + + + + + +

+ 4 + 4 +

+ + + + + HEX + &F1B0_CHECK +
+
+ + + 8460 + COMBLOCK2 + MACRO + 190370 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1B1 + 1000 + +

+ + + + + STR + +
+
+ + + 8480 + BLOCKINT + MACRO + 190380 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1B1 + 62F1B1 + + HEX + +
+
+ + + 8500 + BLOCKINT + MACRO + 190390 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + ASCII16BYTE + + + + + + +

+ 4 + 19 +

+ + + + + HEX + &F1B1_CHECK +
+
+ + + 8520 + COMBLOCK2 + MACRO + 190410 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1C1 + 10000 + +

+ + + + + STR + +
+
+ + + 8540 + BLOCKINT + MACRO + 190420 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1C1 + 62F1C1 + + HEX + +
+
+ + + 8560 + BLOCKINT + MACRO + 190430 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + HEX32BYTE + + + + + + +

+ 4 + 35 +

+ + + + + HEX + &F1C1_CHECK +
+
+ + + 8580 + COMBLOCK2 + MACRO + 190450 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1EF + 1000 + +

+ + + + + STR + +
+
+ + + 8600 + BLOCKINT + MACRO + 190460 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1EF + 62F1EF + + HEX + +
+
+ + + 8620 + BLOCKINT + MACRO + 190470 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + HEXASCII40BYTE + + + + + + +

+ 4 + 43 +

+ + + + + HEX + &F1EF_CHECK +
+
+ + + 8640 + COMBLOCK2 + MACRO + 190490 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F197 + 1000 + +

+ + + + + STR + +
+
+ + + 8660 + BLOCKINT + MACRO + 190500 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F197 + 62F197 + + HEX + +
+
+ + + 8680 + BLOCKINT + MACRO + 190510 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F197_CHECK +
+
+ + + 8700 + COMBLOCK2 + MACRO + 190250 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F18B + 1000 + +

+ + + + + STR + +
+
+ + + 8720 + BLOCKINT + MACRO + 190260 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F18B + 62F18B + + HEX + +
+
+ + + 8740 + BLOCKINT + MACRO + 190270 + + + + V:;P:(E); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F18B_CHECK +
+
+ + + 8760 + COMBLOCK2 + MACRO + 190250 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F18C + 1000 + +

+ + + + + STR + +
+
+ + + 8780 + BLOCKINT + MACRO + 190260 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F18C + 62F18C + + HEX + +
+
+ + + 8800 + BLOCKINT + MACRO + 190270 + + + + V:;P:(E); + + + + ASCII15BYTE + + + + + + +

+ 4 + 18 +

+ + + + + HEX + &F18C_CHECK +
+
+ + + 8820 + COMBLOCK2 + MACRO + 190250 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1A1 + 1000 + +

+ + + + + STR + +
+
+ + + 8840 + BLOCKINT + MACRO + 190260 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1A1 + 62F1A1 + + HEX + +
+
+ + + 8860 + BLOCKINT + MACRO + 190270 + + + + V:;P:(E); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F1A1_CHECK +
+
+ + + 8880 + PRINTOUT + MACRO + 190530 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + CMS SW Ver. + + + + + + +

+ &CMS_VER + 0 +

+ + + + + STR + +
+
+ + + 8900 + PRINTOUT + MACRO + 190540 + + + + V:;P:(E|R); + + + + 1-1. F181 : SW Ver. + + + + + + +

+ &F181_CHECK + 0 +

+ + + + + STR + +
+
+ + + 8920 + PRINTOUT + MACRO + 190530 + + + + V:;P:(E|R); + + + + CMS CAL ID + + + + + + +

+ &CMS_CALID_ASCII + 0 +

+ + + + + STR + +
+
+ + + 8940 + PRINTOUT + MACRO + 190550 + + + + V:;P:(E|R); + + + + 1-2. F188 : ROM ID + + + + + + +

+ &F188_CHECK + 0 +

+ + + + + STR + +
+
+ + + 8960 + PRINTOUT + MACRO + 190560 + + + + V:;P:(E|R); + + + + 1-3. F191 : HW Ver. + + + + + + +

+ &F191_CHECK + 0 +

+ + + + + STR + +
+
+ + + 8980 + PRINTOUT + MACRO + 190570 + + + + V:;P:(E|R); + + + + 1-4. F187 : Part No. + + + + + + +

+ &F187_CHECK + 0 +

+ + + + + STR + +
+
+ + + 9000 + PRINTOUT + MACRO + 190580 + + + + V:;P:(E|R); + + + + 1-5. F1A0 : HKMC SW Ver. + + + + + + +

+ &F1A0_CHECK + 0 +

+ + + + + STR + +
+
+ + + 9020 + PRINTOUT + MACRO + 0 + + + + V:;P:(E|R); + + + + CMS Checksum + + + + + + +

+ &CMS_CRC + 0 +

+ + + + + STR + - +
+
+ + + 9040 + PRINTOUT + MACRO + 190590 + + + + V:;P:(E|R); + + + + 1-6. F156 : Checksum + + + + + + +

+ &F156_CHECK + 0 +

+ + + + + STR + +
+
+ + + 9060 + PRINTOUT + MACRO + 190590 + + + + V:;P:(E|R); + + + + 1-6. F156 : Checksum-Reverse + + + + + + +

+ &F156_RCHECK + 0 +

+ + + + + STR + +
+
+ + + 9080 + PRINTOUT + MACRO + 190600 + + + + V:;P:(E|R); + + + + 1-7. F1B0 : ECU Unit No. + + + + + + +

+ &F1B0_CHECK + 0 +

+ + + + + STR + +
+
+ + + 9100 + PRINTOUT + MACRO + 190610 + + + + V:;P:(E|R); + + + + 1-8. F1B1 : ECU Unit 1 S/W Ver. + + + + + + +

+ &F1B1_CHECK + 0 +

+ + + + + STR + +
+
+ + + 9120 + PRINTOUT + MACRO + 190620 + + + + V:;P:(E|R); + + + + 1-9. F1C1 : IVD Data + + + + + + +

+ &F1C1_CHECK + 0 +

+ + + + + STR + +
+
+ + + 9140 + PRINTOUT + MACRO + 190630 + + + + V:;P:(E|R); + + + + 1-10. F1EF : RXSWIN Data + + + + + + +

+ &F1EF_CHECK + 0 +

+ + + + + STR + +
+
+ + + 9160 + PRINTOUT + MACRO + 190640 + + + + V:;P:(E|R); + + + + 1-11. F197 : System Name + + + + + + +

+ &F197_CHECK + 0 +

+ + + + + STR + +
+
+ + + 9180 + PRINTOUT + MACRO + 190580 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + 1-12. F18B : Product Date + + + + + + +

+ &F18B_CHECK + 0 +

+ + + + + STR + +
+
+ + + 9200 + PRINTOUT + MACRO + 190580 + + + + V:;P:(E); + + + + 1-13. F18C : Serial No. + + + + + + +

+ &F18C_CHECK + 0 +

+ + + + + STR + +
+
+ + + 9220 + PRINTOUT + MACRO + 190580 + + + + V:;P:(E); + + + + 1-14. F1A1 : Supplier Code + + + + + + +

+ &F1A1_CHECK + 0 +

+ + + + + STR + +
+
+ + + 9240 + STRCMP + MACRO + 190680 + + + + V:;P:(E|R); + + + + F156_COMP + + + + + + +

+ &CMS_CRC + &F156_RCHECK +

+ + 0 + 0 + + INT + +
+
+ + + 9260 + STRCMP + MACRO + 190660 + + + + V:;P:(E|R); + + + + F181_COMP + + + + + + +

+ &CMS_VER_ASCII + &F181_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 9280 + STRCMP + MACRO + 190670 + + + + V:;P:(E|R); + + + + F188_COMP + + + + + + +

+ &CMS_CALID_ASCII + &F188_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 9300 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&CR != 0) +

+ + + + + NONE + +
+
+ + + 9320 + STRCMP + MACRO + 190680 + + + + V:;P:(E|R); + + + + F187_COMP + + + + + + +

+ &PARTNO_ASCII + &F187_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 9340 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 9360 + STRCMP + MACRO + 190660 + + + + V:;P:(E); + + + + F18B_COMP + + + + + + +

+ &FD3 + &F18B_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 9380 + STRCMP + MACRO + 190670 + + + + V:;P:(E); + + + + F18C_COMP + + + + + + +

+ &TH1_ASCII + &F18C_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 9400 + STRCMP + MACRO + 190680 + + + + V:;P:(E); + + + + F1A1_COMP + + + + + + +

+ &KEFICO_ASCII + &F1A1_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 9420 + WARTEN + MACRO + 0 + + + + + + + + + +

+ + + + + NONE + + + + + + 9440 + WARTEN + MACRO + 0 + + + + + + + + A007_S2 + CAN2_REF + - + SA + + + + + A008_S1 + CAN2 + - + SA + + + + + PLC + 0 + - + STR + + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 9460 + CAN2000INI2 + MACRO + 230050 + + + + V:0000000000000007;P:; + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 9480 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:; + + + + A007_S2 + - + - + NONE + + + + + A008_S1 + - + - + NONE + + + + + PLC + - + - + NONE + + + + + UB_IMAX + 3 + - + A + + + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 +

+ + + + + STR + +
+
+ + + 9500 + WARTEN + MACRO + 0 + wz 30 -> 500, mitech + + + + + + + WZ + 150 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 9520 + WARTEN + MACRO + 0 + + + + + + + + A001_S1 + FGN2 + - + SA + + + + + A009_S1 + FGN2_REF + - + SA + + + + + PLC + 7 + - + STR + + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 9540 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Phase 521-1 + + + + + + +

+ PSD Measurement Start + - +

+ + + + + STR + - +
+
+ + + 9560 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 9580 + RFMEAS_PSD + MACRO + 0 + + + + V:;P:(E); + + + + PSD Measure Start + + + +

+ PSD + 15000000 + 30000000 + 10000 + 100000 + ON + 26000000 + 32 + OFF + S +

+ + + + + DEZ + &ResultPSD +
+
+ + + 9600 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A001_S1 + FGN2 + - + SA + + + + + A007_S2 + - + - + NONE + + + + + A008_S1 + - + - + NONE + + + + + A009_S1 + FGN2_REF + - + SA + + + + + PLC + 7 + - + STR + + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 9620 + CAN2000INI2 + MACRO + 390010 + + + PCM_CAN_INIT******************************************************* + V:0000000000000007;P:(E); + + + + PCMCANINIT + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 9640 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + PCMCANINIT + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 9660 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 9680 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Cert. Publish Tester ID + + + + + + +

+ Tester ID Update + - +

+ + + + + NONE + - +
+
+ + + 9700 + STRCAT + MACRO + 0 + + + + V:;P:(E); + + + + Tester ID Update + + + + + + +

+ &TESTERID_ORG + _ + &TESTERCH + + + + + + + +

+ + + + + STR + &TESTERID +
+
+ + + 9720 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Updated Tester ID + + + + + + +

+ &TESTERID + - +

+ + + + + STR + - +
+
+ + + 9740 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 9760 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 401 + + + + + + +

+ Inserting V2G Root (Part-2) Certification + - +

+ + + + + NONE + - +
+
+ + + 9780 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 9800 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P02 + + + + + + +

+ &SUBCAOEM_P02 + 0 +

+ + + + + STR + - +
+
+ + + 9820 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P20 + + + + + + +

+ &SUBCAOEM_P20 + 0 +

+ + + + + STR + - +
+
+ + + 9840 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - VEHICLE P20 + + + + + + +

+ &SUBCAVHC_P20 + 0 +

+ + + + + STR + - +
+
+ + + 9860 + STRLEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + OEM P02 Sub CA Count + + + +

+ + &SUBCAOEM_P02 +

+ + 0 + 999999 + + INT + &CountP02SubCAOEM +
+
+ + + 9880 + STRLEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + OEM P20 Sub CA Count + + + +

+ + &SUBCAOEM_P20 +

+ + 0 + 999999 + + INT + &CountP20SubCAOEM +
+
+ + + 9900 + STRLEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Vehicle P20 Sub CA Count + + + +

+ + &SUBCAVHC_P20 +

+ + 0 + 999999 + + INT + &CountP20SubCAVHC +
+
+ + + 9920 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (&CountP02SubCAOEM)-3 + 0 +

+ + + + + INT + &CountP02SubCAOEMS +
+
+ + + 9940 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (&CountP20SubCAOEM)-3 + 0 +

+ + + + + INT + &CountP20SubCAOEMS +
+
+ + + 9960 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (&CountP20SubCAVHC)-3 + 0 +

+ + + + + INT + &CountP20SubCAVHCS +
+
+ + + 9980 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCAOEM_P02 + 1857 + 1860 +

+ + + + + STR + &P02SubCAOEMCRC +
+
+ + + 10000 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCAOEM_P20 + 1889 + 1892 +

+ + + + + STR + &P20SubCAOEMCRC +
+
+ + + 10020 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCAVHC_P20 + 1889 + 1892 +

+ + + + + STR + &P20SubCAVHCCRC +
+
+ + + 10040 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P02 CRC + + + + + + +

+ &P02SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 10060 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P20 CRC + + + + + + +

+ &P20SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 10080 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - VEHICLE P20 CRC + + + + + + +

+ &P20SubCAVHCCRC + 0 +

+ + + + + STR + - +
+
+ + + 10100 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 10120 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F153 + 5000 + +

+ + + + + STR + +
+
+ + + 10140 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READ_CERT_COUNT + + + + + + +

+ 1 + 3 +

+ + 62F153 + 62F153 + + HEX + +
+
+ + + 10160 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + DATA_CERT_COUNT + + + + + + +

+ 4 + 9 +

+ + + + + HEX + &CertInfo +
+
+ + + 10180 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Cert. Input Info. + + + + + + +

+ &CertInfo + 0 +

+ + + + + STR + +
+
+ + + 10200 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 01 + + + + + + +

+ 5 + 5 +

+ + 0 + 9 + + INT + &ROOTCOUNT_01 +
+
+ + + 10220 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 02 + + + + + + +

+ 6 + 6 +

+ + 0 + 9 + + INT + &ROOTCOUNT_02 +
+
+ + + 10240 + BLOCKINT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + No. of OEM Leaf (P-02) Cert. + + - + - + - + - + +

+ 4 + 4 +

+ + 0 + 9 + + INT + &OEMCOUNT +
+
+ + + 10260 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + No. of Part-02 Root Cert. + + + + + + +

+ &ROOTCOUNT_01 + &ROOTCOUNT_02 + 0 +

+ + 0 + 9 + + INT + &ROOTCOUNT +
+
+ + + 10280 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Root Cert. Counting + + + + + + +

+ &ROOTCOUNT + 0 +

+ + + + + STR + +
+
+ + + 10300 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-02 OEM Leaf Cert. Counting + + + + + + +

+ &OEMCOUNT + 0 +

+ + + + + STR + +
+
+ + + 10320 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 10340 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ IF + (&ROOTCOUNT > 0) +

+ + + + + NONE + +
+
+ + + 10360 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 10380 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 402 + + + + + + +

+ V2G Root Cert. Initaiilization + - +

+ + + + + NONE + - +
+
+ + + 10400 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 10420 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 10440 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 10460 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 10480 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 10500 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 10520 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 10540 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 10560 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 10580 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 10600 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 10620 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 10640 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 10660 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 10680 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 10700 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 10720 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 10740 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 10760 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + P02 E-PIT DELETE INDEX ADD + + + + + + +

+ 0002 + &P02_EPIT_ROOT + + + + + + + + +

+ + + + + STR + &F115_HEX +
+
+ + + 10780 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 10800 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 10820 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 10840 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 10860 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 10880 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 10900 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 10920 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 10940 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 10960 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 10980 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 11000 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 11020 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 11040 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 11060 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 11080 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 11100 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 11120 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 11140 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 11160 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 11180 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + P02 HUBJECT EU DELETE INDEX ADD + + + + + + +

+ 0002 + &P02_HUBEU_ROOT + + + + + + + + +

+ + + + + STR + &F115_HEX +
+
+ + + 11200 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 11220 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 11240 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 11260 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 11280 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 11300 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 11320 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 11340 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 11360 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 11380 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 11400 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 11420 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 11440 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 11460 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 11480 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 11500 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 11520 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 11540 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 11560 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 11580 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 11600 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + P02 HUBJECT US DELETE INDEX ADD + + + + + + +

+ 0002 + &P02_HUBUS_ROOT + + + + + + + + +

+ + + + + STR + &F115_HEX +
+
+ + + 11620 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 11640 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 11660 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 11680 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 11700 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 11720 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 11740 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 11760 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 11780 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 11800 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 11820 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 11840 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 11860 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 11880 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 11900 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 11920 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 11940 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 11960 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 11980 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12000 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 12020 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + P02 ENTRUST DELETE INDEX ADD + + + + + + +

+ 0002 + &P02_ENTRUST_ROOT + + + + + + + + +

+ + + + + STR + &F115_HEX +
+
+ + + 12040 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 12060 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 12080 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 12100 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12120 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 12140 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 12160 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 12180 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12200 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 12220 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 12240 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 12260 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 12280 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 12300 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 12320 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 12340 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 12360 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 12380 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 12400 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12420 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 12440 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + P02 TESLA DELETE INDEX ADD + + + + + + +

+ 0002 + &P02_TESLA_ROOT + + + + + + + + +

+ + + + + STR + &F115_HEX +
+
+ + + 12460 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 12480 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 12500 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 12520 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 12540 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 12560 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12580 + PRINTOUT + MACRO + 410010 + + + + V:0000000000000077;P:(E); + + + + ▣ Step 403 + + + + + + +

+ Inserting Part-02 Root Cert. + 0 +

+ + + + + STR + +
+
+ + + 12600 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 10 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 12620 + BERECHNEN + MACRO + 0 + + + + V:0000000000000044;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 12640 + CONTROL + MACRO + 410050 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 12660 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000044;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 12680 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 12700 + WARTEN + MACRO + 0 + + + + V:0000000000000044;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 12720 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000044;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 12740 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000044;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 12760 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000044;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 12780 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000044;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 12800 + STRCAT + MACRO + 410150 + + + + V:0000000000000044;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 12820 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000044;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 12840 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 12860 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000044;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 12880 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000044;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 12900 + CONTROL + MACRO + 410230 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 12920 + WARTEN + MACRO + 0 + + + + V:0000000000000044;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 12940 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000044;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 12960 + STRCAT + MACRO + 410270 + + + + V:0000000000000044;P:(E); + + + + Hubject EU Root Cert. Index Add + + + + + + +

+ 0001 + &P02_HUBEU_ROOT + + + + + + + + +

+ + + + + STR + &F115_ROOTCERT_HEX +
+
+ + + 12980 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 13000 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 13020 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000044;P:(E); + + + + HUBJECT EU : WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 13040 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 2500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 13060 + BERECHNEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 13080 + CONTROL + MACRO + 410050 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 13100 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000022;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 13120 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 13140 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 13160 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000022;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 13180 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000022;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 13200 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000022;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 13220 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000022;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 13240 + STRCAT + MACRO + 410150 + + + + V:0000000000000022;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 13260 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000022;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 13280 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 13300 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 13320 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 13340 + CONTROL + MACRO + 410230 + + + + V:0000000000000022;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 13360 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 13380 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000022;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 13400 + STRCAT + MACRO + 410270 + + + + V:0000000000000022;P:(E); + + + + Hubject US Root Cert. Index Add + + + + + + +

+ 0001 + &P02_HUBUS_ROOT + + + + + + + + +

+ + + + + STR + &F115_ROOTCERT_HEX +
+
+ + + 13420 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 13440 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 13460 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000022;P:(E); + + + + HUBJECT US : WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 13480 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 2500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 13500 + BERECHNEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 13520 + CONTROL + MACRO + 410050 + + + + V:0000000000000022;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 13540 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000022;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 13560 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 13580 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + + +

+ + + + + NONE + + + + + + 13600 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000022;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 13620 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000022;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 13640 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000022;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 13660 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000022;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 13680 + STRCAT + MACRO + 410150 + + + + V:0000000000000022;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 13700 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000022;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 13720 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 13740 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 13760 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 13780 + CONTROL + MACRO + 410230 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 13800 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 13820 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 13840 + STRCAT + MACRO + 410270 + + + + V:0000000000000022;P:(E); + + + + Tesla Root Cert. Index Add + + + + + + +

+ 0001 + &P02_TESLA_ROOT + + + + + + + + +

+ + + + + STR + &F115_ROOTCERT_HEX +
+
+ + + 13860 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 13880 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 13900 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000022;P:(E); + + + + TESLA : WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 13920 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 2500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 13940 + BERECHNEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 13960 + CONTROL + MACRO + 410050 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 13980 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000022;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 14000 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 14020 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + + +

+ + + + + NONE + + + + + + 14040 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000022;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 14060 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000022;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 14080 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000022;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 14100 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000022;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 14120 + STRCAT + MACRO + 410150 + + + + V:0000000000000022;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 14140 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000022;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 14160 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 14180 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 14200 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 14220 + CONTROL + MACRO + 410230 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 14240 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14260 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 14280 + STRCAT + MACRO + 410270 + + + + V:0000000000000022;P:(E); + + + + Entrust Root Cert. Index Add + + + + + + +

+ 0001 + &P02_ENTRUST_ROOT + + + + + + + + +

+ + + + + STR + &F115_ROOTCERT_HEX +
+
+ + + 14300 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 14320 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 14340 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000022;P:(E); + + + + ENTRUST : WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 14360 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 2500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14380 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 14400 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 14420 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 14440 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 14460 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 14480 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 14500 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 14520 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 14540 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 14560 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 14580 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 14600 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 14620 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 14640 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 14660 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 14680 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 900 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14700 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 14720 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + ADDCERTIFICATEINDEX + + + + + + +

+ 0001 + &P02_EPIT_ROOT + + + + + + + + +

+ + + + + STR + &F115_ROOTCERT_HEX +
+
+ + + 14740 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 14760 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 14780 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + E-PIT : WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 14800 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14820 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ IF + (&OEMCOUNT > 0) +

+ + + + + NONE + +
+
+ + + 14840 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 14860 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 404 + + + + + + +

+ Part-02 OEM Leaf Cert. Initaiilization + - +

+ + + + + NONE + - +
+
+ + + 14880 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 14900 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 14920 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 14940 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 14960 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 14980 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 15000 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 15020 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 15040 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 15060 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 15080 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 15100 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 15120 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 15140 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 15160 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 15180 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 15200 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 15220 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 15240 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 15260 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 15280 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0102FFFF + 1000 + +

+ + + + + STR + +
+
+ + + 15300 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE OEM Leaf Cert. + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 15320 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 15340 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 15360 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0202FFFF + 1000 + +

+ + + + + STR + +
+
+ + + 15380 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE Sub CA Cert. + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 15400 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 15420 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 15440 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 15460 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 411 + + + + + + +

+ Server CSR Gen. + 0 +

+ + + + + STR + +
+
+ + + 15480 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 15500 + COMBLOCK2 + MACRO + 420040 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F112 + 10000 + +

+ + + + + STR + +
+
+ + + 15520 + BLOCKINT + MACRO + 420050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F112 + 62F112 + + HEX + +
+
+ + + 15540 + BLOCKINT + MACRO + 420060 + + + + V:0000000000000077;P:(E); + + + + Read PUBLICKEY (HEX64BYTE) + + + + + + +

+ 4 + 67 +

+ + + + + HEX + &F112_PUBLICKEY_HEX +
+
+ + + 15560 + PRINTOUT + MACRO + 420070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F112_PUBLICKEY_HEX + 0 +

+ + + + + STR + +
+
+ + + 15580 + STRCAT + MACRO + 420080 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &MAC_ADDRESS + : + 04 + &F112_PUBLICKEY_HEX + :P:2:OEM:KM8: + &UnitCode + : + &TierCode +

+ + + + + STR + &CSRMESSAGE1 +
+
+ + + 15600 + SENDBYETHERNET + MACRO + 420100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + VPKI + TRUE + VPKI_CSRGEN_02PRVC + &CSRMESSAGE1 + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 15620 + PARSEMESSAGE + MACRO + 420120 + + + + V:0000000000000077;P:(E); + + + + Server - PCID ASCII + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/PCID + &PCID_ASCII + STR + + + + STR +

+ + + + + STR + +
+
+ + + 15640 + PRINTOUT + MACRO + 420130 + + + + V:0000000000000077;P:(E); + + + + Server - PCID ASCII + + + + + + +

+ &PCID_ASCII + 0 +

+ + + + + STR + +
+
+ + + 15660 + STRCOPY + MACRO + 420140 + + + + V:0000000000000077;P:(E); + + + + Server - PCID ASCII + + + + + + +

+ &PCID_ASCII + 3 + 38 +

+ + + + + STR + &F111_PCID_ASCII +
+
+ + + 15680 + PARSEMESSAGE + MACRO + 420150 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/HASHEDTBSCSR + &CSRHASH_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 15700 + PRINTOUT + MACRO + 420160 + + + + V:0000000000000077;P:(E); + + + + Server - CSR HASH (HEX34BYTE) + + + + + + +

+ &CSRHASH_HEX + 0 +

+ + + + + STR + +
+
+ + + 15720 + STRCAT + MACRO + 420170 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index for CSR HASH + + + + + + +

+ 01 + &CSRHASH_HEX + + + + + + + + +

+ + + + + STR + &F113_CSRHASH_HEX +
+
+ + + 15740 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 15760 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 412 + + + + + + +

+ VCMS Signing Hash + 0 +

+ + + + + STR + +
+
+ + + 15780 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 20 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 15800 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 15820 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 15840 + CONTROL + MACRO + 420200 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 15860 + COMBLOCK2 + MACRO + 420210 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 15880 + BLOCKINT + MACRO + 420220 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 15900 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 15920 + COMBLOCK2 + MACRO + 420240 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 15940 + BLOCKINT + MACRO + 420250 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 15960 + BLOCKINT + MACRO + 420260 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 15980 + BLOCKINT + MACRO + 420270 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 16000 + STRCAT + MACRO + 420300 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 16020 + SEEDKEY + MACRO + 420320 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 16040 + COMBLOCK2 + MACRO + 420340 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 16060 + COMBLOCK2 + MACRO + 420350 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 16080 + BLOCKINT + MACRO + 420360 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 16100 + CONTROL + MACRO + 420380 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 16120 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 16140 + BERECHNEN + MACRO + 420400 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 16160 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16180 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF113 + 1000 + +

+ + + + + STR + +
+
+ + + 16200 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F113_CSRHASH_HEX + 3000 + +

+ + + + + STR + +
+
+ + + 16220 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write CSR HASH (15118-2) + + + + + + +

+ 1 + 3 +

+ + 6EF113 + 6EF113 + + HEX + +
+
+ + + 16240 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 16260 + COMBLOCK2 + MACRO + 420440 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F114 + 10000 + +

+ + + + + STR + +
+
+ + + 16280 + BLOCKINT + MACRO + 420450 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F114 + 62F114 + + HEX + +
+
+ + + 16300 + BLOCKINT + MACRO + 420460 + + + + V:0000000000000077;P:(E); + + + + Read Signed HASH (15118-2) 67-BYTE + + + + + + +

+ 5 + 68 +

+ + + + + HEX + &F114_CSRHASHSIGNEDVALUE_HEX +
+
+ + + 16320 + PRINTOUT + MACRO + 420470 + + + + V:0000000000000077;P:(E); + + + + Signed HASH (15118-2) 67-BYTE + + + + + + +

+ &F114_CSRHASHSIGNEDVALUE_HEX + 0 +

+ + + + + STR + +
+
+ + + 16340 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &F114_CSRHASHSIGNEDVALUE_HEX + : + &UnitCode + : + &TierCode + : + &VehicleCode + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 16360 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &CSRSIGNEDMESSAGE + : + &MarketCode + : + &BrandCode + + + + + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 16380 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16400 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 413 + + + + + + +

+ Cert. Issue from Server + 0 +

+ + + + + STR + +
+
+ + + 16420 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16440 + SENDBYETHERNET + MACRO + 420500 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + VPKI + TRUE + VPKI_CERTPUB_02PRVC + &CSRSIGNEDMESSAGE + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 16460 + PARSEMESSAGE + MACRO + 420510 + + + + V:0000000000000077;P:(E); + + + + OEM Leaf Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/LEAFCERTIFICATE + &OEMLEAF_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 16480 + PRINTOUT + MACRO + 420520 + + + + V:0000000000000077;P:(E); + + + + OEM Leaf Cert. from Server + + + + + + +

+ &OEMLEAF_HEX + 0 +

+ + + + + STR + +
+
+ + + 16500 + PARSEMESSAGE + MACRO + 420530 + + + + V:0000000000000077;P:(E); + + + + SubCA Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/SUBCACERTIFICATE + &SUBCA_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 16520 + PRINTOUT + MACRO + 420540 + + + + V:0000000000000077;P:(E); + + + + SubCA Cert. from Server + + + + + + +

+ &SUBCA_HEX + 0 +

+ + + + + STR + +
+
+ + + 16540 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCA_HEX + 1857 + 1860 +

+ + + + + STR + &RP02SubCAOEMCRC +
+
+ + + 16560 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Received Sub CA - OEM P02 CRC + + + + + + +

+ &RP02SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 16580 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P02 CRC + + + + + + +

+ &P02SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 16600 + STRCMP + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part-02 Sub CA CRC Comp + + + + + + +

+ &RP02SubCAOEMCRC + &P02SubCAOEMCRC +

+ + 0 + 0 + + INT + +
+
+ + + 16620 + STRCAT + MACRO + 420550 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0101 + &OEMLEAF_HEX + + + + + + + + +

+ + + + + STR + &F115_OEMLEAF_HEX +
+
+ + + 16640 + STRCAT + MACRO + 420560 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0201 + &SUBCA_HEX + + + + + + + + +

+ + + + + STR + &F115_SUBCA_HEX +
+
+ + + 16660 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16680 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 414 + + + + + + +

+ Inserting OEM Leaf Cert. + 0 +

+ + + + + STR + +
+
+ + + 16700 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16720 + CONTROL + MACRO + 420580 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 16740 + COMBLOCK2 + MACRO + 420590 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 16760 + BLOCKINT + MACRO + 420600 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 16780 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 16800 + COMBLOCK2 + MACRO + 420620 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 16820 + BLOCKINT + MACRO + 420630 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 16840 + BLOCKINT + MACRO + 420640 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 16860 + BLOCKINT + MACRO + 420650 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 16880 + STRCAT + MACRO + 420680 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 16900 + SEEDKEY + MACRO + 420700 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 16920 + COMBLOCK2 + MACRO + 420720 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 16940 + COMBLOCK2 + MACRO + 420730 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 16960 + BLOCKINT + MACRO + 420740 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 16980 + CONTROL + MACRO + 420760 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 17000 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 17020 + BERECHNEN + MACRO + 420780 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 17040 + COMBLOCK2 + MACRO + 420820 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 5000 + +

+ + + + + STR + +
+
+ + + 17060 + COMBLOCK2 + MACRO + 420830 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_OEMLEAF_HEX + 10000 + +

+ + + + + STR + +
+
+ + + 17080 + BLOCKINT + MACRO + 420840 + + + + V:0000000000000077;P:(E); + + + + OEMLEAFCERTIFICATEDATA + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 17100 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 17120 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 415 + + + + + + +

+ Inserting SubCA Cert. + 0 +

+ + + + + STR + +
+
+ + + 17140 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 17160 + BERECHNEN + MACRO + 420400 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 17180 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 17200 + CONTROL + MACRO + 420850 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 17220 + COMBLOCK2 + MACRO + 420860 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 17240 + BLOCKINT + MACRO + 420870 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 17260 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 17280 + COMBLOCK2 + MACRO + 420890 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 17300 + BLOCKINT + MACRO + 420900 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 17320 + BLOCKINT + MACRO + 420910 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 17340 + BLOCKINT + MACRO + 420920 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 17360 + STRCAT + MACRO + 420950 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 17380 + SEEDKEY + MACRO + 420970 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 17400 + COMBLOCK2 + MACRO + 420990 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 17420 + COMBLOCK2 + MACRO + 421000 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 17440 + BLOCKINT + MACRO + 421010 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 17460 + CONTROL + MACRO + 421030 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 17480 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 17500 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 17520 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 5000 + +

+ + + + + STR + +
+
+ + + 17540 + COMBLOCK2 + MACRO + 421100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_SUBCA_HEX + 10000 + +

+ + + + + STR + +
+
+ + + 17560 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000077;P:(E); + + + + SUBCACERTIFICATEDATA + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 17580 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 17600 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 416 + + + + + + +

+ Verifying Cert. Result + 0 +

+ + + + + STR + +
+
+ + + 17620 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 17640 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F111 + 10000 + +

+ + + + + STR + +
+
+ + + 17660 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READPCIDDATA(15118-2) + + + + + + +

+ 1 + 3 +

+ + 62F111 + 62F111 + + HEX + +
+
+ + + 17680 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Read PCID (15118-2) + + + + + + +

+ 5 + 22 +

+ + + + + HEX + &READ_PCID +
+
+ + + 17700 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F111_PCID_ASCII + 0 +

+ + + + + STR + +
+
+ + + 17720 + PRINTOUT + MACRO + 421180 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &READ_PCID + 0 +

+ + + + + STR + +
+
+ + + 17740 + STRCMP + MACRO + 421190 + + + + V:0000000000000077;P:(E); + + + + Compare PCID + + + + + + +

+ &F111_PCID_ASCII + &READ_PCID +

+ + 0 + 0 + + INT + +
+
+ + + 17760 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F153 + 5000 + +

+ + + + + STR + +
+
+ + + 17780 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + Read Cert. Count + + + + + + +

+ 1 + 3 +

+ + 62F153 + 62F153 + + HEX + +
+
+ + + 17800 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + Read Cert. Count + + + + + + +

+ 4 + 9 +

+ + + + + HEX + &CertInfo +
+
+ + + 17820 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Cert. Input Info. + + + + + + +

+ &CertInfo + 0 +

+ + + + + STR + +
+
+ + + 17840 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 01 + + + + + + +

+ 5 + 5 +

+ + 0 + 9 + + INT + &ROOTCOUNT_01 +
+
+ + + 17860 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 02 + + + + + + +

+ 6 + 6 +

+ + 0 + 9 + + INT + &ROOTCOUNT_02 +
+
+ + + 17880 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 03 + + + + + + +

+ 7 + 7 +

+ + 0 + 9 + + INT + &ROOTCOUNT_03 +
+
+ + + 17900 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 04 + + + + + + +

+ 8 + 8 +

+ + 0 + 9 + + INT + &ROOTCOUNT_04 +
+
+ + + 17920 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 05 + + + + + + +

+ 9 + 9 +

+ + 0 + 9 + + INT + &ROOTCOUNT_05 +
+
+ + + 17940 + BERECHNEN + MACRO + 0 + + + + V:0000000000000011;P:(E); + + + + No. of Part-02 Root Cert + + + + + + +

+ &ROOTCOUNT_01 + &ROOTCOUNT_02+&ROOTCOUNT_03 + &ROOTCOUNT_04+&ROOTCOUNT_05 + 0 +

+ + 1 + 1 + + INT + &ROOTCOUNT +
+
+ + + 17960 + BERECHNEN + MACRO + 0 + + + + V:0000000000000044;P:(E); + + + + No. of Part-02 Root Cert + + + + + + +

+ &ROOTCOUNT_01 + &ROOTCOUNT_02+&ROOTCOUNT_03 + &ROOTCOUNT_04+&ROOTCOUNT_05 + 0 +

+ + 2 + 2 + + INT + &ROOTCOUNT +
+
+ + + 17980 + BERECHNEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + No. of Part-02 Root Cert + + + + + + +

+ &ROOTCOUNT_01 + &ROOTCOUNT_02+&ROOTCOUNT_03 + &ROOTCOUNT_04+&ROOTCOUNT_05 + 0 +

+ + 4 + 4 + + INT + &ROOTCOUNT +
+
+ + + 18000 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Root Cert. Count + + + + + + +

+ &ROOTCOUNT + 0 +

+ + + + + STR + +
+
+ + + 18020 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + No. of OEM Leaf + + + + + + +

+ 4 + 4 +

+ + 1 + 1 + + HEX + &OEM02LEAFCOUNT +
+
+ + + 18040 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + OEM Leaf Cert. Count + + + + + + +

+ &OEM02LEAFCOUNT + 0 +

+ + + + + STR + +
+
+ + + 18060 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + No. of Sub CA + + + + + + +

+ 9 + 9 +

+ + + + + HEX + &SUBCA02COUNT +
+
+ + + 18080 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Sub CA Cert. Count + + + + + + +

+ &SUBCA02COUNT + 0 +

+ + + + + STR + +
+
+ + + 18100 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 18120 + HEXSTRINGTOSTR + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + PCID ASCII + + + + + + +

+ &F111_PCID_ASCII + +

+ + + + + STR + &PCIDServer +
+
+ + + 18140 + STRCAT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TH0 + ; + &HW_TTNR + ; + &MAC_ADDRESS + ; + &PCIDServer + + + +

+ + + + + STR + &ServerPCIDSave +
+
+ + + 18160 + STRCAT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &ServerPCIDSave + ; + &MarketCode + ; + &VehicleCode + + + + + +

+ + + + + STR + &ServerPCIDSave +
+
+ + + 18180 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + PCID Save Format + + + + + + +

+ &ServerPCIDSave + - +

+ + + + + NONE + - +
+
+ + + 18200 + SENDBYETHERNET + MACRO + 170350 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + PCID_SAVE + TRUE + PCID_SAVE + &ServerPCIDSave + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 18220 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 18240 + CAN2000INI2 + MACRO + 390010 + + + PCM_CAN_INIT******************************************************* + V:0000000000000007;P:(E); + + + + PCMCANINIT + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 18260 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + PCMCANINIT + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 18280 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 421 + + + + + + +

+ Inserting V2G Root (Part-20) Certification + - +

+ + + + + NONE + - +
+
+ + + 18300 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 18320 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 18340 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F153 + 5000 + +

+ + + + + STR + +
+
+ + + 18360 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READ_CERT_COUNT + + + + + + +

+ 1 + 3 +

+ + 62F153 + 62F153 + + HEX + +
+
+ + + 18380 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + Part20 OEM Cert. + + + + + + +

+ 13 + 13 +

+ + 00 + 09 + + INT + &P20OEMCnt +
+
+ + + 18400 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part20 EVCC Cert. + + + + + + +

+ 14 + 14 +

+ + 00 + 09 + + INT + &P20EVCCCnt +
+
+ + + 18420 + BLOCKINT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part20 V2G Root Cert. Index 01 + + - + - + - + - + +

+ 15 + 15 +

+ + 00 + 09 + + INT + &P20RootCnt_01 +
+
+ + + 18440 + BLOCKINT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part20 V2G Root Cert. Index 02 + + - + - + - + - + +

+ 16 + 16 +

+ + 00 + 09 + + INT + &P20RootCnt_02 +
+
+ + + 18460 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + No. of Part20 V2G Root Cert. + + + + + + +

+ &P20RootCnt_01 + &P20RootCnt_02 + 0 +

+ + 00 + 09 + + INT + &P20RootCnt +
+
+ + + 18480 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + V2G Root P20 Cert. Counting + + + + + + +

+ &P20RootCnt + 0 +

+ + + + + STR + +
+
+ + + 18500 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-20 OEM Leaf Cert. Counting + + + + + + +

+ &P20OEMCnt + 0 +

+ + + + + STR + +
+
+ + + 18520 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-20 EVCC Cert. Counting + + + + + + +

+ &P20EVCCCnt + 0 +

+ + + + + STR + +
+
+ + + 18540 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 18560 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ IF + (&P20RootCnt > 0) +

+ + + + + NONE + +
+
+ + + 18580 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 18600 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 422 + + + + + + +

+ Part-20 Root Cert. Initaiilization + - +

+ + + + + NONE + - +
+
+ + + 18620 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 18640 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 422-1 + + + + + + +

+ Part-20 V2G Root Cert. Initaiilization + - +

+ + + + + NONE + - +
+
+ + + 18660 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 18680 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 18700 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 18720 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 18740 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 18760 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 18780 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 18800 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 18820 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 18840 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 18860 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 18880 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 18900 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 18920 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 18940 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 18960 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 18980 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 19000 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 19020 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 19040 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + ADDCERTIFICATEINDEX + + + + + + +

+ 0002 + &P20_EPIT_ROOT + + + + + + + + +

+ + + + + STR + &F145_ROOTCERT_HEX +
+
+ + + 19060 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 19080 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 19100 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE Part20 V2G ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 19120 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 19140 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 422-2 + + + + + + +

+ Part-20 CharIN Root Cert. Initaiilization + - +

+ + + + + NONE + - +
+
+ + + 19160 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 19180 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 19200 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 19220 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 19240 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 19260 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 19280 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 19300 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 19320 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 19340 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 19360 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 19380 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 19400 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 19420 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 19440 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 19460 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 19480 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 19500 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 19520 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 19540 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + ADDCERTIFICATEINDEX + + + + + + +

+ 0002 + &P20_CHARIN_ROOT + + + + + + + + +

+ + + + + STR + &F145_ROOTCERT_HEX +
+
+ + + 19560 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 19580 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 19600 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE Part20 CharIN ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 19620 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 19640 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 19660 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 19680 + PRINTOUT + MACRO + 410010 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 423 + + + + + + +

+ Inserting V2G Root Part-20 Cert. + 0 +

+ + + + + STR + +
+
+ + + 19700 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 19720 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 19740 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 19760 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 19780 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 19800 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 19820 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 19840 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 19860 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 19880 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 19900 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 19920 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 19940 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 19960 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 19980 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 20000 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 20020 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 900 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20040 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 20060 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + ADDCERTIFICATEINDEX + + + + + + +

+ 0001 + &P20_EPIT_ROOT + + + + + + + + +

+ + + + + STR + &F145_ROOTCERT_HEX +
+
+ + + 20080 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 20100 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 20120 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 20140 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 20160 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20180 + PRINTOUT + MACRO + 410010 + + + + V:0000000000000066;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 424 + + + + + + +

+ Inserting Part-20 CharIN Root Cert. + 0 +

+ + + + + STR + +
+
+ + + 20200 + WARTEN + MACRO + 0 + + + + V:0000000000000066;P:(E); + + + + + +

+ + + + + NONE + + + + + + 20220 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 20240 + CONTROL + MACRO + 410050 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 20260 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000066;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 20280 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 20300 + WARTEN + MACRO + 0 + + + + V:0000000000000066;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20320 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000066;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 20340 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000066;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 20360 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000066;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 20380 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000066;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 20400 + STRCAT + MACRO + 410150 + + + + V:0000000000000066;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 20420 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000066;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 20440 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 20460 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000066;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 20480 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000066;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 20500 + CONTROL + MACRO + 410230 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 20520 + WARTEN + MACRO + 0 + + + + V:0000000000000066;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20540 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000066;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 20560 + STRCAT + MACRO + 410270 + + + + V:0000000000000066;P:(E); + + + + ADDCERTIFICATEINDEX + + + + + + +

+ 0001 + &P20_CHARIN_ROOT + + + + + + + + +

+ + + + + STR + &F145_ROOTCERT_HEX +
+
+ + + 20580 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 20600 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 20620 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000066;P:(E); + + + + WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 20640 + WARTEN + MACRO + 0 + + + + V:0000000000000066;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20660 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20680 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ IF + ((&P20OEMCnt >= 01) || (&P20EVCCCnt >= 01)) +

+ + + + + NONE + +
+
+ + + 20700 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 20720 + PRINTOUT + MACRO + 410010 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 425 + + + + + + +

+ Delete Part20 OEM Leaf Cert. + 0 +

+ + + + + STR + +
+
+ + + 20740 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 20760 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 20780 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20800 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 20820 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 20840 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 20860 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20880 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 20900 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 20920 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 20940 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 20960 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 20980 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 21000 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + WZ + 10 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 21020 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 21040 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 21060 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 21080 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21100 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 21120 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 21140 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0102FFFF + 10000 + +

+ + + + + STR + +
+
+ + + 21160 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + Delete Part20 OEM Leaf Cert. + + + + + + +

+ 1 + 3 +

+ + 000000 + FFFFFF + + HEX + +
+
+ + + 21180 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21200 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 21220 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0202FFFF + 10000 + +

+ + + + + STR + +
+
+ + + 21240 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + Delete Part20 OEM SubCA Cert. + + + + + + +

+ 1 + 3 +

+ + 000000 + FFFFFF + + HEX + +
+
+ + + 21260 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21280 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 21300 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0302FFFF + 10000 + +

+ + + + + STR + +
+
+ + + 21320 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + Delete Vehicle Leaf Cert. + + + + + + +

+ 1 + 3 +

+ + 000000 + FFFFFF + + HEX + +
+
+ + + 21340 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21360 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 21380 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0402FFFF + 10000 + +

+ + + + + STR + +
+
+ + + 21400 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + Delete Vehicle SubCA Cert. + + + + + + +

+ 1 + 3 +

+ + 000000 + FFFFFF + + HEX + +
+
+ + + 21420 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21440 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 21460 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21480 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 431 + + + + + + +

+ Server : Part-20 OEM CSR Gen. + 0 +

+ + + + + STR + +
+
+ + + 21500 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 21520 + COMBLOCK2 + MACRO + 420040 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F142 + 10000 + +

+ + + + + STR + +
+
+ + + 21540 + BLOCKINT + MACRO + 420050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F142 + 62F142 + + HEX + +
+
+ + + 21560 + BLOCKINT + MACRO + 420060 + + + + V:0000000000000077;P:(E); + + + + Read PUBLICKEY (HEX132BYTE) + + + + + + +

+ 4 + 135 +

+ + + + + HEX + &F142_PUBLICKEY_HEX +
+
+ + + 21580 + PRINTOUT + MACRO + 420070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F142_PUBLICKEY_HEX + 0 +

+ + + + + STR + +
+
+ + + 21600 + STRCAT + MACRO + 420080 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &MAC_ADDRESS + : + 04 + &F142_PUBLICKEY_HEX + :P:2:OEM20:KM7: + &UnitCode + : + &TierCode +

+ + + + + STR + &CSRMESSAGE1 +
+
+ + + 21620 + SENDBYETHERNET + MACRO + 420100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + VPKI + TRUE + VPKI_CSRGEN_20PRVC + &CSRMESSAGE1 + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 21640 + PARSEMESSAGE + MACRO + 420120 + + + + V:0000000000000077;P:(E); + + + + Server - PCID ASCII + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/PCID + &F141_PCID20_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 21660 + PRINTOUT + MACRO + 420130 + + + + V:0000000000000077;P:(E); + + + + Server - PCID ASCII + + + + + + +

+ &F141_PCID20_HEX + 0 +

+ + + + + STR + +
+
+ + + 21680 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F141_PCID20_HEX + 3 + 38 +

+ + + + + STR + &PCID_ASCII_OEM20 +
+
+ + + 21700 + PARSEMESSAGE + MACRO + 420150 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/HASHEDTBSCSR + &CSRHASH_HEX_OEM20 + STR + + + + STR +

+ + + + + STR + +
+
+ + + 21720 + PRINTOUT + MACRO + 420160 + + + + V:0000000000000077;P:(E); + + + + Server - CSR HASH (HEX66BYTE) + + + + + + +

+ &CSRHASH_HEX_OEM20 + 0 +

+ + + + + STR + +
+
+ + + 21740 + STRCAT + MACRO + 420170 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index for CSR HASH + + + + + + +

+ 01 + &CSRHASH_HEX_OEM20 + + + + + + + + +

+ + + + + STR + &F143_CSRHASH_HEX +
+
+ + + 21760 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 21780 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 432 + + + + + + +

+ VCMS Signing Hash + 0 +

+ + + + + STR + +
+
+ + + 21800 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 21820 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 21840 + WARTEN + MACRO + 0 + wz 0 > 500, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21860 + CONTROL + MACRO + 420200 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 21880 + COMBLOCK2 + MACRO + 420210 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 21900 + BLOCKINT + MACRO + 420220 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 21920 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21940 + COMBLOCK2 + MACRO + 420240 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 21960 + BLOCKINT + MACRO + 420250 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 21980 + BLOCKINT + MACRO + 420260 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 22000 + BLOCKINT + MACRO + 420270 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 22020 + STRCAT + MACRO + 420300 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 22040 + SEEDKEY + MACRO + 420320 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 22060 + COMBLOCK2 + MACRO + 420340 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 22080 + COMBLOCK2 + MACRO + 420350 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 22100 + BLOCKINT + MACRO + 420360 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 22120 + CONTROL + MACRO + 420380 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 22140 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22160 + BERECHNEN + MACRO + 420400 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 22180 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF141 + 1000 + +

+ + + + + STR + +
+
+ + + 22200 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F141_PCID20_HEX + 10000 + +

+ + + + + STR + +
+
+ + + 22220 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write PCID (15118-20) + + + + + + +

+ 1 + 3 +

+ + 6EF141 + 6EF141 + + HEX + +
+
+ + + 22240 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22260 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF143 + 1000 + +

+ + + + + STR + +
+
+ + + 22280 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F143_CSRHASH_HEX + 10000 + +

+ + + + + STR + +
+
+ + + 22300 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write CSR HASH (15118-20) + + + + + + +

+ 1 + 3 +

+ + 6EF143 + 6EF143 + + HEX + +
+
+ + + 22320 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22340 + COMBLOCK2 + MACRO + 420440 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F144 + 10000 + +

+ + + + + STR + +
+
+ + + 22360 + BLOCKINT + MACRO + 420450 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F144 + 62F144 + + HEX + +
+
+ + + 22380 + BLOCKINT + MACRO + 420460 + + + + V:0000000000000077;P:(E); + + + + Read Signed HASH (15118-20) 132-BYTE + + + + + + +

+ 5 + 136 +

+ + + + + HEX + &F144_CSRHASHSIGNEDVALUE_HEX +
+
+ + + 22400 + PRINTOUT + MACRO + 420470 + + + + V:0000000000000077;P:(E); + + + + Signed HASH (15118-20) 132-BYTE + + + + + + +

+ &F144_CSRHASHSIGNEDVALUE_HEX + 0 +

+ + + + + STR + +
+
+ + + 22420 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &F144_CSRHASHSIGNEDVALUE_HEX + : + &UnitCode + : + &TierCode + : + &VehicleCode + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 22440 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &CSRSIGNEDMESSAGE + : + &MarketCode + : + &BrandCode + + + + + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 22460 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 22480 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 433 + + + + + + +

+ Part-20 OEM Cert. Issue from Server + 0 +

+ + + + + STR + +
+
+ + + 22500 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 22520 + SENDBYETHERNET + MACRO + 420500 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + VPKI + TRUE + VPKI_CERTPUB_20PRVC + &CSRSIGNEDMESSAGE + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 22540 + PARSEMESSAGE + MACRO + 420510 + + + + V:0000000000000077;P:(E); + + + + P20 OEM Leaf Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/LEAFCERTIFICATE + &OEMLEAF_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 22560 + PRINTOUT + MACRO + 420520 + + + + V:0000000000000077;P:(E); + + + + Part 20 OEM Leaf + + + + + + +

+ &OEMLEAF_HEX + 0 +

+ + + + + STR + +
+
+ + + 22580 + PARSEMESSAGE + MACRO + 420530 + + + + V:0000000000000077;P:(E); + + + + P20 SubCA Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/SUBCACERTIFICATE + &SUBCA_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 22600 + PRINTOUT + MACRO + 420540 + + + + V:0000000000000077;P:(E); + + + + Part 20 OEM Sub CA + + + + + + +

+ &SUBCA_HEX + 0 +

+ + + + + STR + +
+
+ + + 22620 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCA_HEX + 1889 + 1892 +

+ + + + + STR + &RP20SubCAOEMCRC +
+
+ + + 22640 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Received Sub CA - OEM P20 CRC + + + + + + +

+ &RP20SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 22660 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P20 CRC + + + + + + +

+ &P20SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 22680 + STRCMP + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part-20 Sub CA CRC Comp + + + + + + +

+ &RP20SubCAOEMCRC + &P20SubCAOEMCRC +

+ + 0 + 0 + + INT + +
+
+ + + 22700 + STRCAT + MACRO + 420550 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0101 + &OEMLEAF_HEX + + + + + + + + +

+ + + + + STR + &F145_OEMLEAF_HEX +
+
+ + + 22720 + STRCAT + MACRO + 420560 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0201 + &SUBCA_HEX + + + + + + + + +

+ + + + + STR + &F145_SUBCA_HEX +
+
+ + + 22740 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 22760 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 434 + + + + + + +

+ Inserting Part-20 OEM Leaf Cert. + 0 +

+ + + + + STR + +
+
+ + + 22780 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 22800 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 22820 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 22840 + CONTROL + MACRO + 420580 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 22860 + COMBLOCK2 + MACRO + 420590 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 22880 + BLOCKINT + MACRO + 420600 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 22900 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22920 + COMBLOCK2 + MACRO + 420620 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 22940 + BLOCKINT + MACRO + 420630 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 22960 + BLOCKINT + MACRO + 420640 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 22980 + BLOCKINT + MACRO + 420650 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 23000 + STRCAT + MACRO + 420680 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 23020 + SEEDKEY + MACRO + 420700 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 23040 + COMBLOCK2 + MACRO + 420720 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 23060 + COMBLOCK2 + MACRO + 420730 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 23080 + BLOCKINT + MACRO + 420740 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 23100 + CONTROL + MACRO + 420760 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 23120 + WARTEN + MACRO + 0 + 600 > 700, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23140 + BERECHNEN + MACRO + 420780 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 23160 + COMBLOCK2 + MACRO + 420820 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 5000 + +

+ + + + + STR + +
+
+ + + 23180 + COMBLOCK2 + MACRO + 420830 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_OEMLEAF_HEX + 10000 + +

+ + + + + STR + +
+
+ + + 23200 + BLOCKINT + MACRO + 420840 + + + + V:0000000000000077;P:(E); + + + + OEMLEAFCERTIFICATEDATA + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 23220 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23240 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 435 + + + + + + +

+ Inserting Part-20 SubCA Cert. + 0 +

+ + + + + STR + +
+
+ + + 23260 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 23280 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 23300 + WARTEN + MACRO + 0 + wz 0 > 500, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23320 + CONTROL + MACRO + 420850 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 23340 + COMBLOCK2 + MACRO + 420860 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 23360 + BLOCKINT + MACRO + 420870 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 23380 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23400 + COMBLOCK2 + MACRO + 420890 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 23420 + BLOCKINT + MACRO + 420900 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 23440 + BLOCKINT + MACRO + 420910 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 23460 + BLOCKINT + MACRO + 420920 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 23480 + STRCAT + MACRO + 420950 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 23500 + SEEDKEY + MACRO + 420970 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 23520 + COMBLOCK2 + MACRO + 420990 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 23540 + COMBLOCK2 + MACRO + 421000 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 23560 + BLOCKINT + MACRO + 421010 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 23580 + CONTROL + MACRO + 421030 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 23600 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23620 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 23640 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 5000 + +

+ + + + + STR + +
+
+ + + 23660 + COMBLOCK2 + MACRO + 421100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_SUBCA_HEX + 10000 + +

+ + + + + STR + +
+
+ + + 23680 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000077;P:(E); + + + + SUBCACERTIFICATEDATA + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 23700 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23720 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 436 + + + + + + +

+ Verifying Cert. Result + 0 +

+ + + + + STR + +
+
+ + + 23740 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 23760 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F141 + 5000 + +

+ + + + + STR + +
+
+ + + 23780 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READPCIDDATA(15118-20) + + + + + + +

+ 1 + 3 +

+ + 62F141 + 62F141 + + HEX + +
+
+ + + 23800 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Read PCID (15118-20) + + + + + + +

+ 5 + 22 +

+ + + + + HEX + &READ_PCID +
+
+ + + 23820 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-20 PCID (Server) + + + + + + +

+ &PCID_ASCII_OEM20 + 0 +

+ + + + + STR + +
+
+ + + 23840 + PRINTOUT + MACRO + 421180 + + + + V:0000000000000077;P:(E); + + + + Part-20 PCID (VCMS) + + + + + + +

+ &READ_PCID + 0 +

+ + + + + STR + +
+
+ + + 23860 + STRCMP + MACRO + 421190 + + + + V:0000000000000077;P:(E); + + + + Compare PCID + + + + + + +

+ &PCID_ASCII_OEM20 + &READ_PCID +

+ + 0 + 0 + + INT + +
+
+ + + 23880 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 23900 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 20 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23920 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + ▣ Phase 441 + + + + + + +

+ Server : Part-20 EVCC CSR Gen. + 0 +

+ + + + + STR + +
+
+ + + 23940 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23960 + COMBLOCK2 + MACRO + 420040 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F152 + 10000 + +

+ + + + + STR + +
+
+ + + 23980 + BLOCKINT + MACRO + 420050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F152 + 62F152 + + HEX + +
+
+ + + 24000 + BLOCKINT + MACRO + 420060 + + + + V:0000000000000077;P:(E); + + + + Read PUBLICKEY (HEX132BYTE) + + + + + + +

+ 4 + 135 +

+ + + + + HEX + &F142_PUBLICKEY_HEX +
+
+ + + 24020 + PRINTOUT + MACRO + 420070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F142_PUBLICKEY_HEX + 0 +

+ + + + + STR + +
+
+ + + 24040 + STRCAT + MACRO + 420080 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &MAC_ADDRESS + : + 04 + &F142_PUBLICKEY_HEX + :V:2:EV:KM7: + &UnitCode + : + &TierCode +

+ + + + + STR + &CSRMESSAGE1 +
+
+ + + 24060 + SENDBYETHERNET + MACRO + 420100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + VPKI + TRUE + VPKI_CSRGEN_20VHCC + &CSRMESSAGE1 + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 24080 + PARSEMESSAGE + MACRO + 420120 + + + + V:0000000000000077;P:(E); + + + + Server - EVCC ID ASCII + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/EVCCID + &F140_EVCCID_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 24100 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F140_EVCCID_HEX + 3 + 42 +

+ + + + + STR + &EVCCID_HEX +
+
+ + + 24120 + PRINTOUT + MACRO + 420130 + + + + V:0000000000000077;P:(E); + + + + Server - EVCC ID ASCII + + + + + + +

+ &F140_EVCCID_HEX + 0 +

+ + + + + STR + +
+
+ + + 24140 + PARSEMESSAGE + MACRO + 420150 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/HASHEDTBSCSR + &CSRHASH_HEX_EV20 + STR + + + + STR +

+ + + + + STR + +
+
+ + + 24160 + PRINTOUT + MACRO + 420160 + + + + V:0000000000000077;P:(E); + + + + Server - CSR HASH (HEX66BYTE) + + + + + + +

+ &CSRHASH_HEX_EV20 + 0 +

+ + + + + STR + +
+
+ + + 24180 + STRCAT + MACRO + 420170 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index for CSR HASH + + + + + + +

+ 03 + &CSRHASH_HEX_EV20 + + + + + + + + +

+ + + + + STR + &F143_CSRHASH_HEX +
+
+ + + 24200 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 24220 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 442 + + + + + + +

+ VCMS Signing Hash + 0 +

+ + + + + STR + +
+
+ + + 24240 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 24260 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 24280 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 24300 + CONTROL + MACRO + 420200 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 24320 + COMBLOCK2 + MACRO + 420210 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 24340 + BLOCKINT + MACRO + 420220 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 24360 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24380 + COMBLOCK2 + MACRO + 420240 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 24400 + BLOCKINT + MACRO + 420250 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 24420 + BLOCKINT + MACRO + 420260 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 24440 + BLOCKINT + MACRO + 420270 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 24460 + STRCAT + MACRO + 420300 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 24480 + SEEDKEY + MACRO + 420320 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 24500 + COMBLOCK2 + MACRO + 420340 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 24520 + COMBLOCK2 + MACRO + 420350 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 24540 + BLOCKINT + MACRO + 420360 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 24560 + CONTROL + MACRO + 420380 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 24580 + WARTEN + MACRO + 0 + 600 > 700, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 400 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24600 + BERECHNEN + MACRO + 420400 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 24620 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF140 + 1000 + +

+ + + + + STR + +
+
+ + + 24640 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F140_EVCCID_HEX + 10000 + +

+ + + + + STR + +
+
+ + + 24660 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write EVCC ID (EVCC) + + + + + + +

+ 1 + 3 +

+ + 6EF140 + 6EF140 + + HEX + +
+
+ + + 24680 + WARTEN + MACRO + 0 + 20 > 30, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24700 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF143 + 1000 + +

+ + + + + STR + +
+
+ + + 24720 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F143_CSRHASH_HEX + 10000 + +

+ + + + + STR + +
+
+ + + 24740 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write CSR HASH (EVCC) + + + + + + +

+ 1 + 3 +

+ + 6EF143 + 6EF143 + + HEX + +
+
+ + + 24760 + WARTEN + MACRO + 0 + 20 > 30, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24780 + COMBLOCK2 + MACRO + 420440 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F144 + 10000 + +

+ + + + + STR + +
+
+ + + 24800 + BLOCKINT + MACRO + 420450 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F144 + 62F144 + + HEX + +
+
+ + + 24820 + BLOCKINT + MACRO + 420460 + + + + V:0000000000000077;P:(E); + + + + Read Signed HASH (EVCC) 132-BYTE + + + + + + +

+ 5 + 136 +

+ + + + + HEX + &F144_CSRHASHSIGNEDVALUE_HEX +
+
+ + + 24840 + PRINTOUT + MACRO + 420470 + + + + V:0000000000000077;P:(E); + + + + Signed HASH (EVCC) 132-BYTE + + + + + + +

+ &F144_CSRHASHSIGNEDVALUE_HEX + 0 +

+ + + + + STR + +
+
+ + + 24860 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &F144_CSRHASHSIGNEDVALUE_HEX + : + &UnitCode + : + &TierCode + : + &VehicleCode + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 24880 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &CSRSIGNEDMESSAGE + : + &MarketCode + : + &BrandCode + + + + + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 24900 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 20 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24920 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 443 + + + + + + +

+ Vehicle Cert. Issue from Server + 0 +

+ + + + + STR + +
+
+ + + 24940 + WARTEN + MACRO + 0 + 0 > 100, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24960 + SENDBYETHERNET + MACRO + 420500 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ SENDBYETHERNET + VPKI + TRUE + VPKI_CERTPUB_20VHCC + &CSRSIGNEDMESSAGE + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 24980 + PARSEMESSAGE + MACRO + 420510 + + + + V:0000000000000077;P:(E); + + + + Vehicle Leaf Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/LEAFCERTIFICATE + &OEMLEAF_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 25000 + PRINTOUT + MACRO + 420520 + + + + V:0000000000000077;P:(E); + + + + Vehicle Leaf Cert. + + + + + + +

+ &OEMLEAF_HEX + 0 +

+ + + + + STR + +
+
+ + + 25020 + PARSEMESSAGE + MACRO + 420530 + + + + V:0000000000000077;P:(E); + + + + Vechicle SubCA Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/SUBCACERTIFICATE + &SUBCA_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 25040 + PRINTOUT + MACRO + 420540 + + + + V:0000000000000077;P:(E); + + + + Vechicle SubCA Cert. + + + + + + +

+ &SUBCA_HEX + 0 +

+ + + + + STR + +
+
+ + + 25060 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCA_HEX + 1889 + 1892 +

+ + + + + STR + &RP20SubCAVHCCRC +
+
+ + + 25080 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Received Sub CA - Vehicle P20 CRC + + + + + + +

+ &RP20SubCAVHCCRC + 0 +

+ + + + + STR + - +
+
+ + + 25100 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - Vehicle P20 CRC + + + + + + +

+ &P20SubCAVHCCRC + 0 +

+ + + + + STR + - +
+
+ + + 25120 + STRCMP + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part-20 Vehicle Sub CA CRC Comp + + + + + + +

+ &RP20SubCAVHCCRC + &P20SubCAVHCCRC +

+ + 0 + 0 + + INT + +
+
+ + + 25140 + STRCAT + MACRO + 420550 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0301 + &OEMLEAF_HEX + + + + + + + + +

+ + + + + STR + &F145_OEMLEAF_HEX +
+
+ + + 25160 + STRCAT + MACRO + 420560 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0401 + &SUBCA_HEX + + + + + + + + +

+ + + + + STR + &F145_SUBCA_HEX +
+
+ + + 25180 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 25200 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 444 + + + + + + +

+ Inserting Vehicle Leaf Cert. + 0 +

+ + + + + STR + +
+
+ + + 25220 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 25240 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 25260 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 25280 + CONTROL + MACRO + 420580 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 25300 + COMBLOCK2 + MACRO + 420590 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 25320 + BLOCKINT + MACRO + 420600 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 25340 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 25360 + COMBLOCK2 + MACRO + 420620 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 25380 + BLOCKINT + MACRO + 420630 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 25400 + BLOCKINT + MACRO + 420640 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 25420 + BLOCKINT + MACRO + 420650 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 25440 + STRCAT + MACRO + 420680 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 25460 + SEEDKEY + MACRO + 420700 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 25480 + COMBLOCK2 + MACRO + 420720 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 25500 + COMBLOCK2 + MACRO + 420730 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 25520 + BLOCKINT + MACRO + 420740 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 25540 + CONTROL + MACRO + 420760 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 25560 + WARTEN + MACRO + 0 + 600 > 700, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 25580 + BERECHNEN + MACRO + 420780 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 25600 + COMBLOCK2 + MACRO + 420820 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 5000 + +

+ + + + + STR + +
+
+ + + 25620 + COMBLOCK2 + MACRO + 420830 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_OEMLEAF_HEX + 10000 + +

+ + + + + STR + +
+
+ + + 25640 + BLOCKINT + MACRO + 420840 + + + + V:0000000000000077;P:(E); + + + + VEHICLE LEAF CERTIFICATE DATA + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 25660 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 25680 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 445 + + + + + + +

+ Inserting Vehicle SubCA Cert. + 0 +

+ + + + + STR + +
+
+ + + 25700 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 25720 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 25740 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 25760 + CONTROL + MACRO + 420850 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 25780 + COMBLOCK2 + MACRO + 420860 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 25800 + BLOCKINT + MACRO + 420870 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 25820 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 25840 + COMBLOCK2 + MACRO + 420890 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 25860 + BLOCKINT + MACRO + 420900 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 25880 + BLOCKINT + MACRO + 420910 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 25900 + BLOCKINT + MACRO + 420920 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 25920 + STRCAT + MACRO + 420950 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 25940 + SEEDKEY + MACRO + 420970 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 25960 + COMBLOCK2 + MACRO + 420990 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 25980 + COMBLOCK2 + MACRO + 421000 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 26000 + BLOCKINT + MACRO + 421010 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 26020 + CONTROL + MACRO + 421030 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 26040 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26060 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 26080 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 5000 + +

+ + + + + STR + +
+
+ + + 26100 + COMBLOCK2 + MACRO + 421100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_SUBCA_HEX + 10000 + +

+ + + + + STR + +
+
+ + + 26120 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000077;P:(E); + + + + SUBCACERTIFICATEDATA + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 26140 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26160 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 446 + + + + + + +

+ Verifying Cert. Result + 0 +

+ + + + + STR + +
+
+ + + 26180 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 26200 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F140 + 5000 + +

+ + + + + STR + +
+
+ + + 26220 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READPCIDDATA(15118-20) + + + + + + +

+ 1 + 3 +

+ + 62F140 + 62F140 + + HEX + +
+
+ + + 26240 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Read EVCC ID (15118-20) + + + + + + +

+ 5 + 24 +

+ + + + + HEX + &READ_EVCCID +
+
+ + + 26260 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + EVCC ID (Server) + + + + + + +

+ &EVCCID_HEX + 0 +

+ + + + + STR + +
+
+ + + 26280 + PRINTOUT + MACRO + 421180 + + + + V:0000000000000077;P:(E); + + + + EVCC ID (VCMS) + + + + + + +

+ &READ_EVCCID + 0 +

+ + + + + STR + +
+
+ + + 26300 + STRCMP + MACRO + 421190 + + + + V:0000000000000077;P:(E); + + + + Compare EVCC ID + + + + + + +

+ &EVCCID_HEX + &READ_EVCCID +

+ + 0 + 0 + + INT + +
+
+ + + 26320 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F153 + 5000 + +

+ + + + + STR + +
+
+ + + 26340 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READ_CERT_COUNT + + + + + + +

+ 1 + 3 +

+ + 62F153 + 62F153 + + HEX + +
+
+ + + 26360 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + Part20 OEM Cert. + + + + + + +

+ 13 + 13 +

+ + 1 + 1 + + INT + &P20OEMCnt +
+
+ + + 26380 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part20 EVCC Cert. + + + + + + +

+ 14 + 14 +

+ + 1 + 1 + + INT + &P20EVCCCnt +
+
+ + + 26400 + BLOCKINT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part20 V2G Root Cert. Index 01 + + - + - + - + - + +

+ 15 + 15 +

+ + 0 + 1 + + INT + &P20RootCnt_01 +
+
+ + + 26420 + BLOCKINT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part20 V2G Root Cert. Index 02 + + - + - + - + - + +

+ 16 + 16 +

+ + 0 + 1 + + INT + &P20RootCnt_02 +
+
+ + + 26440 + BERECHNEN + MACRO + 0 + + + + V:0000000000000011;P:(E); + + + + No. of Part20 V2G Root Cert. + + + + + + +

+ &P20RootCnt_01 + &P20RootCnt_02 + 0 +

+ + 1 + 1 + + INT + &P20RootCnt +
+
+ + + 26460 + BERECHNEN + MACRO + 0 + + + + V:0000000000000066;P:(E); + + + + No. of Part20 V2G Root Cert. + + + + + + +

+ &P20RootCnt_01 + &P20RootCnt_02 + 0 +

+ + 2 + 2 + + INT + &P20RootCnt +
+
+ + + 26480 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + V2G Root P20 Cert. Counting + + + + + + +

+ &P20RootCnt + 0 +

+ + + + + STR + +
+
+ + + 26500 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-20 OEM Leaf Cert. Counting + + + + + + +

+ &P20OEMCnt + 0 +

+ + + + + STR + +
+
+ + + 26520 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-20 EVCC Cert. Counting + + + + + + +

+ &P20EVCCCnt + 0 +

+ + + + + STR + +
+
+ + + 26540 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 26560 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Phase 521-2 + + + + + + +

+ PSD Measurement Read + - +

+ + + + + STR + - +
+
+ + + 26580 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 26600 + RFMEAS_PSD + MACRO + 0 + + + + V:;P:(E); + + + + PSD Evaluation + + + +

+ PSD + 15000000 + 30000000 + 10000 + 100000 + ON + 26000000 + 32 + OFF + READ +

+ + -90 + -60 + + DEZ + &ResultPSD +
+
+ + + 26620 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 40 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26640 + WARTEN + MACRO + 0 + + + + + + + + WZ + - + - + NONE + + + + + + + +

+ + + + + NONE + + + + + + 26660 + WARTEN + MACRO + 0 + + + + + + + + + +

+ + + + + NONE + + + + + + 26680 + WARTEN + MACRO + 0 + + + PLC_OFF5********************************************************** + + + + + A033_SV + - + - + NONE + + + + + A035_SV + - + - + NONE + + + + + IQ_UMAX + - + - + NONE + + + + + PLC + - + - + NONE + + + + + UB + - + - + NONE + + + + + UB_IMAX + 10 + - + A + + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26700 + PRINTOUT + MACRO + 610000 + + + PCM_CAN_INIT******************************************************* + V:;P:(E); + + + + IQ_UMAX + 6 + - + V + + + + + UB + 12 + - + V + + + + + UB_IMAX + 3 + - + A + + + + + + PRINTMODULENAME + + + + + + +

+ CAN_INIT + 0 +

+ + + + + STR + +
+
+ + + 26720 + CAN2000INI2 + MACRO + 630040 + CAN Port Close + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 26740 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 26760 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 26780 + CAN2000INI2 + MACRO + 610020 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 26800 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A033_SV + UB + - + SA + + + + + A035_SV + UB + - + SA + + + + + + + +

+ + + + + NONE + + + + + + 26820 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26840 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 321 + + + + + + +

+ Secure Debug (PCM) Check + +

+ + + + + NONE + - +
+
+ + + 26860 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 26880 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + UDS DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 26900 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 26920 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 26940 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 322 + + + + + + +

+ PCM Password Generation + 0 +

+ + + + + STR + - +
+
+ + + 26960 + KUNDENDAT1 + MACRO + 0 + SFRV (Seed Fixed Random Variable) - 010 = 호기번호 ASCII 4-Byte (HEXString) + + + V:;P:(E); + + + + + + + + + + +

+ SFRV + 010 + - + - + - + - +

+ + + + + HEX + &SFRV010 +
+
+ + + 26980 + KUNDENDAT1 + MACRO + 0 + SFRV (Seed Fixed Random Variable) : 020 = 일시분초 (ddHHmmss) 4-Byte + + + V:;P:(E); + + + + + + + + + + +

+ SFRV + 020 + - + - + - + - +

+ + + + + HEX + &SFRV020 +
+
+ + + 27000 + KUNDENDAT1 + MACRO + 0 + RN (Random Number) : 320 = 32-Byte Password 생성. 4-Byte 2개 변수를 입력하여 생성. + + + V:;P:(E); + + + + + + + + + + +

+ RN + 320 + &SFRV010 + &SFRV020 + - + - +

+ + + + + HEX + &RN320 +
+
+ + + 27020 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Password Seed RV 01 + + + + + + +

+ &SFRV010 + - +

+ + + + + STR + - +
+
+ + + 27040 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Password Seed RV 02 + + + + + + +

+ &SFRV020 + - +

+ + + + + STR + - +
+
+ + + 27060 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + PCM Password + + + + + + +

+ &RN320 + - +

+ + + + + STR + - +
+
+ + + 27080 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F151 + 1000 + +

+ + + + + STR + +
+
+ + + 27100 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Activation + + + + + + +

+ 1 + 3 +

+ + 62F151 + 62F151 + + HEX + +
+
+ + + 27120 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status + + + + + + +

+ 4 + 4 +

+ + 00 + FF + + HEX + &PCM_SB +
+
+ + + 27140 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Firmware Tamper Det. Status + + + + + + +

+ 5 + 5 +

+ + 00 + FF + + HEX + &PCM_FTD +
+
+ + + 27160 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Status + + + + + + +

+ 6 + 6 +

+ + 00 + FF + + HEX + &PCM_SDS +
+
+ + + 27180 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Config Lock Status + + + + + + +

+ 7 + 7 +

+ + 00 + FF + + HEX + &PCM_CFGLock +
+
+ + + 27200 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 27220 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 27240 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 27260 + CONTROL + MACRO + 420580 + + + + V:;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 27280 + COMBLOCK2 + MACRO + 420590 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 27300 + BLOCKINT + MACRO + 420600 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 27320 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 27340 + COMBLOCK2 + MACRO + 420620 + + + + V:;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 27360 + BLOCKINT + MACRO + 420630 + + + + V:;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 27380 + BLOCKINT + MACRO + 420640 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 27400 + BLOCKINT + MACRO + 420650 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 27420 + STRCAT + MACRO + 420680 + + + + V:;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 27440 + SEEDKEY + MACRO + 420700 + + + + V:;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 27460 + COMBLOCK2 + MACRO + 420720 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 27480 + COMBLOCK2 + MACRO + 420730 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 27500 + BLOCKINT + MACRO + 420740 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 27520 + CONTROL + MACRO + 420760 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 27540 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 900 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 27560 + PRINTOUT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 323 + + + + + + +

+ PCM Memory Partition Swap (A→B) + 0 +

+ + + + + STR + - +
+
+ + + 27580 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 27600 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + +

+ + + + + STR + +
+
+ + + 27620 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 10F1FB + 5000 + +

+ + + + + STR + +
+
+ + + 27640 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + + + + + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 27660 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + Command + + + + + + +

+ 4 + 4 +

+ + 10 + 10 + + HEX + +
+
+ + + 27680 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (A) + + - + - + - + - + +

+ 5 + 5 +

+ + 00 + FF + + HEX + &PartitionStatus +
+
+ + + 27700 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 27720 + CONTROL + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ IF + (&PartitionStatus != 11) +

+ + + + + INT + +
+
+ + + 27740 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + +

+ + + + + STR + +
+
+ + + 27760 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 130BF1FB + 5000 + +

+ + + + + STR + +
+
+ + + 27780 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + + + + + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 27800 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Command + + - + - + - + - + +

+ 4 + 4 +

+ + 13 + 13 + + HEX + +
+
+ + + 27820 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (B) + + - + - + - + - + +

+ 5 + 5 +

+ + 0B + 0B + + HEX + +
+
+ + + 27840 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 27860 + CONTROL + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 27880 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 27900 + BERECHNEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 27920 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 27940 + CONTROL + MACRO + 420580 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 27960 + COMBLOCK2 + MACRO + 420590 + + + + V:0000000000000007;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 27980 + BLOCKINT + MACRO + 420600 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 28000 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 28020 + COMBLOCK2 + MACRO + 420620 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 28040 + BLOCKINT + MACRO + 420630 + + + + V:0000000000000007;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 28060 + BLOCKINT + MACRO + 420640 + + + + V:0000000000000007;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 28080 + BLOCKINT + MACRO + 420650 + + + + V:0000000000000007;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 28100 + STRCAT + MACRO + 420680 + + + + V:0000000000000007;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 28120 + SEEDKEY + MACRO + 420700 + + + + V:0000000000000007;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 28140 + COMBLOCK2 + MACRO + 420720 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 28160 + COMBLOCK2 + MACRO + 420730 + + + + V:0000000000000007;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 28180 + BLOCKINT + MACRO + 420740 + + + + V:0000000000000007;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 28200 + CONTROL + MACRO + 420760 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 28220 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 28240 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 324 + + + + + + +

+ Secure Boot Enable + - +

+ + + + + STR + - +
+
+ + + 28260 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 110 + 0 +

+ + + + + INT + &SBResult +
+
+ + + 28280 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28300 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&PCM_SB != 3) +

+ + + + + NONE + +
+
+ + + 28320 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28340 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF150 + 5000 + +

+ + + + + STR + +
+
+ + + 28360 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 01 + 5000 + +

+ + + + + STR + +
+
+ + + 28380 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Secure Boot Enable + + + + + + +

+ 1 + 3 +

+ + 6EF150 + 6EF150 + + HEX + +
+
+ + + 28400 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Action Result + + + + + + +

+ 1 + 1 +

+ + 6E + 6E + + HEX + &SBResult +
+
+ + + 28420 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 28440 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ IF + (&SBResult != 110) +

+ + + + + NONE + +
+
+ + + 28460 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &SBResult +
+
+ + + 28480 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 28500 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 28520 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28540 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 325 + + + + + + +

+ FTD Run Disable + 0 +

+ + + + + STR + - +
+
+ + + 28560 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 110 + 0 +

+ + + + + INT + &FTDResult +
+
+ + + 28580 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28600 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&PCM_FTD != 2)&&(&SBResult == 110) +

+ + + + + NONE + +
+
+ + + 28620 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 28640 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF150 + 5000 + +

+ + + + + STR + +
+
+ + + 28660 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 02 + 5000 + +

+ + + + + STR + +
+
+ + + 28680 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + F/W Tamper Det. Disable + + + + + + +

+ 1 + 3 +

+ + 6EF150 + 6EF150 + + HEX + +
+
+ + + 28700 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Action Result + + + + + + +

+ 1 + 1 +

+ + 6E + 6E + + HEX + &FTDResult +
+
+ + + 28720 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 28740 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ELSE + +

+ + + + + NONE + +
+
+ + + 28760 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &FTDResult +
+
+ + + 28780 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 28800 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28820 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 326 + + + + + + +

+ Secure Debug Enable + - +

+ + + + + STR + - +
+
+ + + 28840 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 110 + 0 +

+ + + + + INT + &SDSResult +
+
+ + + 28860 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28880 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&PCM_SDS!= 1)&&(&FTDResult == 110) +

+ + + + + NONE + +
+
+ + + 28900 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 28920 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF150 + 5000 + +

+ + + + + STR + +
+
+ + + 28940 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 03 + 5000 + +

+ + + + + STR + +
+
+ + + 28960 + COMBLOCK2 + MACRO + 421100 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &RN320 + 5000 + +

+ + + + + STR + +
+
+ + + 28980 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Secure Debug Enable + + + + + + +

+ 1 + 3 +

+ + 6EF150 + 6EF150 + + HEX + +
+
+ + + 29000 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Action Result + + + + + + +

+ 1 + 1 +

+ + 6E + 6E + + HEX + &SDSResult +
+
+ + + 29020 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29040 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ELSE + +

+ + + + + NONE + +
+
+ + + 29060 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &SDSResult +
+
+ + + 29080 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 29100 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29120 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 327 + + + + + + +

+ Confguration Lock + - +

+ + + + + STR + - +
+
+ + + 29140 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29160 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&PCM_CFGLock != 1)&&(&SDSResult == 110) +

+ + + + + NONE + +
+
+ + + 29180 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29200 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF150 + 5000 + +

+ + + + + STR + +
+
+ + + 29220 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 04 + 5000 + +

+ + + + + STR + +
+
+ + + 29240 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Configuration Lock + + + + + + +

+ 1 + 3 +

+ + 6EF150 + 6EF150 + + HEX + +
+
+ + + 29260 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29280 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 29300 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29320 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29340 + PRINTOUT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 328 + + + + + + +

+ PCM Memory Partition Swap (B→A) + 0 +

+ + + + + STR + - +
+
+ + + 29360 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29380 + BERECHNEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 29400 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29420 + CONTROL + MACRO + 420580 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 29440 + COMBLOCK2 + MACRO + 420590 + + + + V:0000000000000007;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 29460 + BLOCKINT + MACRO + 420600 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 29480 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29500 + COMBLOCK2 + MACRO + 420620 + + + + V:0000000000000007;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 29520 + BLOCKINT + MACRO + 420630 + + + + V:0000000000000007;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 29540 + BLOCKINT + MACRO + 420640 + + + + V:0000000000000007;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 29560 + BLOCKINT + MACRO + 420650 + + + + V:0000000000000007;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 29580 + STRCAT + MACRO + 420680 + + + + V:0000000000000007;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 29600 + SEEDKEY + MACRO + 420700 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 29620 + COMBLOCK2 + MACRO + 420720 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 29640 + COMBLOCK2 + MACRO + 420730 + + + + V:0000000000000007;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 29660 + BLOCKINT + MACRO + 420740 + + + + V:0000000000000007;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 29680 + CONTROL + MACRO + 420760 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 29700 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29720 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + +

+ + + + + STR + +
+
+ + + 29740 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 10F1FB + 5000 + +

+ + + + + STR + +
+
+ + + 29760 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + - + - + - + - + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 29780 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + Command + + + + + + +

+ 4 + 4 +

+ + 10 + 10 + + HEX + +
+
+ + + 29800 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (B) + + - + - + - + - + +

+ 5 + 5 +

+ + 00 + FF + + HEX + +
+
+ + + 29820 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29840 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + +

+ + + + + STR + +
+
+ + + 29860 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 130AF1FB + 20000 + +

+ + + + + STR + +
+
+ + + 29880 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + + + + + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 29900 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Command + + - + - + - + - + +

+ 4 + 4 +

+ + 13 + 13 + + HEX + +
+
+ + + 29920 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (A) + + - + - + - + - + +

+ 5 + 5 +

+ + 0A + 0A + + HEX + +
+
+ + + 29940 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29960 + PRINTOUT + MACRO + 610000 + + + PCM_CAN_INIT******************************************************* + V:;P:(E); + + + + PRINTMODULENAME + + + + + + +

+ CAN_INIT + 0 +

+ + + + + STR + +
+
+ + + 29980 + CAN2000INI2 + MACRO + 630040 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 30000 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:; + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 +

+ + + + + STR + +
+
+ + + 30020 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30040 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A019_SV + UB + A038 + NONE + + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30060 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + ▣ Step 329 + + + + + + +

+ Secure Debug (CMS) Check + +

+ + + + + NONE + - +
+
+ + + 30080 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30100 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + UDS DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 30120 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 30140 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30160 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 330 + + + + + + +

+ CMS Password Generation + 0 +

+ + + + + STR + - +
+
+ + + 30180 + KUNDENDAT1 + MACRO + 0 + SFRV (Seed Fixed Random Variable) - 010 = 호기번호 ASCII 4-Byte (HEXString) + + + V:;P:(E); + + + + + + + + + + +

+ SFRV + 010 + - + - + - + - +

+ + + + + HEX + &SFRV010 +
+
+ + + 30200 + KUNDENDAT1 + MACRO + 0 + SFRV (Seed Fixed Random Variable) : 021 = 일시분초 (ssmmHHdd) 4-Byte + + + V:;P:(E); + + + + + + + + + + +

+ SFRV + 021 + - + - + - + - +

+ + + + + HEX + &SFRV021 +
+
+ + + 30220 + KUNDENDAT1 + MACRO + 0 + RN (Random Number) : 160 = 16-Byte Password 생성. 4-Byte 2개 변수를 입력하여 생성. + + + V:;P:(E); + + + + + + + + + + +

+ RN + 160 + &SFRV010 + &SFRV021 + - + - +

+ + + + + HEX + &RN160 +
+
+ + + 30240 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Password Seed RV 01 + + + + + + +

+ &SFRV010 + - +

+ + + + + STR + - +
+
+ + + 30260 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Password Seed RV 02 + + + + + + +

+ &SFRV021 + - +

+ + + + + STR + - +
+
+ + + 30280 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + CMS Password + + + + + + +

+ &RN160 + - +

+ + + + + STR + - +
+
+ + + 30300 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30320 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F14A + 1000 + +

+ + + + + STR + +
+
+ + + 30340 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Activation + + + + + + +

+ 1 + 3 +

+ + 62F14A + 62F14A + + HEX + +
+
+ + + 30360 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #1 + + + + + + +

+ 4 + 4 +

+ + 00 + FF + + HEX + &PCM_SB1 +
+
+ + + 30380 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #2 + + + + + + +

+ 5 + 5 +

+ + 00 + FF + + HEX + &PCM_SB2 +
+
+ + + 30400 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #3 + + + + + + +

+ 6 + 6 +

+ + 00 + FF + + HEX + &PCM_SB3 +
+
+ + + 30420 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #4 + + + + + + +

+ 7 + 7 +

+ + 00 + FF + + HEX + &PCM_SB4 +
+
+ + + 30440 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #5 + + + + + + +

+ 8 + 8 +

+ + 00 + FF + + HEX + &PCM_SB5 +
+
+ + + 30460 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30480 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ IF + (&PCM_SB3 == 0) +

+ + + + + INT + +
+
+ + + 30500 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 30520 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30540 + CONTROL + MACRO + 420580 + + + + V:;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 30560 + COMBLOCK2 + MACRO + 420590 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 30580 + BLOCKINT + MACRO + 420600 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 30600 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30620 + COMBLOCK2 + MACRO + 420620 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 30640 + BLOCKINT + MACRO + 420630 + + + + V:;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 30660 + BLOCKINT + MACRO + 420640 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 30680 + BLOCKINT + MACRO + 420650 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 30700 + STRCAT + MACRO + 420680 + + + + V:;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 30720 + SEEDKEY + MACRO + 420700 + + + + V:;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_CMS + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 30740 + COMBLOCK2 + MACRO + 420720 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 30760 + COMBLOCK2 + MACRO + 420730 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 30780 + BLOCKINT + MACRO + 420740 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 30800 + CONTROL + MACRO + 420760 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 30820 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30840 + PRINTOUT + MACRO + 420770 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ &VALUE + 0 +

+ + + + + STR + +
+
+ + + 30860 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 331 + + + + + + +

+ CMS Secure Debug Enable + 0 +

+ + + + + STR + - +
+
+ + + 30880 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2EF149 + 5000 + +

+ + + + + STR + +
+
+ + + 30900 + COMBLOCK2 + MACRO + 421100 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &RN160 + 5000 + +

+ + + + + STR + +
+
+ + + 30920 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Secure Debug Enable + + + + + + +

+ 1 + 3 +

+ + 6EF149 + 6EF149 + + HEX + +
+
+ + + 30940 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 1200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30960 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 30980 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31000 + PRINTOUT + MACRO + 610000 + + + PCM_CAN_INIT******************************************************* + V:;P:(E); + + + + A033_SV + - + - + NONE + + + + + A035_SV + - + - + NONE + + + + + + Power Off + + + + + + +

+ VCMS and CAN Channel Reset + 0 +

+ + + + + STR + +
+
+ + + 31020 + CAN2000INI2 + MACRO + 630040 + CAN Port Close + + + V:0000000000000007;P:(E); + + + + WZ + 200 + - + MS + + + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 31040 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 31060 + CAN2000INI2 + MACRO + 610020 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 31080 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + WZ + 200 + - + MS + + + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 31100 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31120 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A033_SV + UB + - + SA + + + + + A035_SV + UB + - + SA + + + + + + + +

+ + + + + NONE + + + + + + 31140 + WARTEN + MACRO + 0 + 300 > 500, mitech 2023.5.29 + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31160 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 332 + + + + + + +

+ Secure Debug (PCM) Verification + +

+ + + + + NONE + - +
+
+ + + 31180 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31200 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + UDS DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 31220 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 31240 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31260 + COMBLOCK2 + MACRO + 170480 + + + + V:;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 31280 + BLOCKINT + MACRO + 170490 + + + + V:;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 31300 + BLOCKINT + MACRO + 170500 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 31320 + BLOCKINT + MACRO + 170510 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 31340 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31360 + STRCAT + MACRO + 170540 + + + + V:;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 31380 + SEEDKEY + MACRO + 170560 + + + + V:;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 31400 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31420 + COMBLOCK2 + MACRO + 170580 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 31440 + COMBLOCK2 + MACRO + 170590 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 31460 + BLOCKINT + MACRO + 170600 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 6712 + 6712 + + HEX + +
+
+ + + 31480 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31500 + COMBLOCK2 + MACRO + 170620 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + WRITEF18B (HSM Verify) + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF18B + 1000 + +

+ + + + + STR + +
+
+ + + 31520 + COMBLOCK2 + MACRO + 170630 + + + + V:;P:(E); + + + + WRITEF18B (HSM Verify) + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &FD3 + 2000 + +

+ + + + + STR + +
+
+ + + 31540 + BLOCKINT + MACRO + 170640 + + + + V:;P:(E); + + + + WRITEF18B (HSM Verify) + + + + + + +

+ 1 + 3 +

+ + 6EF18B + 6EF18B + + HEX + +
+
+ + + 31560 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31580 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31600 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F151 + 1000 + +

+ + + + + STR + +
+
+ + + 31620 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Activation + + + + + + +

+ 1 + 3 +

+ + 62F151 + 62F151 + + HEX + +
+
+ + + 31640 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status + + + + + + +

+ 4 + 4 +

+ + 03 + 03 + + HEX + &PCM_SB +
+
+ + + 31660 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Firmware Tamper Det. Status + + + + + + +

+ 5 + 5 +

+ + 02 + 02 + + HEX + &PCM_FTD +
+
+ + + 31680 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Status + + + + + + +

+ 6 + 6 +

+ + 01 + 01 + + HEX + &PCM_SDS +
+
+ + + 31700 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Config Lock Status + + + + + + +

+ 7 + 7 +

+ + 01 + 01 + + HEX + &PCM_CFGLock +
+
+ + + 31720 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31740 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 333 + + + + + + +

+ Secure Debug (CSM) Verification + +

+ + + + + NONE + - +
+
+ + + 31760 + CAN2000INI2 + MACRO + 630040 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 31780 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + A019_SV + - + - + NONE + + + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 +

+ + + + + STR + +
+
+ + + 31800 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31820 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + UDS DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 31840 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 31860 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31880 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F14A + 8000 + +

+ + + + + STR + +
+
+ + + 31900 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Activation + + + + + + +

+ 1 + 3 +

+ + 62F14A + 62F14A + + HEX + +
+
+ + + 31920 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #1 + + + + + + +

+ 4 + 4 +

+ + 01 + 01 + + HEX + &PCM_SB1 +
+
+ + + 31940 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #2 + + + + + + +

+ 5 + 5 +

+ + 01 + 01 + + HEX + &PCM_SB2 +
+
+ + + 31960 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #3 + + + + + + +

+ 6 + 6 +

+ + 01 + 01 + + HEX + &PCM_SB3 +
+
+ + + 31980 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #4 + + + + + + +

+ 7 + 7 +

+ + 01 + 01 + + HEX + &PCM_SB4 +
+
+ + + 32000 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #5 + + + + + + +

+ 8 + 8 +

+ + 01 + 01 + + HEX + &PCM_SB5 +
+
+ + + 32020 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 32040 + PRINTOUT + MACRO + 620010 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 301 + + + + + + +

+ DTC_CLEAR (PCM) + 0 +

+ + + + + STR + +
+
+ + + 32060 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + UDS Diagnosis + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 32080 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 32100 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32120 + COMBLOCK2 + MACRO + 620070 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 14FFFFFF + 1000 + +

+ + + + + STR + +
+
+ + + 32140 + BLOCKINT + MACRO + 620080 + + + + V:;P:(E); + + + + POSITIVE + + + + + + +

+ 1 + 1 +

+ + 54 + 54 + + HEX + +
+
+ + + 32160 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32180 + COMBLOCK2 + MACRO + 620100 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 190209 + 1000 + +

+ + + + + STR + +
+
+ + + 32200 + BLOCKINT + MACRO + 620110 + + + + V:;P:(E); + + + + POSITIVE + + + + + + +

+ 1 + 2 +

+ + 5902 + 5902 + + HEX + +
+
+ + + 32220 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32240 + PRINTOUT + MACRO + 630000 + + + CMS_CAN_INIT******************************************************* + V:;P:(E); + + + + PRINTMODULENAME + + + + + + +

+ CAN_INIT + 0 +

+ + + + + STR + +
+
+ + + 32260 + CAN2000INI2 + MACRO + 630040 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 32280 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 +

+ + + + + STR + +
+
+ + + 32300 + WARTEN + MACRO + 0 + 500 > 700, mitech + + + V:;P:(E); + + + + WZ + 700 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 32320 + PRINTOUT + MACRO + 640010 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 302 + + + + + + +

+ DTC_CLEAR (CMS) + 0 +

+ + + + + STR + +
+
+ + + 32340 + COMBLOCK2 + MACRO + 640030 + + + + V:;P:(E); + + + + UDS_DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 5000 + +

+ + + + + STR + +
+
+ + + 32360 + BLOCKINT + MACRO + 640040 + + + + V:;P:(E); + + + + POSITIVE + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 32380 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32400 + COMBLOCK2 + MACRO + 640060 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 14FFFFFF + 5000 + +

+ + + + + STR + +
+
+ + + 32420 + BLOCKINT + MACRO + 640070 + + + + V:;P:(E); + + + + POSITIVE + + + + + + +

+ 1 + 1 +

+ + 54 + 54 + + HEX + +
+
+ + + 32440 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32460 + COMBLOCK2 + MACRO + 640090 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 190209 + 5000 + +

+ + + + + STR + +
+
+ + + 32480 + BLOCKINT + MACRO + 640100 + + + + V:;P:(E); + + + + POSITIVE + + + + + + +

+ 1 + 2 +

+ + 5902 + 5902 + + HEX + +
+
+ + + 32500 + WARTEN + MACRO + 0 + + + + + + + + A019_SV + - + - + NONE + + + + + PLC + - + - + NONE + + + + + + + +

+ + + + + NONE + + + + + + 32520 + PRINTOUT + MACRO + 650000 + + + STIMULI_OFF******************************************************** + + + + + PRINTMODULENAME + + + + + + +

+ STIMULI_OFF + 0 +

+ + + + + STR + +
+
+ + + 32540 + WARTEN + MACRO + 0 + + + + + + + + IQ_UMAX + - + - + NONE + + + + + UB + 0 + - + V + + + + + UB_IMAX + 0 + - + A + + + + + + + +

+ + + + + NONE + + + + + + 32560 + WARTEN + MACRO + 0 + + + + + + + + + +

+ + + + + NONE + + + + + + 32580 + WARTEN + MACRO + 0 + + + + + + + + A007_S + - + - + NONE + + + + + A008_S + - + - + NONE + + + + + A033_SV + - + - + NONE + + + + + A035_SV + - + - + NONE + + + + + + + +

+ + + + + NONE + + + + + + 32600 + PRINTOUT + MACRO + 660000 + + + NUMBER_OF_NG'S***************************************************** + + + + + A038_SV + - + - + NONE + + + + + + PRINTMODULENAME + + + + + + +

+ NUMBER OF NG'S + 0 +

+ + + + + STR + +
+
+ + + 32620 + BREAK + MACRO + 660010 + + + + + + + + BREAK + + + + + + +

+ &G_NERR +

+ + 0 + 0 + + INT + +
+
+ + + 32640 + WARTEN + MACRO + 0 + + + + + + + + + +

+ + + + + NONE + + + + + + \ No newline at end of file diff --git a/Projects/VPKI/Doc/pEOLSVRT001_readonly.CpXv01e b/Projects/VPKI/Doc/pEOLSVRT001_readonly.CpXv01e new file mode 100644 index 0000000..dead8a0 --- /dev/null +++ b/Projects/VPKI/Doc/pEOLSVRT001_readonly.CpXv01e @@ -0,0 +1,89772 @@ + + + + Empty + Empty + ME1ME1ME1 + Empty + Empty + Empty + confidential - protection class 2 document + + + MMXX + 0000000000000001 + 9109FDDOM1 + c:\temp\typ\mmxx.bin + + AM240D + 3.24.8.18475 + + + + + + + + + + + + &BAUDRATE + &BAUDRATE_DATA + &BAUDRATE_HDR + &BRANDCODE + &CAN_DRIVER + &CAN_SCHREIB + &CAN_T_READ + &CAN_T_SEND + &CAN_TAST + &CAN_WIDER + &CERTINFO + &CMEASCNT + &CMP_RESULT + &CMS_CALID + &CMS_CALID_ASCII + &CMS_CRC + &CMS_VER + &CMS_VER_ASCII + &COLUMN + &COUNTP02SUBCAOEM + &COUNTP02SUBCAOEMS + &COUNTP20SUBCAOEM + &COUNTP20SUBCAOEMS + &COUNTP20SUBCAVHC + &COUNTP20SUBCAVHCS + &CR + &CRCR + &CRIROOTCERT + &CRUISE + &CSRHASH_HEX + &CSRHASH_HEX_EV20 + &CSRHASH_HEX_OEM20 + &CSRMESSAGE1 + &CSRSIGNEDMESSAGE + &CUSTOMERPNO_00 + &CUSTOMERPNO_01 + &CUSTOMERPNO_02 + &CUSTOMERPNO_03 + &DEL_RESULT + &DLL_FILE_CMS + &DLL_FILE_PCM + &E1 + &E2 + &E3 + &E4 + &ERROR + &ERRORFLAG + &EVCCID_HEX + &F101_CHECK + &F102_CHECK + &F103_CHECK + &F111_PCID_ASCII + &F112_PUBLICKEY_HEX + &F113_CSRHASH_HEX + &F114_CSRHASHSIGNEDVALUE_HEX + &F115_HEX + &F115_OEMLEAF_HEX + &F115_ROOTCERT_HEX + &F115_SUBCA_HEX + &F140_EVCCID_HEX + &F141_PCID20_HEX + &F142_PUBLICKEY_HEX + &F143_CSRHASH_HEX + &F144_CSRHASHSIGNEDVALUE_HEX + &F145_OEMLEAF_HEX + &F145_ROOTCERT_HEX + &F145_SUBCA_HEX + &F147_CHECK + &F148_CHECK + &F156_CHECK + &F156_RC1 + &F156_RC2 + &F156_RC3 + &F156_RC4 + &F156_RCHECK + &F181_CHECK + &F187_CHECK + &F188_CHECK + &F18B_CHECK + &F18C_CHECK + &F191_CHECK + &F193_CHECK + &F197_CHECK + &F1A0_CHECK + &F1A1_CHECK + &F1B0_CHECK + &F1B1_CHECK + &F1B2_CHECK + &F1C1_CHECK + &F1C2_CHECK + &F1EF_CHECK + &FD3 + &FEHLER + &FEHLERFLAG + &FSW_TT + &FTDRESULT + &G_BAUD_ASC1 + &G_CAN + &G_GETDATA_ALIASFILE + &G_MGERROR + &G_NERR + &G_TRG_NAME_2 + &HFID + &HFID_HEX + &HI + &HW_TTNR + &HW_VER + &HW_VER0 + &HW_VER1 + &HW_VER2 + &HW_VERSION_ASCII + &INPUTKEY + &KEFICO_ASCII + &KEFICO_CODE + &KEFICO_HEX + &KEY + &KEY_VAL1 + &KEY_VAL2 + &MAC_ADDRESS + &MAC_ADDRESS_ASCII + &MARKETCODE + &MEWE + &MEWELEN + &NA_ARCHITEKTUR + &NMK + &OEM02LEAFCOUNT + &OEMCOUNT + &OEMLEAF_HEX + &P_STEUER + &P02_ENTRUST_ROOT + &P02_EPIT_ROOT + &P02_HUBEU_ROOT + &P02_HUBUS_ROOT + &P02_TESLA_ROOT + &P02SUBCAOEMCRC + &P20_CHARIN_ROOT + &P20_EPIT_ROOT + &P20EVCCCNT + &P20OEMCNT + &P20ROOTCNT + &P20ROOTCNT_01 + &P20ROOTCNT_02 + &P20SUBCAOEMCRC + &P20SUBCAVHCCRC + &PARTITIONSTATUS + &PARTNO_ASCII + &PCID_ASCII + &PCID_ASCII_OEM20 + &PCIDSERVER + &PCM_CALID + &PCM_CALID_ASCII + &PCM_CFGLOCK + &PCM_CRC + &PCM_FTD + &PCM_PARTNO + &PCM_PARTNOHEX + &PCM_SB + &PCM_SB1 + &PCM_SB2 + &PCM_SB3 + &PCM_SB4 + &PCM_SB5 + &PCM_SDS + &PCM_VER + &PCM_VER_ASCII + &PSTAND + &QUELLE + &READ_EVCCID + &READ_PCID + &RESULTPSD + &RN160 + &RN320 + &ROOTCERT + &ROOTCOUNT + &ROOTCOUNT_01 + &ROOTCOUNT_02 + &ROOTCOUNT_03 + &ROOTCOUNT_04 + &ROOTCOUNT_05 + &RP02SUBCAOEMCRC + &RP20SUBCAOEMCRC + &RP20SUBCAVHCCRC + &RX_BUFFER + &SBRESULT + &SDSRESULT + &SEED + &SEED_INPUT + &SEED1 + &SEED2 + &SEEDKEY + &SERVERPCIDSAVE + &SFRV010 + &SFRV020 + &SFRV021 + &SUBCA_HEX + &SUBCA02COUNT + &SUBCAOEM_P02 + &SUBCAOEM_P20 + &SUBCAVHC_P20 + &TESTERCH + &TESTERID + &TESTERID_ORG + &TH0 + &TH1 + &TH1_ASCII + &TIERCODE + &TMP1 + &TMP2 + &TMP3 + &TMP4 + &TMP5 + &TMP6 + &TMP7 + &TMP8 + &TSW_TT + &TTNR_HW + &TX_BUFFER + &TX_RESULT + &UNITCODE + &VALUE + &VEHICLECODE + &VTCFG + + + WZ + UB_IMAX + UB + IQ_UMAX + FGN2_TYP + FGN2_TV + FGN2_RI + FGN2_OFFSET + FGN2_NAMP + FGN2_FREQ + A001_S + A007_S + A007_S1 + A007_S2 + A008_S + A008_S1 + A009_S + A010_R + A011_R + A011_S + A013_R + A013_S + A015_U + A015_S + A016_S + A016_U + A017_R + A017_S + A020_R + A024_R + A025_R + A027_R + A027_S + A033_SV + A033_S + A035_I + A035_R + A035_SV + A035_S + A038_I + A038_SV + A038_S + FGNCP_TYP + FGNCP_TV + FGNCP_RI + FGNCP_OFFSET + FGNCP_NAMP + FGNCP_FREQ + PLC + A001_S1 + A009_S1 + A019_R + A019_U + A019_SV + A032_S + A032_R + A032_U + A032_R2 + A002_U + A002_R2 + A050_R + A050_U + A019_S + A010_U + A026_S + A030_S + A026_L + A030_L + STRUCT_71 + STRUCT_72 + STRUCT_73 + STRUCT_74 + STRUCT_75 + STRUCT_76 + STRUCT_77 + STRUCT_78 + STRUCT_79 + STRUCT_80 + STRUCT_81 + STRUCT_82 + STRUCT_83 + STRUCT_84 + STRUCT_85 + STRUCT_86 + STRUCT_87 + STRUCT_88 + STRUCT_89 + STRUCT_90 + STRUCT_91 + STRUCT_92 + STRUCT_93 + STRUCT_94 + STRUCT_95 + STRUCT_96 + STRUCT_97 + STRUCT_98 + STRUCT_99 + STRUCT_100 + STRUCT_101 + STRUCT_102 + STRUCT_103 + STRUCT_104 + STRUCT_105 + STRUCT_106 + STRUCT_107 + STRUCT_108 + STRUCT_109 + STRUCT_110 + STRUCT_111 + STRUCT_112 + STRUCT_113 + STRUCT_114 + STRUCT_115 + STRUCT_116 + STRUCT_117 + STRUCT_118 + STRUCT_119 + STRUCT_120 + STRUCT_121 + STRUCT_122 + STRUCT_123 + STRUCT_124 + STRUCT_125 + STRUCT_126 + STRUCT_127 + STRUCT_128 + STRUCT_129 + STRUCT_130 + STRUCT_131 + STRUCT_132 + STRUCT_133 + STRUCT_134 + STRUCT_135 + STRUCT_136 + STRUCT_137 + STRUCT_138 + STRUCT_139 + STRUCT_140 + STRUCT_141 + STRUCT_142 + STRUCT_143 + STRUCT_144 + STRUCT_145 + STRUCT_146 + STRUCT_147 + STRUCT_148 + STRUCT_149 + STRUCT_150 + STRUCT_151 + STRUCT_152 + STRUCT_153 + STRUCT_154 + STRUCT_155 + STRUCT_156 + STRUCT_157 + STRUCT_158 + STRUCT_159 + STRUCT_160 + STRUCT_161 + STRUCT_162 + STRUCT_163 + STRUCT_164 + STRUCT_165 + STRUCT_166 + STRUCT_167 + STRUCT_168 + STRUCT_169 + STRUCT_170 + STRUCT_171 + STRUCT_172 + STRUCT_173 + STRUCT_174 + STRUCT_175 + STRUCT_176 + STRUCT_177 + STRUCT_178 + STRUCT_179 + STRUCT_180 + STRUCT_181 + STRUCT_182 + STRUCT_183 + STRUCT_184 + STRUCT_185 + STRUCT_186 + STRUCT_187 + STRUCT_188 + STRUCT_189 + STRUCT_190 + STRUCT_191 + STRUCT_192 + STRUCT_193 + STRUCT_194 + STRUCT_195 + STRUCT_196 + STRUCT_197 + STRUCT_198 + STRUCT_199 + STRUCT_200 + STRUCT_201 + STRUCT_202 + STRUCT_203 + STRUCT_204 + STRUCT_205 + STRUCT_206 + STRUCT_207 + STRUCT_208 + STRUCT_209 + STRUCT_210 + STRUCT_211 + STRUCT_212 + STRUCT_213 + STRUCT_214 + STRUCT_215 + STRUCT_216 + STRUCT_217 + STRUCT_218 + STRUCT_219 + STRUCT_220 + STRUCT_221 + STRUCT_222 + STRUCT_223 + STRUCT_224 + STRUCT_225 + STRUCT_226 + STRUCT_227 + STRUCT_228 + STRUCT_229 + STRUCT_230 + STRUCT_231 + STRUCT_232 + STRUCT_233 + STRUCT_234 + STRUCT_235 + STRUCT_236 + STRUCT_237 + STRUCT_238 + STRUCT_239 + STRUCT_240 + STRUCT_241 + STRUCT_242 + STRUCT_243 + STRUCT_244 + STRUCT_245 + STRUCT_246 + STRUCT_247 + STRUCT_248 + STRUCT_249 + STRUCT_250 + STRUCT_251 + STRUCT_252 + STRUCT_253 + STRUCT_254 + STRUCT_255 + STRUCT_256 + STRUCT_257 + STRUCT_258 + STRUCT_259 + STRUCT_260 + STRUCT_261 + STRUCT_262 + STRUCT_263 + STRUCT_264 + STRUCT_265 + STRUCT_266 + STRUCT_267 + STRUCT_268 + STRUCT_269 + STRUCT_270 + STRUCT_271 + STRUCT_272 + STRUCT_273 + STRUCT_274 + STRUCT_275 + STRUCT_276 + STRUCT_277 + STRUCT_278 + STRUCT_279 + STRUCT_280 + STRUCT_281 + STRUCT_282 + STRUCT_283 + STRUCT_284 + STRUCT_285 + STRUCT_286 + STRUCT_287 + STRUCT_288 + STRUCT_289 + STRUCT_290 + STRUCT_291 + STRUCT_292 + STRUCT_293 + STRUCT_294 + STRUCT_295 + STRUCT_296 + STRUCT_297 + STRUCT_298 + STRUCT_299 + STRUCT_300 + STRUCT_301 + STRUCT_302 + STRUCT_303 + STRUCT_304 + STRUCT_305 + STRUCT_306 + STRUCT_307 + STRUCT_308 + STRUCT_309 + STRUCT_310 + STRUCT_311 + STRUCT_312 + STRUCT_313 + STRUCT_314 + STRUCT_315 + STRUCT_316 + STRUCT_317 + STRUCT_318 + STRUCT_319 + STRUCT_320 + STRUCT_321 + STRUCT_322 + STRUCT_323 + STRUCT_324 + STRUCT_325 + STRUCT_326 + STRUCT_327 + STRUCT_328 + STRUCT_329 + STRUCT_330 + STRUCT_331 + STRUCT_332 + STRUCT_333 + STRUCT_334 + STRUCT_335 + STRUCT_336 + STRUCT_337 + STRUCT_338 + STRUCT_339 + STRUCT_340 + STRUCT_341 + STRUCT_342 + STRUCT_343 + STRUCT_344 + STRUCT_345 + STRUCT_346 + STRUCT_347 + STRUCT_348 + STRUCT_349 + STRUCT_350 + STRUCT_351 + STRUCT_352 + STRUCT_353 + STRUCT_354 + STRUCT_355 + STRUCT_356 + STRUCT_357 + STRUCT_358 + STRUCT_359 + STRUCT_360 + STRUCT_361 + STRUCT_362 + STRUCT_363 + STRUCT_364 + STRUCT_365 + STRUCT_366 + STRUCT_367 + STRUCT_368 + STRUCT_369 + STRUCT_370 + STRUCT_371 + STRUCT_372 + STRUCT_373 + STRUCT_374 + STRUCT_375 + STRUCT_376 + STRUCT_377 + STRUCT_378 + STRUCT_379 + STRUCT_380 + STRUCT_381 + STRUCT_382 + STRUCT_383 + STRUCT_384 + STRUCT_385 + STRUCT_386 + STRUCT_387 + STRUCT_388 + STRUCT_389 + STRUCT_390 + STRUCT_391 + STRUCT_392 + STRUCT_393 + STRUCT_394 + STRUCT_395 + STRUCT_396 + STRUCT_397 + STRUCT_398 + STRUCT_399 + STRUCT_400 + STRUCT_401 + STRUCT_402 + STRUCT_403 + STRUCT_404 + STRUCT_405 + STRUCT_406 + STRUCT_407 + STRUCT_408 + STRUCT_409 + STRUCT_410 + STRUCT_411 + STRUCT_412 + STRUCT_413 + STRUCT_414 + STRUCT_415 + STRUCT_416 + STRUCT_417 + STRUCT_418 + STRUCT_419 + STRUCT_420 + STRUCT_421 + STRUCT_422 + STRUCT_423 + STRUCT_424 + STRUCT_425 + STRUCT_426 + STRUCT_427 + STRUCT_428 + STRUCT_429 + STRUCT_430 + STRUCT_431 + STRUCT_432 + STRUCT_433 + STRUCT_434 + STRUCT_435 + STRUCT_436 + STRUCT_437 + STRUCT_438 + STRUCT_439 + STRUCT_440 + STRUCT_441 + STRUCT_442 + STRUCT_443 + STRUCT_444 + STRUCT_445 + STRUCT_446 + STRUCT_447 + STRUCT_448 + STRUCT_449 + STRUCT_450 + STRUCT_451 + STRUCT_452 + STRUCT_453 + STRUCT_454 + STRUCT_455 + STRUCT_456 + STRUCT_457 + STRUCT_458 + STRUCT_459 + STRUCT_460 + STRUCT_461 + STRUCT_462 + STRUCT_463 + STRUCT_464 + STRUCT_465 + STRUCT_466 + STRUCT_467 + STRUCT_468 + STRUCT_469 + STRUCT_470 + STRUCT_471 + STRUCT_472 + STRUCT_473 + STRUCT_474 + STRUCT_475 + STRUCT_476 + STRUCT_477 + STRUCT_478 + STRUCT_479 + STRUCT_480 + STRUCT_481 + STRUCT_482 + STRUCT_483 + STRUCT_484 + STRUCT_485 + STRUCT_486 + STRUCT_487 + STRUCT_488 + STRUCT_489 + STRUCT_490 + STRUCT_491 + STRUCT_492 + STRUCT_493 + STRUCT_494 + STRUCT_495 + STRUCT_496 + STRUCT_497 + STRUCT_498 + STRUCT_499 + STRUCT_500 + STRUCT_501 + STRUCT_502 + STRUCT_503 + STRUCT_504 + STRUCT_505 + STRUCT_506 + STRUCT_507 + STRUCT_508 + STRUCT_509 + STRUCT_510 + STRUCT_511 + STRUCT_512 + STRUCT_513 + STRUCT_514 + STRUCT_515 + STRUCT_516 + STRUCT_517 + STRUCT_518 + STRUCT_519 + STRUCT_520 + STRUCT_521 + STRUCT_522 + STRUCT_523 + STRUCT_524 + STRUCT_525 + STRUCT_526 + STRUCT_527 + STRUCT_528 + STRUCT_529 + STRUCT_530 + STRUCT_531 + STRUCT_532 + STRUCT_533 + STRUCT_534 + STRUCT_535 + STRUCT_536 + STRUCT_537 + STRUCT_538 + STRUCT_539 + STRUCT_540 + STRUCT_541 + STRUCT_542 + STRUCT_543 + STRUCT_544 + STRUCT_545 + STRUCT_546 + STRUCT_547 + STRUCT_548 + STRUCT_549 + STRUCT_550 + STRUCT_551 + STRUCT_552 + STRUCT_553 + STRUCT_554 + STRUCT_555 + STRUCT_556 + STRUCT_557 + STRUCT_558 + STRUCT_559 + STRUCT_560 + STRUCT_561 + STRUCT_562 + STRUCT_563 + STRUCT_564 + STRUCT_565 + STRUCT_566 + STRUCT_567 + STRUCT_568 + STRUCT_569 + STRUCT_570 + STRUCT_571 + STRUCT_572 + STRUCT_573 + STRUCT_574 + STRUCT_575 + STRUCT_576 + STRUCT_577 + STRUCT_578 + STRUCT_579 + STRUCT_580 + STRUCT_581 + STRUCT_582 + STRUCT_583 + STRUCT_584 + STRUCT_585 + STRUCT_586 + STRUCT_587 + STRUCT_588 + STRUCT_589 + STRUCT_590 + STRUCT_591 + STRUCT_592 + STRUCT_593 + STRUCT_594 + STRUCT_595 + STRUCT_596 + STRUCT_597 + STRUCT_598 + STRUCT_599 + STRUCT_600 + STRUCT_601 + STRUCT_602 + STRUCT_603 + STRUCT_604 + STRUCT_605 + STRUCT_606 + STRUCT_607 + STRUCT_608 + STRUCT_609 + STRUCT_610 + STRUCT_611 + STRUCT_612 + STRUCT_613 + STRUCT_614 + STRUCT_615 + STRUCT_616 + STRUCT_617 + STRUCT_618 + STRUCT_619 + STRUCT_620 + STRUCT_621 + STRUCT_622 + STRUCT_623 + STRUCT_624 + STRUCT_625 + STRUCT_626 + STRUCT_627 + STRUCT_628 + STRUCT_629 + STRUCT_630 + STRUCT_631 + STRUCT_632 + STRUCT_633 + STRUCT_634 + STRUCT_635 + STRUCT_636 + STRUCT_637 + STRUCT_638 + STRUCT_639 + STRUCT_640 + STRUCT_641 + STRUCT_642 + STRUCT_643 + STRUCT_644 + STRUCT_645 + STRUCT_646 + STRUCT_647 + STRUCT_648 + STRUCT_649 + STRUCT_650 + STRUCT_651 + STRUCT_652 + STRUCT_653 + STRUCT_654 + STRUCT_655 + STRUCT_656 + STRUCT_657 + STRUCT_658 + STRUCT_659 + STRUCT_660 + STRUCT_661 + STRUCT_662 + STRUCT_663 + STRUCT_664 + STRUCT_665 + STRUCT_666 + STRUCT_667 + STRUCT_668 + STRUCT_669 + STRUCT_670 + STRUCT_671 + STRUCT_672 + STRUCT_673 + STRUCT_674 + STRUCT_675 + STRUCT_676 + STRUCT_677 + STRUCT_678 + STRUCT_679 + STRUCT_680 + STRUCT_681 + STRUCT_682 + STRUCT_683 + STRUCT_684 + STRUCT_685 + STRUCT_686 + STRUCT_687 + STRUCT_688 + STRUCT_689 + STRUCT_690 + STRUCT_691 + STRUCT_692 + STRUCT_693 + STRUCT_694 + STRUCT_695 + STRUCT_696 + STRUCT_697 + STRUCT_698 + STRUCT_699 + STRUCT_700 + STRUCT_701 + STRUCT_702 + STRUCT_703 + STRUCT_704 + STRUCT_705 + STRUCT_706 + STRUCT_707 + STRUCT_708 + STRUCT_709 + STRUCT_710 + STRUCT_711 + STRUCT_712 + STRUCT_713 + STRUCT_714 + STRUCT_715 + STRUCT_716 + STRUCT_717 + STRUCT_718 + STRUCT_719 + STRUCT_720 + STRUCT_721 + STRUCT_722 + STRUCT_723 + STRUCT_724 + STRUCT_725 + STRUCT_726 + STRUCT_727 + STRUCT_728 + STRUCT_729 + STRUCT_730 + STRUCT_731 + STRUCT_732 + STRUCT_733 + STRUCT_734 + STRUCT_735 + STRUCT_736 + STRUCT_737 + STRUCT_738 + STRUCT_739 + STRUCT_740 + STRUCT_741 + STRUCT_742 + STRUCT_743 + STRUCT_744 + STRUCT_745 + STRUCT_746 + STRUCT_747 + STRUCT_748 + STRUCT_749 + STRUCT_750 + STRUCT_751 + STRUCT_752 + STRUCT_753 + STRUCT_754 + STRUCT_755 + STRUCT_756 + STRUCT_757 + STRUCT_758 + STRUCT_759 + STRUCT_760 + STRUCT_761 + STRUCT_762 + STRUCT_763 + STRUCT_764 + STRUCT_765 + STRUCT_766 + STRUCT_767 + STRUCT_768 + STRUCT_769 + STRUCT_770 + STRUCT_771 + STRUCT_772 + STRUCT_773 + STRUCT_774 + STRUCT_775 + STRUCT_776 + STRUCT_777 + STRUCT_778 + STRUCT_779 + STRUCT_780 + STRUCT_781 + STRUCT_782 + STRUCT_783 + STRUCT_784 + STRUCT_785 + STRUCT_786 + STRUCT_787 + STRUCT_788 + STRUCT_789 + STRUCT_790 + STRUCT_791 + STRUCT_792 + STRUCT_793 + STRUCT_794 + STRUCT_795 + STRUCT_796 + STRUCT_797 + STRUCT_798 + STRUCT_799 + STRUCT_800 + STRUCT_801 + STRUCT_802 + STRUCT_803 + STRUCT_804 + STRUCT_805 + STRUCT_806 + STRUCT_807 + STRUCT_808 + STRUCT_809 + STRUCT_810 + STRUCT_811 + STRUCT_812 + STRUCT_813 + STRUCT_814 + STRUCT_815 + STRUCT_816 + STRUCT_817 + STRUCT_818 + STRUCT_819 + STRUCT_820 + STRUCT_821 + STRUCT_822 + STRUCT_823 + STRUCT_824 + STRUCT_825 + STRUCT_826 + STRUCT_827 + STRUCT_828 + STRUCT_829 + STRUCT_830 + STRUCT_831 + STRUCT_832 + STRUCT_833 + STRUCT_834 + STRUCT_835 + STRUCT_836 + STRUCT_837 + STRUCT_838 + STRUCT_839 + STRUCT_840 + STRUCT_841 + STRUCT_842 + STRUCT_843 + STRUCT_844 + STRUCT_845 + STRUCT_846 + STRUCT_847 + STRUCT_848 + STRUCT_849 + STRUCT_850 + STRUCT_851 + STRUCT_852 + STRUCT_853 + STRUCT_854 + STRUCT_855 + STRUCT_856 + STRUCT_857 + STRUCT_858 + STRUCT_859 + STRUCT_860 + STRUCT_861 + STRUCT_862 + STRUCT_863 + STRUCT_864 + STRUCT_865 + STRUCT_866 + STRUCT_867 + STRUCT_868 + STRUCT_869 + STRUCT_870 + STRUCT_871 + STRUCT_872 + STRUCT_873 + STRUCT_874 + STRUCT_875 + STRUCT_876 + STRUCT_877 + STRUCT_878 + STRUCT_879 + STRUCT_880 + STRUCT_881 + STRUCT_882 + STRUCT_883 + STRUCT_884 + STRUCT_885 + STRUCT_886 + STRUCT_887 + STRUCT_888 + STRUCT_889 + STRUCT_890 + STRUCT_891 + STRUCT_892 + STRUCT_893 + STRUCT_894 + STRUCT_895 + STRUCT_896 + STRUCT_897 + STRUCT_898 + STRUCT_899 + STRUCT_900 + STRUCT_901 + STRUCT_902 + STRUCT_903 + STRUCT_904 + STRUCT_905 + STRUCT_906 + STRUCT_907 + STRUCT_908 + STRUCT_909 + STRUCT_910 + STRUCT_911 + STRUCT_912 + STRUCT_913 + STRUCT_914 + STRUCT_915 + STRUCT_916 + STRUCT_917 + STRUCT_918 + STRUCT_919 + STRUCT_920 + STRUCT_921 + STRUCT_922 + STRUCT_923 + STRUCT_924 + STRUCT_925 + STRUCT_926 + STRUCT_927 + STRUCT_928 + STRUCT_929 + STRUCT_930 + STRUCT_931 + STRUCT_932 + STRUCT_933 + STRUCT_934 + STRUCT_935 + STRUCT_936 + STRUCT_937 + STRUCT_938 + STRUCT_939 + STRUCT_940 + STRUCT_941 + STRUCT_942 + STRUCT_943 + STRUCT_944 + STRUCT_945 + STRUCT_946 + STRUCT_947 + STRUCT_948 + STRUCT_949 + STRUCT_950 + STRUCT_951 + STRUCT_952 + STRUCT_953 + STRUCT_954 + STRUCT_955 + STRUCT_956 + STRUCT_957 + STRUCT_958 + STRUCT_959 + STRUCT_960 + STRUCT_961 + STRUCT_962 + STRUCT_963 + STRUCT_964 + STRUCT_965 + STRUCT_966 + STRUCT_967 + STRUCT_968 + STRUCT_969 + STRUCT_970 + STRUCT_971 + STRUCT_972 + STRUCT_973 + STRUCT_974 + STRUCT_975 + STRUCT_976 + STRUCT_977 + STRUCT_978 + STRUCT_979 + STRUCT_980 + STRUCT_981 + STRUCT_982 + STRUCT_983 + STRUCT_984 + STRUCT_985 + STRUCT_986 + STRUCT_987 + STRUCT_988 + STRUCT_989 + STRUCT_990 + STRUCT_991 + STRUCT_992 + STRUCT_993 + STRUCT_994 + STRUCT_995 + STRUCT_996 + STRUCT_997 + STRUCT_998 + STRUCT_999 + STRUCT_1000 + STRUCT_1001 + STRUCT_1002 + STRUCT_1003 + STRUCT_1004 + STRUCT_1005 + STRUCT_1006 + STRUCT_1007 + STRUCT_1008 + STRUCT_1009 + STRUCT_1010 + STRUCT_1011 + STRUCT_1012 + STRUCT_1013 + STRUCT_1014 + STRUCT_1015 + STRUCT_1016 + STRUCT_1017 + STRUCT_1018 + STRUCT_1019 + STRUCT_1020 + STRUCT_1021 + STRUCT_1022 + STRUCT_1023 + STRUCT_1024 + STRUCT_1025 + STRUCT_1026 + STRUCT_1027 + STRUCT_1028 + STRUCT_1029 + STRUCT_1030 + STRUCT_1031 + STRUCT_1032 + STRUCT_1033 + STRUCT_1034 + STRUCT_1035 + STRUCT_1036 + STRUCT_1037 + STRUCT_1038 + STRUCT_1039 + STRUCT_1040 + STRUCT_1041 + STRUCT_1042 + STRUCT_1043 + STRUCT_1044 + STRUCT_1045 + STRUCT_1046 + STRUCT_1047 + STRUCT_1048 + STRUCT_1049 + STRUCT_1050 + STRUCT_1051 + STRUCT_1052 + STRUCT_1053 + STRUCT_1054 + STRUCT_1055 + STRUCT_1056 + STRUCT_1057 + STRUCT_1058 + STRUCT_1059 + STRUCT_1060 + STRUCT_1061 + STRUCT_1062 + STRUCT_1063 + STRUCT_1064 + STRUCT_1065 + STRUCT_1066 + STRUCT_1067 + STRUCT_1068 + STRUCT_1069 + STRUCT_1070 + STRUCT_1071 + STRUCT_1072 + STRUCT_1073 + STRUCT_1074 + STRUCT_1075 + STRUCT_1076 + STRUCT_1077 + STRUCT_1078 + STRUCT_1079 + STRUCT_1080 + STRUCT_1081 + STRUCT_1082 + STRUCT_1083 + STRUCT_1084 + STRUCT_1085 + STRUCT_1086 + STRUCT_1087 + STRUCT_1088 + STRUCT_1089 + STRUCT_1090 + STRUCT_1091 + STRUCT_1092 + STRUCT_1093 + STRUCT_1094 + STRUCT_1095 + STRUCT_1096 + STRUCT_1097 + STRUCT_1098 + STRUCT_1099 + STRUCT_1100 + STRUCT_1101 + STRUCT_1102 + STRUCT_1103 + STRUCT_1104 + STRUCT_1105 + STRUCT_1106 + STRUCT_1107 + STRUCT_1108 + STRUCT_1109 + STRUCT_1110 + STRUCT_1111 + STRUCT_1112 + STRUCT_1113 + STRUCT_1114 + STRUCT_1115 + STRUCT_1116 + STRUCT_1117 + STRUCT_1118 + STRUCT_1119 + STRUCT_1120 + STRUCT_1121 + STRUCT_1122 + STRUCT_1123 + STRUCT_1124 + STRUCT_1125 + STRUCT_1126 + STRUCT_1127 + STRUCT_1128 + STRUCT_1129 + STRUCT_1130 + STRUCT_1131 + STRUCT_1132 + STRUCT_1133 + STRUCT_1134 + STRUCT_1135 + STRUCT_1136 + STRUCT_1137 + STRUCT_1138 + STRUCT_1139 + STRUCT_1140 + STRUCT_1141 + STRUCT_1142 + STRUCT_1143 + STRUCT_1144 + STRUCT_1145 + STRUCT_1146 + STRUCT_1147 + STRUCT_1148 + STRUCT_1149 + STRUCT_1150 + STRUCT_1151 + STRUCT_1152 + STRUCT_1153 + STRUCT_1154 + STRUCT_1155 + STRUCT_1156 + STRUCT_1157 + STRUCT_1158 + STRUCT_1159 + STRUCT_1160 + STRUCT_1161 + STRUCT_1162 + STRUCT_1163 + STRUCT_1164 + STRUCT_1165 + STRUCT_1166 + STRUCT_1167 + STRUCT_1168 + STRUCT_1169 + STRUCT_1170 + STRUCT_1171 + STRUCT_1172 + STRUCT_1173 + STRUCT_1174 + STRUCT_1175 + STRUCT_1176 + STRUCT_1177 + STRUCT_1178 + STRUCT_1179 + STRUCT_1180 + STRUCT_1181 + STRUCT_1182 + STRUCT_1183 + STRUCT_1184 + STRUCT_1185 + STRUCT_1186 + STRUCT_1187 + STRUCT_1188 + STRUCT_1189 + STRUCT_1190 + STRUCT_1191 + STRUCT_1192 + STRUCT_1193 + STRUCT_1194 + STRUCT_1195 + STRUCT_1196 + STRUCT_1197 + STRUCT_1198 + STRUCT_1199 + STRUCT_1200 + STRUCT_1201 + STRUCT_1202 + STRUCT_1203 + STRUCT_1204 + STRUCT_1205 + STRUCT_1206 + STRUCT_1207 + STRUCT_1208 + STRUCT_1209 + STRUCT_1210 + STRUCT_1211 + STRUCT_1212 + STRUCT_1213 + STRUCT_1214 + STRUCT_1215 + STRUCT_1216 + STRUCT_1217 + STRUCT_1218 + STRUCT_1219 + STRUCT_1220 + STRUCT_1221 + STRUCT_1222 + STRUCT_1223 + STRUCT_1224 + STRUCT_1225 + STRUCT_1226 + STRUCT_1227 + STRUCT_1228 + STRUCT_1229 + STRUCT_1230 + STRUCT_1231 + STRUCT_1232 + STRUCT_1233 + STRUCT_1234 + STRUCT_1235 + STRUCT_1236 + STRUCT_1237 + STRUCT_1238 + STRUCT_1239 + STRUCT_1240 + STRUCT_1241 + STRUCT_1242 + STRUCT_1243 + STRUCT_1244 + STRUCT_1245 + STRUCT_1246 + STRUCT_1247 + STRUCT_1248 + STRUCT_1249 + STRUCT_1250 + STRUCT_1251 + STRUCT_1252 + STRUCT_1253 + STRUCT_1254 + STRUCT_1255 + STRUCT_1256 + STRUCT_1257 + STRUCT_1258 + STRUCT_1259 + STRUCT_1260 + STRUCT_1261 + STRUCT_1262 + STRUCT_1263 + STRUCT_1264 + STRUCT_1265 + STRUCT_1266 + STRUCT_1267 + STRUCT_1268 + STRUCT_1269 + STRUCT_1270 + STRUCT_1271 + STRUCT_1272 + STRUCT_1273 + STRUCT_1274 + STRUCT_1275 + STRUCT_1276 + STRUCT_1277 + STRUCT_1278 + STRUCT_1279 + STRUCT_1280 + STRUCT_1281 + STRUCT_1282 + STRUCT_1283 + STRUCT_1284 + STRUCT_1285 + STRUCT_1286 + STRUCT_1287 + STRUCT_1288 + STRUCT_1289 + STRUCT_1290 + STRUCT_1291 + STRUCT_1292 + STRUCT_1293 + STRUCT_1294 + STRUCT_1295 + STRUCT_1296 + STRUCT_1297 + STRUCT_1298 + STRUCT_1299 + STRUCT_1300 + STRUCT_1301 + STRUCT_1302 + STRUCT_1303 + STRUCT_1304 + STRUCT_1305 + STRUCT_1306 + STRUCT_1307 + STRUCT_1308 + STRUCT_1309 + STRUCT_1310 + STRUCT_1311 + STRUCT_1312 + STRUCT_1313 + STRUCT_1314 + STRUCT_1315 + STRUCT_1316 + STRUCT_1317 + STRUCT_1318 + STRUCT_1319 + STRUCT_1320 + STRUCT_1321 + STRUCT_1322 + STRUCT_1323 + STRUCT_1324 + STRUCT_1325 + STRUCT_1326 + STRUCT_1327 + STRUCT_1328 + STRUCT_1329 + STRUCT_1330 + STRUCT_1331 + STRUCT_1332 + STRUCT_1333 + STRUCT_1334 + STRUCT_1335 + STRUCT_1336 + STRUCT_1337 + STRUCT_1338 + STRUCT_1339 + STRUCT_1340 + STRUCT_1341 + STRUCT_1342 + STRUCT_1343 + STRUCT_1344 + STRUCT_1345 + STRUCT_1346 + STRUCT_1347 + STRUCT_1348 + STRUCT_1349 + STRUCT_1350 + STRUCT_1351 + STRUCT_1352 + STRUCT_1353 + STRUCT_1354 + STRUCT_1355 + STRUCT_1356 + STRUCT_1357 + STRUCT_1358 + STRUCT_1359 + STRUCT_1360 + STRUCT_1361 + STRUCT_1362 + STRUCT_1363 + STRUCT_1364 + STRUCT_1365 + STRUCT_1366 + STRUCT_1367 + STRUCT_1368 + STRUCT_1369 + STRUCT_1370 + STRUCT_1371 + STRUCT_1372 + STRUCT_1373 + STRUCT_1374 + STRUCT_1375 + STRUCT_1376 + STRUCT_1377 + STRUCT_1378 + STRUCT_1379 + STRUCT_1380 + STRUCT_1381 + STRUCT_1382 + STRUCT_1383 + STRUCT_1384 + STRUCT_1385 + STRUCT_1386 + STRUCT_1387 + STRUCT_1388 + STRUCT_1389 + STRUCT_1390 + STRUCT_1391 + STRUCT_1392 + STRUCT_1393 + STRUCT_1394 + STRUCT_1395 + STRUCT_1396 + STRUCT_1397 + STRUCT_1398 + STRUCT_1399 + STRUCT_1400 + STRUCT_1401 + STRUCT_1402 + STRUCT_1403 + STRUCT_1404 + STRUCT_1405 + STRUCT_1406 + STRUCT_1407 + STRUCT_1408 + STRUCT_1409 + STRUCT_1410 + STRUCT_1411 + STRUCT_1412 + STRUCT_1413 + STRUCT_1414 + STRUCT_1415 + STRUCT_1416 + STRUCT_1417 + STRUCT_1418 + STRUCT_1419 + STRUCT_1420 + STRUCT_1421 + STRUCT_1422 + STRUCT_1423 + STRUCT_1424 + STRUCT_1425 + STRUCT_1426 + STRUCT_1427 + STRUCT_1428 + STRUCT_1429 + STRUCT_1430 + STRUCT_1431 + STRUCT_1432 + STRUCT_1433 + STRUCT_1434 + STRUCT_1435 + STRUCT_1436 + STRUCT_1437 + STRUCT_1438 + STRUCT_1439 + STRUCT_1440 + STRUCT_1441 + STRUCT_1442 + STRUCT_1443 + STRUCT_1444 + STRUCT_1445 + STRUCT_1446 + STRUCT_1447 + STRUCT_1448 + STRUCT_1449 + STRUCT_1450 + STRUCT_1451 + STRUCT_1452 + STRUCT_1453 + STRUCT_1454 + STRUCT_1455 + STRUCT_1456 + STRUCT_1457 + STRUCT_1458 + STRUCT_1459 + STRUCT_1460 + STRUCT_1461 + STRUCT_1462 + STRUCT_1463 + STRUCT_1464 + STRUCT_1465 + STRUCT_1466 + STRUCT_1467 + STRUCT_1468 + STRUCT_1469 + STRUCT_1470 + STRUCT_1471 + STRUCT_1472 + STRUCT_1473 + STRUCT_1474 + STRUCT_1475 + STRUCT_1476 + STRUCT_1477 + STRUCT_1478 + STRUCT_1479 + STRUCT_1480 + STRUCT_1481 + STRUCT_1482 + STRUCT_1483 + STRUCT_1484 + STRUCT_1485 + STRUCT_1486 + STRUCT_1487 + STRUCT_1488 + STRUCT_1489 + STRUCT_1490 + STRUCT_1491 + STRUCT_1492 + STRUCT_1493 + STRUCT_1494 + STRUCT_1495 + STRUCT_1496 + STRUCT_1497 + STRUCT_1498 + STRUCT_1499 + STRUCT_1500 + STRUCT_1501 + STRUCT_1502 + STRUCT_1503 + STRUCT_1504 + STRUCT_1505 + STRUCT_1506 + STRUCT_1507 + STRUCT_1508 + STRUCT_1509 + STRUCT_1510 + STRUCT_1511 + STRUCT_1512 + STRUCT_1513 + STRUCT_1514 + STRUCT_1515 + STRUCT_1516 + STRUCT_1517 + STRUCT_1518 + STRUCT_1519 + STRUCT_1520 + STRUCT_1521 + STRUCT_1522 + STRUCT_1523 + STRUCT_1524 + STRUCT_1525 + STRUCT_1526 + STRUCT_1527 + STRUCT_1528 + STRUCT_1529 + STRUCT_1530 + STRUCT_1531 + STRUCT_1532 + STRUCT_1533 + STRUCT_1534 + STRUCT_1535 + STRUCT_1536 + STRUCT_1537 + STRUCT_1538 + STRUCT_1539 + STRUCT_1540 + STRUCT_1541 + STRUCT_1542 + STRUCT_1543 + STRUCT_1544 + STRUCT_1545 + STRUCT_1546 + STRUCT_1547 + STRUCT_1548 + STRUCT_1549 + STRUCT_1550 + STRUCT_1551 + STRUCT_1552 + STRUCT_1553 + STRUCT_1554 + STRUCT_1555 + STRUCT_1556 + STRUCT_1557 + STRUCT_1558 + STRUCT_1559 + STRUCT_1560 + STRUCT_1561 + STRUCT_1562 + STRUCT_1563 + STRUCT_1564 + STRUCT_1565 + STRUCT_1566 + STRUCT_1567 + STRUCT_1568 + STRUCT_1569 + STRUCT_1570 + STRUCT_1571 + STRUCT_1572 + STRUCT_1573 + STRUCT_1574 + STRUCT_1575 + STRUCT_1576 + STRUCT_1577 + STRUCT_1578 + STRUCT_1579 + STRUCT_1580 + STRUCT_1581 + STRUCT_1582 + STRUCT_1583 + STRUCT_1584 + STRUCT_1585 + STRUCT_1586 + STRUCT_1587 + STRUCT_1588 + STRUCT_1589 + STRUCT_1590 + STRUCT_1591 + STRUCT_1592 + STRUCT_1593 + STRUCT_1594 + STRUCT_1595 + STRUCT_1596 + STRUCT_1597 + STRUCT_1598 + STRUCT_1599 + STRUCT_1600 + STRUCT_1601 + STRUCT_1602 + STRUCT_1603 + STRUCT_1604 + STRUCT_1605 + STRUCT_1606 + STRUCT_1607 + STRUCT_1608 + STRUCT_1609 + STRUCT_1610 + STRUCT_1611 + STRUCT_1612 + STRUCT_1613 + STRUCT_1614 + STRUCT_1615 + STRUCT_1616 + STRUCT_1617 + STRUCT_1618 + STRUCT_1619 + STRUCT_1620 + STRUCT_1621 + STRUCT_1622 + STRUCT_1623 + STRUCT_1624 + STRUCT_1625 + STRUCT_1626 + STRUCT_1627 + STRUCT_1628 + STRUCT_1629 + STRUCT_1630 + STRUCT_1631 + STRUCT_1632 + STRUCT_1633 + STRUCT_1634 + STRUCT_1635 + STRUCT_1636 + STRUCT_1637 + STRUCT_1638 + STRUCT_1639 + STRUCT_1640 + STRUCT_1641 + STRUCT_1642 + STRUCT_1643 + STRUCT_1644 + STRUCT_1645 + STRUCT_1646 + STRUCT_1647 + STRUCT_1648 + STRUCT_1649 + STRUCT_1650 + STRUCT_1651 + STRUCT_1652 + STRUCT_1653 + STRUCT_1654 + STRUCT_1655 + STRUCT_1656 + STRUCT_1657 + STRUCT_1658 + STRUCT_1659 + STRUCT_1660 + STRUCT_1661 + STRUCT_1662 + STRUCT_1663 + STRUCT_1664 + STRUCT_1665 + STRUCT_1666 + STRUCT_1667 + STRUCT_1668 + STRUCT_1669 + STRUCT_1670 + STRUCT_1671 + STRUCT_1672 + STRUCT_1673 + STRUCT_1674 + STRUCT_1675 + STRUCT_1676 + STRUCT_1677 + STRUCT_1678 + STRUCT_1679 + STRUCT_1680 + STRUCT_1681 + STRUCT_1682 + STRUCT_1683 + STRUCT_1684 + STRUCT_1685 + STRUCT_1686 + STRUCT_1687 + STRUCT_1688 + STRUCT_1689 + STRUCT_1690 + STRUCT_1691 + STRUCT_1692 + STRUCT_1693 + STRUCT_1694 + STRUCT_1695 + STRUCT_1696 + STRUCT_1697 + STRUCT_1698 + STRUCT_1699 + STRUCT_1700 + STRUCT_1701 + STRUCT_1702 + STRUCT_1703 + STRUCT_1704 + STRUCT_1705 + STRUCT_1706 + STRUCT_1707 + STRUCT_1708 + STRUCT_1709 + STRUCT_1710 + STRUCT_1711 + STRUCT_1712 + STRUCT_1713 + STRUCT_1714 + STRUCT_1715 + STRUCT_1716 + STRUCT_1717 + STRUCT_1718 + STRUCT_1719 + STRUCT_1720 + STRUCT_1721 + STRUCT_1722 + STRUCT_1723 + STRUCT_1724 + STRUCT_1725 + STRUCT_1726 + STRUCT_1727 + STRUCT_1728 + STRUCT_1729 + STRUCT_1730 + STRUCT_1731 + STRUCT_1732 + STRUCT_1733 + STRUCT_1734 + STRUCT_1735 + STRUCT_1736 + STRUCT_1737 + STRUCT_1738 + STRUCT_1739 + STRUCT_1740 + STRUCT_1741 + STRUCT_1742 + STRUCT_1743 + STRUCT_1744 + STRUCT_1745 + STRUCT_1746 + STRUCT_1747 + STRUCT_1748 + STRUCT_1749 + STRUCT_1750 + STRUCT_1751 + STRUCT_1752 + STRUCT_1753 + STRUCT_1754 + STRUCT_1755 + STRUCT_1756 + STRUCT_1757 + STRUCT_1758 + STRUCT_1759 + STRUCT_1760 + STRUCT_1761 + STRUCT_1762 + STRUCT_1763 + STRUCT_1764 + STRUCT_1765 + STRUCT_1766 + STRUCT_1767 + STRUCT_1768 + STRUCT_1769 + STRUCT_1770 + STRUCT_1771 + STRUCT_1772 + STRUCT_1773 + STRUCT_1774 + STRUCT_1775 + STRUCT_1776 + STRUCT_1777 + STRUCT_1778 + STRUCT_1779 + STRUCT_1780 + STRUCT_1781 + STRUCT_1782 + STRUCT_1783 + STRUCT_1784 + STRUCT_1785 + STRUCT_1786 + STRUCT_1787 + STRUCT_1788 + STRUCT_1789 + STRUCT_1790 + STRUCT_1791 + STRUCT_1792 + STRUCT_1793 + STRUCT_1794 + STRUCT_1795 + STRUCT_1796 + STRUCT_1797 + STRUCT_1798 + STRUCT_1799 + STRUCT_1800 + STRUCT_1801 + STRUCT_1802 + STRUCT_1803 + STRUCT_1804 + STRUCT_1805 + STRUCT_1806 + STRUCT_1807 + STRUCT_1808 + STRUCT_1809 + STRUCT_1810 + STRUCT_1811 + STRUCT_1812 + STRUCT_1813 + STRUCT_1814 + STRUCT_1815 + STRUCT_1816 + STRUCT_1817 + STRUCT_1818 + STRUCT_1819 + STRUCT_1820 + STRUCT_1821 + STRUCT_1822 + STRUCT_1823 + STRUCT_1824 + STRUCT_1825 + STRUCT_1826 + STRUCT_1827 + STRUCT_1828 + STRUCT_1829 + STRUCT_1830 + STRUCT_1831 + STRUCT_1832 + STRUCT_1833 + STRUCT_1834 + STRUCT_1835 + STRUCT_1836 + STRUCT_1837 + STRUCT_1838 + STRUCT_1839 + STRUCT_1840 + STRUCT_1841 + STRUCT_1842 + STRUCT_1843 + STRUCT_1844 + STRUCT_1845 + STRUCT_1846 + STRUCT_1847 + STRUCT_1848 + STRUCT_1849 + STRUCT_1850 + STRUCT_1851 + STRUCT_1852 + STRUCT_1853 + STRUCT_1854 + STRUCT_1855 + STRUCT_1856 + STRUCT_1857 + STRUCT_1858 + STRUCT_1859 + STRUCT_1860 + STRUCT_1861 + STRUCT_1862 + STRUCT_1863 + STRUCT_1864 + STRUCT_1865 + STRUCT_1866 + STRUCT_1867 + STRUCT_1868 + STRUCT_1869 + STRUCT_1870 + STRUCT_1871 + STRUCT_1872 + STRUCT_1873 + STRUCT_1874 + STRUCT_1875 + STRUCT_1876 + STRUCT_1877 + STRUCT_1878 + STRUCT_1879 + STRUCT_1880 + STRUCT_1881 + STRUCT_1882 + STRUCT_1883 + STRUCT_1884 + STRUCT_1885 + STRUCT_1886 + STRUCT_1887 + STRUCT_1888 + STRUCT_1889 + STRUCT_1890 + STRUCT_1891 + STRUCT_1892 + STRUCT_1893 + STRUCT_1894 + STRUCT_1895 + STRUCT_1896 + STRUCT_1897 + STRUCT_1898 + STRUCT_1899 + STRUCT_1900 + STRUCT_1901 + STRUCT_1902 + STRUCT_1903 + STRUCT_1904 + STRUCT_1905 + STRUCT_1906 + STRUCT_1907 + STRUCT_1908 + STRUCT_1909 + STRUCT_1910 + STRUCT_1911 + STRUCT_1912 + STRUCT_1913 + STRUCT_1914 + STRUCT_1915 + STRUCT_1916 + STRUCT_1917 + STRUCT_1918 + STRUCT_1919 + STRUCT_1920 + STRUCT_1921 + STRUCT_1922 + STRUCT_1923 + STRUCT_1924 + STRUCT_1925 + STRUCT_1926 + STRUCT_1927 + STRUCT_1928 + STRUCT_1929 + STRUCT_1930 + STRUCT_1931 + STRUCT_1932 + STRUCT_1933 + STRUCT_1934 + STRUCT_1935 + STRUCT_1936 + STRUCT_1937 + STRUCT_1938 + STRUCT_1939 + STRUCT_1940 + STRUCT_1941 + STRUCT_1942 + STRUCT_1943 + STRUCT_1944 + STRUCT_1945 + STRUCT_1946 + STRUCT_1947 + STRUCT_1948 + STRUCT_1949 + STRUCT_1950 + STRUCT_1951 + STRUCT_1952 + STRUCT_1953 + STRUCT_1954 + STRUCT_1955 + STRUCT_1956 + STRUCT_1957 + STRUCT_1958 + STRUCT_1959 + STRUCT_1960 + STRUCT_1961 + STRUCT_1962 + STRUCT_1963 + STRUCT_1964 + STRUCT_1965 + STRUCT_1966 + STRUCT_1967 + STRUCT_1968 + STRUCT_1969 + STRUCT_1970 + STRUCT_1971 + STRUCT_1972 + STRUCT_1973 + STRUCT_1974 + STRUCT_1975 + STRUCT_1976 + STRUCT_1977 + STRUCT_1978 + STRUCT_1979 + STRUCT_1980 + STRUCT_1981 + STRUCT_1982 + STRUCT_1983 + STRUCT_1984 + STRUCT_1985 + STRUCT_1986 + STRUCT_1987 + STRUCT_1988 + STRUCT_1989 + STRUCT_1990 + STRUCT_1991 + STRUCT_1992 + STRUCT_1993 + STRUCT_1994 + STRUCT_1995 + STRUCT_1996 + STRUCT_1997 + STRUCT_1998 + STRUCT_1999 + STRUCT_2000 + + + + MM + 1 + NONE + + $POSITION + $MO + $MP_0 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + DEFAULT + DEFAULT + DEFAULT + DEFAULT + 1 + 1 + + + + + 2 + M_SPECTRUM + MODULE + 0 + + + + + + + $P_0 + PSD + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $RETURN_WERT + 2 + 2 + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + $RETURN_WERT + + 1 + - + - + - + - + + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + $EH + - + 3 + 3 + + + + + 4 + M_NOP + MODULE + 0 + + + + + + + + + + + + + + + + + 4 + 4 + + + + + + MM + 1 + KONSTDEF + + $POSITION + $MO + $P_0 + $EH + $RETURN_WERT + + + + + + 1 + M_ZUWEIS + MODULE + 0 + StdPav: Zuweisung von Konstanten aus der PAV heraus + + + + + + 1 + $POSITION + $RETURN_WERT + $P_0 + - + - + $EH + + + + + 2 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 2 + $POSITION + $P_0 + $MO + 1 + - + - + - + - + $EH + + + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + INT + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + $POSITION + $MO + - + - + - + - + - + - + - + - + - + + + + + + MM + 1 + WARTEN + + $POSITION + + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Anschalten von Stimuli und abwarten der Wartezeit + + + + + + 1 + $POSITION + - + - + - + - + + + + + + MM + 1 + PRINTOUT + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &ERRORFLAG + + + + + 1 + E_OUT + MODULE + 0 + Hardware anschalten + + + + + + 1 + $POSITION + - + - + - + - + + + + + 2 + R_KUNDDAT + MODULE + 0 + + + + + + + 2 + $POSITION + - + PRINTOUT + $P_1 + - + $P_0 + $MO + - + $RETURN_WERT + TEST + - + &ERRORFLAG + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + 0 + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + - + - + - + + + + + + MM + 1 + DCV + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + + + + + 1 + E_SCANNER + MODULE + 0 + STDPAV:Gleichspannungsmessung + + + + + + 1 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + - + - + - + ON + + + + + 2 + E_OUT + MODULE + 0 + Hardware anschalten + + + + + + 2 + $POSITION + - + - + - + - + + + + + 3 + M_DMM + MODULE + 0 + Messung durchf?ren + + + + + + 3 + $POSITION + DVM_01 + DCV + $P_0 + $P_1 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 0 + OFF + FALSE + NONE + 0 + NORM + &MEWE + 0 + $EH + - + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Messung auswerten + + + + + + 4 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 5 + E_SCANNER + MODULE + 0 + Me?canner abschalten + + + + + + 5 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + - + - + - + OFF + + + + + 6 + M_NOP + MODULE + 0 + Ende Makro bekannt geben und Parameter aus der PAV auffangen + + + + + + 6 + $POSITION + - + $MP_2 + $MP_3 + - + - + - + - + - + - + - + + + + + + MM + 1 + CAN2000INI + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &FEHLERFLAG + &MAX + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Initialisierung KWP2000 ueber CAN + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + P_STEUER + MODULE + 0 + STDPAV: Init CAN + + + + + + 2 + $POSITION + SKM + $P_0 + CW2000 + 00 + 7F + 01 + &G_CAN + + + + + 3 + P_INIT + MODULE + 0 + + + + + + + 3 + 0 + SAMMLE + CAN_T_SEND + 100 + &CAN_T_SEND + + + + + 4 + P_INIT + MODULE + 0 + + + + + + + 4 + 0 + SAMMLE + CAN_T_READ + 2000 + &CAN_T_SEND + + + + + 5 + P_INIT + MODULE + 0 + + + + + + + 5 + $POSITION + SAMMLE + CAN_DRIVER + $P_1 + &CAN_DRIVER + + + + + 6 + P_INIT + MODULE + 0 + + + + + + + 6 + 0 + SAMMLE + BAUDRATE + $P_2 + &BAUDRATE + + + + + 7 + P_INIT + MODULE + 0 + + + + + + + 7 + 0 + SAMMLE + CAN_TAST + $P_3 + &CAN_TAST + + + + + 8 + P_INIT + MODULE + 0 + + + + + + + 8 + 0 + SAMMLE + CAN_WIDER + $P_4 + &CAN_WIDER + + + + + 9 + P_INIT + MODULE + 0 + + + + + + + 9 + $POSITION + CAN_SCHREIB + NA_ARCHITEKTUR + $P_5 + &CAN_SCHREIB + + + + + 11 + M_NOP + MODULE + 0 + + + + + + + 11 + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + - + - + - + + + + + 13 + P_CANSTD + MODULE + 0 + Sende- und Empfangsobjekt einstellen + + + + + + 13 + $POSITION + CANBLOCK + $P_6 + $P_7 + $P_8 + $P_9 + INITPROT + + 0 + - + &FEHLERFLAG + &MEWE + + + + + 14 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 14 + 0 + &MEWE + C2000INI + 1 + - + - + - + - + $EH + + + - + - + - + - + - + - + - + - + - + &FEHLERFLAG + JA + NORMAL + $RETURN_WERT + - + + + + + 15 + P_AUFTRAG + MODULE + 0 + Einschalten des Protokolls ISO15765 + + + + + + 15 + $POSITION + COMMANDUI + 0 + - + - + S + - + - + 0 + - + + + + + 16 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 16 + 0 + &MEWE + C2000_EIN + 1 + - + - + - + - + STR + + + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + + MM + 1 + DCIS + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_HILF + &G_MEWE + &G_MEWEOUT + + + + + 1 + M_ZUWEIS + MODULE + 0 + + + + + + + 1 + $POSITION + &G_HILF + $P_2 + SHUNT_DCIS + - + STRING + + + + + 2 + E_SCANNER + MODULE + 0 + Mess Scanner anlegen + + + + + + 2 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + - + - + - + ON + + + + + 3 + E_OUT + MODULE + 0 + + + + + + + 3 + $POSITION + - + - + - + - + + + + + 4 + M_DMM + MODULE + 0 + Messung durchf?ren + + + + + + 4 + $POSITION + DVM_01 + DCV + $P_0 + $P_1 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 0 + OFF + FALSE + NONE + 0 + NORM + &G_MEWE + 0 + $EH + - + + + + + 5 + R_RECHNE + MODULE + 0 + + + + + + + 5 + $POSITION + (&G_MEWE)/(&G_HILF) + &G_MEWEOUT + - + 0 + + + + + 6 + M_AUSWERTUNG + MODULE + 0 + Messung auswerten + + + + + + 6 + $POSITION + &G_MEWEOUT + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 7 + E_SCANNER + MODULE + 0 + Me?canner abschalten + + + + + + 7 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + - + - + - + OFF + + + + + 8 + M_NOP + MODULE + 0 + Ende Makro bekannt geben und Parameter aus der PAV auffangen + + + + + + 8 + $POSITION + - + $MP_2 + $MP_3 + - + - + - + - + - + - + - + + + + + + MM + 1 + BERECHNEN + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &FEHLER + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + M_NOP + MODULE + 0 + STDPAV:Berechnen von Termen + + + + + + 2 + - + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + - + - + - + - + - + + + + + 3 + R_RECHNE + MODULE + 0 + + + + + + + 3 + $POSITION + $P_0 + $RETURN_WERT + &FEHLER + $P_1 + + + + + 4 + M_ZUWEIS + MODULE + 0 + + + + + + + 4 + 0 + &MEWE + $RETURN_WERT + - + - + STRING + + + + + 5 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 5 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &FEHLER + JA + NORMAL + $RETURN_WERT + INT + + + + + + MM + 1 + COMBLOCK + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Schnittstelle sendet String an SG und empfaengt Antwort + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + P_AUFTRAG + MODULE + 0 + STDPAV: Schnittstelle sendet String an SG und empfaengt Antwort + + + + + + 2 + $POSITION + COMBLOCK + $P_0 + $P_1 + $P_2 + $P_3 + - + - + &RX_BUFFER + - + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + $POSITION + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + &TX_BUFFER + $EH + $MIN + $MAX + $RETURN_WERT + + + + + + MM + 1 + BLOCKINT + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &FEHLERFLAG + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Zerl. und vergleichen des Strings von der Schnittstelle + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + P_ZERLEGE_STR + MODULE + 0 + STDPAV: String der Schnittst. zerlegen und Auswerten + + + + + + 2 + $POSITION + - + STRING1 + $P_0 + $P_1 + &MEWELEN + &MEWE + &FEHLERFLAG + HEX + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + Auswerten als Hex-Werte mit Toleranzen + + + + + + 3 + $POSITION + &MEWE + $MO + 1 + - + JA + - + - + $EH + $MIN + $MAX + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + - + - + - + - + &FEHLERFLAG + JA + NORMAL + $RETURN_WERT + HEX + &MEWELEN + + + + + + MM + 1 + STRCAT + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + M_NOP + MODULE + 0 + STDPAV: ZusammenfOgen von Strings + + + + + + 2 + 0 + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $EH + - + - + - + - + - + + + + + 3 + R_STRCAT + MODULE + 0 + + + + + + + 3 + $POSITION + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $RETURN_WERT + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR + + + + + + 4 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + STRCMP + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + &MEWE + - + + + + + + MM + 1 + HEXSTRINGTOSTR + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_STRFORMAT + MODULE + 0 + STDPAV: Umwandeln eines ASCII-Strings in seinen Hex-String + + + + + + 2 + $POSITION + $P_0 + HEX + 20 + - + N + ASCII + $RETURN_WERT + - + + + + + 3 + M_NOP + MODULE + 0 + STDPAV: Umwandeln eines Strings in Integer Basis 10) + + + + + + 3 + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $EH + $P_1 + - + - + - + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR, Funktioniert nur, wenn $p_1 = 0 !! + + + + + + 4 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + STRCMP + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + &MEWE + - + + + + + + MM + 1 + STRCMP + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &CMP_RESULT + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + M_NOP + MODULE + 0 + STDPAV: ZusammenfOgen von Strings + + + + + + 2 + 0 + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $EH + - + - + - + - + - + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 3 + $POSITION + $P_0 + VXI + 1 + - + NEIN + - + - + STRCMP + $P_1 + $P_1 + - + - + - + - + - + - + - + - + - + 0 + JA + CMP_VALUE + &CMP_RESULT + INT + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR + + + + + + 4 + $POSITION + &CMP_RESULT + $MO + 1 + - + - + - + - + INT + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + INT + + + + + + MM + 1 + BITOP + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $MIN + $MAX + $EH + $RETURN_WERT + + + &PAR0 + &G_FEHL1 + &PAR1 + &G_FEHL2 + &MEWE + &G_FEHL3 + &FEHLER + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_STRFORMAT + MODULE + 0 + STDPAV: Bit-Operationen + + + + + + 2 + 0 + $P_0 + INT + 16 + - + - + HEX + &PAR0 + &G_FEHL1 + + + + + 3 + R_STRFORMAT + MODULE + 0 + Parameter1 von INT in HEX + + + + + + 3 + 0 + $P_1 + INT + 16 + - + - + HEX + &PAR1 + &G_FEHL2 + + + + + 4 + R_STROPERATE + MODULE + 0 + STDPAV:Bitverk?fung von zwei Integerzahlen.Ergebnis Hex + + + + + + 4 + 0 + HEX + &PAR0 + $P_2 + &PAR1 + &MEWE + &G_FEHL3 + + + + + 5 + R_RECHNE + MODULE + 0 + + + + + + + 5 + 0 + (&G_FEHL1+&G_FEHL2+&G_FEHL3) + &FEHLER + - + 0 + + + + + 6 + M_AUSWERTUNG + MODULE + 0 + Auswertung Ergebnis + + + + + + 6 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &FEHLER + JA + NORMAL + $RETURN_WERT + HEX + + + + + 7 + M_NOP + MODULE + 0 + NOP + + + + + + 7 + 0 + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + - + - + - + - + - + + + + + + MM + 1 + DCVTRG + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_TEILER_DCVT + &G_HIPI_DCVTRG + &G_SCANNER + &TRIGGER_LINE + &G_RESTZEIT + &MEWE + + + + + 1 + F_MESSTEILER + MODULE + 0 + STDPAV:Getriggerte Gleichspannung messen + + + + + + 1 + $POSITION + MESSTEILER + $P_0 + - + $MP_0 + ON + $MIN + $MAX + &G_TEILER_DCVT + + + + + 2 + M_ZUWEIS + MODULE + 0 + + + + + + + 2 + $POSITION + &G_HIPI_DCVTRG + $MP_0 + - + - + STRING + + + + + 3 + E_TRIGGER + MODULE + 0 + + + + + + + 3 + $POSITION + TRIG_01 + DVM_TRG + $P_0 + $P_2 + $P_1 + $P_3 + &G_SCANNER + &TRIGGER_LINE + &G_TEILER_DCVT + DCVTRG + &G_RESTZEIT + + + + + 4 + E_SCANNER + MODULE + 0 + + + + + + + 4 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + &G_SCANNER + $P_5 + $P_6 + ON + + + + + 5 + E_OUT + MODULE + 0 + + + + + + + 5 + $POSITION + - + - + - + - + + + + + 6 + M_DMM + MODULE + 0 + + + + + + + 6 + $POSITION + DVM_01 + DCV + $P_0 + $P_4 + &TRIGGER_LINE + 1 + &G_RESTZEIT + IMMEDIATE + 1 + 0 + OFF + FALSE + NONE + 0 + $P_8 + &MEWE + $P_7 + $EH + &G_TEILER_DCVT + + + + + 7 + M_MAKRO_ENDE + MODULE + 0 + + + + + + + 7 + $POSITION + $P_8 + + + + + 8 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 8 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 9 + E_SCANNER + MODULE + 0 + + + + + + + 9 + $POSITION + - + DVM_01_MESS + $MP_0 + $MP_1 + &G_SCANNER + $P_5 + $P_6 + OFF + + + + + 10 + F_MESSTEILER + MODULE + 0 + + + + + + + 10 + $POSITION + MESSTEILER + $P_0 + - + &G_HIPI_DCVTRG + OFF + 0 + 0 + &G_TEILER_DCVT + + + + + 11 + M_NOP + MODULE + 0 + + + + + + + 11 + $POSITION + $MP_2 + $MP_3 + - + - + - + - + - + - + - + - + + + + + + MM + 1 + CONTROL + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + M_CONTROL + MODULE + 0 + Mess Scanner anlegen + + + + + + 1 + $POSITION + $P_0 + $P_1 + + + + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + MM + 1 + BREAK + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + M_NOP + MODULE + 0 + STDPAV: Abbruch wenn Messwert aus Toleranz + + + + + + 2 + 0 + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + - + - + - + - + - + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 3 + $POSITION + $P_0 + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + INT + + + + + 4 + M_ABBRUCH + MODULE + 0 + + + + + + + 4 + 0 + BREAK_ABBRUCH + + + + + + MM + 1 + GETDATAAF + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_GETDATA_ALIASFILE + &ERRORFLAG + + + + + 1 + E_OUT + MODULE + 0 + Hardware anschalten + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + M_ZUWEIS + MODULE + 0 + $P_0 [Aliasfilename] globaler Variablen &G_GETDATA_ALIASFILE zuweisen + + + + + + 2 + $POSITION + &G_GETDATA_ALIASFILE + $P_0 + - + - + STRING + + + + + 3 + R_DATATABLE + MODULE + 0 + Quelle [Aliasfilename] oeffnen + + + + + + 3 + $POSITION + READFILE_LC + LOAD + &G_GETDATA_ALIASFILE + ";" + - + - + - + - + + + + + + + + &ERRORFLAG + + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Fehlerflag auswerten und $P_0 [Aliasfilename] anzeigen + + + + + + 4 + $POSITION + &G_GETDATA_ALIASFILE + $MO + 1 + - + - + - + - + STR + MIN + MAX + - + - + - + - + - + - + - + - + - + &ERRORFLAG + JA + NORMAL + $RETURN_WERT + - + + + + + 5 + M_NOP + MODULE + 0 + NBT + + + + + + 5 + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + + $MIN + $MAX + $EH + + + + + + MM + 1 + GETDATASTR + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_GETDATA_ALIASFILE + &INPUTKEY + &COLUMN + &QUELLE + &PSTAND + &E1 + &E2 + &E3 + &E4 + &ERROR + + + + + 1 + E_OUT + MODULE + 0 + Hardware anschalten + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_DATATABLE + MODULE + 0 + Parameter &INPUTKEY, &COLUMN, &QUELLE aus Aliasfile mit $P_0 ermitteln + + + + + + 2 + $POSITION + GET_LC + LOAD + &G_GETDATA_ALIASFILE + ";" + $P_0 + STRING + 2 + 5 + &INPUTKEY + &COLUMN + &QUELLE + &PSTAND + + + + &E1 + + + + + + 3 + R_DATATABLE + MODULE + 0 + Quelle [&QUELLE] oeffnen + + + + + + 3 + $POSITION + READFILE_LC + LOAD + &QUELLE + ";" + - + - + - + - + + + + + + + + &E2 + + + + + + 4 + R_DATATABLE + MODULE + 0 + $RETURN_WERT aus Quelle [&QUELLE] mit Inputkey [&INPUTKEY] ermitteln + + + + + + 4 + $POSITION + GET_LC + LOAD + &QUELLE + ";" + &INPUTKEY + STRING + &COLUMN + &COLUMN + $RETURN_WERT + + + + + + &PSTAND + &E3 + + + + + + 5 + E_CONVERT + MODULE + 0 + $RETURN_WERT in gewuenschtes Format wandeln + + + + + + 5 + $POSITION + $RETURN_WERT + $P_1 + $P_2 + &E4 + $RETURN_WERT + LOAD + + + + + 6 + R_RECHNE + MODULE + 0 + 4 Fehlerflags zusammenfassen zu einem + + + + + + 6 + $POSITION + (&E1_GETDATASTR+&E2_GETDATASTR+&E3_GETDATASTR+&E4_GETDATASTR) + &ERROR + - + 0 + + + + + 7 + M_AUSWERTUNG + MODULE + 0 + Fehlerflag auswerten und $RETURN_WERT anzeigen + + + + + + 7 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + STR + MIN + MAX + - + - + - + - + - + - + - + - + - + &ERROR + JA + NORMAL + $RETURN_WERT + - + + + + + 8 + M_NOP + MODULE + 0 + NBT + + + + + + 8 + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + + + + + + + + MM + 1 + START + + + &MEWE + &G_TRG_NAME_2 + + + + + 1 + E_KOPPELFELD + MODULE + 0 + DVM01 Bruecke zwischen Massen setzen + + + + + + 1 + 0 + MESS_KF + DVM_01_MESS_R + - + >MKA10 + ON + + + + + 2 + E_KOPPELFELD + MODULE + 0 + DVM02 Bruecke zwischen Massen setzen + + + + + + 2 + 0 + MESS_KF + DVM_02_MESS_R + - + >MKA14 + ON + + + + + 4 + L_KAM_KONFIG + MODULE + 0 + L_KAM_KONFIG Standardeinstellung fuers KAM + + + + + + 4 + 0 + U_KON_KONFIG4 + UBATT_ULAST + - + - + + + + + 6 + E_KOPPELFELD + MODULE + 0 + Inputs vom DVM01 werden kurzgeschlossen + + + + + + 6 + 0 + MESS_KF + DVM_01_MESS + >MK1 + >MK1 + ON + + + + + 7 + E_KOPPELFELD + MODULE + 0 + Inputs vom DVM02 werden kurzgeschlossen + + + + + + 7 + 0 + MESS_KF + DVM_02_MESS + >MK11 + >MK11 + ON + + + + + 9 + E_OUT + MODULE + 0 + alles aktiv + + + + + + 9 + 0 + - + - + - + - + + + + + 10 + M_DMM + MODULE + 0 + DVM1 Dummymessung zwecks Reset der Eingangsbausteine + + + + + + 10 + 0 + DVM_01 + DCV + 0.1 + 0.02 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 100 + OFF + FALSE + NONE + 0 + NORM + &MEWE + 3 + V + - + + + + + 11 + M_AUSWERTUNG + MODULE + 0 + Auswertung der 1. DVM-Messung + + + + + + 11 + 0 + &MEWE + DVM1INI + 1 + - + - + - + - + MV + -100. + 100. + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + 12 + M_DMM + MODULE + 0 + DVM2 Dummymessung zwecks Reset der Eingangsbausteine + + + + + + 12 + 0 + DVM_02 + DCV + 0.1 + 0.02 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 100 + OFF + FALSE + NONE + 0 + NORM + &MEWE + 3 + V + - + + + + + 13 + M_AUSWERTUNG + MODULE + 0 + Auswertung der 2. DVM-Messung + + + + + + 13 + 0 + &MEWE + DVM2INI + 1 + - + - + - + - + MV + -100 + 100 + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + 14 + E_KOPPELFELD + MODULE + 0 + kurzgeschlossene Inputs vom DVM01 werden abgeschaltet + + + + + + 14 + 0 + MESS_KF + DVM_01_MESS + >MK1 + >MK1 + OFF + + + + + 15 + E_KOPPELFELD + MODULE + 0 + kurzgeschlossene Inputs vom DVM02 werden abgeschaltet + + + + + + 15 + 0 + MESS_KF + DVM_02_MESS + >MK11 + >MK11 + OFF + + + + + 16 + M_ZUWEIS + MODULE + 0 + + + + + + + 16 + 0 + &G_TRG_NAME_2 + DVM_TRG_2 + - + - + STRING + + + + + 20 + E_WAIT + MODULE + 0 + E_WAIT bis hierhin ist Platz + + + + + + 20 + 0 + - + 1 + 0 + 0 + &MEWE + + + + + + MM + 1 + COM_KONSTDEF + + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + + + + + + 1 + M_ZUWEIS + MODULE + 0 + + + + + + + 1 + 0 + $P_0 + $P_3 + - + - + STRING + + + + + 2 + M_ZUWEIS + MODULE + 0 + + + + + + + 2 + 0 + $P_1 + $P_4 + - + - + STRING + + + + + 3 + M_ZUWEIS + MODULE + 0 + + + + + + + 3 + 0 + $P_2 + $P_5 + - + - + STRING + + + + + 4 + M_NOP + MODULE + 0 + Nicht benutzte Parameter im Bereich SKM + + + + + + 4 + 0 + $P_6 + $P_7 + $P_8 + + + + + + + + + + + + + MM + 1 + COM_INIT + + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + + + + + + 1 + P_STEUER + MODULE + 0 + + + + + + + 1 + 0 + SKM + SKM_01 + $P_0 + - + - + $P_1 + - + + + + + 2 + P_AUFTRAG + MODULE + 0 + + + + + + + 2 + + TIMEOUT_SKM + $P_2 + - + - + - + - + - + 0 + - + + + + + 3 + P_INIT + MODULE + 0 + + + + + + + 3 + + SAMMLE + T_BYTE + $P_3 + 0 + + + + + 4 + P_INIT + MODULE + 0 + + + + + + + 4 + + SAMMLE + T_KOMMUNIK + $P_4 + 0 + + + + + 5 + P_INIT + MODULE + 0 + + + + + + + 5 + + SAMMLE + W_BLOCK + $P_5 + 0 + + + + + 6 + P_INIT + MODULE + 0 + + + + + + + 6 + + SAMMLE + WZ_BYTE + $P_6 + 0 + + + + + 7 + P_INIT + MODULE + 0 + + + + + + + 7 + + SAMMLE + BAUDRATE + $P_7 + 0 + + + + + 8 + P_INIT + MODULE + 0 + + + + + + + 8 + + SAMMLE + STEUER + $P_8 + 0 + + + + + 9 + P_INIT + MODULE + 0 + 14.06.2007 neu hinzu + + + + + + 9 + + SAMMLE + COM1 + 0000 + 0 + + + + + 10 + P_INIT + MODULE + 0 + 14.06.2007 neu hinzu + + + + + + 10 + + SAMMLE + COM2 + 0000 + 0 + + + + + 11 + P_INIT + MODULE + 0 + 15.06.2007 auf SCHREIB geaendert + + + + + + 11 + + SCHREIB + 70 + $P_9 + 0 + + + + + + MM + 1 + K2000START + + $POSITION + $ANSTEUER_UNIT + $TIMEOUT_SKM + + + &MEWE + + + + + 1 + P_STEUER + MODULE + 0 + SKM Startini im Zusammenhang mit Makro K2000INI aus STDPAV noetig + + + + + + 1 + $POSITION + SKM + $ANSTEUER_UNIT + KW2000 + 00 + 7F + 1 + - + + + + + 2 + P_INIT + MODULE + 0 + Grundinit fuer KP2000 SKM (Serielles Kommunikationsmodul) + + + + + + 2 + 0 + CLEAR + 0 + 0 + 0 + + + + + 3 + P_INIT + MODULE + 0 + COM1 mit 0B88 + + + + + + 3 + 0 + SAMMLE + COM1 + 0B88 + 0 + + + + + 4 + P_INIT + MODULE + 0 + COM2 mit 0012 + + + + + + 4 + 0 + SAMMLE + COM2 + 0012 + 0 + + + + + 5 + P_INIT + MODULE + 0 + STEUER mit 0100 + + + + + + 5 + 0 + SAMMLE + STEUER + 0100 + 0 + + + + + 6 + P_INIT + MODULE + 0 + FORMAT mit 20 + + + + + + 6 + 0 + SAMMLE + FORMAT + 20 + 0 + + + + + 7 + P_INIT + MODULE + 0 + W_VOR_REIZEN mit 50 + + + + + + 7 + 0 + SAMMLE + W_VOR_REIZEN + 50 + 0 + + + + + 8 + P_INIT + MODULE + 0 + ADRESSIERUNG 02 + + + + + + 8 + 0 + SAMMLE + ADRESSIERUNG + 02 + 0 + + + + + 9 + P_INIT + MODULE + 0 + AD_SOURCE mit F1 + + + + + + 9 + $POSITION + SCHREIB + AD_SOURCE + F1 + &MEWE + + + + + 10 + M_AUSWERTUNG + MODULE + 0 + Auswertung K2000START + + + + + + 10 + $POSITION + &MEWE + K2000START + 1 + - + - + - + - + STR + MIN + MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + 19 + P_AUFTRAG + MODULE + 0 + + + + + + + 19 + $POSITION + TIMEOUT_SKM + $TIMEOUT_SKM + - + - + L + - + - + 0 + - + + + + + + MM + 1 + PRINTINT + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &FEHLER + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + M_NOP + MODULE + 0 + STDPAV:Darstellen eines Int-Werts(Eing INT) als format. String + + + + + + 2 + - + - + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + - + - + - + $EH + + + + + 3 + R_STRFORMAT + MODULE + 0 + + + + + + + 3 + $POSITION + $P_0 + INT + $P_1 + - + $P_2 + $P_3 + &MEWE + &FEHLER + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR, kann HEX-STRING oder INT-String oder... sein + + + + + + 4 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $P_3 + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &FEHLER + JA + NORMAL + $RETURN_WERT + $P_3 + + + + + + MM + 1 + STRCOPY + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $MIN + $MAX + $EH + $RETURN_WERT + + + &ERRORFLAG + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_STRCOPY + MODULE + 0 + STDPAV: Ausschneiden eines Teilstrings + + + + + + 2 + $POSITION + INIT + - + $P_0 + - + - + - + $P_1 + $P_2 + - + - + $RETURN_WERT + &ERRORFLAG + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + - + - + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR + + + + + + 4 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + STR + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &ERRORFLAG + JA + NORMAL + &MEWE + - + + + + + + MM + 1 + STRTOINT + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &ERRORFLAG + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_STRFORMAT + MODULE + 0 + + + + + + + 2 + $POSITION + $P_0 + $P_1 + 10 + - + N + INT + &MEWE + &ERRORFLAG + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + - + - + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 4 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + INT + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &ERRORFLAG + JA + NORMAL + $RETURN_WERT + INT + + + + + + MM + 1 + ACV + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + + + + + 1 + E_SCANNER + MODULE + 0 + STDPAV: Messen einer Wechselspannung + + + + + + 1 + $POSITION + - + DVM_02_MESS + $MP_0 + $MP_1 + - + - + - + ON + + + + + 2 + M_DMM + MODULE + 0 + Messung durchf?ren + + + + + + 2 + $POSITION + DVM_02 + ACV + $P_0 + $P_1 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 100 + OFF + FALSE + NONE + 0 + INIT + &MEWE + 0 + $EH + - + + + + + 3 + E_OUT + MODULE + 0 + Hardware anschalten + + + + + + 3 + $MP_2 + - + - + - + - + + + + + 4 + M_DMM + MODULE + 0 + Messung durchf?ren + + + + + + 4 + $POSITION + DVM_02 + ACV + $P_0 + $P_1 + IMMEDIATE + 1 + 0 + IMMEDIATE + 1 + 100 + OFF + FALSE + NONE + 0 + AR + &MEWE + 0 + $EH + - + + + + + 5 + M_AUSWERTUNG + MODULE + 0 + Messung auswerten + + + + + + 5 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 6 + E_SCANNER + MODULE + 0 + Me?canner abschalten + + + + + + 6 + $MP_3 + - + DVM_02_MESS + $MP_0 + $MP_1 + - + - + - + OFF + + + + + + MM + 1 + FREQUENZ + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_START + &TRIGGER_LINE1 + &MEWE + + + + + 1 + E_TRIGGER + MODULE + 0 + STDPAV:Frequenzmessung + + + + + + 1 + 0 + TRIG_01 + COUN_A + $P_0 + $P_2 + $P_1 + 0 + &G_START + &TRIGGER_LINE1 + - + NORM + 0 + + + + + 2 + E_SCANNER + MODULE + 0 + + + + + + + 2 + 0 + - + &G_START + $MP_0 + $MP_1 + - + - + - + ON + + + + + 3 + E_OUT + MODULE + 0 + + + + + + + 3 + 0 + - + - + - + - + + + + + 4 + M_COUNTER + MODULE + 0 + + + + + + + 4 + $POSITION + COUN_01 + FREQ1 + M + 1.0 + 0.001 + 1 + $P_3 + 0 + $EH + 0 + 0 + &MEWE + + + + + 5 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 5 + $POSITION + &MEWE + $MO + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 6 + E_SCANNER + MODULE + 0 + + + + + + + 6 + $POSITION + - + &G_START + $MP_0 + $MP_1 + - + - + - + OFF + + + + + 7 + M_NOP + MODULE + 0 + + + + + + + 7 + 0 + $MP_2 + $MP_3 + - + - + - + - + - + - + - + - + + + + + + MMXX + 1 + KUNDENDAT1 + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $MIN + $MAX + $EH + $RETURN_WERT + + + &G_MGERROR + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_KUNDDAT + MODULE + 0 + STDPAV: Kundendaten zuweisen + + + + + + 2 + $POSITION + - + $P_0 + $P_1 + $P_5 + $P_2 + $P_3 + $P_4 + $RETURN_WERT + TEST + - + &G_MGERROR + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + 3 + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + $EH + -- + -- + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR! + + + + + + 4 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + STRCMP + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + + MM + 1 + SEEDKEY + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $MIN + $MAX + $EH + $RETURN_WERT + + + &ERRORFLAG + &TMP1 + &TMP2 + &TMP3 + &TMP4 + &TMP5 + &TMP6 + &TMP7 + &TMP8 + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + R_DATATABLE + MODULE + 0 + STDPAV: Messfunktion zum "Aufschliessen" des Steuergeraets + + + + + + 2 + $POSITION + READFILE + LOAD + SEED_KEY_DEF + ";" + $P_1 + STRING + - + - + - + - + - + - + - + - + - + &ERRORFLAG + + + + + + 3 + R_DATATABLE + MODULE + 0 + R_DATATABLE: Holen der Paramter zu $P_1 aus seed_key_def.cnf + + + + + + 3 + $POSITION + GET + TEST + SEED_KEY_DEF + ";" + $P_1 + STRING + 2 + 7 + &TMP1 + &TMP2 + &TMP3 + &TMP4 + &TMP5 + &TMP6 + - + &ERRORFLAG + + + + + + 4 + E_ECUMEMDATA + MODULE + 0 + ECUMEMDATA: Zur Ermittlung des Parameter1 fuer RB_SEEDKEY_TYPE1/2 + + + + + + 4 + 0 + $P_0 + KWP2000-SECURITY + KWP2000_SETUP + ECU-SECURITY-PARAMETER1 + 0 + - + &TMP7 + + + + + 5 + E_ECUMEMDATA + MODULE + 0 + ECUMEMDATA: Zur Ermittlung des Parameter2 fuer RB_SEEDKEY_TYPE1/2 + + + + + + 5 + 0 + $P_0 + KWP2000-SECURITY + KWP2000_SETUP + ECU-SECURITY-PARAMETER2 + 0 + - + &TMP8 + + + + + 6 + R_SEEDKEY + MODULE + 0 + SEEDKEY: Ermitteln des Schluessel + + + + + + 6 + $POSITION + &TMP1 + &TMP2 + &TMP3 + &TMP4 + &TMP5 + &TMP6 + $P_2 + $RETURN_WERT + - + &ERRORFLAG + &TMP7 + &TMP8 + + + + + 7 + M_AUSWERTUNG + MODULE + 0 + M_AUSWERTUNG: Auswertung SEEDKEY, Einheit immer STR + + + + + + 7 + $POSITION + $RETURN_WERT + SEEDKEY + 1 + - + - + - + - + STR + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &ERRORFLAG + JA + NORMAL + &MEWE + - + + + + + 10 + M_NOP + MODULE + 0 + NOP: Obsolete Parameter + + + + + + 10 + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + - + $P_0 + $MIN + $MAX + $EH + + + + + + MM + 1 + STRTOHEXSTRING + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_STRFORMAT + MODULE + 0 + STDPAV: Umwandeln eines ASCII-Strings in seinen Hex-String + + + + + + 2 + $POSITION + $P_0 + ASCII + 79 + - + N + HEXSTR + $RETURN_WERT + - + + + + + 3 + M_NOP + MODULE + 0 + STDPAV: Umwandeln eines Strings in Integer Basis 10) + + + + + + 3 + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $EH + - + - + - + - + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + Einheit immer STR, Funktioniert nur, wenn $p_1 = 0 !! + + + + + + 4 + $POSITION + $RETURN_WERT + $MO + 1 + - + - + - + - + HEXSTR + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + &MEWE + - + + + + + + MM + 1 + COM_ANSTEUER + + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + + + + + + + + 1 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 1 + SKM + ANSTEUER + 1 + - + - + - + - + STR + MIN + MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + 2 + F_ANSTEUER + MODULE + 0 + + + + + + + 2 + ASC_SWITCH + B65_S + - + - + B65 + - + ANSTEUER_PAR + 1 + + + + + 3 + F_ANSTEUER + MODULE + 0 + + + + + + + 3 + ASC_REF_SWITCH + A080_S + - + - + A080 + - + ANSTEUER_PAR + 1 + + + + + 4 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 4 + CFI + ANSTEUER + 1 + - + - + - + - + STR + MIN + MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + 5 + F_ANSTEUER + MODULE + 0 + + + + + + + 5 + ASC_REF_CFI + B65_S + - + - + B65 + - + ANSTEUER_PAR + 1 + + + + + 6 + F_ANSTEUER + MODULE + 0 + + + + + + + 6 + ASC_REF_CFI + A080_S + - + - + A080 + - + ANSTEUER_PAR + 1 + + + + + + MMXX + 1 + CAN2000INI2 + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $P_10 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &G_MGERROR + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Initialication from KWP2000 over CAN with + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + P_STEUER + MODULE + 0 + STDPAV: Init CAN + + + + + + 2 + $POSITION + SKM + $P_0 + CW2000 + 00 + 7F + 01 + &G_CAN + + + + + 3 + P_INIT + MODULE + 0 + + + + + + + 3 + 0 + SAMMLE + CAN_T_SEND + 100 + &CAN_T_SEND + + + + + 4 + P_INIT + MODULE + 0 + + + + + + + 4 + 0 + SAMMLE + CAN_T_READ + 2000 + &CAN_T_READ + + + + + 5 + P_INIT + MODULE + 0 + + + + + + + 5 + $POSITION + SAMMLE + CAN_DRIVER + $P_1 + &CAN_DRIVER + + + + + 6 + P_INIT + MODULE + 0 + + + + + + + 6 + 0 + SAMMLE + BAUDRATE_HDR + $P_2 + &BAUDRATE_HDR + + + + + 7 + P_INIT + MODULE + 0 + + + + + + + 7 + 0 + SAMMLE + CAN_TAST + $P_3 + &CAN_TAST + + + + + 8 + P_INIT + MODULE + 0 + + + + + + + 8 + 0 + SAMMLE + CAN_WIDER + $P_4 + &CAN_WIDER + + + + + 9 + P_INIT + MODULE + 0 + + + + + + + 9 + $POSITION + SAMMLE + BAUDRATE_DATA + $P_10 + &BAUDRATE_DATA + + + + + 10 + P_INIT + MODULE + 0 + + + + + + + 10 + $POSITION + CAN_SCHREIB + NA_ARCHITEKTUR + $P_5 + &NA_ARCHITEKTUR + + + + + 11 + M_NOP + MODULE + 0 + + + + + + + 11 + 0 + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $MIN + $MAX + - + -- + -- + + + + + 13 + P_CANSTD + MODULE + 0 + Sende- und Empfangsobjekt einstellen + + + + + + 13 + $POSITION + CANBLOCK + $P_6 + $P_7 + $P_8 + $P_9 + INITPROT + + 0 + - + &G_MGERROR + &MEWE + + + + + 14 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 14 + $POSITION + &MEWE + C2000INI + 1 + - + - + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + - + + + + + 15 + P_AUFTRAG + MODULE + 0 + Einschalten des Protokolls ISO15765 + + + + + + 15 + $POSITION + COMMANDUI + 0 + - + - + S + - + - + 0 + - + + + + + 19 + M_AUSWERTUNG + MODULE + 0 + + + + + + + 19 + 0 + &MEWE + C2000_EIN + 1 + - + - + - + - + STR + + + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + + - + + + + + + MM + 1 + CONVERT_TYPE + + $POSITION + $MO + $MP_0 + $MP_1 + $MP_2 + $MP_3 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $MIN + $MAX + $EH + $RETURN_WERT + + + &ERRORFLAG + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + 1 + $POSITION + - + - + - + CHANGE_ANST + + + + + 2 + R_CONVERTTYPE + MODULE + 0 + + + + + + + 2 + $POSITION + $P_0 + $P_1 + $RETURN_WERT + $EH + $P_2 + $P_3 + $P_4 + &ERRORFLAG + + + + + + MM + 1 + STRLEN + + $POSITION + $MO + $MP_0 + $P_0 + $P_1 + $MIN + $MAX + $EH + $RETURN_WERT + + + &MEWE + &FEHLERFLAG + + + + + 1 + E_OUT + MODULE + 0 + STDPAV: Zerl. und vergleichen des Strings von der Schnittstelle + + + + + + 1 + 0 + - + - + - + CHANGE_ANST + + + + + 2 + P_EDIT_STR + MODULE + 0 + STDPAV: String der Schnittst. zerlegen und Auswerten + + + + + + 2 + $POSITION + Etc + $P_1 + 0 + -1 + - + - + &MEWE + - + - + - + - + - + - + - + &FEHLERFLAG + $EH + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + Auswerten als Hex-Werte mit Toleranzen + + + + + + 3 + $POSITION + &MEWE + $MO + 1 + - + JA + - + - + $EH + $MIN + $MAX + - + - + - + - + - + - + - + - + - + &FEHLERFLAG + JA + NORMAL + $RETURN_WERT + - + + + + + + MM + 1 + COMBLOCK2 + + $POSITION + $MO + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + DEFAULT + DEFAULT + DEFAULT + DEFAULT + 2 + 2 + + + + + 2 + P_TRANSMIT_CAN + MODULE + 0 + + + + + + + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + 1 + 1 + + + + + 3 + M_NOP + MODULE + 0 + + + + + + + + + + + + &TX_BUFFER + + + + + 3 + 3 + + + + + + MM + 1 + SENDBYETHERNET + + $POSITION + $MO + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + DEFAULT + DEFAULT + DEFAULT + DEFAULT + 1 + 1 + + + + + 2 + P_ETHERNET_TX + MODULE + 0 + + + + + + + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + STRING + 2 + 2 + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + $P_5 + + 1 + - + - + - + - + STRING + + + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + STRING + - + 4 + 4 + + + + + 4 + M_NOP + MODULE + 0 + + + + + + + + + + + + + + + + + 3 + 3 + + + + + + MM + 1 + PARSEMESSAGE + + $POSITION + $MO + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + DEFAULT + DEFAULT + DEFAULT + DEFAULT + 1 + 1 + + + + + 2 + R_PARSEMESSAGE + MODULE + 0 + + + + + + + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + &MEWE + 2 + 2 + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + &MEWE + + 1 + - + - + - + - + $P_5 + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + $EH + - + 3 + 3 + + + + + 4 + M_NOP + MODULE + 0 + + + + + + + + + + + + + + + + + 4 + 4 + + + + + + MM + 1 + RFMEAS_PSD + + $POSITION + $MO + $MP_0 + $P_0 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $P_9 + $MIN + $MAX + $EH + $RETURN_WERT + + + + + + 1 + E_OUT + MODULE + 0 + + + + + + + DEFAULT + DEFAULT + DEFAULT + DEFAULT + 1 + 1 + + + + + 2 + M_SPECTRUM + MODULE + 0 + + + + + + + $P_0 + PSD + $P_9 + $P_1 + $P_2 + $P_3 + $P_4 + $P_5 + $P_6 + $P_7 + $P_8 + $RETURN_WERT + 2 + 2 + + + + + 3 + M_AUSWERTUNG + MODULE + 0 + + + + + + + $RETURN_WERT + + 1 + - + - + - + - + + $MIN + $MAX + - + - + - + - + - + - + - + - + - + 0 + JA + NORMAL + $RETURN_WERT + $EH + - + 3 + 3 + + + + + 4 + M_NOP + MODULE + 0 + + + + + + + + + + + + + + + + + 4 + 4 + + + + + + + + + 1 + E_DOKU + MODULE + 0 + (240731) CGVCMS EOL Integrated by LEE + + + + + + + WZ + - + - + NONE + + + + + UB_IMAX + - + - + NONE + + + + + UB + - + - + NONE + + + + + IQ_UMAX + - + - + NONE + + + + + A001_S + - + - + NONE + + + + + A007_S + - + - + NONE + + + + + A007_S1 + - + - + NONE + + + + + A007_S2 + - + - + NONE + + + + + A008_S + - + - + NONE + + + + + A008_S1 + - + - + NONE + + + + + A009_S + - + - + NONE + + + + + A010_R + - + - + NONE + + + + + A011_R + - + - + NONE + + + + + A011_S + - + - + NONE + + + + + A013_R + - + - + NONE + + + + + A013_S + - + - + NONE + + + + + A015_U + - + - + NONE + + + + + A015_S + - + - + NONE + + + + + A016_S + - + - + NONE + + + + + A016_U + - + - + NONE + + + + + A017_R + - + - + NONE + + + + + A017_S + - + - + NONE + + + + + A020_R + - + - + NONE + + + + + A024_R + - + - + NONE + + + + + A025_R + - + - + NONE + + + + + A027_R + - + - + NONE + + + + + A027_S + - + - + NONE + + + + + A033_SV + - + - + NONE + + + + + A033_S + - + - + NONE + + + + + A035_I + - + - + NONE + + + + + A035_R + - + - + NONE + + + + + A035_SV + - + - + NONE + + + + + A035_S + - + - + NONE + + + + + A038_I + - + - + NONE + + + + + A038_SV + - + - + NONE + + + + + A038_S + - + - + NONE + + + + + FGNCP_TYP + - + - + NONE + + + + + FGNCP_TV + - + - + NONE + + + + + FGNCP_RI + - + - + NONE + + + + + FGNCP_OFFSET + - + - + NONE + + + + + FGNCP_NAMP + - + - + NONE + + + + + FGNCP_FREQ + - + - + NONE + + + + + PLC + - + - + NONE + + + + + A019_R + - + - + NONE + + + + + A019_U + - + - + NONE + + + + + A032_S + - + - + NONE + + + + + A032_R + - + - + NONE + + + + + A032_U + - + - + NONE + + + + + A032_R2 + - + - + NONE + + + + + STRUCT_1656 + - + - + NONE + + + + + STRUCT_1657 + - + - + NONE + + + + + STRUCT_1658 + - + - + NONE + + + + + STRUCT_1659 + - + - + NONE + + + + + STRUCT_1660 + - + - + NONE + + + + + STRUCT_1661 + - + - + NONE + + + + + STRUCT_1662 + - + - + NONE + + + + + STRUCT_1663 + - + - + NONE + + + + + STRUCT_1664 + - + - + NONE + + + + + STRUCT_1665 + - + - + NONE + + + + + STRUCT_1666 + - + - + NONE + + + + + STRUCT_1667 + - + - + NONE + + + + + STRUCT_1668 + - + - + NONE + + + + + STRUCT_1669 + - + - + NONE + + + + + STRUCT_1670 + - + - + NONE + + + + + STRUCT_1671 + - + - + NONE + + + + + STRUCT_1672 + - + - + NONE + + + + + STRUCT_1673 + - + - + NONE + + + + + STRUCT_1674 + - + - + NONE + + + + + STRUCT_1675 + - + - + NONE + + + + + STRUCT_1676 + - + - + NONE + + + + + STRUCT_1677 + - + - + NONE + + + + + STRUCT_1678 + - + - + NONE + + + + + STRUCT_1679 + - + - + NONE + + + + + STRUCT_1680 + - + - + NONE + + + + + STRUCT_1681 + - + - + NONE + + + + + STRUCT_1682 + - + - + NONE + + + + + STRUCT_1683 + - + - + NONE + + + + + STRUCT_1684 + - + - + NONE + + + + + STRUCT_1685 + - + - + NONE + + + + + STRUCT_1686 + - + - + NONE + + + + + STRUCT_1687 + - + - + NONE + + + + + STRUCT_1688 + - + - + NONE + + + + + STRUCT_1689 + - + - + NONE + + + + + STRUCT_1690 + - + - + NONE + + + + + STRUCT_1691 + - + - + NONE + + + + + STRUCT_1692 + - + - + NONE + + + + + STRUCT_1693 + - + - + NONE + + + + + STRUCT_1694 + - + - + NONE + + + + + STRUCT_1695 + - + - + NONE + + + + + STRUCT_1696 + - + - + NONE + + + + + STRUCT_1697 + - + - + NONE + + + + + STRUCT_1698 + - + - + NONE + + + + + STRUCT_1699 + - + - + NONE + + + + + STRUCT_1700 + - + - + NONE + + + + + STRUCT_1701 + - + - + NONE + + + + + STRUCT_1702 + - + - + NONE + + + + + STRUCT_1703 + - + - + NONE + + + + + STRUCT_1704 + - + - + NONE + + + + + STRUCT_1705 + - + - + NONE + + + + + STRUCT_1706 + - + - + NONE + + + + + STRUCT_1707 + - + - + NONE + + + + + STRUCT_1708 + - + - + NONE + + + + + STRUCT_1709 + - + - + NONE + + + + + STRUCT_1710 + - + - + NONE + + + + + STRUCT_1711 + - + - + NONE + + + + + STRUCT_1712 + - + - + NONE + + + + + STRUCT_1713 + - + - + NONE + + + + + STRUCT_1714 + - + - + NONE + + + + + STRUCT_1715 + - + - + NONE + + + + + STRUCT_1716 + - + - + NONE + + + + + STRUCT_1717 + - + - + NONE + + + + + STRUCT_1718 + - + - + NONE + + + + + STRUCT_1719 + - + - + NONE + + + + + STRUCT_1720 + - + - + NONE + + + + + STRUCT_1721 + - + - + NONE + + + + + STRUCT_1722 + - + - + NONE + + + + + STRUCT_1723 + - + - + NONE + + + + + STRUCT_1724 + - + - + NONE + + + + + STRUCT_1725 + - + - + NONE + + + + + STRUCT_1726 + - + - + NONE + + + + + STRUCT_1727 + - + - + NONE + + + + + STRUCT_1728 + - + - + NONE + + + + + STRUCT_1729 + - + - + NONE + + + + + STRUCT_1730 + - + - + NONE + + + + + STRUCT_1731 + - + - + NONE + + + + + STRUCT_1732 + - + - + NONE + + + + + STRUCT_1733 + - + - + NONE + + + + + STRUCT_1734 + - + - + NONE + + + + + STRUCT_1735 + - + - + NONE + + + + + STRUCT_1736 + - + - + NONE + + + + + STRUCT_1737 + - + - + NONE + + + + + STRUCT_1738 + - + - + NONE + + + + + STRUCT_1739 + - + - + NONE + + + + + STRUCT_1740 + - + - + NONE + + + + + STRUCT_1741 + - + - + NONE + + + + + STRUCT_1742 + - + - + NONE + + + + + STRUCT_1743 + - + - + NONE + + + + + STRUCT_1744 + - + - + NONE + + + + + STRUCT_1745 + - + - + NONE + + + + + STRUCT_1746 + - + - + NONE + + + + + STRUCT_1747 + - + - + NONE + + + + + STRUCT_1748 + - + - + NONE + + + + + STRUCT_1749 + - + - + NONE + + + + + STRUCT_1750 + - + - + NONE + + + + + STRUCT_1751 + - + - + NONE + + + + + STRUCT_1752 + - + - + NONE + + + + + STRUCT_1753 + - + - + NONE + + + + + STRUCT_1754 + - + - + NONE + + + + + STRUCT_1755 + - + - + NONE + + + + + STRUCT_1756 + - + - + NONE + + + + + STRUCT_1757 + - + - + NONE + + + + + STRUCT_1758 + - + - + NONE + + + + + STRUCT_1759 + - + - + NONE + + + + + STRUCT_1760 + - + - + NONE + + + + + STRUCT_1761 + - + - + NONE + + + + + STRUCT_1762 + - + - + NONE + + + + + STRUCT_1763 + - + - + NONE + + + + + STRUCT_1764 + - + - + NONE + + + + + STRUCT_1765 + - + - + NONE + + + + + STRUCT_1766 + - + - + NONE + + + + + STRUCT_1767 + - + - + NONE + + + + + STRUCT_1768 + - + - + NONE + + + + + STRUCT_1769 + - + - + NONE + + + + + STRUCT_1770 + - + - + NONE + + + + + STRUCT_1771 + - + - + NONE + + + + + STRUCT_1772 + - + - + NONE + + + + + STRUCT_1773 + - + - + NONE + + + + + STRUCT_1774 + - + - + NONE + + + + + STRUCT_1775 + - + - + NONE + + + + + STRUCT_1776 + - + - + NONE + + + + + STRUCT_1777 + - + - + NONE + + + + + STRUCT_1778 + - + - + NONE + + + + + STRUCT_1779 + - + - + NONE + + + + + STRUCT_1780 + - + - + NONE + + + + + STRUCT_1781 + - + - + NONE + + + + + STRUCT_1782 + - + - + NONE + + + + + STRUCT_1783 + - + - + NONE + + + + + STRUCT_1784 + - + - + NONE + + + + + STRUCT_1785 + - + - + NONE + + + + + STRUCT_1786 + - + - + NONE + + + + + STRUCT_1787 + - + - + NONE + + + + + STRUCT_1788 + - + - + NONE + + + + + STRUCT_1789 + - + - + NONE + + + + + STRUCT_1790 + - + - + NONE + + + + + STRUCT_1791 + - + - + NONE + + + + + STRUCT_1792 + - + - + NONE + + + + + STRUCT_1793 + - + - + NONE + + + + + STRUCT_1794 + - + - + NONE + + + + + STRUCT_1795 + - + - + NONE + + + + + STRUCT_1796 + - + - + NONE + + + + + STRUCT_1797 + - + - + NONE + + + + + STRUCT_1798 + - + - + NONE + + + + + STRUCT_1799 + - + - + NONE + + + + + STRUCT_1800 + - + - + NONE + + + + + STRUCT_1801 + - + - + NONE + + + + + STRUCT_1802 + - + - + NONE + + + + + STRUCT_1803 + - + - + NONE + + + + + STRUCT_1804 + - + - + NONE + + + + + STRUCT_1805 + - + - + NONE + + + + + STRUCT_1806 + - + - + NONE + + + + + STRUCT_1807 + - + - + NONE + + + + + STRUCT_1808 + - + - + NONE + + + + + STRUCT_1809 + - + - + NONE + + + + + STRUCT_1810 + - + - + NONE + + + + + STRUCT_1811 + - + - + NONE + + + + + STRUCT_1812 + - + - + NONE + + + + + STRUCT_1813 + - + - + NONE + + + + + STRUCT_1814 + - + - + NONE + + + + + STRUCT_1815 + - + - + NONE + + + + + STRUCT_1816 + - + - + NONE + + + + + STRUCT_1817 + - + - + NONE + + + + + STRUCT_1818 + - + - + NONE + + + + + STRUCT_1819 + - + - + NONE + + + + + STRUCT_1820 + - + - + NONE + + + + + STRUCT_1821 + - + - + NONE + + + + + STRUCT_1822 + - + - + NONE + + + + + STRUCT_1823 + - + - + NONE + + + + + STRUCT_1824 + - + - + NONE + + + + + STRUCT_1825 + - + - + NONE + + + + + STRUCT_1826 + - + - + NONE + + + + + STRUCT_1827 + - + - + NONE + + + + + STRUCT_1828 + - + - + NONE + + + + + STRUCT_1829 + - + - + NONE + + + + + STRUCT_1830 + - + - + NONE + + + + + STRUCT_1831 + - + - + NONE + + + + + STRUCT_1832 + - + - + NONE + + + + + STRUCT_1833 + - + - + NONE + + + + + STRUCT_1834 + - + - + NONE + + + + + STRUCT_1835 + - + - + NONE + + + + + STRUCT_1836 + - + - + NONE + + + + + STRUCT_1837 + - + - + NONE + + + + + STRUCT_1838 + - + - + NONE + + + + + STRUCT_1839 + - + - + NONE + + + + + STRUCT_1840 + - + - + NONE + + + + + STRUCT_1841 + - + - + NONE + + + + + STRUCT_1842 + - + - + NONE + + + + + STRUCT_1843 + - + - + NONE + + + + + STRUCT_1844 + - + - + NONE + + + + + STRUCT_1845 + - + - + NONE + + + + + STRUCT_1846 + - + - + NONE + + + + + STRUCT_1847 + - + - + NONE + + + + + STRUCT_1848 + - + - + NONE + + + + + STRUCT_1849 + - + - + NONE + + + + + STRUCT_1850 + - + - + NONE + + + + + STRUCT_1851 + - + - + NONE + + + + + STRUCT_1852 + - + - + NONE + + + + + STRUCT_1853 + - + - + NONE + + + + + STRUCT_1854 + - + - + NONE + + + + + STRUCT_1855 + - + - + NONE + + + + + STRUCT_1856 + - + - + NONE + + + + + STRUCT_1857 + - + - + NONE + + + + + STRUCT_1858 + - + - + NONE + + + + + STRUCT_1859 + - + - + NONE + + + + + STRUCT_1860 + - + - + NONE + + + + + STRUCT_1861 + - + - + NONE + + + + + STRUCT_1862 + - + - + NONE + + + + + STRUCT_1863 + - + - + NONE + + + + + STRUCT_1864 + - + - + NONE + + + + + STRUCT_1865 + - + - + NONE + + + + + STRUCT_1866 + - + - + NONE + + + + + STRUCT_1867 + - + - + NONE + + + + + STRUCT_1868 + - + - + NONE + + + + + STRUCT_1869 + - + - + NONE + + + + + STRUCT_1870 + - + - + NONE + + + + + STRUCT_1871 + - + - + NONE + + + + + STRUCT_1872 + - + - + NONE + + + + + STRUCT_1873 + - + - + NONE + + + + + STRUCT_1874 + - + - + NONE + + + + + STRUCT_1875 + - + - + NONE + + + + + STRUCT_1876 + - + - + NONE + + + + + STRUCT_1877 + - + - + NONE + + + + + STRUCT_1878 + - + - + NONE + + + + + STRUCT_1879 + - + - + NONE + + + + + STRUCT_1880 + - + - + NONE + + + + + STRUCT_1881 + - + - + NONE + + + + + STRUCT_1882 + - + - + NONE + + + + + STRUCT_1883 + - + - + NONE + + + + + STRUCT_1884 + - + - + NONE + + + + + STRUCT_1885 + - + - + NONE + + + + + STRUCT_1886 + - + - + NONE + + + + + STRUCT_1887 + - + - + NONE + + + + + STRUCT_1888 + - + - + NONE + + + + + STRUCT_1889 + - + - + NONE + + + + + STRUCT_1890 + - + - + NONE + + + + + STRUCT_1891 + - + - + NONE + + + + + STRUCT_1892 + - + - + NONE + + + + + STRUCT_1893 + - + - + NONE + + + + + STRUCT_1894 + - + - + NONE + + + + + STRUCT_1895 + - + - + NONE + + + + + STRUCT_1896 + - + - + NONE + + + + + STRUCT_1897 + - + - + NONE + + + + + STRUCT_1898 + - + - + NONE + + + + + STRUCT_1899 + - + - + NONE + + + + + STRUCT_1900 + - + - + NONE + + + + + STRUCT_1901 + - + - + NONE + + + + + STRUCT_1902 + - + - + NONE + + + + + STRUCT_1903 + - + - + NONE + + + + + STRUCT_1904 + - + - + NONE + + + + + STRUCT_1905 + - + - + NONE + + + + + STRUCT_1906 + - + - + NONE + + + + + STRUCT_1907 + - + - + NONE + + + + + STRUCT_1908 + - + - + NONE + + + + + STRUCT_1909 + - + - + NONE + + + + + STRUCT_1910 + - + - + NONE + + + + + STRUCT_1911 + - + - + NONE + + + + + STRUCT_1912 + - + - + NONE + + + + + STRUCT_1913 + - + - + NONE + + + + + STRUCT_1914 + - + - + NONE + + + + + STRUCT_1915 + - + - + NONE + + + + + STRUCT_1916 + - + - + NONE + + + + + STRUCT_1917 + - + - + NONE + + + + + STRUCT_1918 + - + - + NONE + + + + + STRUCT_1919 + - + - + NONE + + + + + STRUCT_1920 + - + - + NONE + + + + + STRUCT_1921 + - + - + NONE + + + + + STRUCT_1922 + - + - + NONE + + + + + STRUCT_1923 + - + - + NONE + + + + + STRUCT_1924 + - + - + NONE + + + + + STRUCT_1925 + - + - + NONE + + + + + STRUCT_1926 + - + - + NONE + + + + + STRUCT_1927 + - + - + NONE + + + + + STRUCT_1928 + - + - + NONE + + + + + STRUCT_1929 + - + - + NONE + + + + + STRUCT_1930 + - + - + NONE + + + + + STRUCT_1931 + - + - + NONE + + + + + STRUCT_1932 + - + - + NONE + + + + + STRUCT_1933 + - + - + NONE + + + + + STRUCT_1934 + - + - + NONE + + + + + STRUCT_1935 + - + - + NONE + + + + + STRUCT_1936 + - + - + NONE + + + + + STRUCT_1937 + - + - + NONE + + + + + STRUCT_1938 + - + - + NONE + + + + + STRUCT_1939 + - + - + NONE + + + + + STRUCT_1940 + - + - + NONE + + + + + STRUCT_1941 + - + - + NONE + + + + + STRUCT_1942 + - + - + NONE + + + + + STRUCT_1943 + - + - + NONE + + + + + STRUCT_1944 + - + - + NONE + + + + + STRUCT_1945 + - + - + NONE + + + + + STRUCT_1946 + - + - + NONE + + + + + STRUCT_1947 + - + - + NONE + + + + + STRUCT_1948 + - + - + NONE + + + + + STRUCT_1949 + - + - + NONE + + + + + STRUCT_1950 + - + - + NONE + + + + + STRUCT_1951 + - + - + NONE + + + + + STRUCT_1952 + - + - + NONE + + + + + STRUCT_1953 + - + - + NONE + + + + + STRUCT_1954 + - + - + NONE + + + + + STRUCT_1955 + - + - + NONE + + + + + STRUCT_1956 + - + - + NONE + + + + + STRUCT_1957 + - + - + NONE + + + + + STRUCT_1958 + - + - + NONE + + + + + STRUCT_1959 + - + - + NONE + + + + + STRUCT_1960 + - + - + NONE + + + + + STRUCT_1961 + - + - + NONE + + + + + STRUCT_1962 + - + - + NONE + + + + + STRUCT_1963 + - + - + NONE + + + + + STRUCT_1964 + - + - + NONE + + + + + STRUCT_1965 + - + - + NONE + + + + + STRUCT_1966 + - + - + NONE + + + + + STRUCT_1967 + - + - + NONE + + + + + STRUCT_1968 + - + - + NONE + + + + + STRUCT_1969 + - + - + NONE + + + + + STRUCT_1970 + - + - + NONE + + + + + STRUCT_1971 + - + - + NONE + + + + + STRUCT_1972 + - + - + NONE + + + + + STRUCT_1973 + - + - + NONE + + + + + STRUCT_1974 + - + - + NONE + + + + + STRUCT_1975 + - + - + NONE + + + + + STRUCT_1976 + - + - + NONE + + + + + STRUCT_1977 + - + - + NONE + + + + + STRUCT_1978 + - + - + NONE + + + + + STRUCT_1979 + - + - + NONE + + + + + STRUCT_1980 + - + - + NONE + + + + + STRUCT_1981 + - + - + NONE + + + + + STRUCT_1982 + - + - + NONE + + + + + STRUCT_1983 + - + - + NONE + + + + + STRUCT_1984 + - + - + NONE + + + + + STRUCT_1985 + - + - + NONE + + + + + STRUCT_1986 + - + - + NONE + + + + + STRUCT_1987 + - + - + NONE + + + + + STRUCT_1988 + - + - + NONE + + + + + STRUCT_1989 + - + - + NONE + + + + + STRUCT_1990 + - + - + NONE + + + + + STRUCT_1991 + - + - + NONE + + + + + STRUCT_1992 + - + - + NONE + + + + + STRUCT_1993 + - + - + NONE + + + + + STRUCT_1994 + - + - + NONE + + + + + STRUCT_1995 + - + - + NONE + + + + + STRUCT_1996 + - + - + NONE + + + + + STRUCT_1997 + - + - + NONE + + + + + STRUCT_1998 + - + - + NONE + + + + + STRUCT_1999 + - + - + NONE + + + + + STRUCT_2000 + - + - + NONE + + + + + STRUCT_71 + - + - + NONE + + + + + STRUCT_72 + - + - + NONE + + + + + STRUCT_73 + - + - + NONE + + + + + STRUCT_74 + - + - + NONE + + + + + STRUCT_75 + - + - + NONE + + + + + STRUCT_76 + - + - + NONE + + + + + STRUCT_77 + - + - + NONE + + + + + STRUCT_78 + - + - + NONE + + + + + STRUCT_79 + - + - + NONE + + + + + STRUCT_80 + - + - + NONE + + + + + STRUCT_81 + - + - + NONE + + + + + STRUCT_82 + - + - + NONE + + + + + STRUCT_83 + - + - + NONE + + + + + STRUCT_84 + - + - + NONE + + + + + STRUCT_85 + - + - + NONE + + + + + STRUCT_86 + - + - + NONE + + + + + STRUCT_87 + - + - + NONE + + + + + STRUCT_88 + - + - + NONE + + + + + STRUCT_89 + - + - + NONE + + + + + STRUCT_90 + - + - + NONE + + + + + STRUCT_91 + - + - + NONE + + + + + STRUCT_92 + - + - + NONE + + + + + STRUCT_93 + - + - + NONE + + + + + STRUCT_94 + - + - + NONE + + + + + STRUCT_95 + - + - + NONE + + + + + STRUCT_96 + - + - + NONE + + + + + STRUCT_97 + - + - + NONE + + + + + STRUCT_98 + - + - + NONE + + + + + STRUCT_99 + - + - + NONE + + + + + STRUCT_100 + - + - + NONE + + + + + STRUCT_101 + - + - + NONE + + + + + STRUCT_102 + - + - + NONE + + + + + STRUCT_103 + - + - + NONE + + + + + STRUCT_104 + - + - + NONE + + + + + STRUCT_105 + - + - + NONE + + + + + STRUCT_106 + - + - + NONE + + + + + STRUCT_107 + - + - + NONE + + + + + STRUCT_108 + - + - + NONE + + + + + STRUCT_109 + - + - + NONE + + + + + STRUCT_110 + - + - + NONE + + + + + STRUCT_111 + - + - + NONE + + + + + STRUCT_112 + - + - + NONE + + + + + STRUCT_113 + - + - + NONE + + + + + STRUCT_114 + - + - + NONE + + + + + STRUCT_115 + - + - + NONE + + + + + STRUCT_116 + - + - + NONE + + + + + STRUCT_117 + - + - + NONE + + + + + STRUCT_118 + - + - + NONE + + + + + STRUCT_119 + - + - + NONE + + + + + STRUCT_120 + - + - + NONE + + + + + STRUCT_121 + - + - + NONE + + + + + STRUCT_122 + - + - + NONE + + + + + STRUCT_123 + - + - + NONE + + + + + STRUCT_124 + - + - + NONE + + + + + STRUCT_125 + - + - + NONE + + + + + STRUCT_126 + - + - + NONE + + + + + STRUCT_127 + - + - + NONE + + + + + STRUCT_128 + - + - + NONE + + + + + STRUCT_129 + - + - + NONE + + + + + STRUCT_130 + - + - + NONE + + + + + STRUCT_131 + - + - + NONE + + + + + STRUCT_132 + - + - + NONE + + + + + STRUCT_133 + - + - + NONE + + + + + STRUCT_134 + - + - + NONE + + + + + STRUCT_135 + - + - + NONE + + + + + STRUCT_136 + - + - + NONE + + + + + STRUCT_137 + - + - + NONE + + + + + STRUCT_138 + - + - + NONE + + + + + STRUCT_139 + - + - + NONE + + + + + STRUCT_140 + - + - + NONE + + + + + STRUCT_141 + - + - + NONE + + + + + STRUCT_142 + - + - + NONE + + + + + STRUCT_143 + - + - + NONE + + + + + STRUCT_144 + - + - + NONE + + + + + STRUCT_145 + - + - + NONE + + + + + STRUCT_146 + - + - + NONE + + + + + STRUCT_147 + - + - + NONE + + + + + STRUCT_148 + - + - + NONE + + + + + STRUCT_149 + - + - + NONE + + + + + STRUCT_150 + - + - + NONE + + + + + STRUCT_151 + - + - + NONE + + + + + STRUCT_152 + - + - + NONE + + + + + STRUCT_153 + - + - + NONE + + + + + STRUCT_154 + - + - + NONE + + + + + STRUCT_155 + - + - + NONE + + + + + STRUCT_156 + - + - + NONE + + + + + STRUCT_157 + - + - + NONE + + + + + STRUCT_158 + - + - + NONE + + + + + STRUCT_159 + - + - + NONE + + + + + STRUCT_160 + - + - + NONE + + + + + STRUCT_161 + - + - + NONE + + + + + STRUCT_162 + - + - + NONE + + + + + STRUCT_163 + - + - + NONE + + + + + STRUCT_164 + - + - + NONE + + + + + STRUCT_165 + - + - + NONE + + + + + STRUCT_166 + - + - + NONE + + + + + STRUCT_167 + - + - + NONE + + + + + STRUCT_168 + - + - + NONE + + + + + STRUCT_169 + - + - + NONE + + + + + STRUCT_170 + - + - + NONE + + + + + STRUCT_171 + - + - + NONE + + + + + STRUCT_172 + - + - + NONE + + + + + STRUCT_173 + - + - + NONE + + + + + STRUCT_174 + - + - + NONE + + + + + STRUCT_175 + - + - + NONE + + + + + STRUCT_176 + - + - + NONE + + + + + STRUCT_177 + - + - + NONE + + + + + STRUCT_178 + - + - + NONE + + + + + STRUCT_179 + - + - + NONE + + + + + STRUCT_180 + - + - + NONE + + + + + STRUCT_181 + - + - + NONE + + + + + STRUCT_182 + - + - + NONE + + + + + STRUCT_183 + - + - + NONE + + + + + STRUCT_184 + - + - + NONE + + + + + STRUCT_185 + - + - + NONE + + + + + STRUCT_186 + - + - + NONE + + + + + STRUCT_187 + - + - + NONE + + + + + STRUCT_188 + - + - + NONE + + + + + STRUCT_189 + - + - + NONE + + + + + STRUCT_190 + - + - + NONE + + + + + STRUCT_191 + - + - + NONE + + + + + STRUCT_192 + - + - + NONE + + + + + STRUCT_193 + - + - + NONE + + + + + STRUCT_194 + - + - + NONE + + + + + STRUCT_195 + - + - + NONE + + + + + STRUCT_196 + - + - + NONE + + + + + STRUCT_197 + - + - + NONE + + + + + STRUCT_198 + - + - + NONE + + + + + STRUCT_199 + - + - + NONE + + + + + STRUCT_200 + - + - + NONE + + + + + STRUCT_201 + - + - + NONE + + + + + STRUCT_202 + - + - + NONE + + + + + STRUCT_203 + - + - + NONE + + + + + STRUCT_204 + - + - + NONE + + + + + STRUCT_205 + - + - + NONE + + + + + STRUCT_206 + - + - + NONE + + + + + STRUCT_207 + - + - + NONE + + + + + STRUCT_208 + - + - + NONE + + + + + STRUCT_209 + - + - + NONE + + + + + STRUCT_210 + - + - + NONE + + + + + STRUCT_211 + - + - + NONE + + + + + STRUCT_212 + - + - + NONE + + + + + STRUCT_213 + - + - + NONE + + + + + STRUCT_214 + - + - + NONE + + + + + STRUCT_215 + - + - + NONE + + + + + STRUCT_216 + - + - + NONE + + + + + STRUCT_217 + - + - + NONE + + + + + STRUCT_218 + - + - + NONE + + + + + STRUCT_219 + - + - + NONE + + + + + STRUCT_220 + - + - + NONE + + + + + STRUCT_221 + - + - + NONE + + + + + STRUCT_222 + - + - + NONE + + + + + STRUCT_223 + - + - + NONE + + + + + STRUCT_224 + - + - + NONE + + + + + STRUCT_225 + - + - + NONE + + + + + STRUCT_226 + - + - + NONE + + + + + STRUCT_227 + - + - + NONE + + + + + STRUCT_228 + - + - + NONE + + + + + STRUCT_229 + - + - + NONE + + + + + STRUCT_230 + - + - + NONE + + + + + STRUCT_231 + - + - + NONE + + + + + STRUCT_232 + - + - + NONE + + + + + STRUCT_233 + - + - + NONE + + + + + STRUCT_234 + - + - + NONE + + + + + STRUCT_235 + - + - + NONE + + + + + STRUCT_236 + - + - + NONE + + + + + STRUCT_237 + - + - + NONE + + + + + STRUCT_238 + - + - + NONE + + + + + STRUCT_239 + - + - + NONE + + + + + STRUCT_240 + - + - + NONE + + + + + STRUCT_241 + - + - + NONE + + + + + STRUCT_242 + - + - + NONE + + + + + STRUCT_243 + - + - + NONE + + + + + STRUCT_244 + - + - + NONE + + + + + STRUCT_245 + - + - + NONE + + + + + STRUCT_246 + - + - + NONE + + + + + STRUCT_247 + - + - + NONE + + + + + STRUCT_248 + - + - + NONE + + + + + STRUCT_249 + - + - + NONE + + + + + STRUCT_250 + - + - + NONE + + + + + STRUCT_251 + - + - + NONE + + + + + STRUCT_252 + - + - + NONE + + + + + STRUCT_253 + - + - + NONE + + + + + STRUCT_254 + - + - + NONE + + + + + STRUCT_255 + - + - + NONE + + + + + STRUCT_256 + - + - + NONE + + + + + STRUCT_257 + - + - + NONE + + + + + STRUCT_258 + - + - + NONE + + + + + STRUCT_259 + - + - + NONE + + + + + STRUCT_260 + - + - + NONE + + + + + STRUCT_261 + - + - + NONE + + + + + STRUCT_262 + - + - + NONE + + + + + STRUCT_263 + - + - + NONE + + + + + STRUCT_264 + - + - + NONE + + + + + STRUCT_265 + - + - + NONE + + + + + STRUCT_266 + - + - + NONE + + + + + STRUCT_267 + - + - + NONE + + + + + STRUCT_268 + - + - + NONE + + + + + STRUCT_269 + - + - + NONE + + + + + STRUCT_270 + - + - + NONE + + + + + STRUCT_271 + - + - + NONE + + + + + STRUCT_272 + - + - + NONE + + + + + STRUCT_273 + - + - + NONE + + + + + STRUCT_274 + - + - + NONE + + + + + STRUCT_275 + - + - + NONE + + + + + STRUCT_276 + - + - + NONE + + + + + STRUCT_277 + - + - + NONE + + + + + STRUCT_278 + - + - + NONE + + + + + STRUCT_279 + - + - + NONE + + + + + STRUCT_280 + - + - + NONE + + + + + STRUCT_281 + - + - + NONE + + + + + STRUCT_282 + - + - + NONE + + + + + STRUCT_283 + - + - + NONE + + + + + STRUCT_284 + - + - + NONE + + + + + STRUCT_285 + - + - + NONE + + + + + STRUCT_286 + - + - + NONE + + + + + STRUCT_287 + - + - + NONE + + + + + STRUCT_288 + - + - + NONE + + + + + STRUCT_289 + - + - + NONE + + + + + STRUCT_290 + - + - + NONE + + + + + STRUCT_291 + - + - + NONE + + + + + STRUCT_292 + - + - + NONE + + + + + STRUCT_293 + - + - + NONE + + + + + STRUCT_294 + - + - + NONE + + + + + STRUCT_295 + - + - + NONE + + + + + STRUCT_296 + - + - + NONE + + + + + STRUCT_297 + - + - + NONE + + + + + STRUCT_298 + - + - + NONE + + + + + STRUCT_299 + - + - + NONE + + + + + STRUCT_300 + - + - + NONE + + + + + STRUCT_301 + - + - + NONE + + + + + STRUCT_302 + - + - + NONE + + + + + STRUCT_303 + - + - + NONE + + + + + STRUCT_304 + - + - + NONE + + + + + STRUCT_305 + - + - + NONE + + + + + STRUCT_306 + - + - + NONE + + + + + STRUCT_307 + - + - + NONE + + + + + STRUCT_308 + - + - + NONE + + + + + STRUCT_309 + - + - + NONE + + + + + STRUCT_310 + - + - + NONE + + + + + STRUCT_311 + - + - + NONE + + + + + STRUCT_312 + - + - + NONE + + + + + STRUCT_313 + - + - + NONE + + + + + STRUCT_314 + - + - + NONE + + + + + STRUCT_315 + - + - + NONE + + + + + STRUCT_316 + - + - + NONE + + + + + STRUCT_317 + - + - + NONE + + + + + STRUCT_318 + - + - + NONE + + + + + STRUCT_319 + - + - + NONE + + + + + STRUCT_320 + - + - + NONE + + + + + STRUCT_321 + - + - + NONE + + + + + STRUCT_322 + - + - + NONE + + + + + STRUCT_323 + - + - + NONE + + + + + STRUCT_324 + - + - + NONE + + + + + STRUCT_325 + - + - + NONE + + + + + STRUCT_326 + - + - + NONE + + + + + STRUCT_327 + - + - + NONE + + + + + STRUCT_328 + - + - + NONE + + + + + STRUCT_329 + - + - + NONE + + + + + STRUCT_330 + - + - + NONE + + + + + STRUCT_331 + - + - + NONE + + + + + STRUCT_332 + - + - + NONE + + + + + STRUCT_333 + - + - + NONE + + + + + STRUCT_334 + - + - + NONE + + + + + STRUCT_335 + - + - + NONE + + + + + STRUCT_336 + - + - + NONE + + + + + STRUCT_337 + - + - + NONE + + + + + STRUCT_338 + - + - + NONE + + + + + STRUCT_339 + - + - + NONE + + + + + STRUCT_340 + - + - + NONE + + + + + STRUCT_341 + - + - + NONE + + + + + STRUCT_342 + - + - + NONE + + + + + STRUCT_343 + - + - + NONE + + + + + STRUCT_344 + - + - + NONE + + + + + STRUCT_345 + - + - + NONE + + + + + STRUCT_346 + - + - + NONE + + + + + STRUCT_347 + - + - + NONE + + + + + STRUCT_348 + - + - + NONE + + + + + STRUCT_349 + - + - + NONE + + + + + STRUCT_350 + - + - + NONE + + + + + STRUCT_351 + - + - + NONE + + + + + STRUCT_352 + - + - + NONE + + + + + STRUCT_353 + - + - + NONE + + + + + STRUCT_354 + - + - + NONE + + + + + STRUCT_355 + - + - + NONE + + + + + STRUCT_356 + - + - + NONE + + + + + STRUCT_357 + - + - + NONE + + + + + STRUCT_358 + - + - + NONE + + + + + STRUCT_359 + - + - + NONE + + + + + STRUCT_360 + - + - + NONE + + + + + STRUCT_361 + - + - + NONE + + + + + STRUCT_362 + - + - + NONE + + + + + STRUCT_363 + - + - + NONE + + + + + STRUCT_364 + - + - + NONE + + + + + STRUCT_365 + - + - + NONE + + + + + STRUCT_366 + - + - + NONE + + + + + STRUCT_367 + - + - + NONE + + + + + STRUCT_368 + - + - + NONE + + + + + STRUCT_369 + - + - + NONE + + + + + STRUCT_370 + - + - + NONE + + + + + STRUCT_371 + - + - + NONE + + + + + STRUCT_372 + - + - + NONE + + + + + STRUCT_373 + - + - + NONE + + + + + STRUCT_374 + - + - + NONE + + + + + STRUCT_375 + - + - + NONE + + + + + STRUCT_376 + - + - + NONE + + + + + STRUCT_377 + - + - + NONE + + + + + STRUCT_378 + - + - + NONE + + + + + STRUCT_379 + - + - + NONE + + + + + STRUCT_380 + - + - + NONE + + + + + STRUCT_381 + - + - + NONE + + + + + STRUCT_382 + - + - + NONE + + + + + STRUCT_383 + - + - + NONE + + + + + STRUCT_384 + - + - + NONE + + + + + STRUCT_385 + - + - + NONE + + + + + STRUCT_386 + - + - + NONE + + + + + STRUCT_387 + - + - + NONE + + + + + STRUCT_388 + - + - + NONE + + + + + STRUCT_389 + - + - + NONE + + + + + STRUCT_390 + - + - + NONE + + + + + STRUCT_391 + - + - + NONE + + + + + STRUCT_392 + - + - + NONE + + + + + STRUCT_393 + - + - + NONE + + + + + STRUCT_394 + - + - + NONE + + + + + STRUCT_395 + - + - + NONE + + + + + STRUCT_396 + - + - + NONE + + + + + STRUCT_397 + - + - + NONE + + + + + STRUCT_398 + - + - + NONE + + + + + STRUCT_399 + - + - + NONE + + + + + STRUCT_400 + - + - + NONE + + + + + STRUCT_401 + - + - + NONE + + + + + STRUCT_402 + - + - + NONE + + + + + STRUCT_403 + - + - + NONE + + + + + STRUCT_404 + - + - + NONE + + + + + STRUCT_405 + - + - + NONE + + + + + STRUCT_406 + - + - + NONE + + + + + STRUCT_407 + - + - + NONE + + + + + STRUCT_408 + - + - + NONE + + + + + STRUCT_409 + - + - + NONE + + + + + STRUCT_410 + - + - + NONE + + + + + STRUCT_411 + - + - + NONE + + + + + STRUCT_412 + - + - + NONE + + + + + STRUCT_413 + - + - + NONE + + + + + STRUCT_414 + - + - + NONE + + + + + STRUCT_415 + - + - + NONE + + + + + STRUCT_416 + - + - + NONE + + + + + STRUCT_417 + - + - + NONE + + + + + STRUCT_418 + - + - + NONE + + + + + STRUCT_419 + - + - + NONE + + + + + STRUCT_420 + - + - + NONE + + + + + STRUCT_421 + - + - + NONE + + + + + STRUCT_422 + - + - + NONE + + + + + STRUCT_423 + - + - + NONE + + + + + STRUCT_424 + - + - + NONE + + + + + STRUCT_425 + - + - + NONE + + + + + STRUCT_426 + - + - + NONE + + + + + STRUCT_427 + - + - + NONE + + + + + STRUCT_428 + - + - + NONE + + + + + STRUCT_429 + - + - + NONE + + + + + STRUCT_430 + - + - + NONE + + + + + STRUCT_431 + - + - + NONE + + + + + STRUCT_432 + - + - + NONE + + + + + STRUCT_433 + - + - + NONE + + + + + STRUCT_434 + - + - + NONE + + + + + STRUCT_435 + - + - + NONE + + + + + STRUCT_436 + - + - + NONE + + + + + STRUCT_437 + - + - + NONE + + + + + STRUCT_438 + - + - + NONE + + + + + STRUCT_439 + - + - + NONE + + + + + STRUCT_440 + - + - + NONE + + + + + STRUCT_441 + - + - + NONE + + + + + STRUCT_442 + - + - + NONE + + + + + STRUCT_443 + - + - + NONE + + + + + STRUCT_444 + - + - + NONE + + + + + STRUCT_445 + - + - + NONE + + + + + STRUCT_446 + - + - + NONE + + + + + STRUCT_447 + - + - + NONE + + + + + STRUCT_448 + - + - + NONE + + + + + STRUCT_449 + - + - + NONE + + + + + STRUCT_450 + - + - + NONE + + + + + STRUCT_451 + - + - + NONE + + + + + STRUCT_452 + - + - + NONE + + + + + STRUCT_453 + - + - + NONE + + + + + STRUCT_454 + - + - + NONE + + + + + STRUCT_455 + - + - + NONE + + + + + STRUCT_456 + - + - + NONE + + + + + STRUCT_457 + - + - + NONE + + + + + STRUCT_458 + - + - + NONE + + + + + STRUCT_459 + - + - + NONE + + + + + STRUCT_460 + - + - + NONE + + + + + STRUCT_461 + - + - + NONE + + + + + STRUCT_462 + - + - + NONE + + + + + STRUCT_463 + - + - + NONE + + + + + STRUCT_464 + - + - + NONE + + + + + STRUCT_465 + - + - + NONE + + + + + STRUCT_466 + - + - + NONE + + + + + STRUCT_467 + - + - + NONE + + + + + STRUCT_468 + - + - + NONE + + + + + STRUCT_469 + - + - + NONE + + + + + STRUCT_470 + - + - + NONE + + + + + STRUCT_471 + - + - + NONE + + + + + STRUCT_472 + - + - + NONE + + + + + STRUCT_473 + - + - + NONE + + + + + STRUCT_474 + - + - + NONE + + + + + STRUCT_475 + - + - + NONE + + + + + STRUCT_476 + - + - + NONE + + + + + STRUCT_477 + - + - + NONE + + + + + STRUCT_478 + - + - + NONE + + + + + STRUCT_479 + - + - + NONE + + + + + STRUCT_480 + - + - + NONE + + + + + STRUCT_481 + - + - + NONE + + + + + STRUCT_482 + - + - + NONE + + + + + STRUCT_483 + - + - + NONE + + + + + STRUCT_484 + - + - + NONE + + + + + STRUCT_485 + - + - + NONE + + + + + STRUCT_486 + - + - + NONE + + + + + STRUCT_487 + - + - + NONE + + + + + STRUCT_488 + - + - + NONE + + + + + STRUCT_489 + - + - + NONE + + + + + STRUCT_490 + - + - + NONE + + + + + STRUCT_491 + - + - + NONE + + + + + STRUCT_492 + - + - + NONE + + + + + STRUCT_493 + - + - + NONE + + + + + STRUCT_494 + - + - + NONE + + + + + STRUCT_495 + - + - + NONE + + + + + STRUCT_496 + - + - + NONE + + + + + STRUCT_497 + - + - + NONE + + + + + STRUCT_498 + - + - + NONE + + + + + STRUCT_499 + - + - + NONE + + + + + STRUCT_500 + - + - + NONE + + + + + STRUCT_501 + - + - + NONE + + + + + STRUCT_502 + - + - + NONE + + + + + STRUCT_503 + - + - + NONE + + + + + STRUCT_504 + - + - + NONE + + + + + STRUCT_505 + - + - + NONE + + + + + STRUCT_506 + - + - + NONE + + + + + STRUCT_507 + - + - + NONE + + + + + STRUCT_508 + - + - + NONE + + + + + STRUCT_509 + - + - + NONE + + + + + STRUCT_510 + - + - + NONE + + + + + STRUCT_511 + - + - + NONE + + + + + STRUCT_512 + - + - + NONE + + + + + STRUCT_513 + - + - + NONE + + + + + STRUCT_514 + - + - + NONE + + + + + STRUCT_515 + - + - + NONE + + + + + STRUCT_516 + - + - + NONE + + + + + STRUCT_517 + - + - + NONE + + + + + STRUCT_518 + - + - + NONE + + + + + STRUCT_519 + - + - + NONE + + + + + STRUCT_520 + - + - + NONE + + + + + STRUCT_521 + - + - + NONE + + + + + STRUCT_522 + - + - + NONE + + + + + STRUCT_523 + - + - + NONE + + + + + STRUCT_524 + - + - + NONE + + + + + STRUCT_525 + - + - + NONE + + + + + STRUCT_526 + - + - + NONE + + + + + STRUCT_527 + - + - + NONE + + + + + STRUCT_528 + - + - + NONE + + + + + STRUCT_529 + - + - + NONE + + + + + STRUCT_530 + - + - + NONE + + + + + STRUCT_531 + - + - + NONE + + + + + STRUCT_532 + - + - + NONE + + + + + STRUCT_533 + - + - + NONE + + + + + STRUCT_534 + - + - + NONE + + + + + STRUCT_535 + - + - + NONE + + + + + STRUCT_536 + - + - + NONE + + + + + STRUCT_537 + - + - + NONE + + + + + STRUCT_538 + - + - + NONE + + + + + STRUCT_539 + - + - + NONE + + + + + STRUCT_540 + - + - + NONE + + + + + STRUCT_541 + - + - + NONE + + + + + STRUCT_542 + - + - + NONE + + + + + STRUCT_543 + - + - + NONE + + + + + STRUCT_544 + - + - + NONE + + + + + STRUCT_545 + - + - + NONE + + + + + STRUCT_546 + - + - + NONE + + + + + STRUCT_547 + - + - + NONE + + + + + STRUCT_548 + - + - + NONE + + + + + STRUCT_549 + - + - + NONE + + + + + STRUCT_550 + - + - + NONE + + + + + STRUCT_551 + - + - + NONE + + + + + STRUCT_552 + - + - + NONE + + + + + STRUCT_553 + - + - + NONE + + + + + STRUCT_554 + - + - + NONE + + + + + STRUCT_555 + - + - + NONE + + + + + STRUCT_556 + - + - + NONE + + + + + STRUCT_557 + - + - + NONE + + + + + STRUCT_558 + - + - + NONE + + + + + STRUCT_559 + - + - + NONE + + + + + STRUCT_560 + - + - + NONE + + + + + STRUCT_561 + - + - + NONE + + + + + STRUCT_562 + - + - + NONE + + + + + STRUCT_563 + - + - + NONE + + + + + STRUCT_564 + - + - + NONE + + + + + STRUCT_565 + - + - + NONE + + + + + STRUCT_566 + - + - + NONE + + + + + STRUCT_567 + - + - + NONE + + + + + STRUCT_568 + - + - + NONE + + + + + STRUCT_569 + - + - + NONE + + + + + STRUCT_570 + - + - + NONE + + + + + STRUCT_571 + - + - + NONE + + + + + STRUCT_572 + - + - + NONE + + + + + STRUCT_573 + - + - + NONE + + + + + STRUCT_574 + - + - + NONE + + + + + STRUCT_575 + - + - + NONE + + + + + STRUCT_576 + - + - + NONE + + + + + STRUCT_577 + - + - + NONE + + + + + STRUCT_578 + - + - + NONE + + + + + STRUCT_579 + - + - + NONE + + + + + STRUCT_580 + - + - + NONE + + + + + STRUCT_581 + - + - + NONE + + + + + STRUCT_582 + - + - + NONE + + + + + STRUCT_583 + - + - + NONE + + + + + STRUCT_584 + - + - + NONE + + + + + STRUCT_585 + - + - + NONE + + + + + STRUCT_586 + - + - + NONE + + + + + STRUCT_587 + - + - + NONE + + + + + STRUCT_588 + - + - + NONE + + + + + STRUCT_589 + - + - + NONE + + + + + STRUCT_590 + - + - + NONE + + + + + STRUCT_591 + - + - + NONE + + + + + STRUCT_592 + - + - + NONE + + + + + STRUCT_593 + - + - + NONE + + + + + STRUCT_594 + - + - + NONE + + + + + STRUCT_595 + - + - + NONE + + + + + STRUCT_596 + - + - + NONE + + + + + STRUCT_597 + - + - + NONE + + + + + STRUCT_598 + - + - + NONE + + + + + STRUCT_599 + - + - + NONE + + + + + STRUCT_600 + - + - + NONE + + + + + STRUCT_601 + - + - + NONE + + + + + STRUCT_602 + - + - + NONE + + + + + STRUCT_603 + - + - + NONE + + + + + STRUCT_604 + - + - + NONE + + + + + STRUCT_605 + - + - + NONE + + + + + STRUCT_606 + - + - + NONE + + + + + STRUCT_607 + - + - + NONE + + + + + STRUCT_608 + - + - + NONE + + + + + STRUCT_609 + - + - + NONE + + + + + STRUCT_610 + - + - + NONE + + + + + STRUCT_611 + - + - + NONE + + + + + STRUCT_612 + - + - + NONE + + + + + STRUCT_613 + - + - + NONE + + + + + STRUCT_614 + - + - + NONE + + + + + STRUCT_615 + - + - + NONE + + + + + STRUCT_616 + - + - + NONE + + + + + STRUCT_617 + - + - + NONE + + + + + STRUCT_618 + - + - + NONE + + + + + STRUCT_619 + - + - + NONE + + + + + STRUCT_620 + - + - + NONE + + + + + STRUCT_621 + - + - + NONE + + + + + STRUCT_622 + - + - + NONE + + + + + STRUCT_623 + - + - + NONE + + + + + STRUCT_624 + - + - + NONE + + + + + STRUCT_625 + - + - + NONE + + + + + STRUCT_626 + - + - + NONE + + + + + STRUCT_627 + - + - + NONE + + + + + STRUCT_628 + - + - + NONE + + + + + STRUCT_629 + - + - + NONE + + + + + STRUCT_630 + - + - + NONE + + + + + STRUCT_631 + - + - + NONE + + + + + STRUCT_632 + - + - + NONE + + + + + STRUCT_633 + - + - + NONE + + + + + STRUCT_634 + - + - + NONE + + + + + STRUCT_635 + - + - + NONE + + + + + STRUCT_636 + - + - + NONE + + + + + STRUCT_637 + - + - + NONE + + + + + STRUCT_638 + - + - + NONE + + + + + STRUCT_639 + - + - + NONE + + + + + STRUCT_640 + - + - + NONE + + + + + STRUCT_641 + - + - + NONE + + + + + STRUCT_642 + - + - + NONE + + + + + STRUCT_643 + - + - + NONE + + + + + STRUCT_644 + - + - + NONE + + + + + STRUCT_645 + - + - + NONE + + + + + STRUCT_646 + - + - + NONE + + + + + STRUCT_647 + - + - + NONE + + + + + STRUCT_648 + - + - + NONE + + + + + STRUCT_649 + - + - + NONE + + + + + STRUCT_650 + - + - + NONE + + + + + STRUCT_651 + - + - + NONE + + + + + STRUCT_652 + - + - + NONE + + + + + STRUCT_653 + - + - + NONE + + + + + STRUCT_654 + - + - + NONE + + + + + STRUCT_655 + - + - + NONE + + + + + STRUCT_656 + - + - + NONE + + + + + STRUCT_657 + - + - + NONE + + + + + STRUCT_658 + - + - + NONE + + + + + STRUCT_659 + - + - + NONE + + + + + STRUCT_660 + - + - + NONE + + + + + STRUCT_661 + - + - + NONE + + + + + STRUCT_662 + - + - + NONE + + + + + STRUCT_663 + - + - + NONE + + + + + STRUCT_664 + - + - + NONE + + + + + STRUCT_665 + - + - + NONE + + + + + STRUCT_666 + - + - + NONE + + + + + STRUCT_667 + - + - + NONE + + + + + STRUCT_668 + - + - + NONE + + + + + STRUCT_669 + - + - + NONE + + + + + STRUCT_670 + - + - + NONE + + + + + STRUCT_671 + - + - + NONE + + + + + STRUCT_672 + - + - + NONE + + + + + STRUCT_673 + - + - + NONE + + + + + STRUCT_674 + - + - + NONE + + + + + STRUCT_675 + - + - + NONE + + + + + STRUCT_676 + - + - + NONE + + + + + STRUCT_677 + - + - + NONE + + + + + STRUCT_678 + - + - + NONE + + + + + STRUCT_679 + - + - + NONE + + + + + STRUCT_680 + - + - + NONE + + + + + STRUCT_681 + - + - + NONE + + + + + STRUCT_682 + - + - + NONE + + + + + STRUCT_683 + - + - + NONE + + + + + STRUCT_684 + - + - + NONE + + + + + STRUCT_685 + - + - + NONE + + + + + STRUCT_686 + - + - + NONE + + + + + STRUCT_687 + - + - + NONE + + + + + STRUCT_688 + - + - + NONE + + + + + STRUCT_689 + - + - + NONE + + + + + STRUCT_690 + - + - + NONE + + + + + STRUCT_691 + - + - + NONE + + + + + STRUCT_692 + - + - + NONE + + + + + STRUCT_693 + - + - + NONE + + + + + STRUCT_694 + - + - + NONE + + + + + STRUCT_695 + - + - + NONE + + + + + STRUCT_696 + - + - + NONE + + + + + STRUCT_697 + - + - + NONE + + + + + STRUCT_698 + - + - + NONE + + + + + STRUCT_699 + - + - + NONE + + + + + STRUCT_700 + - + - + NONE + + + + + STRUCT_701 + - + - + NONE + + + + + STRUCT_702 + - + - + NONE + + + + + STRUCT_703 + - + - + NONE + + + + + STRUCT_704 + - + - + NONE + + + + + STRUCT_705 + - + - + NONE + + + + + STRUCT_706 + - + - + NONE + + + + + STRUCT_707 + - + - + NONE + + + + + STRUCT_708 + - + - + NONE + + + + + STRUCT_709 + - + - + NONE + + + + + STRUCT_710 + - + - + NONE + + + + + STRUCT_711 + - + - + NONE + + + + + STRUCT_712 + - + - + NONE + + + + + STRUCT_713 + - + - + NONE + + + + + STRUCT_714 + - + - + NONE + + + + + STRUCT_715 + - + - + NONE + + + + + STRUCT_716 + - + - + NONE + + + + + STRUCT_717 + - + - + NONE + + + + + STRUCT_718 + - + - + NONE + + + + + STRUCT_719 + - + - + NONE + + + + + STRUCT_720 + - + - + NONE + + + + + STRUCT_721 + - + - + NONE + + + + + STRUCT_722 + - + - + NONE + + + + + STRUCT_723 + - + - + NONE + + + + + STRUCT_724 + - + - + NONE + + + + + STRUCT_725 + - + - + NONE + + + + + STRUCT_726 + - + - + NONE + + + + + STRUCT_727 + - + - + NONE + + + + + STRUCT_728 + - + - + NONE + + + + + STRUCT_729 + - + - + NONE + + + + + STRUCT_730 + - + - + NONE + + + + + STRUCT_731 + - + - + NONE + + + + + STRUCT_732 + - + - + NONE + + + + + STRUCT_733 + - + - + NONE + + + + + STRUCT_734 + - + - + NONE + + + + + STRUCT_735 + - + - + NONE + + + + + STRUCT_736 + - + - + NONE + + + + + STRUCT_737 + - + - + NONE + + + + + STRUCT_738 + - + - + NONE + + + + + STRUCT_739 + - + - + NONE + + + + + STRUCT_740 + - + - + NONE + + + + + STRUCT_741 + - + - + NONE + + + + + STRUCT_742 + - + - + NONE + + + + + STRUCT_743 + - + - + NONE + + + + + STRUCT_744 + - + - + NONE + + + + + STRUCT_745 + - + - + NONE + + + + + STRUCT_746 + - + - + NONE + + + + + STRUCT_747 + - + - + NONE + + + + + STRUCT_748 + - + - + NONE + + + + + STRUCT_749 + - + - + NONE + + + + + STRUCT_750 + - + - + NONE + + + + + STRUCT_751 + - + - + NONE + + + + + STRUCT_752 + - + - + NONE + + + + + STRUCT_753 + - + - + NONE + + + + + STRUCT_754 + - + - + NONE + + + + + STRUCT_755 + - + - + NONE + + + + + STRUCT_756 + - + - + NONE + + + + + STRUCT_757 + - + - + NONE + + + + + STRUCT_758 + - + - + NONE + + + + + STRUCT_759 + - + - + NONE + + + + + STRUCT_760 + - + - + NONE + + + + + STRUCT_761 + - + - + NONE + + + + + STRUCT_762 + - + - + NONE + + + + + STRUCT_763 + - + - + NONE + + + + + STRUCT_764 + - + - + NONE + + + + + STRUCT_765 + - + - + NONE + + + + + STRUCT_766 + - + - + NONE + + + + + STRUCT_767 + - + - + NONE + + + + + STRUCT_768 + - + - + NONE + + + + + STRUCT_769 + - + - + NONE + + + + + STRUCT_770 + - + - + NONE + + + + + STRUCT_771 + - + - + NONE + + + + + STRUCT_772 + - + - + NONE + + + + + STRUCT_773 + - + - + NONE + + + + + STRUCT_774 + - + - + NONE + + + + + STRUCT_775 + - + - + NONE + + + + + STRUCT_776 + - + - + NONE + + + + + STRUCT_777 + - + - + NONE + + + + + STRUCT_778 + - + - + NONE + + + + + STRUCT_779 + - + - + NONE + + + + + STRUCT_780 + - + - + NONE + + + + + STRUCT_781 + - + - + NONE + + + + + STRUCT_782 + - + - + NONE + + + + + STRUCT_783 + - + - + NONE + + + + + STRUCT_784 + - + - + NONE + + + + + STRUCT_785 + - + - + NONE + + + + + STRUCT_786 + - + - + NONE + + + + + STRUCT_787 + - + - + NONE + + + + + STRUCT_788 + - + - + NONE + + + + + STRUCT_789 + - + - + NONE + + + + + STRUCT_790 + - + - + NONE + + + + + STRUCT_791 + - + - + NONE + + + + + STRUCT_792 + - + - + NONE + + + + + STRUCT_793 + - + - + NONE + + + + + STRUCT_794 + - + - + NONE + + + + + STRUCT_795 + - + - + NONE + + + + + STRUCT_796 + - + - + NONE + + + + + STRUCT_797 + - + - + NONE + + + + + STRUCT_798 + - + - + NONE + + + + + STRUCT_799 + - + - + NONE + + + + + STRUCT_800 + - + - + NONE + + + + + STRUCT_801 + - + - + NONE + + + + + STRUCT_802 + - + - + NONE + + + + + STRUCT_803 + - + - + NONE + + + + + STRUCT_804 + - + - + NONE + + + + + STRUCT_805 + - + - + NONE + + + + + STRUCT_806 + - + - + NONE + + + + + STRUCT_807 + - + - + NONE + + + + + STRUCT_808 + - + - + NONE + + + + + STRUCT_809 + - + - + NONE + + + + + STRUCT_810 + - + - + NONE + + + + + STRUCT_811 + - + - + NONE + + + + + STRUCT_812 + - + - + NONE + + + + + STRUCT_813 + - + - + NONE + + + + + STRUCT_814 + - + - + NONE + + + + + STRUCT_815 + - + - + NONE + + + + + STRUCT_816 + - + - + NONE + + + + + STRUCT_817 + - + - + NONE + + + + + STRUCT_818 + - + - + NONE + + + + + STRUCT_819 + - + - + NONE + + + + + STRUCT_820 + - + - + NONE + + + + + STRUCT_821 + - + - + NONE + + + + + STRUCT_822 + - + - + NONE + + + + + STRUCT_823 + - + - + NONE + + + + + STRUCT_824 + - + - + NONE + + + + + STRUCT_825 + - + - + NONE + + + + + STRUCT_826 + - + - + NONE + + + + + STRUCT_827 + - + - + NONE + + + + + STRUCT_828 + - + - + NONE + + + + + STRUCT_829 + - + - + NONE + + + + + STRUCT_830 + - + - + NONE + + + + + STRUCT_831 + - + - + NONE + + + + + STRUCT_832 + - + - + NONE + + + + + STRUCT_833 + - + - + NONE + + + + + STRUCT_834 + - + - + NONE + + + + + STRUCT_835 + - + - + NONE + + + + + STRUCT_836 + - + - + NONE + + + + + STRUCT_837 + - + - + NONE + + + + + STRUCT_838 + - + - + NONE + + + + + STRUCT_839 + - + - + NONE + + + + + STRUCT_840 + - + - + NONE + + + + + STRUCT_841 + - + - + NONE + + + + + STRUCT_842 + - + - + NONE + + + + + STRUCT_843 + - + - + NONE + + + + + STRUCT_844 + - + - + NONE + + + + + STRUCT_845 + - + - + NONE + + + + + STRUCT_846 + - + - + NONE + + + + + STRUCT_847 + - + - + NONE + + + + + STRUCT_848 + - + - + NONE + + + + + STRUCT_849 + - + - + NONE + + + + + STRUCT_850 + - + - + NONE + + + + + STRUCT_851 + - + - + NONE + + + + + STRUCT_852 + - + - + NONE + + + + + STRUCT_853 + - + - + NONE + + + + + STRUCT_854 + - + - + NONE + + + + + STRUCT_855 + - + - + NONE + + + + + STRUCT_856 + - + - + NONE + + + + + STRUCT_857 + - + - + NONE + + + + + STRUCT_858 + - + - + NONE + + + + + STRUCT_859 + - + - + NONE + + + + + STRUCT_860 + - + - + NONE + + + + + STRUCT_861 + - + - + NONE + + + + + STRUCT_862 + - + - + NONE + + + + + STRUCT_863 + - + - + NONE + + + + + STRUCT_864 + - + - + NONE + + + + + STRUCT_865 + - + - + NONE + + + + + STRUCT_866 + - + - + NONE + + + + + STRUCT_867 + - + - + NONE + + + + + STRUCT_868 + - + - + NONE + + + + + STRUCT_869 + - + - + NONE + + + + + STRUCT_870 + - + - + NONE + + + + + STRUCT_871 + - + - + NONE + + + + + STRUCT_872 + - + - + NONE + + + + + STRUCT_873 + - + - + NONE + + + + + STRUCT_874 + - + - + NONE + + + + + STRUCT_875 + - + - + NONE + + + + + STRUCT_876 + - + - + NONE + + + + + STRUCT_877 + - + - + NONE + + + + + STRUCT_878 + - + - + NONE + + + + + STRUCT_879 + - + - + NONE + + + + + STRUCT_880 + - + - + NONE + + + + + STRUCT_881 + - + - + NONE + + + + + STRUCT_882 + - + - + NONE + + + + + STRUCT_883 + - + - + NONE + + + + + STRUCT_884 + - + - + NONE + + + + + STRUCT_885 + - + - + NONE + + + + + STRUCT_886 + - + - + NONE + + + + + STRUCT_887 + - + - + NONE + + + + + STRUCT_888 + - + - + NONE + + + + + STRUCT_889 + - + - + NONE + + + + + STRUCT_890 + - + - + NONE + + + + + STRUCT_891 + - + - + NONE + + + + + STRUCT_892 + - + - + NONE + + + + + STRUCT_893 + - + - + NONE + + + + + STRUCT_894 + - + - + NONE + + + + + STRUCT_895 + - + - + NONE + + + + + STRUCT_896 + - + - + NONE + + + + + STRUCT_897 + - + - + NONE + + + + + STRUCT_898 + - + - + NONE + + + + + STRUCT_899 + - + - + NONE + + + + + STRUCT_900 + - + - + NONE + + + + + STRUCT_901 + - + - + NONE + + + + + STRUCT_902 + - + - + NONE + + + + + STRUCT_903 + - + - + NONE + + + + + STRUCT_904 + - + - + NONE + + + + + STRUCT_905 + - + - + NONE + + + + + STRUCT_906 + - + - + NONE + + + + + STRUCT_907 + - + - + NONE + + + + + STRUCT_908 + - + - + NONE + + + + + STRUCT_909 + - + - + NONE + + + + + STRUCT_910 + - + - + NONE + + + + + STRUCT_911 + - + - + NONE + + + + + STRUCT_912 + - + - + NONE + + + + + STRUCT_913 + - + - + NONE + + + + + STRUCT_914 + - + - + NONE + + + + + STRUCT_915 + - + - + NONE + + + + + STRUCT_916 + - + - + NONE + + + + + STRUCT_917 + - + - + NONE + + + + + STRUCT_918 + - + - + NONE + + + + + STRUCT_919 + - + - + NONE + + + + + STRUCT_920 + - + - + NONE + + + + + STRUCT_921 + - + - + NONE + + + + + STRUCT_922 + - + - + NONE + + + + + STRUCT_923 + - + - + NONE + + + + + STRUCT_924 + - + - + NONE + + + + + STRUCT_925 + - + - + NONE + + + + + STRUCT_926 + - + - + NONE + + + + + STRUCT_927 + - + - + NONE + + + + + STRUCT_928 + - + - + NONE + + + + + STRUCT_929 + - + - + NONE + + + + + STRUCT_930 + - + - + NONE + + + + + STRUCT_931 + - + - + NONE + + + + + STRUCT_932 + - + - + NONE + + + + + STRUCT_933 + - + - + NONE + + + + + STRUCT_934 + - + - + NONE + + + + + STRUCT_935 + - + - + NONE + + + + + STRUCT_936 + - + - + NONE + + + + + STRUCT_937 + - + - + NONE + + + + + STRUCT_938 + - + - + NONE + + + + + STRUCT_939 + - + - + NONE + + + + + STRUCT_940 + - + - + NONE + + + + + STRUCT_941 + - + - + NONE + + + + + STRUCT_942 + - + - + NONE + + + + + STRUCT_943 + - + - + NONE + + + + + STRUCT_944 + - + - + NONE + + + + + STRUCT_945 + - + - + NONE + + + + + STRUCT_946 + - + - + NONE + + + + + STRUCT_947 + - + - + NONE + + + + + STRUCT_948 + - + - + NONE + + + + + STRUCT_949 + - + - + NONE + + + + + STRUCT_950 + - + - + NONE + + + + + STRUCT_951 + - + - + NONE + + + + + STRUCT_952 + - + - + NONE + + + + + STRUCT_953 + - + - + NONE + + + + + STRUCT_954 + - + - + NONE + + + + + STRUCT_955 + - + - + NONE + + + + + STRUCT_956 + - + - + NONE + + + + + STRUCT_957 + - + - + NONE + + + + + STRUCT_958 + - + - + NONE + + + + + STRUCT_959 + - + - + NONE + + + + + STRUCT_960 + - + - + NONE + + + + + STRUCT_961 + - + - + NONE + + + + + STRUCT_962 + - + - + NONE + + + + + STRUCT_963 + - + - + NONE + + + + + STRUCT_964 + - + - + NONE + + + + + STRUCT_965 + - + - + NONE + + + + + STRUCT_966 + - + - + NONE + + + + + STRUCT_967 + - + - + NONE + + + + + STRUCT_968 + - + - + NONE + + + + + STRUCT_969 + - + - + NONE + + + + + STRUCT_970 + - + - + NONE + + + + + STRUCT_971 + - + - + NONE + + + + + STRUCT_972 + - + - + NONE + + + + + STRUCT_973 + - + - + NONE + + + + + STRUCT_974 + - + - + NONE + + + + + STRUCT_975 + - + - + NONE + + + + + STRUCT_976 + - + - + NONE + + + + + STRUCT_977 + - + - + NONE + + + + + STRUCT_978 + - + - + NONE + + + + + STRUCT_979 + - + - + NONE + + + + + STRUCT_980 + - + - + NONE + + + + + STRUCT_981 + - + - + NONE + + + + + STRUCT_982 + - + - + NONE + + + + + STRUCT_983 + - + - + NONE + + + + + STRUCT_984 + - + - + NONE + + + + + STRUCT_985 + - + - + NONE + + + + + STRUCT_986 + - + - + NONE + + + + + STRUCT_987 + - + - + NONE + + + + + STRUCT_988 + - + - + NONE + + + + + STRUCT_989 + - + - + NONE + + + + + STRUCT_990 + - + - + NONE + + + + + STRUCT_991 + - + - + NONE + + + + + STRUCT_992 + - + - + NONE + + + + + STRUCT_993 + - + - + NONE + + + + + STRUCT_994 + - + - + NONE + + + + + STRUCT_995 + - + - + NONE + + + + + STRUCT_996 + - + - + NONE + + + + + STRUCT_997 + - + - + NONE + + + + + STRUCT_998 + - + - + NONE + + + + + STRUCT_999 + - + - + NONE + + + + + STRUCT_1000 + - + - + NONE + + + + + STRUCT_1001 + - + - + NONE + + + + + STRUCT_1002 + - + - + NONE + + + + + STRUCT_1003 + - + - + NONE + + + + + STRUCT_1004 + - + - + NONE + + + + + STRUCT_1005 + - + - + NONE + + + + + STRUCT_1006 + - + - + NONE + + + + + STRUCT_1007 + - + - + NONE + + + + + STRUCT_1008 + - + - + NONE + + + + + STRUCT_1009 + - + - + NONE + + + + + STRUCT_1010 + - + - + NONE + + + + + STRUCT_1011 + - + - + NONE + + + + + STRUCT_1012 + - + - + NONE + + + + + STRUCT_1013 + - + - + NONE + + + + + STRUCT_1014 + - + - + NONE + + + + + STRUCT_1015 + - + - + NONE + + + + + STRUCT_1016 + - + - + NONE + + + + + STRUCT_1017 + - + - + NONE + + + + + STRUCT_1018 + - + - + NONE + + + + + STRUCT_1019 + - + - + NONE + + + + + STRUCT_1020 + - + - + NONE + + + + + STRUCT_1021 + - + - + NONE + + + + + STRUCT_1022 + - + - + NONE + + + + + STRUCT_1023 + - + - + NONE + + + + + STRUCT_1024 + - + - + NONE + + + + + STRUCT_1025 + - + - + NONE + + + + + STRUCT_1026 + - + - + NONE + + + + + STRUCT_1027 + - + - + NONE + + + + + STRUCT_1028 + - + - + NONE + + + + + STRUCT_1029 + - + - + NONE + + + + + STRUCT_1030 + - + - + NONE + + + + + STRUCT_1031 + - + - + NONE + + + + + STRUCT_1032 + - + - + NONE + + + + + STRUCT_1033 + - + - + NONE + + + + + STRUCT_1034 + - + - + NONE + + + + + STRUCT_1035 + - + - + NONE + + + + + STRUCT_1036 + - + - + NONE + + + + + STRUCT_1037 + - + - + NONE + + + + + STRUCT_1038 + - + - + NONE + + + + + STRUCT_1039 + - + - + NONE + + + + + STRUCT_1040 + - + - + NONE + + + + + STRUCT_1041 + - + - + NONE + + + + + STRUCT_1042 + - + - + NONE + + + + + STRUCT_1043 + - + - + NONE + + + + + STRUCT_1044 + - + - + NONE + + + + + STRUCT_1045 + - + - + NONE + + + + + STRUCT_1046 + - + - + NONE + + + + + STRUCT_1047 + - + - + NONE + + + + + STRUCT_1048 + - + - + NONE + + + + + STRUCT_1049 + - + - + NONE + + + + + STRUCT_1050 + - + - + NONE + + + + + STRUCT_1051 + - + - + NONE + + + + + STRUCT_1052 + - + - + NONE + + + + + STRUCT_1053 + - + - + NONE + + + + + STRUCT_1054 + - + - + NONE + + + + + STRUCT_1055 + - + - + NONE + + + + + STRUCT_1056 + - + - + NONE + + + + + STRUCT_1057 + - + - + NONE + + + + + STRUCT_1058 + - + - + NONE + + + + + STRUCT_1059 + - + - + NONE + + + + + STRUCT_1060 + - + - + NONE + + + + + STRUCT_1061 + - + - + NONE + + + + + STRUCT_1062 + - + - + NONE + + + + + STRUCT_1063 + - + - + NONE + + + + + STRUCT_1064 + - + - + NONE + + + + + STRUCT_1065 + - + - + NONE + + + + + STRUCT_1066 + - + - + NONE + + + + + STRUCT_1067 + - + - + NONE + + + + + STRUCT_1068 + - + - + NONE + + + + + STRUCT_1069 + - + - + NONE + + + + + STRUCT_1070 + - + - + NONE + + + + + STRUCT_1071 + - + - + NONE + + + + + STRUCT_1072 + - + - + NONE + + + + + STRUCT_1073 + - + - + NONE + + + + + STRUCT_1074 + - + - + NONE + + + + + STRUCT_1075 + - + - + NONE + + + + + STRUCT_1076 + - + - + NONE + + + + + STRUCT_1077 + - + - + NONE + + + + + STRUCT_1078 + - + - + NONE + + + + + STRUCT_1079 + - + - + NONE + + + + + STRUCT_1080 + - + - + NONE + + + + + STRUCT_1081 + - + - + NONE + + + + + STRUCT_1082 + - + - + NONE + + + + + STRUCT_1083 + - + - + NONE + + + + + STRUCT_1084 + - + - + NONE + + + + + STRUCT_1085 + - + - + NONE + + + + + STRUCT_1086 + - + - + NONE + + + + + STRUCT_1087 + - + - + NONE + + + + + STRUCT_1088 + - + - + NONE + + + + + STRUCT_1089 + - + - + NONE + + + + + STRUCT_1090 + - + - + NONE + + + + + STRUCT_1091 + - + - + NONE + + + + + STRUCT_1092 + - + - + NONE + + + + + STRUCT_1093 + - + - + NONE + + + + + STRUCT_1094 + - + - + NONE + + + + + STRUCT_1095 + - + - + NONE + + + + + STRUCT_1096 + - + - + NONE + + + + + STRUCT_1097 + - + - + NONE + + + + + STRUCT_1098 + - + - + NONE + + + + + STRUCT_1099 + - + - + NONE + + + + + STRUCT_1100 + - + - + NONE + + + + + STRUCT_1101 + - + - + NONE + + + + + STRUCT_1102 + - + - + NONE + + + + + STRUCT_1103 + - + - + NONE + + + + + STRUCT_1104 + - + - + NONE + + + + + STRUCT_1105 + - + - + NONE + + + + + STRUCT_1106 + - + - + NONE + + + + + STRUCT_1107 + - + - + NONE + + + + + STRUCT_1108 + - + - + NONE + + + + + STRUCT_1109 + - + - + NONE + + + + + STRUCT_1110 + - + - + NONE + + + + + STRUCT_1111 + - + - + NONE + + + + + STRUCT_1112 + - + - + NONE + + + + + STRUCT_1113 + - + - + NONE + + + + + STRUCT_1114 + - + - + NONE + + + + + STRUCT_1115 + - + - + NONE + + + + + STRUCT_1116 + - + - + NONE + + + + + STRUCT_1117 + - + - + NONE + + + + + STRUCT_1118 + - + - + NONE + + + + + STRUCT_1119 + - + - + NONE + + + + + STRUCT_1120 + - + - + NONE + + + + + STRUCT_1121 + - + - + NONE + + + + + STRUCT_1122 + - + - + NONE + + + + + STRUCT_1123 + - + - + NONE + + + + + STRUCT_1124 + - + - + NONE + + + + + STRUCT_1125 + - + - + NONE + + + + + STRUCT_1126 + - + - + NONE + + + + + STRUCT_1127 + - + - + NONE + + + + + STRUCT_1128 + - + - + NONE + + + + + STRUCT_1129 + - + - + NONE + + + + + STRUCT_1130 + - + - + NONE + + + + + STRUCT_1131 + - + - + NONE + + + + + STRUCT_1132 + - + - + NONE + + + + + STRUCT_1133 + - + - + NONE + + + + + STRUCT_1134 + - + - + NONE + + + + + STRUCT_1135 + - + - + NONE + + + + + STRUCT_1136 + - + - + NONE + + + + + STRUCT_1137 + - + - + NONE + + + + + STRUCT_1138 + - + - + NONE + + + + + STRUCT_1139 + - + - + NONE + + + + + STRUCT_1140 + - + - + NONE + + + + + STRUCT_1141 + - + - + NONE + + + + + STRUCT_1142 + - + - + NONE + + + + + STRUCT_1143 + - + - + NONE + + + + + STRUCT_1144 + - + - + NONE + + + + + STRUCT_1145 + - + - + NONE + + + + + STRUCT_1146 + - + - + NONE + + + + + STRUCT_1147 + - + - + NONE + + + + + STRUCT_1148 + - + - + NONE + + + + + STRUCT_1149 + - + - + NONE + + + + + STRUCT_1150 + - + - + NONE + + + + + STRUCT_1151 + - + - + NONE + + + + + STRUCT_1152 + - + - + NONE + + + + + STRUCT_1153 + - + - + NONE + + + + + STRUCT_1154 + - + - + NONE + + + + + STRUCT_1155 + - + - + NONE + + + + + STRUCT_1156 + - + - + NONE + + + + + STRUCT_1157 + - + - + NONE + + + + + STRUCT_1158 + - + - + NONE + + + + + STRUCT_1159 + - + - + NONE + + + + + STRUCT_1160 + - + - + NONE + + + + + STRUCT_1161 + - + - + NONE + + + + + STRUCT_1162 + - + - + NONE + + + + + STRUCT_1163 + - + - + NONE + + + + + STRUCT_1164 + - + - + NONE + + + + + STRUCT_1165 + - + - + NONE + + + + + STRUCT_1166 + - + - + NONE + + + + + STRUCT_1167 + - + - + NONE + + + + + STRUCT_1168 + - + - + NONE + + + + + STRUCT_1169 + - + - + NONE + + + + + STRUCT_1170 + - + - + NONE + + + + + STRUCT_1171 + - + - + NONE + + + + + STRUCT_1172 + - + - + NONE + + + + + STRUCT_1173 + - + - + NONE + + + + + STRUCT_1174 + - + - + NONE + + + + + STRUCT_1175 + - + - + NONE + + + + + STRUCT_1176 + - + - + NONE + + + + + STRUCT_1177 + - + - + NONE + + + + + STRUCT_1178 + - + - + NONE + + + + + STRUCT_1179 + - + - + NONE + + + + + STRUCT_1180 + - + - + NONE + + + + + STRUCT_1181 + - + - + NONE + + + + + STRUCT_1182 + - + - + NONE + + + + + STRUCT_1183 + - + - + NONE + + + + + STRUCT_1184 + - + - + NONE + + + + + STRUCT_1185 + - + - + NONE + + + + + STRUCT_1186 + - + - + NONE + + + + + STRUCT_1187 + - + - + NONE + + + + + STRUCT_1188 + - + - + NONE + + + + + STRUCT_1189 + - + - + NONE + + + + + STRUCT_1190 + - + - + NONE + + + + + STRUCT_1191 + - + - + NONE + + + + + STRUCT_1192 + - + - + NONE + + + + + STRUCT_1193 + - + - + NONE + + + + + STRUCT_1194 + - + - + NONE + + + + + STRUCT_1195 + - + - + NONE + + + + + STRUCT_1196 + - + - + NONE + + + + + STRUCT_1197 + - + - + NONE + + + + + STRUCT_1198 + - + - + NONE + + + + + STRUCT_1199 + - + - + NONE + + + + + STRUCT_1200 + - + - + NONE + + + + + STRUCT_1201 + - + - + NONE + + + + + STRUCT_1202 + - + - + NONE + + + + + STRUCT_1203 + - + - + NONE + + + + + STRUCT_1204 + - + - + NONE + + + + + STRUCT_1205 + - + - + NONE + + + + + STRUCT_1206 + - + - + NONE + + + + + STRUCT_1207 + - + - + NONE + + + + + STRUCT_1208 + - + - + NONE + + + + + STRUCT_1209 + - + - + NONE + + + + + STRUCT_1210 + - + - + NONE + + + + + STRUCT_1211 + - + - + NONE + + + + + STRUCT_1212 + - + - + NONE + + + + + STRUCT_1213 + - + - + NONE + + + + + STRUCT_1214 + - + - + NONE + + + + + STRUCT_1215 + - + - + NONE + + + + + STRUCT_1216 + - + - + NONE + + + + + STRUCT_1217 + - + - + NONE + + + + + STRUCT_1218 + - + - + NONE + + + + + STRUCT_1219 + - + - + NONE + + + + + STRUCT_1220 + - + - + NONE + + + + + STRUCT_1221 + - + - + NONE + + + + + STRUCT_1222 + - + - + NONE + + + + + STRUCT_1223 + - + - + NONE + + + + + STRUCT_1224 + - + - + NONE + + + + + STRUCT_1225 + - + - + NONE + + + + + STRUCT_1226 + - + - + NONE + + + + + STRUCT_1227 + - + - + NONE + + + + + STRUCT_1228 + - + - + NONE + + + + + STRUCT_1229 + - + - + NONE + + + + + STRUCT_1230 + - + - + NONE + + + + + STRUCT_1231 + - + - + NONE + + + + + STRUCT_1232 + - + - + NONE + + + + + STRUCT_1233 + - + - + NONE + + + + + STRUCT_1234 + - + - + NONE + + + + + STRUCT_1235 + - + - + NONE + + + + + STRUCT_1236 + - + - + NONE + + + + + STRUCT_1237 + - + - + NONE + + + + + STRUCT_1238 + - + - + NONE + + + + + STRUCT_1239 + - + - + NONE + + + + + STRUCT_1240 + - + - + NONE + + + + + STRUCT_1241 + - + - + NONE + + + + + STRUCT_1242 + - + - + NONE + + + + + STRUCT_1243 + - + - + NONE + + + + + STRUCT_1244 + - + - + NONE + + + + + STRUCT_1245 + - + - + NONE + + + + + STRUCT_1246 + - + - + NONE + + + + + STRUCT_1247 + - + - + NONE + + + + + STRUCT_1248 + - + - + NONE + + + + + STRUCT_1249 + - + - + NONE + + + + + STRUCT_1250 + - + - + NONE + + + + + STRUCT_1251 + - + - + NONE + + + + + STRUCT_1252 + - + - + NONE + + + + + STRUCT_1253 + - + - + NONE + + + + + STRUCT_1254 + - + - + NONE + + + + + STRUCT_1255 + - + - + NONE + + + + + STRUCT_1256 + - + - + NONE + + + + + STRUCT_1257 + - + - + NONE + + + + + STRUCT_1258 + - + - + NONE + + + + + STRUCT_1259 + - + - + NONE + + + + + STRUCT_1260 + - + - + NONE + + + + + STRUCT_1261 + - + - + NONE + + + + + STRUCT_1262 + - + - + NONE + + + + + STRUCT_1263 + - + - + NONE + + + + + STRUCT_1264 + - + - + NONE + + + + + STRUCT_1265 + - + - + NONE + + + + + STRUCT_1266 + - + - + NONE + + + + + STRUCT_1267 + - + - + NONE + + + + + STRUCT_1268 + - + - + NONE + + + + + STRUCT_1269 + - + - + NONE + + + + + STRUCT_1270 + - + - + NONE + + + + + STRUCT_1271 + - + - + NONE + + + + + STRUCT_1272 + - + - + NONE + + + + + STRUCT_1273 + - + - + NONE + + + + + STRUCT_1274 + - + - + NONE + + + + + STRUCT_1275 + - + - + NONE + + + + + STRUCT_1276 + - + - + NONE + + + + + STRUCT_1277 + - + - + NONE + + + + + STRUCT_1278 + - + - + NONE + + + + + STRUCT_1279 + - + - + NONE + + + + + STRUCT_1280 + - + - + NONE + + + + + STRUCT_1281 + - + - + NONE + + + + + STRUCT_1282 + - + - + NONE + + + + + STRUCT_1283 + - + - + NONE + + + + + STRUCT_1284 + - + - + NONE + + + + + STRUCT_1285 + - + - + NONE + + + + + STRUCT_1286 + - + - + NONE + + + + + STRUCT_1287 + - + - + NONE + + + + + STRUCT_1288 + - + - + NONE + + + + + STRUCT_1289 + - + - + NONE + + + + + STRUCT_1290 + - + - + NONE + + + + + STRUCT_1291 + - + - + NONE + + + + + STRUCT_1292 + - + - + NONE + + + + + STRUCT_1293 + - + - + NONE + + + + + STRUCT_1294 + - + - + NONE + + + + + STRUCT_1295 + - + - + NONE + + + + + STRUCT_1296 + - + - + NONE + + + + + STRUCT_1297 + - + - + NONE + + + + + STRUCT_1298 + - + - + NONE + + + + + STRUCT_1299 + - + - + NONE + + + + + STRUCT_1300 + - + - + NONE + + + + + STRUCT_1301 + - + - + NONE + + + + + STRUCT_1302 + - + - + NONE + + + + + STRUCT_1303 + - + - + NONE + + + + + STRUCT_1304 + - + - + NONE + + + + + STRUCT_1305 + - + - + NONE + + + + + STRUCT_1306 + - + - + NONE + + + + + STRUCT_1307 + - + - + NONE + + + + + STRUCT_1308 + - + - + NONE + + + + + STRUCT_1309 + - + - + NONE + + + + + STRUCT_1310 + - + - + NONE + + + + + STRUCT_1311 + - + - + NONE + + + + + STRUCT_1312 + - + - + NONE + + + + + STRUCT_1313 + - + - + NONE + + + + + STRUCT_1314 + - + - + NONE + + + + + STRUCT_1315 + - + - + NONE + + + + + STRUCT_1316 + - + - + NONE + + + + + STRUCT_1317 + - + - + NONE + + + + + STRUCT_1318 + - + - + NONE + + + + + STRUCT_1319 + - + - + NONE + + + + + STRUCT_1320 + - + - + NONE + + + + + STRUCT_1321 + - + - + NONE + + + + + STRUCT_1322 + - + - + NONE + + + + + STRUCT_1323 + - + - + NONE + + + + + STRUCT_1324 + - + - + NONE + + + + + STRUCT_1325 + - + - + NONE + + + + + STRUCT_1326 + - + - + NONE + + + + + STRUCT_1327 + - + - + NONE + + + + + STRUCT_1328 + - + - + NONE + + + + + STRUCT_1329 + - + - + NONE + + + + + STRUCT_1330 + - + - + NONE + + + + + STRUCT_1331 + - + - + NONE + + + + + STRUCT_1332 + - + - + NONE + + + + + STRUCT_1333 + - + - + NONE + + + + + STRUCT_1334 + - + - + NONE + + + + + STRUCT_1335 + - + - + NONE + + + + + STRUCT_1336 + - + - + NONE + + + + + STRUCT_1337 + - + - + NONE + + + + + STRUCT_1338 + - + - + NONE + + + + + STRUCT_1339 + - + - + NONE + + + + + STRUCT_1340 + - + - + NONE + + + + + STRUCT_1341 + - + - + NONE + + + + + STRUCT_1342 + - + - + NONE + + + + + STRUCT_1343 + - + - + NONE + + + + + STRUCT_1344 + - + - + NONE + + + + + STRUCT_1345 + - + - + NONE + + + + + STRUCT_1346 + - + - + NONE + + + + + STRUCT_1347 + - + - + NONE + + + + + STRUCT_1348 + - + - + NONE + + + + + STRUCT_1349 + - + - + NONE + + + + + STRUCT_1350 + - + - + NONE + + + + + STRUCT_1351 + - + - + NONE + + + + + STRUCT_1352 + - + - + NONE + + + + + STRUCT_1353 + - + - + NONE + + + + + STRUCT_1354 + - + - + NONE + + + + + STRUCT_1355 + - + - + NONE + + + + + STRUCT_1356 + - + - + NONE + + + + + STRUCT_1357 + - + - + NONE + + + + + STRUCT_1358 + - + - + NONE + + + + + STRUCT_1359 + - + - + NONE + + + + + STRUCT_1360 + - + - + NONE + + + + + STRUCT_1361 + - + - + NONE + + + + + STRUCT_1362 + - + - + NONE + + + + + STRUCT_1363 + - + - + NONE + + + + + STRUCT_1364 + - + - + NONE + + + + + STRUCT_1365 + - + - + NONE + + + + + STRUCT_1366 + - + - + NONE + + + + + STRUCT_1367 + - + - + NONE + + + + + STRUCT_1368 + - + - + NONE + + + + + STRUCT_1369 + - + - + NONE + + + + + STRUCT_1370 + - + - + NONE + + + + + STRUCT_1371 + - + - + NONE + + + + + STRUCT_1372 + - + - + NONE + + + + + STRUCT_1373 + - + - + NONE + + + + + STRUCT_1374 + - + - + NONE + + + + + STRUCT_1375 + - + - + NONE + + + + + STRUCT_1376 + - + - + NONE + + + + + STRUCT_1377 + - + - + NONE + + + + + STRUCT_1378 + - + - + NONE + + + + + STRUCT_1379 + - + - + NONE + + + + + STRUCT_1380 + - + - + NONE + + + + + STRUCT_1381 + - + - + NONE + + + + + STRUCT_1382 + - + - + NONE + + + + + STRUCT_1383 + - + - + NONE + + + + + STRUCT_1384 + - + - + NONE + + + + + STRUCT_1385 + - + - + NONE + + + + + STRUCT_1386 + - + - + NONE + + + + + STRUCT_1387 + - + - + NONE + + + + + STRUCT_1388 + - + - + NONE + + + + + STRUCT_1389 + - + - + NONE + + + + + STRUCT_1390 + - + - + NONE + + + + + STRUCT_1391 + - + - + NONE + + + + + STRUCT_1392 + - + - + NONE + + + + + STRUCT_1393 + - + - + NONE + + + + + STRUCT_1394 + - + - + NONE + + + + + STRUCT_1395 + - + - + NONE + + + + + STRUCT_1396 + - + - + NONE + + + + + STRUCT_1397 + - + - + NONE + + + + + STRUCT_1398 + - + - + NONE + + + + + STRUCT_1399 + - + - + NONE + + + + + STRUCT_1400 + - + - + NONE + + + + + STRUCT_1401 + - + - + NONE + + + + + STRUCT_1402 + - + - + NONE + + + + + STRUCT_1403 + - + - + NONE + + + + + STRUCT_1404 + - + - + NONE + + + + + STRUCT_1405 + - + - + NONE + + + + + STRUCT_1406 + - + - + NONE + + + + + STRUCT_1407 + - + - + NONE + + + + + STRUCT_1408 + - + - + NONE + + + + + STRUCT_1409 + - + - + NONE + + + + + STRUCT_1410 + - + - + NONE + + + + + STRUCT_1411 + - + - + NONE + + + + + STRUCT_1412 + - + - + NONE + + + + + STRUCT_1413 + - + - + NONE + + + + + STRUCT_1414 + - + - + NONE + + + + + STRUCT_1415 + - + - + NONE + + + + + STRUCT_1416 + - + - + NONE + + + + + STRUCT_1417 + - + - + NONE + + + + + STRUCT_1418 + - + - + NONE + + + + + STRUCT_1419 + - + - + NONE + + + + + STRUCT_1420 + - + - + NONE + + + + + STRUCT_1421 + - + - + NONE + + + + + STRUCT_1422 + - + - + NONE + + + + + STRUCT_1423 + - + - + NONE + + + + + STRUCT_1424 + - + - + NONE + + + + + STRUCT_1425 + - + - + NONE + + + + + STRUCT_1426 + - + - + NONE + + + + + STRUCT_1427 + - + - + NONE + + + + + STRUCT_1428 + - + - + NONE + + + + + STRUCT_1429 + - + - + NONE + + + + + STRUCT_1430 + - + - + NONE + + + + + STRUCT_1431 + - + - + NONE + + + + + STRUCT_1432 + - + - + NONE + + + + + STRUCT_1433 + - + - + NONE + + + + + STRUCT_1434 + - + - + NONE + + + + + STRUCT_1435 + - + - + NONE + + + + + STRUCT_1436 + - + - + NONE + + + + + STRUCT_1437 + - + - + NONE + + + + + STRUCT_1438 + - + - + NONE + + + + + STRUCT_1439 + - + - + NONE + + + + + STRUCT_1440 + - + - + NONE + + + + + STRUCT_1441 + - + - + NONE + + + + + STRUCT_1442 + - + - + NONE + + + + + STRUCT_1443 + - + - + NONE + + + + + STRUCT_1444 + - + - + NONE + + + + + STRUCT_1445 + - + - + NONE + + + + + STRUCT_1446 + - + - + NONE + + + + + STRUCT_1447 + - + - + NONE + + + + + STRUCT_1448 + - + - + NONE + + + + + STRUCT_1449 + - + - + NONE + + + + + STRUCT_1450 + - + - + NONE + + + + + STRUCT_1451 + - + - + NONE + + + + + STRUCT_1452 + - + - + NONE + + + + + STRUCT_1453 + - + - + NONE + + + + + STRUCT_1454 + - + - + NONE + + + + + STRUCT_1455 + - + - + NONE + + + + + STRUCT_1456 + - + - + NONE + + + + + STRUCT_1457 + - + - + NONE + + + + + STRUCT_1458 + - + - + NONE + + + + + STRUCT_1459 + - + - + NONE + + + + + STRUCT_1460 + - + - + NONE + + + + + STRUCT_1461 + - + - + NONE + + + + + STRUCT_1462 + - + - + NONE + + + + + STRUCT_1463 + - + - + NONE + + + + + STRUCT_1464 + - + - + NONE + + + + + STRUCT_1465 + - + - + NONE + + + + + STRUCT_1466 + - + - + NONE + + + + + STRUCT_1467 + - + - + NONE + + + + + STRUCT_1468 + - + - + NONE + + + + + STRUCT_1469 + - + - + NONE + + + + + STRUCT_1470 + - + - + NONE + + + + + STRUCT_1471 + - + - + NONE + + + + + STRUCT_1472 + - + - + NONE + + + + + STRUCT_1473 + - + - + NONE + + + + + STRUCT_1474 + - + - + NONE + + + + + STRUCT_1475 + - + - + NONE + + + + + STRUCT_1476 + - + - + NONE + + + + + STRUCT_1477 + - + - + NONE + + + + + STRUCT_1478 + - + - + NONE + + + + + STRUCT_1479 + - + - + NONE + + + + + STRUCT_1480 + - + - + NONE + + + + + STRUCT_1481 + - + - + NONE + + + + + STRUCT_1482 + - + - + NONE + + + + + STRUCT_1483 + - + - + NONE + + + + + STRUCT_1484 + - + - + NONE + + + + + STRUCT_1485 + - + - + NONE + + + + + STRUCT_1486 + - + - + NONE + + + + + STRUCT_1487 + - + - + NONE + + + + + STRUCT_1488 + - + - + NONE + + + + + STRUCT_1489 + - + - + NONE + + + + + STRUCT_1490 + - + - + NONE + + + + + STRUCT_1491 + - + - + NONE + + + + + STRUCT_1492 + - + - + NONE + + + + + STRUCT_1493 + - + - + NONE + + + + + STRUCT_1494 + - + - + NONE + + + + + STRUCT_1495 + - + - + NONE + + + + + STRUCT_1496 + - + - + NONE + + + + + STRUCT_1497 + - + - + NONE + + + + + STRUCT_1498 + - + - + NONE + + + + + STRUCT_1499 + - + - + NONE + + + + + STRUCT_1500 + - + - + NONE + + + + + STRUCT_1501 + - + - + NONE + + + + + STRUCT_1502 + - + - + NONE + + + + + STRUCT_1503 + - + - + NONE + + + + + STRUCT_1504 + - + - + NONE + + + + + STRUCT_1505 + - + - + NONE + + + + + STRUCT_1506 + - + - + NONE + + + + + STRUCT_1507 + - + - + NONE + + + + + STRUCT_1508 + - + - + NONE + + + + + STRUCT_1509 + - + - + NONE + + + + + STRUCT_1510 + - + - + NONE + + + + + STRUCT_1511 + - + - + NONE + + + + + STRUCT_1512 + - + - + NONE + + + + + STRUCT_1513 + - + - + NONE + + + + + STRUCT_1514 + - + - + NONE + + + + + STRUCT_1515 + - + - + NONE + + + + + STRUCT_1516 + - + - + NONE + + + + + STRUCT_1517 + - + - + NONE + + + + + STRUCT_1518 + - + - + NONE + + + + + STRUCT_1519 + - + - + NONE + + + + + STRUCT_1520 + - + - + NONE + + + + + STRUCT_1521 + - + - + NONE + + + + + STRUCT_1522 + - + - + NONE + + + + + STRUCT_1523 + - + - + NONE + + + + + STRUCT_1524 + - + - + NONE + + + + + STRUCT_1525 + - + - + NONE + + + + + STRUCT_1526 + - + - + NONE + + + + + STRUCT_1527 + - + - + NONE + + + + + STRUCT_1528 + - + - + NONE + + + + + STRUCT_1529 + - + - + NONE + + + + + STRUCT_1530 + - + - + NONE + + + + + STRUCT_1531 + - + - + NONE + + + + + STRUCT_1532 + - + - + NONE + + + + + STRUCT_1533 + - + - + NONE + + + + + STRUCT_1534 + - + - + NONE + + + + + STRUCT_1535 + - + - + NONE + + + + + STRUCT_1536 + - + - + NONE + + + + + STRUCT_1537 + - + - + NONE + + + + + STRUCT_1538 + - + - + NONE + + + + + STRUCT_1539 + - + - + NONE + + + + + STRUCT_1540 + - + - + NONE + + + + + STRUCT_1541 + - + - + NONE + + + + + STRUCT_1542 + - + - + NONE + + + + + STRUCT_1543 + - + - + NONE + + + + + STRUCT_1544 + - + - + NONE + + + + + STRUCT_1545 + - + - + NONE + + + + + STRUCT_1546 + - + - + NONE + + + + + STRUCT_1547 + - + - + NONE + + + + + STRUCT_1548 + - + - + NONE + + + + + STRUCT_1549 + - + - + NONE + + + + + STRUCT_1550 + - + - + NONE + + + + + STRUCT_1551 + - + - + NONE + + + + + STRUCT_1552 + - + - + NONE + + + + + STRUCT_1553 + - + - + NONE + + + + + STRUCT_1554 + - + - + NONE + + + + + STRUCT_1555 + - + - + NONE + + + + + STRUCT_1556 + - + - + NONE + + + + + STRUCT_1557 + - + - + NONE + + + + + STRUCT_1558 + - + - + NONE + + + + + STRUCT_1559 + - + - + NONE + + + + + STRUCT_1560 + - + - + NONE + + + + + STRUCT_1561 + - + - + NONE + + + + + STRUCT_1562 + - + - + NONE + + + + + STRUCT_1563 + - + - + NONE + + + + + STRUCT_1564 + - + - + NONE + + + + + STRUCT_1565 + - + - + NONE + + + + + STRUCT_1566 + - + - + NONE + + + + + STRUCT_1567 + - + - + NONE + + + + + STRUCT_1568 + - + - + NONE + + + + + STRUCT_1569 + - + - + NONE + + + + + STRUCT_1570 + - + - + NONE + + + + + STRUCT_1571 + - + - + NONE + + + + + STRUCT_1572 + - + - + NONE + + + + + STRUCT_1573 + - + - + NONE + + + + + STRUCT_1574 + - + - + NONE + + + + + STRUCT_1575 + - + - + NONE + + + + + STRUCT_1576 + - + - + NONE + + + + + STRUCT_1577 + - + - + NONE + + + + + STRUCT_1578 + - + - + NONE + + + + + STRUCT_1579 + - + - + NONE + + + + + STRUCT_1580 + - + - + NONE + + + + + STRUCT_1581 + - + - + NONE + + + + + STRUCT_1582 + - + - + NONE + + + + + STRUCT_1583 + - + - + NONE + + + + + STRUCT_1584 + - + - + NONE + + + + + STRUCT_1585 + - + - + NONE + + + + + STRUCT_1586 + - + - + NONE + + + + + STRUCT_1587 + - + - + NONE + + + + + STRUCT_1588 + - + - + NONE + + + + + STRUCT_1589 + - + - + NONE + + + + + STRUCT_1590 + - + - + NONE + + + + + STRUCT_1591 + - + - + NONE + + + + + STRUCT_1592 + - + - + NONE + + + + + STRUCT_1593 + - + - + NONE + + + + + STRUCT_1594 + - + - + NONE + + + + + STRUCT_1595 + - + - + NONE + + + + + STRUCT_1596 + - + - + NONE + + + + + STRUCT_1597 + - + - + NONE + + + + + STRUCT_1598 + - + - + NONE + + + + + STRUCT_1599 + - + - + NONE + + + + + STRUCT_1600 + - + - + NONE + + + + + STRUCT_1601 + - + - + NONE + + + + + STRUCT_1602 + - + - + NONE + + + + + STRUCT_1603 + - + - + NONE + + + + + STRUCT_1604 + - + - + NONE + + + + + STRUCT_1605 + - + - + NONE + + + + + STRUCT_1606 + - + - + NONE + + + + + STRUCT_1607 + - + - + NONE + + + + + STRUCT_1608 + - + - + NONE + + + + + STRUCT_1609 + - + - + NONE + + + + + STRUCT_1610 + - + - + NONE + + + + + STRUCT_1611 + - + - + NONE + + + + + STRUCT_1612 + - + - + NONE + + + + + STRUCT_1613 + - + - + NONE + + + + + STRUCT_1614 + - + - + NONE + + + + + STRUCT_1615 + - + - + NONE + + + + + STRUCT_1616 + - + - + NONE + + + + + STRUCT_1617 + - + - + NONE + + + + + STRUCT_1618 + - + - + NONE + + + + + STRUCT_1619 + - + - + NONE + + + + + STRUCT_1620 + - + - + NONE + + + + + STRUCT_1621 + - + - + NONE + + + + + STRUCT_1622 + - + - + NONE + + + + + STRUCT_1623 + - + - + NONE + + + + + STRUCT_1624 + - + - + NONE + + + + + STRUCT_1625 + - + - + NONE + + + + + STRUCT_1626 + - + - + NONE + + + + + STRUCT_1627 + - + - + NONE + + + + + STRUCT_1628 + - + - + NONE + + + + + STRUCT_1629 + - + - + NONE + + + + + STRUCT_1630 + - + - + NONE + + + + + STRUCT_1631 + - + - + NONE + + + + + STRUCT_1632 + - + - + NONE + + + + + STRUCT_1633 + - + - + NONE + + + + + STRUCT_1634 + - + - + NONE + + + + + STRUCT_1635 + - + - + NONE + + + + + STRUCT_1636 + - + - + NONE + + + + + STRUCT_1637 + - + - + NONE + + + + + STRUCT_1638 + - + - + NONE + + + + + STRUCT_1639 + - + - + NONE + + + + + STRUCT_1640 + - + - + NONE + + + + + STRUCT_1641 + - + - + NONE + + + + + STRUCT_1642 + - + - + NONE + + + + + STRUCT_1643 + - + - + NONE + + + + + STRUCT_1644 + - + - + NONE + + + + + STRUCT_1645 + - + - + NONE + + + + + STRUCT_1646 + - + - + NONE + + + + + STRUCT_1647 + - + - + NONE + + + + + STRUCT_1648 + - + - + NONE + + + + + STRUCT_1649 + - + - + NONE + + + + + STRUCT_1650 + - + - + NONE + + + + + STRUCT_1651 + - + - + NONE + + + + + STRUCT_1652 + - + - + NONE + + + + + STRUCT_1653 + - + - + NONE + + + + + STRUCT_1654 + - + - + NONE + + + + + STRUCT_1655 + - + - + NONE + + + + + A002_U + - + - + NONE + + + + + A002_R2 + - + - + NONE + + + + + A050_U + - + - + NONE + + + + + A050_R + - + - + NONE + + + + + A019_SV + - + - + NONE + + + + + A019_S + - + - + NONE + + + + + A010_U + - + - + NONE + + + + + A026_S + - + - + NONE + + + + + A030_S + - + - + NONE + + + + + A026_L + - + - + NONE + + + + + A030_L + - + - + NONE + + + + + FGN2_TYP + - + - + NONE + + + + + FGN2_TV + - + - + NONE + + + + + FGN2_RI + - + - + NONE + + + + + FGN2_OFFSET + - + - + NONE + + + + + FGN2_NAMP + - + - + NONE + + + + + FGN2_FREQ + - + - + NONE + + + + + A001_S1 + - + - + NONE + + + + + A009_S1 + - + - + NONE + + + + + + + CH LEE + + + 2024.07/31 + + + - + + + XXSAXXXX + + + - + + + - + + + DEFAULT + + + DEFAULT + + + 0 + + + 0 + + + NEIN + + + 0 + + + NEIN + + + 1 + + + DEFAULT + + + - + + + - + + + - + + + CGVCMS1301 + + + - + + + - + + + + + + 2 + E_WAIT + MODULE + 0 + + + + + + + + + WZ + + + 0 + + + 0 + + + 0 + + + &MEWE + + + + + + 3 + GETDATAAF + MACRO + 0 + TTNr. lesen + + + + + + + ALIASFILE + + + + + + +

+ >GETDATA/STD_1.CSV +

+ + + + + NONE + +
+
+ + + 10 + GETDATASTR + MACRO + 0 + WSW-Nummer + + + + + + + + + + + + + +

+ FSW_TT + S + 10 +

+ + + + + STR + &FSW_TT +
+
+ + + 20 + GETDATASTR + MACRO + 0 + WSW-Nummer + + + + + + + + + + + + + +

+ TSW_TT + S + 10 +

+ + + + + STR + &TSW_TT +
+
+ + + 25 + GETDATASTR + MACRO + 0 + WSW-Nummer + + + + + + + + + + + + + +

+ CRUISE + S + 3 +

+ + + + + STR + &Cruise +
+
+ + + 40 + R_DATATABLE + MODULE + 0 + &HW_TTNR + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + HW_TTNR + + + STRING + + + 2 + + + 2 + + + &HW_TTNR + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 44 + R_DATATABLE + MODULE + 0 + &HW_VER + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + HW_VER + + + STRING + + + 2 + + + 2 + + + &HW_VER + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 45 + R_DATATABLE + MODULE + 0 + &CUSTOMERPNO_00 + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + CUSTOMERPNO + + + STRING + + + 2 + + + 2 + + + &CUSTOMERPNO_00 + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 46 + R_DATATABLE + MODULE + 0 + &CMS_VER + + + + + + + WZ + 0 + - + NONE + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + CMS_VER + + + STRING + + + 2 + + + 2 + + + &CMS_VER + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 47 + R_DATATABLE + MODULE + 0 + &PCM_VER + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + PCM_VER + + + STRING + + + 2 + + + 2 + + + &PCM_VER + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 49 + R_DATATABLE + MODULE + 0 + &TTNR_HW + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + HW_TTNR + + + STRING + + + 2 + + + 2 + + + &TTNR_HW + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 50 + R_DATATABLE + MODULE + 0 + V2G ROOT Load = &ROOTCERT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/V2GRootCert.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &ROOTCERT + + + r + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 51 + R_DATATABLE + MODULE + 0 + &HFID + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + HFID + + + STRING + + + 2 + + + 2 + + + &HFID + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 53 + R_DATATABLE + MODULE + 0 + &CMS_CRC + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + CMS_CHECKSUM + + + STRING + + + 2 + + + 2 + + + &CMS_CRC + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 54 + R_DATATABLE + MODULE + 0 + &PCM_CRC + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + PCM_CHECKSUM + + + STRING + + + 2 + + + 2 + + + &PCM_CRC + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 55 + R_DATATABLE + MODULE + 0 + &CMS_CALID + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + CMS_CAL_ID + + + STRING + + + 2 + + + 2 + + + &CMS_CALID + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 56 + R_DATATABLE + MODULE + 0 + &PCM_CALID + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + PCM_CAL_ID + + + STRING + + + 2 + + + 2 + + + &PCM_CALID + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 57 + R_DATATABLE + MODULE + 0 + &BrandCode + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + BRAND_CODE + + + STRING + + + 2 + + + 2 + + + &BrandCode + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 58 + R_DATATABLE + MODULE + 0 + &MarketCode + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + MARKET_CODE + + + STRING + + + 2 + + + 2 + + + &MarketCode + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 59 + R_DATATABLE + MODULE + 0 + &VehicleCode + + + + + + + + GET + + + LOAD + + + SW_AESTAND + + + - + + + VEHICLE_CODE + + + STRING + + + 2 + + + 2 + + + &VehicleCode + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 60 + E_STUELIDATA + MODULE + 0 + FSW_TT an System �bergeben (Bildet Pfad: >flash/TTNR/FSW_TT) + + + + + + + WZ + - + - + NONE + + + + + + + CONTAINER + + + SET + + + FSW + + + &FSW_TT + + + - + + + - + + + - + + + - + + + - + + + - + + + 0 + + + + + + 61 + E_STUELIDATA + MODULE + 0 + TSW_TT an System �bergeben (Bildet Pfad: >flash/tsw/TSW_TT) + + + + + + + + CONTAINER + + + SET + + + TSW + + + &TSW_TT + + + - + + + - + + + - + + + - + + + - + + + - + + + 0 + + + + + + 63 + R_DATATABLE + MODULE + 0 + CharIN ROOT Load = &CRIROOTCERT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/CharINV2GRoot.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &CRIROOTCERT + + + r + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 69 + R_DATATABLE + MODULE + 0 + SubCA Part-20 OEM Load = &SUBCAOEM_P20 + + + + + + + + GET + + + PEM + + + ./../Cert/SubCA/SubCA_P20OEM.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &SUBCAOEM_P20 + + + r + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 70 + R_DATATABLE + MODULE + 0 + SubCA Part-20 Vehicle Load = &SUBCAVHC_P20 + + + + + + + WZ + 0 + - + NONE + + + + + + + GET + + + PEM + + + ./../Cert/SubCA/SubCA_P20VHC.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &SUBCAVHC_P20 + + + r + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 71 + R_DATATABLE + MODULE + 0 + SubCA Part-02 OEM Load = &SUBCAOEM_P02 + + + + + + + + GET + + + PEM + + + ./../Cert/SubCA/SubCA_P02OEM.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &SUBCAOEM_P02 + + + r + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 72 + R_DATATABLE + MODULE + 0 + Part-02 E-Pit Root Load = &P02_EPIT_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-2/1. E-PIT/V2GRootEpit.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P02_EPIT_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 73 + R_DATATABLE + MODULE + 0 + Part-02 Hubject EU Root Load = &P02_HUBEU_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-2/2. Hubject (EU)/Hubject_V2GRoot_EU.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P02_HUBEU_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 74 + R_DATATABLE + MODULE + 0 + Part-02 Hubject US Root Load = &P02_HUBUS_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-2\3. Hubject (US)/US_V2G_RootCA_G2.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P02_HUBUS_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 75 + R_DATATABLE + MODULE + 0 + Part-02 Tesla Root Load = &P02_TESLA_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-2/4. Tesla/V2GRootG1.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P02_TESLA_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 76 + R_DATATABLE + MODULE + 0 + Part-02 Entrust Root Load = &P02_ENTRUST_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-2/5. Entrust/Entrust_V2G_EV_Charging_Root_CA.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P02_ENTRUST_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 77 + R_DATATABLE + MODULE + 0 + Part-20 E-PIT Root Load = &P20_EPIT_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-20/1. E-PIT/Part20EPitRoot.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P20_EPIT_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 78 + R_DATATABLE + MODULE + 0 + Part-20 CharIN Root Load = &P20_CHARIN_ROOT + + + + + + + + GET + + + PEM + + + ./../Cert/V2GRoot/ISO 15118-20/2. CharIN/CharIN_V2G_Root_CA_G1V2_433638ca6313741e81e57cfc0de55a99362d3c15.pem + + + - + + + HW_TTNR + + + STRING + + + 0 + + + 0 + + + &P20_CHARIN_ROOT + + + + + + + + + + + + + + + + + + + + + &ERRORFLAG + + + DEFAULT + + + + + + 80 + START + MACRO + 0 + + + + + + + + WZ + 0 + - + NONE + + + + + + + +

+ + + + + NONE + + + + + + 100 + E_MESSAGES + MODULE + 0 + + + + + + + + + NO_MESSAGES + + + + + + FGN;FGN_REF;FGN1;FGN1_REF;FGN2;FGN2_REF + + + CAN1;CAN1_REF;ASC1;ASC1_REF + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 101 + E_TRIGGER_INIT + MODULE + 0 + E_TRIGGER_INIT: Festlegung der Triggerkanaele + + + + + + + + TRIG_01 + + + DVM_TRG + + + DEL + + + 0 + + + 10% + + + DIR + + + 8.E-6 + + + COUN_A + + + SPI + + + 4.E-6 + + + 10% + + + 1.E-6 + + + COUN_B + + + 1 + + + 4.E-6 + + + 10% + + + DIR + + + 0 + + + EXT_CLOCK_2 + + + 0 + + + 0 + + + 5% + + + 0 + + + + + + 102 + E_TRIGGER_INIT + MODULE + 0 + E_TRIGGER_INIT: Festlegung der Triggerkanaele + + + + + + + + TRIG_01 + + + DVM_TRG + + + SPI + + + 0.000001 + + + 10% + + + DIR + + + 0 + + + COUN_A + + + SPI + + + 0.000001 + + + 5% + + + 0 + + + COUN_B + + + 1 + + + 0.000001 + + + 5% + + + DIR + + + 0 + + + DVM_TRG_2 + + + 1 + + + 0.000001 + + + 10% + + + 0 + + + + + + 103 + E_ARRAY_INI + MODULE + 0 + E_ARRAY_INI &SEED 300 + + + + + + + + &SEED + + + STRING + + + 300 + + + TRUE + + + + + + 104 + E_ARRAY_INI + MODULE + 0 + E_ARRAY_INI &KEY 300 + + + + + + + + &KEY + + + STRING + + + 300 + + + TRUE + + + + + + 105 + COM_ANSTEUER + MACRO + 0 + + + + + + + + + +

+ B77_S + B77 + ANSTEUER_PAR + B60_S + B60 + ANSTEUER_PAR +

+ + + + + NONE + +
+
+ + + 111 + COM_KONSTDEF + MACRO + 0 + + + + + + + + + +

+ &G_BAUD_ASC1 + &P_STEUER + - + 250000 + SKM_01 + 0 + 1500000 + SKM_11 + 1 +

+ + + + + NONE + +
+
+ + + 119 + COM_INIT + MACRO + 0 + + + + + + + + + +

+ KW2000 + 1 + 70000 + 20 + 5000 + 0 + 0 + 57600 + 6060 + 01 +

+ + + + + NONE + +
+
+ + + 180 + STRCAT + MACRO + 0 + + + + + + + + + + + + + + +

+ CPSECURITYVCMSPCM.DLL + + + + + + + + + +

+ + + + + STR + &DLL_FILE_PCM +
+
+ + + 181 + STRCAT + MACRO + 0 + + + + + + + + + + + + + + +

+ CPSECURITYVCMSCMS.DLL + + + + + + + + + +

+ + + + + STR + &DLL_FILE_CMS +
+
+ + + 200 + KUNDENDAT1 + MACRO + 0 + Tester ID (ASCII) + + + + + + + + + + + + + +

+ WK + 2 + - + - + - + - +

+ + + + + STR + &TESTERID_ORG +
+
+ + + 210 + KUNDENDAT1 + MACRO + 0 + Tester CHANNEL (ASCII) + + + + + + + + + + + + + +

+ WK + 10 + - + - + - + - +

+ + + + + STR + &TESTERCH +
+
+ + + 220 + STRCAT + MACRO + 0 + Unit Code + + + + + + + Unit Code + + + + + + +

+ C001 + + + + + + + + + +

+ + + + + STR + &UnitCode +
+
+ + + 230 + STRCAT + MACRO + 0 + + + + + + + + Vehicle Code + + + + + + +

+ MV EV + + + + + + + + + +

+ + + + + STR + &VehicleCode +
+
+ + + 240 + STRCAT + MACRO + 0 + + + + + + + + Brand Code + + + + + + +

+ KMC + + + + + + + + + +

+ + + + + STR + &BrandCode +
+
+ + + 250 + STRCAT + MACRO + 0 + + + + + + + + Market Code(Local code) + + + + + + +

+ EU + + + + + + + + + +

+ + + + + STR + &MarketCode +
+
+ + + 261 + STRCAT + MACRO + 0 + Wenn nicht mit autom. Selektion CFI oder SKM gearbeitet werden soll + + + + + + + Tier Code + + + + + + +

+ P002 + + + + + + + + + +

+ + + + + STR + &TierCode +
+
+ + + 269 + K2000START + MACRO + 0 + Wenn nicht mit autom. Selektion CFI oder SKM gearbeitet werden soll + + + + + + + + +

+ + + + + NONE + + + + + + 282 + P_INIT + MODULE + 0 + + + + + + + + + WRITE + + + FLOW_CONTROL + + + ON + + + &MEWE + + + + + + 331 + F_ANSTEUER + MODULE + 0 + + + + + + + + + U_KON_UB4 + + + A038_SV + + + - + + + SA + + + A038 + + + A035 + + + ANSTEUER_PAR + + + 1 + + + + + + 332 + L_KAM_KONFIG + MODULE + 0 + + + + + + + + + U_KON_KONFIG4 + + + UBATT_ULAST + + + - + + + - + + + + + + 333 + F_ANSTEUER + MODULE + 0 + UB + + + + + + + + KON_U_2 + + + UB + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 334 + F_ANSTEUER + MODULE + 0 + UB Strombegrenzung + + + + + + + + KON_I_2 + + + UB_IMAX + + + - + + + A + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 335 + F_ANSTEUER + MODULE + 0 + UB4 + + + + + + + + U_KON_UB4 + + + A035_SV + + + - + + + SA + + + A035 + + + A038 + + + ANSTEUER_PAR + + + 1 + + + + + + 336 + F_ANSTEUER + MODULE + 0 + UA4 + + + + + + + + U_KON_UA4 + + + A033_SV + + + - + + + SA + + + A033 + + + A037 + + + ANSTEUER_PAR + + + 1 + + + + + + 337 + F_ANSTEUER + MODULE + 0 + UC4 + + + + + + + + U_KON_UC4 + + + A034_SV + + + - + + + DEFAULT + + + A034 + + + A038 + + + ANSTEUER_PAR + + + 1 + + + + + + 338 + F_ANSTEUER + MODULE + 0 + + + + + + + + + U_KON_UD4 + + + B05_SV + + + - + + + DEFAULT + + + B05 + + + B01 + + + ANSTEUER_PAR + + + 1 + + + + + + 339 + L_KAM_ZUSATZ + MODULE + 0 + SENSE_UB4 + + + + + + + + U_KON_KONFIG4 + + + INTERN + + + KON_A + + + - + + + - + + + - + + + - + + + - + + + KOMPLETT + + + + + + 340 + F_6069 + MODULE + 0 + FGN_16 + + + + + + + + FU3_ANSCHALT + + + 1 + + + - + + + - + + + - + + + <W/A001_S + + + <W/A009_S + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + + + + 341 + F_6069 + MODULE + 0 + FGN_17 + + + + + + + + FU3_ANSCHALT + + + 2 + + + - + + + - + + + - + + + <W/A001_S + + + <W/A009_S + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + + + + 342 + F_6069 + MODULE + 0 + FGN_18 + + + + + + + + FU3_ANSCHALT + + + 6 + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + - + + + <W/A001_S1 + + + <W/A009_S1 + + + - + + + - + + + - + + + - + + + - + + + + + + 344 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Signalpunkt + + + + + + + + FGN_16 + + + FGN + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 345 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Signalpunkt Referenz + + + + + + + + FGN_REF_16 + + + FGN_REF + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 346 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Amplitude UA1 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP1_16 + + + FGN_AMP1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 347 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Amplitude UA2 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP2_16 + + + FGN_AMP2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 348 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Amplitude UA3 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP3_16 + + + FGN_AMP3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 349 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Amplitude UA4 Std-PAV Signal 8 + + + + + + + + FGN_AMP4_16 + + + FGN_AMP4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 350 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Frequenz Std-PAV + + + + + + + + FGN_FREQ_16 + + + FGN_FREQ + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 351 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Nutzamplitude Std-PAV + + + + + + + + FGN_NAMP_16 + + + FGN_NAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 352 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Offsetspannung Std-PAV + + + + + + + + FGN_OFFSET_16 + + + FGN_OFFSET + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 353 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Innenwiderstand in Ohm Std-PAV + + + + + + + + FGN_RI_16 + + + FGN_RI + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 354 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Channel 1 Dauer des ersten neg. Puls t0 -> DZG-Signal 4 St + + + + + + + + FGN_T0_16 + + + FGN_T0 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 355 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Dauer der Rampe t1 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T1_16 + + + FGN_T1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 356 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Dauer des oberen Plateaus t2 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T2_16 + + + FGN_T2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 357 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Dauer des negativen Pulses t3 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T3_16 + + + FGN_T3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 358 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Verz�gerungszeit t4 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T4_16 + + + FGN_T4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 359 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Dauer des unteren Plateaus (fallende Rampe) t5 -> DZG + + + + + + + + FGN_T5_16 + + + FGN_T5 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 360 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Startverz�gerungszeit f�r n�chste Periode t6 -> DZG-Sig + + + + + + + + FGN_T6_16 + + + FGN_T6 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 361 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Tastverh�ltnis Std-PAV + + + + + + + + FGN_TV_16 + + + FGN_TV + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 362 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 St�ramplitude Usa Std-PAV + + + + + + + + FGN_SAMP_16 + + + FGN_SAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 363 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 1 Funktionsgenerator-Signal Typ Std-PAV + + + + + + + + FGN_TYP_16 + + + FGN_TYP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 364 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Signalpunkt + + + + + + + + FGN_17 + + + FGN1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 365 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Signalpunkt Referenz + + + + + + + + FGN_REF_17 + + + FGN1_REF + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 366 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Amplitude UA1 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP1_17 + + + FGN1_AMP1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 367 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Amplitude UA2 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP2_17 + + + FGN1_AMP2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 368 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Amplitude UA3 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP3_17 + + + FGN1_AMP3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 369 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Amplitude UA4 Std-PAV Signal 8 + + + + + + + + FGN_AMP4_17 + + + FGN1_AMP4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 370 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Frequenz Std-PAV + + + + + + + + FGN_FREQ_17 + + + FGN1_FREQ + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 371 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Nutzamplitude Std-PAV + + + + + + + + FGN_NAMP_17 + + + FGN1_NAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 372 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Offsetspannung Std-PAV + + + + + + + + FGN_OFFSET_17 + + + FGN1_OFFSET + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 373 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Innenwiderstand in Ohm Std-PAV + + + + + + + + FGN_RI_17 + + + FGN1_RI + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 374 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Channel 2 Dauer des ersten neg. Puls t0 -> DZG-Signal 4 St + + + + + + + + FGN_T0_17 + + + FGN1_T0 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 375 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Dauer der Rampe t1 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T1_17 + + + FGN1_T1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 376 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Dauer des oberen Plateaus t2 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T2_17 + + + FGN1_T2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 377 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Dauer des negativen Pulses t3 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T3_17 + + + FGN1_T3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 378 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Verz�gerungszeit t4 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T4_17 + + + FGN1_T4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 379 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Dauer des unteren Plateaus (fallende Rampe) t5 -> DZG + + + + + + + + FGN_T5_17 + + + FGN1_T5 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 380 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Startverz�gerungszeit f�r n�chste Periode t6 -> DZG-Sig + + + + + + + + FGN_T6_17 + + + FGN1_T6 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 381 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Tastverh�ltnis Std-PAV + + + + + + + + FGN_TV_17 + + + FGN1_TV + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 382 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 St�ramplitude Usa Std-PAV + + + + + + + + FGN_SAMP_17 + + + FGN1_SAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 383 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 2 Funktionsgenerator-Signal Typ Std-PAV + + + + + + + + FGN_TYP_17 + + + FGN1_TYP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 384 + E_AWG + MODULE + 0 + CHANNEL 1 -> Kurve0 = Gleichspg. Signal -> Standard-PAV + + + + + + + + STD_GENERATOR_16 + + + KURVE0 + + + 0 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 385 + E_AWG + MODULE + 0 + CHANNEL 1 -> Kurve1 = Rechteck-Takt -> Standard-PAV + + + + + + + + STD_GENERATOR_16 + + + KURVE1 + + + 1 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 386 + E_AWG + MODULE + 0 + CHANNEL 2 -> Kurve0 = Gleichspg. Signal -> Standard-PAV + + + + + + + + STD_GENERATOR_17 + + + KURVE0 + + + 0 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 387 + E_AWG + MODULE + 0 + CHANNEL 2 -> Kurve1 = Rechteck-Takt -> Standard-PAV + + + + + + + + STD_GENERATOR_17 + + + KURVE1 + + + 1 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 388 + E_AWG + MODULE + 0 + CHANNEL 1 -> Kurve6 + + + + + + + + STD_GENERATOR_16 + + + KURVE6 + + + 1 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 389 + E_AWG + MODULE + 0 + CHANNEL 1 -> Kurve6 + + + + + + + + STD_GENERATOR_17 + + + KURVE6 + + + 2 + + + INTERN + + + ON + + + NORM + + + OFF + + + OFF + + + LOOP + + + RUN + + + FREE + + + OFF + + + OFF + + + OFF + + + OFF + + + OFF + + + 1 + + + 1 + + + + + + 392 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Signalpunkt + + + + + + + + FGN_CP + + + FGNCP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 393 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Signalpunkt Referenz + + + + + + + + FGN_REF_CP + + + FGNCP_REF + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 394 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Amplitude UA1 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP1_CP + + + FGNCP_AMP1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 395 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Amplitude UA2 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP2_CP + + + FGNCP_AMP2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 396 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Amplitude UA3 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP3_CP + + + FGNCP_AMP3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 397 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Amplitude UA4 Std-PAV Signal 8 + + + + + + + + FGN_AMP4_CP + + + FGNCP_AMP4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 398 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Frequenz Std-PAV + + + + + + + + FGN_FREQ_CP + + + FGNCP_FREQ + + + - + + + HZ + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 399 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Nutzamplitude Std-PAV + + + + + + + + FGN_NAMP_CP + + + FGNCP_NAMP + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 400 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Offsetspannung Std-PAV + + + + + + + + FGN_OFFSET_CP + + + FGNCP_OFFSET + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 401 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Innenwiderstand in Ohm Std-PAV + + + + + + + + FGN_RI_CP + + + FGNCP_RI + + + - + + + OHM + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 402 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Channel 2 Dauer des ersten neg. Puls t0 -> DZG-Signal 4 St + + + + + + + + FGN_T0_CP + + + FGNCP_T0 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 403 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Dauer der Rampe t1 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T1_CP + + + FGNCP_T1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 404 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Dauer des oberen Plateaus t2 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T2_CP + + + FGNCP_T2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 405 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Dauer des negativen Pulses t3 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T3_CP + + + FGNCP_T3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 406 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Verz�gerungszeit t4 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T4_CP + + + FGNCP_T4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 407 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Dauer des unteren Plateaus (fallende Rampe) t5 -> DZG + + + + + + + + FGN_T5_CP + + + FGNCP_T5 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 408 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Startverz�gerungszeit f�r n�chste Periode t6 -> DZG-Sig + + + + + + + + FGN_T6_CP + + + FGNCP_T6 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 409 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Tastverh�ltnis Std-PAV + + + + + + + + FGN_TV_CP + + + FGNCP_TV + + + - + + + A + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 410 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP St�ramplitude Usa Std-PAV + + + + + + + + FGN_SAMP_CP + + + FGNCP_SAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 411 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel CP Funktionsgenerator-Signal Typ Std-PAV + + + + + + + + FGN_TYP_CP + + + FGNCP_TYP + + + - + + + STR + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 412 + F_ANSTEUER + MODULE + 0 + PLC + + + + + + + + + + + PLC + + + - + + + STR + + + + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 413 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Signalpunkt + + + + + + + + FGN_18 + + + FGN2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 414 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Signalpunkt Referenz + + + + + + + + FGN_REF_18 + + + FGN2_REF + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 415 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Amplitude UA1 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP1_18 + + + FGN2_AMP1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 416 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Amplitude UA2 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP2_18 + + + FGN2_AMP2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 417 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Amplitude UA3 Std-PAV Signal 4 und 8 + + + + + + + + FGN_AMP3_18 + + + FGN2_AMP3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 418 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Amplitude UA4 Std-PAV Signal 8 + + + + + + + + FGN_AMP4_18 + + + FGN2_AMP4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 419 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Frequenz Std-PAV + + + + + + + + FGN_FREQ_18 + + + FGN2_FREQ + + + - + + + HZ + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 420 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Nutzamplitude Std-PAV + + + + + + + + FGN_NAMP_18 + + + FGN2_NAMP + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 421 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Offsetspannung Std-PAV + + + + + + + + FGN_OFFSET_18 + + + FGN2_OFFSET + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 422 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Innenwiderstand in Ohm Std-PAV + + + + + + + + FGN_RI_18 + + + FGN2_RI + + + - + + + OHM + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 423 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Channel 2 Dauer des ersten neg. Puls t0 -> DZG-Signal 4 St + + + + + + + + FGN_T0_18 + + + FGN2_T0 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 424 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Dauer der Rampe t1 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T1_18 + + + FGN2_T1 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 425 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Dauer des oberen Plateaus t2 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T2_18 + + + FGN2_T2 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 426 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Dauer des negativen Pulses t3 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T3_18 + + + FGN2_T3 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 427 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Verz�gerungszeit t4 -> DZG-Signal 4 Std-PAV + + + + + + + + FGN_T4_18 + + + FGN2_T4 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 428 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Dauer des unteren Plateaus (fallende Rampe) t5 -> DZG + + + + + + + + FGN_T5_18 + + + FGN2_T5 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 429 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Startverz�gerungszeit f�r n�chste Periode t6 -> DZG-Sig + + + + + + + + FGN_T6_18 + + + FGN2_T6 + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 430 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Tastverh�ltnis Std-PAV + + + + + + + + FGN_TV_18 + + + FGN2_TV + + + - + + + A + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 431 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 St�ramplitude Usa Std-PAV + + + + + + + + FGN_SAMP_18 + + + FGN2_SAMP + + + - + + + DEFAULT + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 432 + F_ANSTEUER + MODULE + 0 + VXI-ARB Channel 3 Funktionsgenerator-Signal Typ Std-PAV + + + + + + + + FGN_TYP_18 + + + FGN2_TYP + + + - + + + STR + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 434 + F_SK_ZUSATZ + MODULE + 0 + + + + + + + + + SK_RELAIS + + + ON + + + ON + + + ON + + + ON + + + ON + + + - + + + - + + + - + + + - + + + + + + 435 + F_SK_ZUSATZ + MODULE + 0 + + + + + + + + + SK_RELAIS2 + + + ON + + + ON + + + ON + + + ON + + + ON + + + - + + + - + + + - + + + - + + + + + + 436 + F_IGEBR_ZUSATZ + MODULE + 0 + + + + + + + + + I_GEBER_SK1 + + + ANSTEUER_PAR + + + INT + + + -- + + + ON + + + - + + + + + + 437 + F_ANSTEUER + MODULE + 0 + IQ_UMAX + + + + + + + + I_QUMAX_SK1 + + + IQ_UMAX + + + - + + + V + + + - + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 438 + F_UGEBR_ZUSATZ + MODULE + 0 + + + + + + + + + U_GEBER_SK1 + + + INT + + + - + + + 10 + + + - + + + - + + + - + + + - + + + + + + 442 + F_ANSTEUER + MODULE + 0 + A026_L + + + + + + + + MS_LAST_610 + + + A026_L + + + - + + + DEFAULT + + + A026 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 443 + F_ANSTEUER + MODULE + 0 + A030_L + + + + + + + + MS_LAST_611 + + + A030_L + + + - + + + DEFAULT + + + A030 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 532 + F_ANSTEUER + MODULE + 0 + + + + + + + + + U_GEBER_SK1 + + + B05_U + + + - + + + DEFAULT + + + B05 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 533 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B16_R + + + - + + + DEFAULT + + + B16 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 534 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B17_R + + + - + + + DEFAULT + + + B17 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 535 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B18_R + + + - + + + DEFAULT + + + B18 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 536 + F_ANSTEUER + MODULE + 0 + + + + + + + + + KS_LAST_600 + + + B25_L + + + - + + + DEFAULT + + + B25 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 537 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B38_R + + + - + + + DEFAULT + + + B38 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 538 + F_ANSTEUER + MODULE + 0 + + + + + + + + + KS_LAST_601 + + + B47_L + + + - + + + DEFAULT + + + B47 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 539 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B50_R + + + - + + + DEFAULT + + + B50 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 540 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B60_R + + + - + + + DEFAULT + + + B60 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 541 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B61_R + + + - + + + DEFAULT + + + B61 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 542 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B62_R + + + - + + + DEFAULT + + + B62 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 543 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B63_R + + + - + + + DEFAULT + + + B63 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 544 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B64_R + + + - + + + DEFAULT + + + B64 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 545 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B65_R + + + - + + + DEFAULT + + + B65 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 546 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B66_R + + + - + + + DEFAULT + + + B66 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 547 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_320 + + + B74_L + + + - + + + DEFAULT + + + B74 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 548 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_822 + + + B75_L + + + - + + + DEFAULT + + + B75 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 549 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_222 + + + B76_L + + + - + + + DEFAULT + + + B76 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 550 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_872 + + + B77_L + + + - + + + DEFAULT + + + B77 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 551 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_322 + + + B78_L + + + - + + + DEFAULT + + + B78 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 552 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_870 + + + B79_L + + + - + + + DEFAULT + + + B79 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 553 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_220 + + + B80_L + + + - + + + DEFAULT + + + B80 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 554 + F_ANSTEUER + MODULE + 0 + + + + + + + + + HS_LAST_852 + + + B81_L + + + - + + + DEFAULT + + + B81 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 555 + F_ANSTEUER + MODULE + 0 + A007 : CAN-REF_SWITCH + + + + + + + + CAN_REF_SWITCH + + + A007_S + + + - + + + SA + + + A007 + + + - + + + UNIT_PARALLEL + + + 1 + + + + + + 556 + F_ANSTEUER + MODULE + 0 + A008 : CAN_SWTICH + + + + + + + + CAN_SWITCH + + + A008_S + + + - + + + SA + + + A008 + + + - + + + UNIT_PARALLEL + + + 1 + + + + + + 557 + F_ANSTEUER + MODULE + 0 + + + + + + + + + SCHALTER + + + B84_S + + + - + + + DEFAULT + + + B84 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 558 + F_ANSTEUER + MODULE + 0 + + + + + + + + + SCHALTER + + + B85_S + + + - + + + DEFAULT + + + B85 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 560 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B87_R + + + - + + + DEFAULT + + + B87 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 561 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK2 + + + B88_R + + + - + + + DEFAULT + + + B88 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 562 + F_ANSTEUER + MODULE + 0 + + + + + + + + + U_GEBER_SK1 + + + B72_U + + + - + + + DEFAULT + + + B72 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 563 + F_ANSTEUER + MODULE + 0 + + + + + + + + + R_DEK_SK1 + + + B71_R + + + - + + + DEFAULT + + + B71 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 564 + F_ANSTEUER + MODULE + 0 + A017_R + + + + + + + + R_DEK_SK2 + + + A017_R + + + - + + + DEFAULT + + + A017 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 565 + F_ANSTEUER + MODULE + 0 + A020_R + + + + + + + + R_DEK_SK2 + + + A020_R + + + - + + + OHM + + + A020 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 566 + F_ANSTEUER + MODULE + 0 + A024_R + + + + + + + + R_DEK_SK2 + + + A024_R + + + - + + + OHM + + + A024 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 567 + F_ANSTEUER + MODULE + 0 + A024_U + + + + + + + + U_GEBER_SK1 + + + A024_U + + + - + + + DEFAULT + + + A024 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 568 + F_ANSTEUER + MODULE + 0 + A027_R + + + + + + + + R_DEK_SK3 + + + A027_R + + + - + + + DEFAULT + + + A027 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 569 + F_ANSTEUER + MODULE + 0 + A035_R + + + + + + + + R_DEK_SK2 + + + A035_R + + + - + + + DEFAULT + + + A035 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 570 + F_ANSTEUER + MODULE + 0 + A038_R + + + + + + + + R_DEK_SK3 + + + A038_R + + + - + + + DEFAULT + + + A038 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 571 + F_ANSTEUER + MODULE + 0 + A015_S + + + + + + + + SCHALTER + + + A015_S + + + - + + + SA + + + A015 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 572 + F_ANSTEUER + MODULE + 0 + A013_R + + + + + + + + R_DEK_SK3 + + + A013_R + + + - + + + DEFAULT + + + A013 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 573 + F_ANSTEUER + MODULE + 0 + A012_R + + + + + + + + R_DEK_SK2 + + + A012_R + + + - + + + DEFAULT + + + A012 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 574 + F_ANSTEUER + MODULE + 0 + A011_R + + + + + + + + R_DEK_SK1 + + + A011_R + + + - + + + OHM + + + A011 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 575 + F_ANSTEUER + MODULE + 0 + A009_S + + + + + + + + SCHALTER + + + A009_S + + + - + + + SA + + + A009 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 578 + F_ANSTEUER + MODULE + 0 + A001_S + + + + + + + + SCHALTER + + + A001_S + + + - + + + SA + + + A001 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 579 + F_ANSTEUER + MODULE + 0 + A035_I + + + + + + + + I_GEBER_SK1 + + + A035_I + + + - + + + DEFAULT + + + A035 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 580 + F_ANSTEUER + MODULE + 0 + A038_I + + + + + + + + I_GEBER_SK1 + + + A038_I + + + - + + + DEFAULT + + + A038 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 581 + F_ANSTEUER + MODULE + 0 + A012_U + + + + + + + + U_GEBER_SK1 + + + A012_U + + + - + + + DEFAULT + + + A012 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 584 + F_ANSTEUER + MODULE + 0 + A007_S1 + + + + + + + + SCHALTER + + + A007_S1 + + + - + + + SA + + + A007 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 585 + F_ANSTEUER + MODULE + 0 + A002_S + + + + + + + + SCHALTER + + + A002_S + + + - + + + DEFAULT + + + A002 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 586 + F_ANSTEUER + MODULE + 0 + A011_S + + + + + + + + SCHALTER + + + A011_S + + + - + + + SA + + + A011 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 587 + F_ANSTEUER + MODULE + 0 + A025_S + + + + + + + + SCHALTER + + + A025_S + + + - + + + DEFAULT + + + A025 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 588 + F_ANSTEUER + MODULE + 0 + A019_R + + + + + + + + R_DEK_SK3 + + + A019_R + + + - + + + OHM + + + A019 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 591 + F_ANSTEUER + MODULE + 0 + A016_S + + + + + + + + SCHALTER + + + A016_S + + + - + + + SA + + + A016 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 594 + F_ANSTEUER + MODULE + 0 + A019_U + + + + + + + + U_GEBER_SK1 + + + A019_U + + + - + + + V + + + A019 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 597 + F_ANSTEUER + MODULE + 0 + A019_SV + + + + + + + + U_KON_UB4 + + + A019_SV + + + - + + + SA + + + A019 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 598 + F_ANSTEUER + MODULE + 0 + A032_S + + + + + + + + SCHALTER + + + A032_S + + + - + + + DEFAULT + + + A032 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 599 + F_ANSTEUER + MODULE + 0 + A032_R + + + + + + + + R_DEK_SK3 + + + A032_R + + + - + + + OHM + + + A032 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 600 + F_ANSTEUER + MODULE + 0 + A032_U + + + + + + + + U_GEBER_SK3 + + + A032_U + + + - + + + V + + + A032 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 601 + F_ANSTEUER + MODULE + 0 + A032_R2 + + + + + + + + R_DEK_SK2 + + + A032_R2 + + + - + + + OHM + + + A032 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 602 + F_ANSTEUER + MODULE + 0 + A002_U + + + + + + + + R_GEBER_SK2 + + + A002_U + + + - + + + V + + + A002 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 603 + F_ANSTEUER + MODULE + 0 + A002_R2 + + + + + + + + R_DEK_SK2 + + + A002_R2 + + + - + + + OHM + + + A002 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 604 + F_ANSTEUER + MODULE + 0 + A050_R + + + + + + + + R_DEK_SK2 + + + A050_R + + + - + + + OHM + + + A050 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 605 + F_ANSTEUER + MODULE + 0 + A050_U + + + + + + + + U_GEBER_SK3 + + + A050_U + + + - + + + V + + + A050 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 607 + F_ANSTEUER + MODULE + 0 + A019_S + + + + + + + + SCHALTER + + + A019_S + + + - + + + SA + + + A019 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 608 + F_ANSTEUER + MODULE + 0 + A010_U + + + + + + + + U_GEBER_SK2 + + + A010_U + + + - + + + V + + + A010 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 609 + F_ANSTEUER + MODULE + 0 + A026_S + + + + + + + + SCHALTER + + + A026_S + + + - + + + DEFAULT + + + A026 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 610 + F_ANSTEUER + MODULE + 0 + A030_S + + + + + + + + SCHALTER + + + A030_S + + + - + + + SA + + + A030 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 632 + F_ANSTEUER + MODULE + 0 + A013_S + + + + + + + + SCHALTER + + + A013_S + + + - + + + SA + + + A013 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 633 + F_ANSTEUER + MODULE + 0 + A017_S + + + + + + + + SCHALTER + + + A017_S + + + - + + + SA + + + A017 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 634 + F_ANSTEUER + MODULE + 0 + A027_S + + + + + + + + SCHALTER + + + A027_S + + + - + + + SA + + + A027 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 636 + F_ANSTEUER + MODULE + 0 + A007_S2 : CAN-REF_SWITCH + + + + + + + + CAN_REF_SWITCH + + + A007_S2 + + + - + + + SA + + + A007 + + + - + + + UNIT_PARALLEL + + + 1 + + + + + + 641 + F_ANSTEUER + MODULE + 0 + A015_U + + + + + + + + U_GEBER_SK2 + + + A015_U + + + - + + + V + + + A015 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 643 + F_ANSTEUER + MODULE + 0 + A016_U + + + + + + + + U_GEBER_SK2 + + + A016_U + + + - + + + V + + + A016 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 644 + F_ANSTEUER + MODULE + 0 + A033_S + + + + + + + + + + + A033_S + + + - + + + DEFAULT + + + + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 645 + F_ANSTEUER + MODULE + 0 + A035_S + + + + + + + + + + + A035_S + + + - + + + DEFAULT + + + + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 646 + F_ANSTEUER + MODULE + 0 + A038_S + + + + + + + + + + + A038_S + + + - + + + SA + + + + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 647 + F_ANSTEUER + MODULE + 0 + A008_S1 + + + + + + + + CAN_SWITCH + + + A008_S1 + + + - + + + SA + + + A008 + + + - + + + UNIT_PARALLEL + + + 1 + + + + + + 649 + F_ANSTEUER + MODULE + 0 + A010_R + + + + + + + + R_DEK_SK2 + + + A010_R + + + - + + + OHM + + + A010 + + + - + + + ANSTEUER_PAR + + + 1 + + + + + + 650 + F_ANSTEUER + MODULE + 0 + A001_S1 + + + + + + + + SCHALTER + + + A001_S1 + + + - + + + SA + + + A001 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 651 + F_ANSTEUER + MODULE + 0 + A009_S1 + + + + + + + + SCHALTER + + + A009_S1 + + + - + + + SA + + + A009 + + + + + + ANSTEUER_PAR + + + 1 + + + + + + 832 + GETDATASTR + MACRO + 0 + KEY_VAL + + + + + + + + + + + + + +

+ KEY_VAL1 + S + 10 +

+ + + + + STR + &KEY_VAL1 +
+
+ + + 852 + GETDATASTR + MACRO + 0 + KEY_VAL + + + + + + + + + + + + + +

+ KEY_VAL2 + S + 10 +

+ + + + + STR + &KEY_VAL2 +
+
+ + + 1000 + KONSTDEF + MACRO + 0 + + + + + + + + BAUDRATE + +

+ &G_BAUD_ASC1 +

+ + + + + INT + &BAUDRATE +
+
+ + + 1020 + KONSTDEF + MACRO + 0 + + + + + + + + G_NERR + +

+ 0 +

+ + + + + INT + &G_NERR +
+
+ + + 1040 + PRINTOUT + MACRO + 100010 + + + + + + + + WZ + 0 + - + MS + + + + + + ▣ Test Description + + + + + + +

+ VCMS with PCM Inc. + 0 +

+ + + + + STR + +
+
+ + + 1060 + PRINTOUT + MACRO + 100050 + + + + + + + + Testlist Version + + + + + + +

+ CGVCMS 1.30.1 SOP-Stage + 0 +

+ + + + + STR + +
+
+ + + 1080 + PRINTOUT + MACRO + 100080 + + + + + + + + PCBA Version + + + + + + +

+ 20230418 CGVCMS1.30.1 C7.0 + 0 +

+ + + + + STR + +
+
+ + + 1100 + PRINTOUT + MACRO + 110010 + + + + V:FFFFFFFFFFFFFFFF;P:H; + + + + Mode + + + + + + +

+ HT-TEST + 0 +

+ + + + + STR + +
+
+ + + 1120 + PRINTOUT + MACRO + 110020 + + + + V:FFFFFFFFFFFFFFFF;P:T; + + + + Mode + + + + + + +

+ TT-TEST + 0 +

+ + + + + STR + +
+
+ + + 1140 + PRINTOUT + MACRO + 110030 + + + + V:FFFFFFFFFFFFFFFF;P:R; + + + + Mode + + + + + + +

+ RT-TEST + 0 +

+ + + + + STR + +
+
+ + + 1160 + PRINTOUT + MACRO + 110030 + + + + V:;P:(E); + + + + Mode + + + + + + +

+ EOL-TEST + 0 +

+ + + + + STR + +
+
+ + + 1180 + STRCMP + MACRO + 0 + + + + + + + + + + + + + + +

+ &Cruise + X +

+ + + + + INT + &CR +
+
+ + + 1200 + P_INIT + MODULE + 0 + (231018) 1-> 5 BY OSM Flow Control Additional Delay Setting for EOL + + + V:;P:(E); + + + + + WRITE + + + FLOW_DELAY + + + 5 + + + &MEWE + + + + + + 1220 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 1240 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ VT Smart Charging Connection + + + + + + +

+ Measurement Start + - +

+ + + + + NONE + - +
+
+ + + 1260 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 1280 + STRCAT + MACRO + 0 + + + + V:;P:(E); + + + + VT Cfg + + + + + + +

+ DIN70121_ISO15118_EolFullTest_230703\ + SmartChargingBasic_VT7870_MV_EOL.cfg + + + + + + + + +

+ + + + + STR + &VTCfg +
+
+ + + 1300 + COMBLOCK2 + MACRO + 0 + + + + V:;P:(E); + + + + VT Smart Charging Start + +

+ + APP + START + 0 + 11 + L + 100 + &VTCfg + 1000 + +

+ + + + + STR + +
+
+ + + 1320 + WARTEN + MACRO + 0 + + + + + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 2040 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A033_SV + UB + - + SA + + + + + A035_SV + UB + - + SA + + + + + A038_SV + MASSE + - + SA + + + + + IQ_UMAX + 6 + - + V + + + + + UB + 12 + - + V + + + + + UB_IMAX + 3 + - + A + + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 2060 + PRINTOUT + MACRO + 160000 + + + PCM_CAN_INIT******************************************************* + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + PRINTMODULENAME + + + + + + +

+ CAN_INIT + 0 +

+ + + + + STR + +
+
+ + + 2080 + CAN2000INI2 + MACRO + 160020 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 2100 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 2120 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A007_S + CAN1_REF + - + SA + + + + + A008_S + CAN1 + - + SA + + + + + + + +

+ + + + + NONE + + + + + + 2140 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 20 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 2160 + PRINTOUT + MACRO + 170010 + + + + + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 301 + + + + + + +

+ PRODUCT INFORMATION + 0 +

+ + + + + STR + +
+
+ + + 2180 + WARTEN + MACRO + 0 + + + + + + + + WZ + 5 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 2200 + GETDATASTR + MACRO + 170040 + + + + + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ CUSTOMERPNO + S + 11 +

+ + + + + STR + &CUSTOMERPNO_00 +
+
+ + + 2220 + PRINTOUT + MACRO + 170050 + + + + + + + + CUSTOMERPNO + + + + + + +

+ &CUSTOMERPNO_00 + 0 +

+ + + + + STR + +
+
+ + + 2240 + STRCOPY + MACRO + 170060 + + + + + + + + + + + + + + +

+ &CUSTOMERPNO_00 + 1 + 5 +

+ + + + + STR + &CUSTOMERPNO_01 +
+
+ + + 2260 + STRCOPY + MACRO + 170070 + + + + + + + + + + + + + + +

+ &CUSTOMERPNO_00 + 7 + 11 +

+ + + + + STR + &CUSTOMERPNO_02 +
+
+ + + 2280 + PRINTOUT + MACRO + 170090 + + + + + + + + + + + + + + +

+ &CUSTOMERPNO_01 + 0 +

+ + + + + STR + +
+
+ + + 2300 + PRINTOUT + MACRO + 170100 + + + + + + + + + + + + + + +

+ &CUSTOMERPNO_02 + 0 +

+ + + + + STR + +
+
+ + + 2320 + STRCAT + MACRO + 170110 + + + + + + + + + + + + + + +

+ &CUSTOMERPNO_01 + &CUSTOMERPNO_02 + + + + + + + + +

+ + + + + STR + &CUSTOMERPNO_03 +
+
+ + + 2340 + STRTOHEXSTRING + MACRO + 170130 + + + + + + + + CUSTOMER PART NO (ASCII) + + + + + + +

+ &CUSTOMERPNO_03 + 0 +

+ + + + + STR + &PARTNO_ASCII +
+
+ + + 2360 + PRINTOUT + MACRO + 170140 + + + + + + + + PARTNO_HEX + + + + + + +

+ &PARTNO_ASCII + 0 +

+ + + + + STR + +
+
+ + + 2380 + PRINTOUT + MACRO + 170100 + + + + + + + + PCM PART NO (ASCII) + + + + + + +

+ &PCM_PARTNO + 0 +

+ + + + + STR + +
+
+ + + 2400 + CONVERT_TYPE + MACRO + 0 + + + + + + + + PCM PART NO (HEX) + + + + + + +

+ &PCM_PARTNO + ASCII + + + +

+ + + + + HEX + &PCM_PARTNOHEX +
+
+ + + 2420 + PRINTOUT + MACRO + 170100 + + + + + + + + PCM PART NO (HEX) + + + + + + +

+ &PCM_PARTNOHEX + 0 +

+ + + + + STR + +
+
+ + + 2440 + PRINTOUT + MACRO + 170150 + + + + + + + + KEFICO_CODE + + + + + + +

+ &HW_VER + 0 +

+ + + + + STR + +
+
+ + + 2460 + STRTOHEXSTRING + MACRO + 170160 + + + + + + + + + + + + + + +

+ &HW_VER + 0 +

+ + + + + STR + &HW_VER0 +
+
+ + + 2480 + STRCOPY + MACRO + 170170 + + + + + + + + + + + + + + +

+ &HW_VER0 + 3 + 4 +

+ + + + + STR + &HW_VER1 +
+
+ + + 2500 + STRCOPY + MACRO + 170180 + + + + + + + + + + + + + + +

+ &HW_VER0 + 7 + 10 +

+ + + + + STR + &HW_VER2 +
+
+ + + 2520 + STRCAT + MACRO + 170190 + + + + + + + + HW VERSION ASCII + + + + + + +

+ &HW_VER1 + &HW_VER2 + + + + + + + + +

+ + + + + STR + &HW_VERSION_ASCII +
+
+ + + 2540 + PRINTOUT + MACRO + 170200 + + + + + + + + KEFICO_HEX + + + + + + +

+ &HW_VERSION_ASCII + 0 +

+ + + + + STR + +
+
+ + + 2560 + KUNDENDAT1 + MACRO + 170210 + + + + + + + + + + + + + + +

+ FD + 3 + + + + ERROR +

+ + + + + STR + &FD3 +
+
+ + + 2580 + PRINTOUT + MACRO + 170220 + + + + + + + + FD3 + + + + + + +

+ &FD3 + 0 +

+ + + + + STR + +
+
+ + + 2600 + GETDATASTR + MACRO + 170230 + + + + + + + + + + + + + + +

+ KEFICOCODE + S + 4 +

+ + + + + STR + &KEFICO_CODE +
+
+ + + 2620 + PRINTOUT + MACRO + 170240 + + + + + + + + KEFICO_CODE + + + + + + +

+ &KEFICO_CODE + 0 +

+ + + + + STR + +
+
+ + + 2640 + STRTOHEXSTRING + MACRO + 170250 + + + + + + + + + + + + + + +

+ &KEFICO_CODE + 0 +

+ + + + + STR + &KEFICO_ASCII +
+
+ + + 2660 + PRINTOUT + MACRO + 170260 + + + + + + + + KEFICO_ASCII + + + + + + +

+ &KEFICO_ASCII + 0 +

+ + + + + STR + +
+
+ + + 2680 + KUNDENDAT1 + MACRO + 170270 + + + + + + + + + + + + + + +

+ TH + 3 + + + + ERROR +

+ + + + + STR + &TH1 +
+
+ + + 2700 + PRINTOUT + MACRO + 170280 + + + + + + + + TH1 + + + + + + +

+ &TH1 + 0 +

+ + + + + STR + +
+
+ + + 2720 + STRCAT + MACRO + 170290 + + + + + + + + ADD3BYTE + + + + + + +

+ 41414141 + &TH1 + + + + + + + + +

+ + + + + STR + &TH1_ASCII +
+
+ + + 2740 + PRINTOUT + MACRO + 170300 + + + + + + + + TH1_ASCII + + + + + + +

+ &TH1_ASCII + 0 +

+ + + + + STR + +
+
+ + + 2760 + KUNDENDAT1 + MACRO + 170310 + + + + + + + + + + + + + + +

+ TH + 2 + + + + ERROR +

+ + + + + STR + &TH0 +
+
+ + + 2780 + PRINTOUT + MACRO + 170320 + + + + + + + + TH0 + + + + + + +

+ &TH0 + 0 +

+ + + + + STR + +
+
+ + + 2800 + STRTOHEXSTRING + MACRO + 170330 + + + + + + + + PCM Version + + + + + + +

+ &PCM_VER + 0 +

+ + + + + STR + &PCM_VER_ASCII +
+
+ + + 2820 + STRTOHEXSTRING + MACRO + 170330 + + + + + + + + CMS Version + + + + + + +

+ &CMS_VER + 0 +

+ + + + + STR + &CMS_VER_ASCII +
+
+ + + 2840 + STRTOHEXSTRING + MACRO + 170330 + + + + + + + + PCM CAL ID + + + + + + +

+ &PCM_CALID + 0 +

+ + + + + STR + &PCM_CALID_ASCII +
+
+ + + 2860 + STRTOHEXSTRING + MACRO + 170330 + + + + + + + + CMS CAL ID + + + + + + +

+ &CMS_CALID + 0 +

+ + + + + STR + &CMS_CALID_ASCII +
+
+ + + 2880 + SENDBYETHERNET + MACRO + 170350 + + + + V:;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + MAC + TRUE + TCP + &TH0 + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 2900 + PARSEMESSAGE + MACRO + 170380 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + TCP + 1 + &MAC_ADDRESS + STR + + + + STR +

+ + + + + STR + +
+
+ + + 2920 + PRINTOUT + MACRO + 170390 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ &MAC_ADDRESS + 0 +

+ + + + + STR + +
+
+ + + 2930 + STRCAT + MACRO + 0 + + + + + + + + + + + + + + +

+ F18E22E30938 + + + + + + + + + +

+ + + + + STR + &MAC_ADDRESS +
+
+ + + 2940 + STRTOHEXSTRING + MACRO + 170410 + + + + V:;P:(E); + + + + + + + + + + +

+ &MAC_ADDRESS + 0 +

+ + + + + STR + &MAC_ADDRESS +
+
+ + + 2950 + BERECHNEN + MACRO + 0 + + + + + + + + + + + + + + +

+ A4231EB4D3E9 + 0 +

+ + + + + HEXSTR + &MAC_ADDRESS +
+
+ + + 2960 + STRCAT + MACRO + 170420 + + + + V:;P:(E); + + + + ADD3BYTE + + + + + + +

+ 30303030 + &MAC_ADDRESS_ASCII + + + + + + + + +

+ + + + + STR + &NMK +
+
+ + + 2980 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 3000 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Phase 302 + + + + + + +

+ PCM Data Writing + - +

+ + + + + NONE + - +
+
+ + + 3020 + WARTEN + MACRO + 0 + wz 10 -> 100, mitech + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 3040 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &VALUE +
+
+ + + 3060 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &HI +
+
+ + + 3080 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &CMeasCnt +
+
+ + + 3120 + CONTROL + MACRO + 420580 + + + + V:;P:(E); + + + + + + + + + + +

+ WHILE + (&HI!=20483) && (&CMeasCnt < 50) +

+ + + + + INT + +
+
+ + + 3140 + COMBLOCK2 + MACRO + 420590 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 3160 + BLOCKINT + MACRO + 420600 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + &HI +
+
+ + + 3180 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ &CMeasCnt+1 + 0 +

+ + + + + HEX + &CMeasCnt +
+
+ + + 3200 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 3220 + CONTROL + MACRO + 420760 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 3240 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &VALUE +
+
+ + + 4100 + CONTROL + MACRO + 420580 + + + + V:;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 4240 + COMBLOCK2 + MACRO + 420620 + + + + V:;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4260 + BLOCKINT + MACRO + 420630 + + + + V:;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 4280 + BLOCKINT + MACRO + 420640 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 4300 + BLOCKINT + MACRO + 420650 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 4320 + STRCAT + MACRO + 420680 + + + + V:;P:(E); + + + + WZ + 10 + - + MS + + + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 4340 + SEEDKEY + MACRO + 420700 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 4360 + COMBLOCK2 + MACRO + 420720 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 4380 + COMBLOCK2 + MACRO + 420730 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4400 + BLOCKINT + MACRO + 420740 + + + + V:;P:(E); + + + + WZ + 1000 + - + MS + + + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 4420 + CONTROL + MACRO + 420760 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 4440 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 3000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4460 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &VALUE +
+
+ + + 4480 + PRINTOUT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Memory Area Check + + + + + + +

+ PCM Memory Partition Swap (X→A) + 0 +

+ + + + + STR + - +
+
+ + + 4500 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4520 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4540 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 10F1FB + 7000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4560 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + + + + + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 4580 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + Command + + + + + + +

+ 4 + 4 +

+ + 10 + 10 + + HEX + +
+
+ + + 4600 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (A) + + - + - + - + - + +

+ 5 + 5 +

+ + 00 + FF + + HEX + &PartitionStatus +
+
+ + + 4620 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4640 + CONTROL + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ IF + (&PartitionStatus != 10) +

+ + + + + INT + +
+
+ + + 4660 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 4680 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4700 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 130AF1FB + 6000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4720 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + + + + + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 4740 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + Command + + + + + + +

+ 4 + 4 +

+ + 13 + 13 + + HEX + +
+
+ + + 4760 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (A) + + - + - + - + - + +

+ 5 + 5 +

+ + 00 + FF + + HEX + &PartitionStatus +
+
+ + + 4780 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4800 + CONTROL + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 4820 + WARTEN + MACRO + 0 + wz 500 -> 1000, mitech + + + V:;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4840 + WARTEN + MACRO + 0 + wz 10 -> 100, mitech + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 4860 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &VALUE +
+
+ + + 4880 + CONTROL + MACRO + 420580 + + + + V:;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 4900 + COMBLOCK2 + MACRO + 420590 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4920 + BLOCKINT + MACRO + 420600 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 4940 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 10 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 4960 + COMBLOCK2 + MACRO + 420620 + + + + V:;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 4980 + BLOCKINT + MACRO + 420630 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 5000 + BLOCKINT + MACRO + 420640 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 5020 + BLOCKINT + MACRO + 420650 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 5040 + STRCAT + MACRO + 420680 + + + + V:;P:(E); + + + + WZ + 10 + - + MS + + + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 5060 + SEEDKEY + MACRO + 420700 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 5080 + COMBLOCK2 + MACRO + 420720 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 5100 + COMBLOCK2 + MACRO + 420730 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 5120 + BLOCKINT + MACRO + 420740 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 5140 + CONTROL + MACRO + 420760 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 5160 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 5180 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + HEX + &VALUE +
+
+ + + 5200 + COMBLOCK2 + MACRO + 170620 + + + + V:;P:(E); + + + + WRITEF18B + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF18B + 1000 + +

+ + + + + STR + +
+
+ + + 5220 + COMBLOCK2 + MACRO + 170630 + + + + V:;P:(E); + + + + WRITEF18B + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &FD3 + 2000 + +

+ + + + + STR + +
+
+ + + 5240 + BLOCKINT + MACRO + 170640 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF18B + 6EF18B + + HEX + +
+
+ + + 5260 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5280 + COMBLOCK2 + MACRO + 170660 + + + + V:;P:(E); + + + + WRITEF18C + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF18C + 1000 + +

+ + + + + STR + +
+
+ + + 5300 + COMBLOCK2 + MACRO + 170670 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + WRITEF18C + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &TH1_ASCII + 1000 + +

+ + + + + STR + +
+
+ + + 5320 + BLOCKINT + MACRO + 170680 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF18C + 6EF18C + + HEX + +
+
+ + + 5340 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5360 + COMBLOCK2 + MACRO + 170700 + + + + V:;P:(E); + + + + WRITEF193 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF193 + 1000 + +

+ + + + + STR + +
+
+ + + 5380 + COMBLOCK2 + MACRO + 170710 + + + + V:;P:(E); + + + + WRITEF193 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &HW_VERSION_ASCII + 1000 + +

+ + + + + STR + +
+
+ + + 5400 + BLOCKINT + MACRO + 170720 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF193 + 6EF193 + + HEX + +
+
+ + + 5420 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5440 + COMBLOCK2 + MACRO + 170740 + + + + V:;P:(E); + + + + WRITEF102 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF102 + 1000 + +

+ + + + + STR + +
+
+ + + 5460 + COMBLOCK2 + MACRO + 170750 + + + + V:;P:(E); + + + + WRITEF102 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &MAC_ADDRESS + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 5480 + BLOCKINT + MACRO + 170760 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF102 + 6EF102 + + HEX + +
+
+ + + 5500 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5520 + COMBLOCK2 + MACRO + 170780 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + WRITEF1A1 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF1A1 + 1000 + +

+ + + + + STR + +
+
+ + + 5540 + COMBLOCK2 + MACRO + 170790 + + + + V:;P:(E); + + + + WRITEF1A1 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &KEFICO_ASCII + 1000 + +

+ + + + + STR + +
+
+ + + 5560 + BLOCKINT + MACRO + 170800 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF1A1 + 6EF1A1 + + HEX + +
+
+ + + 5580 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 5600 + COMBLOCK2 + MACRO + 170780 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + WRITEF187 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF187 + 1000 + +

+ + + + + STR + +
+
+ + + 5620 + COMBLOCK2 + MACRO + 170790 + + + + V:;P:(E); + + + + WRITEF187 + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &PARTNO_ASCII + 1000 + +

+ + + + + STR + +
+
+ + + 5640 + BLOCKINT + MACRO + 170800 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 6EF187 + 6EF187 + + HEX + +
+
+ + + 5660 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A007_S + CAN1_REF + - + SA + + + + + A008_S + CAN1 + - + SA + + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5680 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + A033_SV + - + - + NONE + + + + + A035_SV + - + - + NONE + + + + + A038_SV + - + - + NONE + + + + + + + +

+ + + + + NONE + + + + + + 5700 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5720 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + A033_SV + UB + - + SA + + + + + A035_SV + UB + - + SA + + + + + A038_SV + MASSE + - + SA + + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5740 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 5000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5760 + CAN2000INI2 + MACRO + 160020 + CAN Port Close + + + V:0000000000000007;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 5780 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E|R); + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 5800 + CAN2000INI2 + MACRO + 160020 + CAN Port Open + + + V:0000000000000007;P:(E|R); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 5820 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E|R); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 5840 + PRINTOUT + MACRO + 0 + + + + V:;P:(E|R); + + + + ▣ Phase 303 + + + + + + +

+ PCM Product Information + - +

+ + + + + NONE + - +
+
+ + + 5860 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5880 + WARTEN + MACRO + 0 + 300ms + + + V:;P:(E|R); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5900 + COMBLOCK2 + MACRO + 170860 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + UDS_DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 5920 + BLOCKINT + MACRO + 170870 + + + + V:;P:(E|R); + + + + POSITIVE + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 5940 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E|R); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 5960 + COMBLOCK2 + MACRO + 170910 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F187 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 5980 + BLOCKINT + MACRO + 170920 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F187 + 62F187 + + HEX + +
+
+ + + 6000 + BLOCKINT + MACRO + 170930 + + + + V:;P:(E); + + + + ASCII10BYTE + + + + + + +

+ 4 + 13 +

+ + + + + HEX + &F187_CHECK +
+
+ + + 6020 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6040 + COMBLOCK2 + MACRO + 170910 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F188 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 6060 + BLOCKINT + MACRO + 170920 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F188 + 62F188 + + HEX + +
+
+ + + 6080 + BLOCKINT + MACRO + 170930 + + + + V:;P:(E|R); + + + + ASCII16BYTE + + + + + + +

+ 4 + 19 +

+ + + + + HEX + &F188_CHECK +
+
+ + + 6100 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E|R); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6120 + COMBLOCK2 + MACRO + 170950 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F18B + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 6140 + BLOCKINT + MACRO + 170960 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F18B + 62F18B + + HEX + +
+
+ + + 6160 + BLOCKINT + MACRO + 170970 + + + + V:;P:(E); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F18B_CHECK +
+
+ + + 6180 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6200 + COMBLOCK2 + MACRO + 170990 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F18C + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 6220 + BLOCKINT + MACRO + 171000 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F18C + 62F18C + + HEX + +
+
+ + + 6240 + BLOCKINT + MACRO + 171010 + + + + V:;P:(E); + + + + ASCII15BYTE + + + + + + +

+ 4 + 18 +

+ + + + + HEX + &F18C_CHECK +
+
+ + + 6260 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6280 + COMBLOCK2 + MACRO + 171030 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F101 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 6300 + BLOCKINT + MACRO + 171040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F101 + 62F101 + + HEX + +
+
+ + + 6320 + BLOCKINT + MACRO + 171050 + + + + V:;P:(E); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F101_CHECK +
+
+ + + 6340 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6360 + COMBLOCK2 + MACRO + 171070 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F193 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 6380 + BLOCKINT + MACRO + 171080 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F193 + 62F193 + + HEX + +
+
+ + + 6400 + BLOCKINT + MACRO + 171090 + + + + V:;P:(E); + + + + ASCII3BYTE + + + + + + +

+ 4 + 6 +

+ + + + + HEX + &F193_CHECK +
+
+ + + 6420 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6440 + COMBLOCK2 + MACRO + 171110 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F103 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 6460 + BLOCKINT + MACRO + 171120 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F103 + 62F103 + + HEX + +
+
+ + + 6480 + BLOCKINT + MACRO + 171130 + + + + V:;P:(E); + + + + ASCII2BYTE + + + + + + +

+ 4 + 5 +

+ + + + + HEX + &F103_CHECK +
+
+ + + 6500 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6520 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &CMeasCnt +
+
+ + + 6540 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ 1 + 0 +

+ + + + + INT + &CrcR +
+
+ + + 6560 + CONTROL + MACRO + 0 + + + + + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&CrcR!=0) && (&CMeasCnt < 50) +

+ + + + + NONE + +
+
+ + + 6580 + COMBLOCK2 + MACRO + 171150 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F102 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 6600 + BLOCKINT + MACRO + 171160 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F102 + 62F102 + + HEX + +
+
+ + + 6620 + BLOCKINT + MACRO + 171170 + + + + V:;P:(E); + + + + HEX6BYTE + + + + + + +

+ 4 + 9 +

+ + + + + HEX + &F102_CHECK +
+
+ + + 6640 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ &F102_CHECK + 0 +

+ + + + + HEX + &MAC_ADDRESS +
+
+ + + 6740 + STRCMP + MACRO + 171740 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + F102_COMP + + + + + + +

+ &MAC_ADDRESS + &F102_CHECK +

+ + + + + INT + &CrcR +
+
+ + + 6760 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ &CMeasCnt+1 + 0 +

+ + + + + INT + &CMeasCnt +
+
+ + + 6780 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 6800 + CONTROL + MACRO + 0 + + + + + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + NONE + +
+
+ + + 6820 + PRINTOUT + MACRO + 400010 + + + + V:;P:(E|R); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ &CMeasCnt + 0 +

+ + + + + STR + +
+
+ + + 6840 + COMBLOCK2 + MACRO + 171150 + + + + V:;P:(E|R); + + + + WZ + 50 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F156 + 1000 + +

+ + + + + STR + +
+
+ + + 6860 + BLOCKINT + MACRO + 171160 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F156 + 62F156 + + HEX + +
+
+ + + 6880 + BLOCKINT + MACRO + 171170 + + + + V:;P:(E|R); + + + + HEX4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F156_CHECK +
+
+ + + 6900 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E|R); + + + + + +

+ + + + + NONE + + + + + + 6920 + COMBLOCK2 + MACRO + 171190 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F1B2 + 1000 + +

+ + + + + STR + +
+
+ + + 6940 + BLOCKINT + MACRO + 171200 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1B2 + 62F1B2 + + HEX + +
+
+ + + 6960 + BLOCKINT + MACRO + 171210 + + + + V:;P:(E); + + + + ASCII10BYTE + + + + + + +

+ 4 + 13 +

+ + + + + HEX + &F1B2_CHECK +
+
+ + + 6980 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7000 + COMBLOCK2 + MACRO + 171230 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F1A1 + 1000 + +

+ + + + + STR + +
+
+ + + 7020 + BLOCKINT + MACRO + 171240 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1A1 + 62F1A1 + + HEX + +
+
+ + + 7040 + BLOCKINT + MACRO + 171250 + + + + V:;P:(E); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F1A1_CHECK +
+
+ + + 7060 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7080 + COMBLOCK2 + MACRO + 171270 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F1C2 + 1000 + +

+ + + + + STR + +
+
+ + + 7100 + BLOCKINT + MACRO + 171280 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1C2 + 62F1C2 + + HEX + +
+
+ + + 7120 + BLOCKINT + MACRO + 171290 + + + + V:;P:(E); + + + + HEX32BYTE + + + + + + +

+ 4 + 35 +

+ + + + + HEX + &F1C2_CHECK +
+
+ + + 7140 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7160 + COMBLOCK2 + MACRO + 171310 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F1EF + 1000 + +

+ + + + + STR + +
+
+ + + 7180 + BLOCKINT + MACRO + 171320 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1EF + 62F1EF + + HEX + +
+
+ + + 7200 + BLOCKINT + MACRO + 171330 + + + + V:;P:(E); + + + + ASCII40BYTE + + + + + + +

+ 4 + 43 +

+ + + + + HEX + &F1EF_CHECK +
+
+ + + 7220 + WARTEN + MACRO + 0 + 30 -> 50, mitech + + + V:;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7240 + COMBLOCK2 + MACRO + 171350 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F148 + 1000 + +

+ + + + + STR + +
+
+ + + 7260 + BLOCKINT + MACRO + 171360 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F148 + 62F148 + + HEX + +
+
+ + + 7280 + BLOCKINT + MACRO + 171370 + + + + V:;P:(E); + + + + ASCII 3BYTE + + + + + + +

+ 4 + 6 +

+ + 584443 + 584443 + + HEX + &F148_CHECK +
+
+ + + 7300 + WARTEN + MACRO + 0 + 200ms + + + V:;P:(E); + + + + WZ + 1200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7320 + PRINTOUT + MACRO + 400010 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ HFID_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7340 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 3000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7400 + COMBLOCK2 + MACRO + 400050 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F147 + 2000 + +

+ + + + + STR + +
+
+ + + 7440 + BLOCKINT + MACRO + 400060 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F147 + 62F147 + + HEX + +
+
+ + + 7460 + BLOCKINT + MACRO + 400070 + + + + V:;P:(E|R); + + + + HEX20BYTE + + + + + + +

+ 4 + 23 +

+ + + + + HEX + &F147_CHECK +
+
+ + + 7480 + STRTOHEXSTRING + MACRO + 400080 + + + + V:;P:(E|R); + + + + + + + + + + +

+ &HFID + 0 +

+ + + + + STR + &HFID_HEX +
+
+ + + 7500 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 30 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 7520 + PRINTOUT + MACRO + 171390 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + PCM Part No. + + + + + + +

+ &PARTNO_ASCII + 0 +

+ + + + + STR + +
+
+ + + 7540 + PRINTOUT + MACRO + 171400 + + + + V:;P:(E); + + + + 2-1. F187 : Part No. + + + + + + +

+ &F187_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7560 + PRINTOUT + MACRO + 171390 + + + + V:;P:(E|R); + + + + ROM ID + + + + + + +

+ &PCM_CALID_ASCII + 0 +

+ + + + + STR + +
+
+ + + 7580 + PRINTOUT + MACRO + 171400 + + + + V:;P:(E|R); + + + + 2-2. F188 : ROM ID + + + + + + +

+ &F188_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7600 + PRINTOUT + MACRO + 171420 + + + + V:;P:(E); + + + + Date + + + + + + +

+ &FD3 + 0 +

+ + + + + STR + +
+
+ + + 7620 + PRINTOUT + MACRO + 171430 + + + + V:;P:(E); + + + + 2-3. F18B : Date + + + + + + +

+ &F18B_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7640 + PRINTOUT + MACRO + 171450 + + + + V:;P:(E); + + + + Serial No. + + + + + + +

+ &TH1_ASCII + 0 +

+ + + + + STR + +
+
+ + + 7660 + PRINTOUT + MACRO + 171460 + + + + V:;P:(E); + + + + 2-4. F18C : Serial No. + + + + + + +

+ &F18C_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7680 + PRINTOUT + MACRO + 171480 + + + + V:;P:(E); + + + + 2-5. F101 : QCA Ver. + + + + + + +

+ &F101_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7700 + PRINTOUT + MACRO + 171500 + + + + V:;P:(E); + + + + H/W Ver. + + + + + + +

+ &HW_VERSION_ASCII + 0 +

+ + + + + STR + +
+
+ + + 7720 + PRINTOUT + MACRO + 171510 + + + + V:;P:(E); + + + + 2-6. F193 : H/W Ver. + + + + + + +

+ &F193_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7740 + PRINTOUT + MACRO + 171530 + + + + V:;P:(E); + + + + 2-7. F103 : CAN DB Ver. + + + + + + +

+ &F103_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7760 + PRINTOUT + MACRO + 171550 + + + + V:;P:(E); + + + + 2-8. F102 : MAC Address + + + + + + +

+ &F102_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7780 + PRINTOUT + MACRO + 0 + + + + V:;P:(E|R); + + + + PCM Checksum + + + + + + +

+ &PCM_CRC + 0 +

+ + + + + STR + - +
+
+ + + 7800 + PRINTOUT + MACRO + 171550 + + + + V:;P:(E|R); + + + + 2-9. F156 : Checksum + + + + + + +

+ &F156_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7820 + PRINTOUT + MACRO + 171580 + + + + V:;P:(E); + + + + PCM SW Ver. + + + + + + +

+ &PCM_VER + 0 +

+ + + + + STR + +
+
+ + + 7840 + PRINTOUT + MACRO + 171570 + + + + V:;P:(E); + + + + 2-10. F1B2 : SW Ver. + + + + + + +

+ &F1B2_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7860 + PRINTOUT + MACRO + 171600 + + + + V:;P:(E); + + + + Kefico Supplier Code + + + + + + +

+ &KEFICO_HEX + 0 +

+ + + + + STR + +
+
+ + + 7880 + PRINTOUT + MACRO + 171610 + + + + V:;P:(E); + + + + 2-11. F1A1 : ECU Supplier Code + + + + + + +

+ &F1A1_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7900 + PRINTOUT + MACRO + 171630 + + + + V:;P:(E); + + + + 2-12. F1C2 : IVD Data + + + + + + +

+ &F1C2_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7920 + PRINTOUT + MACRO + 171650 + + + + V:;P:(E); + + + + 2-13. F1EF : RXSWIN Data + + + + + + +

+ &F1EF_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7940 + PRINTOUT + MACRO + 171670 + + + + V:;P:(E); + + + + 2-14. F148 : CPU Information + + + + + + +

+ &F148_CHECK + 0 +

+ + + + + STR + +
+
+ + + 7960 + PRINTOUT + MACRO + 0 + + + + V:;P:(E|R); + + + + HFID + + + + + + +

+ &HFID_HEX + - +

+ + + + + STR + - +
+
+ + + 7980 + PRINTOUT + MACRO + 0 + + + + V:;P:(E|R); + + + + 2-15. F147 : HFID + + + + + + +

+ &F147_CHECK + - +

+ + + + + STR + - +
+
+ + + 8000 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&CR != 0) +

+ + + + + NONE + +
+
+ + + 8020 + STRCMP + MACRO + 171700 + + + + V:;P:(E); + + + + F187_COMP + + + + + + +

+ &PARTNO_ASCII + &F187_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8040 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 8060 + STRCMP + MACRO + 171700 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + F188_COMP + + + + + + +

+ &PCM_CALID_ASCII + &F188_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8080 + STRCMP + MACRO + 171710 + + + + V:;P:(E); + + + + F18B_COMP + + + + + + +

+ &FD3 + &F18B_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8100 + STRCMP + MACRO + 171720 + + + + V:;P:(E); + + + + F18C_COMP + + + + + + +

+ &TH1_ASCII + &F18C_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8120 + STRCMP + MACRO + 171730 + + + + V:;P:(E); + + + + F193_COMP + + + + + + +

+ &HW_VERSION_ASCII + &F193_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8140 + STRCMP + MACRO + 171740 + + + + V:;P:(E); + + + + F102_COMP + + + + + + +

+ &MAC_ADDRESS + &F102_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8160 + STRCMP + MACRO + 171740 + + + + V:;P:(E|R); + + + + F156_COMP + + + + + + +

+ &PCM_CRC + &F156_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8180 + STRCMP + MACRO + 171750 + + + + V:;P:(E); + + + + F1B2_COMP + + + + + + +

+ &PCM_VER_ASCII + &F1B2_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8200 + STRCMP + MACRO + 171760 + + + + V:;P:(E); + + + + F1A1_COMP + + + + + + +

+ &KEFICO_ASCII + &F1A1_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8220 + STRCMP + MACRO + 400100 + + + + V:;P:(E|R); + + + + F147_COMP + + + + + + +

+ &HFID_HEX + &F147_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 8240 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + + +

+ + + + + NONE + + + + + + 8260 + PRINTOUT + MACRO + 180000 + + + CMS_CAN_INIT******************************************************* + V:;P:(E|R); + + + + WZ + 200 + - + MS + + + + + + CAN Port Open + + + + + + +

+ CMS CAN INIT + 0 +

+ + + + + STR + +
+
+ + + 8280 + CAN2000INI2 + MACRO + 180020 + + + + V:0000000000000007;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 8300 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E|R); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 +

+ + + + + STR + +
+
+ + + 8320 + WARTEN + MACRO + 0 + wz 30 -> 500, mitech + + + V:;P:(E|R); + + + + WZ + 150 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 8340 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + UB_IMAX + 10 + - + A + + + + + WZ + - + - + NONE + + + + + + ▣ Phase 304 + + + + + + +

+ CSM Product Data Writing + - +

+ + + + + NONE + - +
+
+ + + 8380 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 8400 + COMBLOCK2 + MACRO + 170450 + + + + V:;P:(E); + + + + UDS_DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 8420 + BLOCKINT + MACRO + 170460 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 8440 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 8460 + COMBLOCK2 + MACRO + 170480 + + + + V:;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 8480 + BLOCKINT + MACRO + 170490 + + + + V:;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 8500 + BLOCKINT + MACRO + 170500 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 8520 + BLOCKINT + MACRO + 170510 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 8540 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 8560 + PRINTOUT + MACRO + 170530 + + + + V:;P:(E); + + + + + + + + + + +

+ *** ASK SEQUENCE *** + 0 +

+ + + + + STR + +
+
+ + + 8580 + STRCAT + MACRO + 170540 + + + + V:;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 8600 + SEEDKEY + MACRO + 170560 + + + + V:;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_CMS + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 8620 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 8640 + COMBLOCK2 + MACRO + 170580 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 8660 + COMBLOCK2 + MACRO + 170590 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 8680 + BLOCKINT + MACRO + 170600 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 6712 + 6712 + + HEX + +
+
+ + + 8700 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 8720 + COMBLOCK2 + MACRO + 170620 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + WRITEF18B + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2EF18B + 1000 + +

+ + + + + STR + +
+
+ + + 8740 + COMBLOCK2 + MACRO + 170630 + + + + V:;P:(E); + + + + WRITEF18B + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &FD3 + 1000 + +

+ + + + + STR + +
+
+ + + 8760 + BLOCKINT + MACRO + 170640 + + + + V:;P:(E); + + + + Manuf. Date Writing + + + + + + +

+ 1 + 3 +

+ + 6EF18B + 6EF18B + + HEX + +
+
+ + + 8780 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 8800 + COMBLOCK2 + MACRO + 170660 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + WRITEF18C + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2EF18C + 1000 + +

+ + + + + STR + +
+
+ + + 8820 + COMBLOCK2 + MACRO + 170670 + + + + V:;P:(E); + + + + WRITEF18C + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &TH1_ASCII + 1000 + +

+ + + + + STR + +
+
+ + + 8840 + BLOCKINT + MACRO + 170680 + + + + V:;P:(E); + + + + Serial No. Writing + + + + + + +

+ 1 + 3 +

+ + 6EF18C + 6EF18C + + HEX + +
+
+ + + 8860 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 8880 + COMBLOCK2 + MACRO + 170780 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + WRITEF1A1 + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2EF1A1 + 1000 + +

+ + + + + STR + +
+
+ + + 8900 + COMBLOCK2 + MACRO + 170790 + + + + V:;P:(E); + + + + WRITEF1A1 + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &KEFICO_ASCII + 1000 + +

+ + + + + STR + +
+
+ + + 8920 + BLOCKINT + MACRO + 170800 + + + + V:;P:(E); + + + + Supplier Code Writing + + + + + + +

+ 1 + 3 +

+ + 6EF1A1 + 6EF1A1 + + HEX + +
+
+ + + 8940 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 8960 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 20 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 8980 + PRINTOUT + MACRO + 190010 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 305 + + + + + + +

+ CMS Product Information + 0 +

+ + + + + STR + +
+
+ + + 9000 + WARTEN + MACRO + 0 + + + + V:;P:(E|R); + + + + WZ + 5 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 9020 + COMBLOCK2 + MACRO + 190060 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + UDS_DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 9040 + BLOCKINT + MACRO + 190070 + + + + V:;P:(E|R); + + + + POSITIVE + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 9060 + COMBLOCK2 + MACRO + 190090 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F181 + 1000 + +

+ + + + + STR + +
+
+ + + 9080 + BLOCKINT + MACRO + 190100 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F181 + 62F181 + + HEX + +
+
+ + + 9100 + BLOCKINT + MACRO + 190110 + + + + V:;P:(E|R); + + + + ASCII10BYTE + + + + + + +

+ 4 + 13 +

+ + + + + HEX + &F181_CHECK +
+
+ + + 9120 + COMBLOCK2 + MACRO + 190130 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F188 + 1000 + +

+ + + + + STR + +
+
+ + + 9140 + BLOCKINT + MACRO + 190140 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F188 + 62F188 + + HEX + +
+
+ + + 9160 + BLOCKINT + MACRO + 190150 + + + + V:;P:(E|R); + + + + ASCII16BYTE + + + + + + +

+ 4 + 19 +

+ + + + + HEX + &F188_CHECK +
+
+ + + 9180 + COMBLOCK2 + MACRO + 190170 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F191 + 1000 + +

+ + + + + STR + +
+
+ + + 9200 + BLOCKINT + MACRO + 190180 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F191 + 62F191 + + HEX + +
+
+ + + 9220 + BLOCKINT + MACRO + 190190 + + + + V:;P:(E|R); + + + + ASCII10BYTE + + + + + + +

+ 4 + 13 +

+ + + + + HEX + &F191_CHECK +
+
+ + + 9240 + COMBLOCK2 + MACRO + 190210 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F187 + 1000 + +

+ + + + + STR + +
+
+ + + 9260 + BLOCKINT + MACRO + 190220 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F187 + 62F187 + + HEX + +
+
+ + + 9280 + BLOCKINT + MACRO + 190230 + + + + V:;P:(E|R); + + + + ASCII10BYTE + + + + + + +

+ 4 + 13 +

+ + + + + HEX + &F187_CHECK +
+
+ + + 9300 + COMBLOCK2 + MACRO + 190250 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1A0 + 1000 + +

+ + + + + STR + +
+
+ + + 9320 + BLOCKINT + MACRO + 190260 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1A0 + 62F1A0 + + HEX + +
+
+ + + 9340 + BLOCKINT + MACRO + 190270 + + + + V:;P:(E|R); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F1A0_CHECK +
+
+ + + 9360 + COMBLOCK2 + MACRO + 190290 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F156 + 1000 + +

+ + + + + STR + +
+
+ + + 9380 + BLOCKINT + MACRO + 190300 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 1 + 3 +

+ + 62F156 + 62F156 + + HEX + +
+
+ + + 9400 + BLOCKINT + MACRO + 190310 + + + + V:;P:(E|R); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F156_CHECK +
+
+ + + 9420 + BLOCKINT + MACRO + 190310 + + + + V:;P:(E|R); + + + + F156_BYTE:1 + + + + + + +

+ 4 + 4 +

+ + + + + HEX + &F156_RC1 +
+
+ + + 9440 + BLOCKINT + MACRO + 190310 + + + + V:;P:(E|R); + + + + F156_BYTE:2 + + + + + + +

+ 5 + 5 +

+ + + + + HEX + &F156_RC2 +
+
+ + + 9460 + BLOCKINT + MACRO + 190310 + + + + V:;P:(E|R); + + + + F156_BYTE:3 + + + + + + +

+ 6 + 6 +

+ + + + + HEX + &F156_RC3 +
+
+ + + 9480 + BLOCKINT + MACRO + 190310 + + + + V:;P:(E|R); + + + + F156_BYTE:4 + + + + + + +

+ 7 + 7 +

+ + + + + HEX + &F156_RC4 +
+
+ + + 9500 + STRCAT + MACRO + 0 + + + + V:;P:(E|R); + + + + F156_REVERSE + + + + + + +

+ &F156_RC4 + &F156_RC3 + &F156_RC2 + &F156_RC1 + + + + + + +

+ + + + + STR + &F156_RCHECK +
+
+ + + 9520 + COMBLOCK2 + MACRO + 190330 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1B0 + 1000 + +

+ + + + + STR + +
+
+ + + 9540 + BLOCKINT + MACRO + 190340 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1B0 + 62F1B0 + + HEX + +
+
+ + + 9560 + BLOCKINT + MACRO + 190350 + + + + V:;P:(E|R); + + + + HEX1BYTE + + + + + + +

+ 4 + 4 +

+ + + + + HEX + &F1B0_CHECK +
+
+ + + 9580 + COMBLOCK2 + MACRO + 190370 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1B1 + 1000 + +

+ + + + + STR + +
+
+ + + 9600 + BLOCKINT + MACRO + 190380 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1B1 + 62F1B1 + + HEX + +
+
+ + + 9620 + BLOCKINT + MACRO + 190390 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + ASCII16BYTE + + + + + + +

+ 4 + 19 +

+ + + + + HEX + &F1B1_CHECK +
+
+ + + 9640 + COMBLOCK2 + MACRO + 190410 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1C1 + 10000 + +

+ + + + + STR + +
+
+ + + 9660 + BLOCKINT + MACRO + 190420 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1C1 + 62F1C1 + + HEX + +
+
+ + + 9680 + BLOCKINT + MACRO + 190430 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + HEX32BYTE + + + + + + +

+ 4 + 35 +

+ + + + + HEX + &F1C1_CHECK +
+
+ + + 9700 + COMBLOCK2 + MACRO + 190450 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1EF + 1000 + +

+ + + + + STR + +
+
+ + + 9720 + BLOCKINT + MACRO + 190460 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1EF + 62F1EF + + HEX + +
+
+ + + 9740 + BLOCKINT + MACRO + 190470 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + HEXASCII40BYTE + + + + + + +

+ 4 + 43 +

+ + + + + HEX + &F1EF_CHECK +
+
+ + + 9760 + COMBLOCK2 + MACRO + 190490 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F197 + 1000 + +

+ + + + + STR + +
+
+ + + 9780 + BLOCKINT + MACRO + 190500 + + + + V:;P:(E|R); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F197 + 62F197 + + HEX + +
+
+ + + 9800 + BLOCKINT + MACRO + 190510 + + + + V:;P:(E|R); + + + + WZ + 30 + - + MS + + + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F197_CHECK +
+
+ + + 9820 + COMBLOCK2 + MACRO + 190250 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F18B + 1000 + +

+ + + + + STR + +
+
+ + + 9840 + BLOCKINT + MACRO + 190260 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F18B + 62F18B + + HEX + +
+
+ + + 9860 + BLOCKINT + MACRO + 190270 + + + + V:;P:(E); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F18B_CHECK +
+
+ + + 9880 + COMBLOCK2 + MACRO + 190250 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F18C + 1000 + +

+ + + + + STR + +
+
+ + + 9900 + BLOCKINT + MACRO + 190260 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F18C + 62F18C + + HEX + +
+
+ + + 9920 + BLOCKINT + MACRO + 190270 + + + + V:;P:(E); + + + + ASCII15BYTE + + + + + + +

+ 4 + 18 +

+ + + + + HEX + &F18C_CHECK +
+
+ + + 9940 + COMBLOCK2 + MACRO + 190250 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F1A1 + 1000 + +

+ + + + + STR + +
+
+ + + 9960 + BLOCKINT + MACRO + 190260 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F1A1 + 62F1A1 + + HEX + +
+
+ + + 9980 + BLOCKINT + MACRO + 190270 + + + + V:;P:(E); + + + + ASCII4BYTE + + + + + + +

+ 4 + 7 +

+ + + + + HEX + &F1A1_CHECK +
+
+ + + 10000 + PRINTOUT + MACRO + 190530 + + + + V:;P:(E|R); + + + + WZ + 0 + - + MS + + + + + + CMS SW Ver. + + + + + + +

+ &CMS_VER + 0 +

+ + + + + STR + +
+
+ + + 10020 + PRINTOUT + MACRO + 190540 + + + + V:;P:(E|R); + + + + 1-1. F181 : SW Ver. + + + + + + +

+ &F181_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10040 + PRINTOUT + MACRO + 190530 + + + + V:;P:(E|R); + + + + CMS CAL ID + + + + + + +

+ &CMS_CALID_ASCII + 0 +

+ + + + + STR + +
+
+ + + 10060 + PRINTOUT + MACRO + 190550 + + + + V:;P:(E|R); + + + + 1-2. F188 : ROM ID + + + + + + +

+ &F188_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10080 + PRINTOUT + MACRO + 190560 + + + + V:;P:(E|R); + + + + 1-3. F191 : HW Ver. + + + + + + +

+ &F191_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10100 + PRINTOUT + MACRO + 190570 + + + + V:;P:(E|R); + + + + 1-4. F187 : Part No. + + + + + + +

+ &F187_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10120 + PRINTOUT + MACRO + 190580 + + + + V:;P:(E|R); + + + + 1-5. F1A0 : HKMC SW Ver. + + + + + + +

+ &F1A0_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10140 + PRINTOUT + MACRO + 0 + + + + V:;P:(E|R); + + + + CMS Checksum + + + + + + +

+ &CMS_CRC + 0 +

+ + + + + STR + - +
+
+ + + 10160 + PRINTOUT + MACRO + 190590 + + + + V:;P:(E|R); + + + + 1-6. F156 : Checksum + + + + + + +

+ &F156_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10180 + PRINTOUT + MACRO + 190590 + + + + V:;P:(E|R); + + + + 1-6. F156 : Checksum-Reverse + + + + + + +

+ &F156_RCHECK + 0 +

+ + + + + STR + +
+
+ + + 10200 + PRINTOUT + MACRO + 190600 + + + + V:;P:(E|R); + + + + 1-7. F1B0 : ECU Unit No. + + + + + + +

+ &F1B0_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10220 + PRINTOUT + MACRO + 190610 + + + + V:;P:(E|R); + + + + 1-8. F1B1 : ECU Unit 1 S/W Ver. + + + + + + +

+ &F1B1_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10240 + PRINTOUT + MACRO + 190620 + + + + V:;P:(E|R); + + + + 1-9. F1C1 : IVD Data + + + + + + +

+ &F1C1_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10260 + PRINTOUT + MACRO + 190630 + + + + V:;P:(E|R); + + + + 1-10. F1EF : RXSWIN Data + + + + + + +

+ &F1EF_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10280 + PRINTOUT + MACRO + 190640 + + + + V:;P:(E|R); + + + + 1-11. F197 : System Name + + + + + + +

+ &F197_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10300 + PRINTOUT + MACRO + 190580 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + 1-12. F18B : Product Date + + + + + + +

+ &F18B_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10320 + PRINTOUT + MACRO + 190580 + + + + V:;P:(E); + + + + 1-13. F18C : Serial No. + + + + + + +

+ &F18C_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10340 + PRINTOUT + MACRO + 190580 + + + + V:;P:(E); + + + + 1-14. F1A1 : Supplier Code + + + + + + +

+ &F1A1_CHECK + 0 +

+ + + + + STR + +
+
+ + + 10360 + STRCMP + MACRO + 190680 + + + + V:;P:(E|R); + + + + F156_COMP + + + + + + +

+ &CMS_CRC + &F156_RCHECK +

+ + 0 + 0 + + INT + +
+
+ + + 10380 + STRCMP + MACRO + 190660 + + + + V:;P:(E|R); + + + + F181_COMP + + + + + + +

+ &CMS_VER_ASCII + &F181_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 10400 + STRCMP + MACRO + 190670 + + + + V:;P:(E|R); + + + + F188_COMP + + + + + + +

+ &CMS_CALID_ASCII + &F188_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 10420 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&CR != 0) +

+ + + + + NONE + +
+
+ + + 10440 + STRCMP + MACRO + 190680 + + + + V:;P:(E|R); + + + + F187_COMP + + + + + + +

+ &PARTNO_ASCII + &F187_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 10460 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 10480 + STRCMP + MACRO + 190660 + + + + V:;P:(E); + + + + F18B_COMP + + + + + + +

+ &FD3 + &F18B_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 10500 + STRCMP + MACRO + 190670 + + + + V:;P:(E); + + + + F18C_COMP + + + + + + +

+ &TH1_ASCII + &F18C_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 10520 + STRCMP + MACRO + 190680 + + + + V:;P:(E); + + + + F1A1_COMP + + + + + + +

+ &KEFICO_ASCII + &F1A1_CHECK +

+ + 0 + 0 + + INT + +
+
+ + + 10540 + WARTEN + MACRO + 0 + + + + + + + + + +

+ + + + + NONE + + + + + + 10560 + WARTEN + MACRO + 0 + + + + + + + + A007_S2 + CAN2_REF + - + SA + + + + + A008_S1 + CAN2 + - + SA + + + + + PLC + 0 + - + STR + + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 10580 + CAN2000INI2 + MACRO + 230050 + + + + V:0000000000000007;P:; + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 10600 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:; + + + + A007_S2 + - + - + NONE + + + + + A008_S1 + - + - + NONE + + + + + PLC + - + - + NONE + + + + + UB_IMAX + 3 + - + A + + + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 +

+ + + + + STR + +
+
+ + + 10620 + WARTEN + MACRO + 0 + wz 30 -> 500, mitech + + + + + + + WZ + 150 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 10640 + WARTEN + MACRO + 0 + + + + + + + + A001_S1 + FGN2 + - + SA + + + + + A009_S1 + FGN2_REF + - + SA + + + + + PLC + 7 + - + STR + + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 10660 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Phase 521-1 + + + + + + +

+ PSD Measurement Start + - +

+ + + + + STR + - +
+
+ + + 10680 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 10700 + RFMEAS_PSD + MACRO + 0 + + + + V:;P:(E); + + + + PSD Measure Start + + + +

+ PSD + 15000000 + 30000000 + 10000 + 100000 + ON + 26000000 + 32 + OFF + S +

+ + + + + DEZ + &ResultPSD +
+
+ + + 10720 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A001_S1 + FGN2 + - + SA + + + + + A007_S2 + - + - + NONE + + + + + A008_S1 + - + - + NONE + + + + + A009_S1 + FGN2_REF + - + SA + + + + + PLC + 7 + - + STR + + + + + WZ + 5000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 10740 + CAN2000INI2 + MACRO + 390010 + + + PCM_CAN_INIT******************************************************* + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + PCMCANINIT + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 10760 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + PCMCANINIT + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 10780 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 10800 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Cert. Publish Tester ID + + + + + + +

+ Tester ID Update + - +

+ + + + + NONE + - +
+
+ + + 10820 + STRCAT + MACRO + 0 + + + + V:;P:(E); + + + + Tester ID Update + + + + + + +

+ &TESTERID_ORG + _ + &TESTERCH + + + + + + + +

+ + + + + STR + &TESTERID +
+
+ + + 10840 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Updated Tester ID + + + + + + +

+ &TESTERID + - +

+ + + + + STR + - +
+
+ + + 10860 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 10880 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 401 + + + + + + +

+ Inserting V2G Root (Part-2) Certification + - +

+ + + + + NONE + - +
+
+ + + 10900 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 10920 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P02 + + + + + + +

+ &SUBCAOEM_P02 + 0 +

+ + + + + STR + - +
+
+ + + 10940 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P20 + + + + + + +

+ &SUBCAOEM_P20 + 0 +

+ + + + + STR + - +
+
+ + + 10960 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - VEHICLE P20 + + + + + + +

+ &SUBCAVHC_P20 + 0 +

+ + + + + STR + - +
+
+ + + 10980 + STRLEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + OEM P02 Sub CA Count + + + +

+ + &SUBCAOEM_P02 +

+ + 0 + 999999 + + INT + &CountP02SubCAOEM +
+
+ + + 11000 + STRLEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + OEM P20 Sub CA Count + + + +

+ + &SUBCAOEM_P20 +

+ + 0 + 999999 + + INT + &CountP20SubCAOEM +
+
+ + + 11020 + STRLEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Vehicle P20 Sub CA Count + + + +

+ + &SUBCAVHC_P20 +

+ + 0 + 999999 + + INT + &CountP20SubCAVHC +
+
+ + + 11040 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (&CountP02SubCAOEM)-3 + 0 +

+ + + + + INT + &CountP02SubCAOEMS +
+
+ + + 11060 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (&CountP20SubCAOEM)-3 + 0 +

+ + + + + INT + &CountP20SubCAOEMS +
+
+ + + 11080 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (&CountP20SubCAVHC)-3 + 0 +

+ + + + + INT + &CountP20SubCAVHCS +
+
+ + + 11100 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCAOEM_P02 + 1857 + 1860 +

+ + + + + STR + &P02SubCAOEMCRC +
+
+ + + 11120 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCAOEM_P20 + 1889 + 1892 +

+ + + + + STR + &P20SubCAOEMCRC +
+
+ + + 11140 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCAVHC_P20 + 1889 + 1892 +

+ + + + + STR + &P20SubCAVHCCRC +
+
+ + + 11160 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P02 CRC + + + + + + +

+ &P02SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 11180 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P20 CRC + + + + + + +

+ &P20SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 11200 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - VEHICLE P20 CRC + + + + + + +

+ &P20SubCAVHCCRC + 0 +

+ + + + + STR + - +
+
+ + + 11220 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 11240 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F153 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 11260 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READ_CERT_COUNT + + + + + + +

+ 1 + 3 +

+ + 62F153 + 62F153 + + HEX + +
+
+ + + 11280 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + DATA_CERT_COUNT + + + + + + +

+ 4 + 9 +

+ + + + + HEX + &CertInfo +
+
+ + + 11300 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Cert. Input Info. + + + + + + +

+ &CertInfo + 0 +

+ + + + + STR + +
+
+ + + 11320 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 01 + + + + + + +

+ 5 + 5 +

+ + 0 + 9 + + INT + &ROOTCOUNT_01 +
+
+ + + 11340 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 02 + + + + + + +

+ 6 + 6 +

+ + 0 + 9 + + INT + &ROOTCOUNT_02 +
+
+ + + 11360 + BLOCKINT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + No. of OEM Leaf (P-02) Cert. + + - + - + - + - + +

+ 4 + 4 +

+ + 0 + 9 + + INT + &OEMCOUNT +
+
+ + + 11380 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + No. of Part-02 Root Cert. + + + + + + +

+ &ROOTCOUNT_01 + &ROOTCOUNT_02 + 0 +

+ + 0 + 9 + + INT + &ROOTCOUNT +
+
+ + + 11400 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Root Cert. Counting + + + + + + +

+ &ROOTCOUNT + 0 +

+ + + + + STR + +
+
+ + + 11420 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-02 OEM Leaf Cert. Counting + + + + + + +

+ &OEMCOUNT + 0 +

+ + + + + STR + +
+
+ + + 11440 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 11460 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ IF + (&ROOTCOUNT > 0) +

+ + + + + NONE + +
+
+ + + 11480 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 11500 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 402 + + + + + + +

+ V2G Root Cert. Initaiilization + - +

+ + + + + NONE + - +
+
+ + + 11520 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 11540 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 11560 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 11580 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 11600 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 11620 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 11640 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 11660 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 11680 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 11700 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 11720 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 11740 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 11760 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 11780 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 11800 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 11820 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 11840 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 11860 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 11880 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + P02 E-PIT DELETE INDEX ADD + + + + + + +

+ 0002 + &P02_EPIT_ROOT + + + + + + + + +

+ + + + + STR + &F115_HEX +
+
+ + + 11900 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 11920 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 11940 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 11960 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 11980 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 12000 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12020 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 12040 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12060 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12080 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 12100 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 12120 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 12140 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 12160 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 12180 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 12200 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12220 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 12240 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 12260 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 12280 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 12300 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + P02 HUBJECT EU DELETE INDEX ADD + + + + + + +

+ 0002 + &P02_HUBEU_ROOT + + + + + + + + +

+ + + + + STR + &F115_HEX +
+
+ + + 12320 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 12340 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12360 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 12380 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12400 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 12420 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12440 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 12460 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12480 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12500 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 12520 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 12540 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 12560 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 12580 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 12600 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 12620 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12640 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 12660 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 12680 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12700 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 12720 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + P02 HUBJECT US DELETE INDEX ADD + + + + + + +

+ 0002 + &P02_HUBUS_ROOT + + + + + + + + +

+ + + + + STR + &F115_HEX +
+
+ + + 12740 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 12760 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12780 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 12800 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12820 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 12840 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12860 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 12880 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 12900 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 12920 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 12940 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 12960 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 12980 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 13000 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 13020 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 13040 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 13060 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 13080 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 13100 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 13120 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 13140 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + P02 ENTRUST DELETE INDEX ADD + + + + + + +

+ 0002 + &P02_ENTRUST_ROOT + + + + + + + + +

+ + + + + STR + &F115_HEX +
+
+ + + 13160 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 13180 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 13200 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 13220 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 13240 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 13260 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 13280 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 13300 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 13320 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 13340 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 13360 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 13380 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 13400 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 13420 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 13440 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 13460 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 13480 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 13500 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 13520 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 13540 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 13560 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + P02 TESLA DELETE INDEX ADD + + + + + + +

+ 0002 + &P02_TESLA_ROOT + + + + + + + + +

+ + + + + STR + &F115_HEX +
+
+ + + 13580 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 13600 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 13620 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 13640 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 13660 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 13680 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 13700 + PRINTOUT + MACRO + 410010 + + + + V:0000000000000077;P:(E); + + + + ▣ Step 403 + + + + + + +

+ Inserting Part-02 Root Cert. + 0 +

+ + + + + STR + +
+
+ + + 13720 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 10 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 13740 + BERECHNEN + MACRO + 0 + + + + V:0000000000000044;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 13760 + CONTROL + MACRO + 410050 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 13780 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000044;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 13800 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 13820 + WARTEN + MACRO + 0 + + + + V:0000000000000044;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 13840 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000044;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 13860 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000044;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 13880 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000044;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 13900 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000044;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 13920 + STRCAT + MACRO + 410150 + + + + V:0000000000000044;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 13940 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000044;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 13960 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 13980 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000044;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 14000 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000044;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 14020 + CONTROL + MACRO + 410230 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 14040 + WARTEN + MACRO + 0 + + + + V:0000000000000044;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14060 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000044;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 14080 + STRCAT + MACRO + 410270 + + + + V:0000000000000044;P:(E); + + + + Hubject EU Root Cert. Index Add + + + + + + +

+ 0001 + &P02_HUBEU_ROOT + + + + + + + + +

+ + + + + STR + &F115_ROOTCERT_HEX +
+
+ + + 14100 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 14120 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000044;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 14140 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000044;P:(E); + + + + HUBJECT EU : WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 14160 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 2500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14180 + BERECHNEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 14200 + CONTROL + MACRO + 410050 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 14220 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000022;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 14240 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 14260 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14280 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000022;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 14300 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000022;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 14320 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000022;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 14340 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000022;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 14360 + STRCAT + MACRO + 410150 + + + + V:0000000000000022;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 14380 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000022;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 14400 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 14420 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 14440 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 14460 + CONTROL + MACRO + 410230 + + + + V:0000000000000022;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 14480 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14500 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000022;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 14520 + STRCAT + MACRO + 410270 + + + + V:0000000000000022;P:(E); + + + + Hubject US Root Cert. Index Add + + + + + + +

+ 0001 + &P02_HUBUS_ROOT + + + + + + + + +

+ + + + + STR + &F115_ROOTCERT_HEX +
+
+ + + 14540 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 14560 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 14580 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000022;P:(E); + + + + HUBJECT US : WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 14600 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 2500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14620 + BERECHNEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 14640 + CONTROL + MACRO + 410050 + + + + V:0000000000000022;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 14660 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000022;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 14680 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 14700 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + + +

+ + + + + NONE + + + + + + 14720 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000022;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 14740 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000022;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 14760 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000022;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 14780 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000022;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 14800 + STRCAT + MACRO + 410150 + + + + V:0000000000000022;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 14820 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000022;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 14840 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 14860 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 14880 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 14900 + CONTROL + MACRO + 410230 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 14920 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 14940 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 14960 + STRCAT + MACRO + 410270 + + + + V:0000000000000022;P:(E); + + + + Tesla Root Cert. Index Add + + + + + + +

+ 0001 + &P02_TESLA_ROOT + + + + + + + + +

+ + + + + STR + &F115_ROOTCERT_HEX +
+
+ + + 14980 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 15000 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 15020 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000022;P:(E); + + + + TESLA : WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 15040 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 2500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 15060 + BERECHNEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 15080 + CONTROL + MACRO + 410050 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 15100 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000022;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 15120 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 15140 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + + +

+ + + + + NONE + + + + + + 15160 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000022;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 15180 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000022;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 15200 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000022;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 15220 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000022;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 15240 + STRCAT + MACRO + 410150 + + + + V:0000000000000022;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 15260 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000022;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 15280 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 15300 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 15320 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000022;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 15340 + CONTROL + MACRO + 410230 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 15360 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 15380 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 15400 + STRCAT + MACRO + 410270 + + + + V:0000000000000022;P:(E); + + + + Entrust Root Cert. Index Add + + + + + + +

+ 0001 + &P02_ENTRUST_ROOT + + + + + + + + +

+ + + + + STR + &F115_ROOTCERT_HEX +
+
+ + + 15420 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 15440 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000022;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 15460 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000022;P:(E); + + + + ENTRUST : WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 15480 + WARTEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + WZ + 2500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 15500 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 15520 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 15540 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 15560 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 15580 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 15600 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 15620 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 15640 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 15660 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 15680 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 15700 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 15720 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 15740 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 15760 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 15780 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 15800 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 900 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 15820 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 15840 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + ADDCERTIFICATEINDEX + + + + + + +

+ 0001 + &P02_EPIT_ROOT + + + + + + + + +

+ + + + + STR + &F115_ROOTCERT_HEX +
+
+ + + 15860 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 15880 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_ROOTCERT_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 15900 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + E-PIT : WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 15920 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 15940 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ IF + (&OEMCOUNT > 0) +

+ + + + + NONE + +
+
+ + + 15960 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 15980 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 404 + + + + + + +

+ Part-02 OEM Leaf Cert. Initaiilization + - +

+ + + + + NONE + - +
+
+ + + 16000 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 5000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 16020 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 16040 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16060 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 16080 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 16100 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 16120 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16140 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 16160 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 16180 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 16200 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 16220 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 16240 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 16260 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 16280 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 16300 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 16320 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 16340 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 16360 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 16380 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 16400 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0102FFFF + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 16420 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE OEM Leaf Cert. + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 16440 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16460 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 1000 + +

+ + + + + STR + +
+
+ + + 16480 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0202FFFF + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 16500 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE Sub CA Cert. + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 16520 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16540 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 16560 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 16580 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 411 + + + + + + +

+ Server CSR Gen. + 0 +

+ + + + + STR + +
+
+ + + 16600 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16620 + COMBLOCK2 + MACRO + 420040 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F112 + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 16640 + BLOCKINT + MACRO + 420050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F112 + 62F112 + + HEX + +
+
+ + + 16660 + BLOCKINT + MACRO + 420060 + + + + V:0000000000000077;P:(E); + + + + Read PUBLICKEY (HEX64BYTE) + + + + + + +

+ 4 + 67 +

+ + + + + STR + &F112_PUBLICKEY_HEX +
+
+ + + 16680 + PRINTOUT + MACRO + 420070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F112_PUBLICKEY_HEX + 0 +

+ + + + + STR + +
+
+ + + 16700 + STRCAT + MACRO + 420080 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &MAC_ADDRESS + : + 04 + &F112_PUBLICKEY_HEX + :P:2:OEM:KM8: + &UnitCode + : + &TierCode +

+ + + + + STR + &CSRMESSAGE1 +
+
+ + + 16720 + SENDBYETHERNET + MACRO + 420100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + https://127.0.0.1:8080/api/v1/tbscsr + TRUE + VPKI_CSRGEN_02PRVC + &CSRMESSAGE1 + &TX_RESULT + 1000 +

+ + + + + STR + &TX_RESULT +
+
+ + + 16740 + PARSEMESSAGE + MACRO + 420120 + + + + V:0000000000000077;P:(E); + + + + Server - PCID ASCII + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/PCID + &PCID_ASCII + STR + + + + STR +

+ + + + + STR + +
+
+ + + 16760 + PRINTOUT + MACRO + 420130 + + + + V:0000000000000077;P:(E); + + + + Server - PCID ASCII + + + + + + +

+ &PCID_ASCII + 0 +

+ + + + + STR + +
+
+ + + 16780 + STRCOPY + MACRO + 420140 + + + + V:0000000000000077;P:(E); + + + + Server - PCID ASCII + + + + + + +

+ &PCID_ASCII + 3 + 38 +

+ + + + + STR + &F111_PCID_ASCII +
+
+ + + 16800 + PARSEMESSAGE + MACRO + 420150 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/HASHEDTBSCSR + &CSRHASH_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 16820 + PRINTOUT + MACRO + 420160 + + + + V:0000000000000077;P:(E); + + + + Server - CSR HASH (HEX34BYTE) + + + + + + +

+ &CSRHASH_HEX + 0 +

+ + + + + STR + +
+
+ + + 16840 + STRCAT + MACRO + 420170 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index for CSR HASH + + + + + + +

+ 01 + &CSRHASH_HEX + + + + + + + + +

+ + + + + STR + &F113_CSRHASH_HEX +
+
+ + + 16860 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16880 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 412 + + + + + + +

+ VCMS Signing Hash + 0 +

+ + + + + STR + +
+
+ + + 16900 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 20 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 16920 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 16940 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 16960 + CONTROL + MACRO + 420200 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 16980 + COMBLOCK2 + MACRO + 420210 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 17000 + BLOCKINT + MACRO + 420220 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 17020 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 17040 + COMBLOCK2 + MACRO + 420240 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 17060 + BLOCKINT + MACRO + 420250 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 17080 + BLOCKINT + MACRO + 420260 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 17100 + BLOCKINT + MACRO + 420270 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 17120 + STRCAT + MACRO + 420300 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 17140 + SEEDKEY + MACRO + 420320 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 17160 + COMBLOCK2 + MACRO + 420340 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 17180 + COMBLOCK2 + MACRO + 420350 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 17200 + BLOCKINT + MACRO + 420360 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 17220 + CONTROL + MACRO + 420380 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 17240 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 17260 + BERECHNEN + MACRO + 420400 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 17280 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 17300 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF113 + 1000 + +

+ + + + + STR + +
+
+ + + 17320 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F113_CSRHASH_HEX + 3000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 17340 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write CSR HASH (15118-2) + + + + + + +

+ 1 + 3 +

+ + 6EF113 + 6EF113 + + HEX + +
+
+ + + 17360 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 17380 + COMBLOCK2 + MACRO + 420440 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F114 + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 17400 + BLOCKINT + MACRO + 420450 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F114 + 62F114 + + HEX + +
+
+ + + 17420 + BLOCKINT + MACRO + 420460 + + + + V:0000000000000077;P:(E); + + + + Read Signed HASH (15118-2) 67-BYTE + + + + + + +

+ 5 + 68 +

+ + + + + STR + &F114_CSRHASHSIGNEDVALUE_HEX +
+
+ + + 17440 + PRINTOUT + MACRO + 420470 + + + + V:0000000000000077;P:(E); + + + + Signed HASH (15118-2) 67-BYTE + + + + + + +

+ &F114_CSRHASHSIGNEDVALUE_HEX + 0 +

+ + + + + STR + +
+
+ + + 17460 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &F114_CSRHASHSIGNEDVALUE_HEX + : + &UnitCode + : + &TierCode + : + &VehicleCode + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 17480 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &CSRSIGNEDMESSAGE + : + &MarketCode + : + &BrandCode + + + + + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 17500 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 17520 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 413 + + + + + + +

+ Cert. Issue from Server + 0 +

+ + + + + STR + +
+
+ + + 17540 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 17560 + SENDBYETHERNET + MACRO + 420500 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + https://127.0.0.1:8080/api/v1/certificate + TRUE + VPKI_CERTPUB_02PRVC + &CSRSIGNEDMESSAGE + &TX_RESULT + 1000 +

+ + + + + STR + &TX_RESULT +
+
+ + + 17580 + PARSEMESSAGE + MACRO + 420510 + + + + V:0000000000000077;P:(E); + + + + OEM Leaf Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/LEAFCERTIFICATE + &OEMLEAF_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 17600 + PRINTOUT + MACRO + 420520 + + + + V:0000000000000077;P:(E); + + + + OEM Leaf Cert. from Server + + + + + + +

+ &OEMLEAF_HEX + 0 +

+ + + + + STR + +
+
+ + + 17620 + PARSEMESSAGE + MACRO + 420530 + + + + V:0000000000000077;P:(E); + + + + SubCA Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/SUBCACERTIFICATE + &SUBCA_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 17640 + PRINTOUT + MACRO + 420540 + + + + V:0000000000000077;P:(E); + + + + SubCA Cert. from Server + + + + + + +

+ &SUBCA_HEX + 0 +

+ + + + + STR + +
+
+ + + 17660 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCA_HEX + 1857 + 1860 +

+ + + + + STR + &RP02SubCAOEMCRC +
+
+ + + 17680 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Received Sub CA - OEM P02 CRC + + + + + + +

+ &RP02SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 17700 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P02 CRC + + + + + + +

+ &P02SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 17720 + STRCMP + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part-02 Sub CA CRC Comp + + + + + + +

+ &RP02SubCAOEMCRC + &P02SubCAOEMCRC +

+ + 0 + 0 + + INT + +
+
+ + + 17740 + STRCAT + MACRO + 420550 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0101 + &OEMLEAF_HEX + + + + + + + + +

+ + + + + STR + &F115_OEMLEAF_HEX +
+
+ + + 17760 + STRCAT + MACRO + 420560 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0201 + &SUBCA_HEX + + + + + + + + +

+ + + + + STR + &F115_SUBCA_HEX +
+
+ + + 17780 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 17800 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 414 + + + + + + +

+ Inserting OEM Leaf Cert. + 0 +

+ + + + + STR + +
+
+ + + 17820 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 17840 + CONTROL + MACRO + 420580 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 17860 + COMBLOCK2 + MACRO + 420590 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 17880 + BLOCKINT + MACRO + 420600 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 17900 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 17920 + COMBLOCK2 + MACRO + 420620 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 17940 + BLOCKINT + MACRO + 420630 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 17960 + BLOCKINT + MACRO + 420640 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 17980 + BLOCKINT + MACRO + 420650 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 18000 + STRCAT + MACRO + 420680 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 18020 + SEEDKEY + MACRO + 420700 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 18040 + COMBLOCK2 + MACRO + 420720 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 18060 + COMBLOCK2 + MACRO + 420730 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18080 + BLOCKINT + MACRO + 420740 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 18100 + CONTROL + MACRO + 420760 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 18120 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 18140 + BERECHNEN + MACRO + 420780 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 18160 + COMBLOCK2 + MACRO + 420820 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 5000 + +

+ + + + + STR + +
+
+ + + 18180 + COMBLOCK2 + MACRO + 420830 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_OEMLEAF_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18200 + BLOCKINT + MACRO + 420840 + + + + V:0000000000000077;P:(E); + + + + OEMLEAFCERTIFICATEDATA + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 18220 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 18240 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 415 + + + + + + +

+ Inserting SubCA Cert. + 0 +

+ + + + + STR + +
+
+ + + 18260 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 18280 + BERECHNEN + MACRO + 420400 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 18300 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 18320 + CONTROL + MACRO + 420850 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 18340 + COMBLOCK2 + MACRO + 420860 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18360 + BLOCKINT + MACRO + 420870 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 18380 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 18400 + COMBLOCK2 + MACRO + 420890 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18420 + BLOCKINT + MACRO + 420900 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 18440 + BLOCKINT + MACRO + 420910 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 18460 + BLOCKINT + MACRO + 420920 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 18480 + STRCAT + MACRO + 420950 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 18500 + SEEDKEY + MACRO + 420970 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 18520 + COMBLOCK2 + MACRO + 420990 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 18540 + COMBLOCK2 + MACRO + 421000 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18560 + BLOCKINT + MACRO + 421010 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 18580 + CONTROL + MACRO + 421030 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 18600 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 18620 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 18640 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF115 + 5000 + +

+ + + + + STR + +
+
+ + + 18660 + COMBLOCK2 + MACRO + 421100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F115_SUBCA_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18680 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000077;P:(E); + + + + SUBCACERTIFICATEDATA + + + + + + +

+ 1 + 3 +

+ + 6EF115 + 6EF115 + + HEX + +
+
+ + + 18700 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 18720 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 416 + + + + + + +

+ Verifying Cert. Result + 0 +

+ + + + + STR + +
+
+ + + 18740 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 18760 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F111 + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18780 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READPCIDDATA(15118-2) + + + + + + +

+ 1 + 3 +

+ + 62F111 + 62F111 + + HEX + +
+
+ + + 18800 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Read PCID (15118-2) + + + + + + +

+ 5 + 22 +

+ + + + + STR + &READ_PCID +
+
+ + + 18820 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F111_PCID_ASCII + 0 +

+ + + + + STR + +
+
+ + + 18840 + PRINTOUT + MACRO + 421180 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &READ_PCID + 0 +

+ + + + + STR + +
+
+ + + 18860 + STRCMP + MACRO + 421190 + + + + V:0000000000000077;P:(E); + + + + Compare PCID + + + + + + +

+ &F111_PCID_ASCII + &READ_PCID +

+ + 0 + 0 + + INT + +
+
+ + + 18880 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F153 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 18900 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + Read Cert. Count + + + + + + +

+ 1 + 3 +

+ + 62F153 + 62F153 + + HEX + +
+
+ + + 18920 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + Read Cert. Count + + + + + + +

+ 4 + 9 +

+ + + + + HEX + &CertInfo +
+
+ + + 18940 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Cert. Input Info. + + + + + + +

+ &CertInfo + 0 +

+ + + + + STR + +
+
+ + + 18960 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 01 + + + + + + +

+ 5 + 5 +

+ + 0 + 9 + + INT + &ROOTCOUNT_01 +
+
+ + + 18980 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 02 + + + + + + +

+ 6 + 6 +

+ + 0 + 9 + + INT + &ROOTCOUNT_02 +
+
+ + + 19000 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 03 + + + + + + +

+ 7 + 7 +

+ + 0 + 9 + + INT + &ROOTCOUNT_03 +
+
+ + + 19020 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 04 + + + + + + +

+ 8 + 8 +

+ + 0 + 9 + + INT + &ROOTCOUNT_04 +
+
+ + + 19040 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part-02 Root Cert. Index 05 + + + + + + +

+ 9 + 9 +

+ + 0 + 9 + + INT + &ROOTCOUNT_05 +
+
+ + + 19060 + BERECHNEN + MACRO + 0 + + + + V:0000000000000011;P:(E); + + + + No. of Part-02 Root Cert + + + + + + +

+ &ROOTCOUNT_01 + &ROOTCOUNT_02+&ROOTCOUNT_03 + &ROOTCOUNT_04 + &ROOTCOUNT_05 + 0 +

+ + 1 + 1 + + INT + &ROOTCOUNT +
+
+ + + 19080 + BERECHNEN + MACRO + 0 + + + + V:0000000000000044;P:(E); + + + + No. of Part-02 Root Cert + + + + + + +

+ &ROOTCOUNT_01 + &ROOTCOUNT_02+&ROOTCOUNT_03 + &ROOTCOUNT_04+&ROOTCOUNT_05 + 0 +

+ + 2 + 2 + + INT + &ROOTCOUNT +
+
+ + + 19100 + BERECHNEN + MACRO + 0 + + + + V:0000000000000022;P:(E); + + + + No. of Part-02 Root Cert + + + + + + +

+ &ROOTCOUNT_01 + &ROOTCOUNT_02+&ROOTCOUNT_03 + &ROOTCOUNT_04+&ROOTCOUNT_05 + 0 +

+ + 4 + 4 + + INT + &ROOTCOUNT +
+
+ + + 19120 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Root Cert. Count + + + + + + +

+ &ROOTCOUNT + 0 +

+ + + + + STR + +
+
+ + + 19140 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + No. of OEM Leaf + + + + + + +

+ 4 + 4 +

+ + 1 + 1 + + HEX + &OEM02LEAFCOUNT +
+
+ + + 19160 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + OEM Leaf Cert. Count + + + + + + +

+ &OEM02LEAFCOUNT + 0 +

+ + + + + STR + +
+
+ + + 19180 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + No. of Sub CA + + + + + + +

+ 9 + 9 +

+ + + + + HEX + &SUBCA02COUNT +
+
+ + + 19200 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Sub CA Cert. Count + + + + + + +

+ &SUBCA02COUNT + 0 +

+ + + + + STR + +
+
+ + + 19220 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 19240 + HEXSTRINGTOSTR + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + PCID ASCII + + + + + + +

+ &F111_PCID_ASCII + +

+ + + + + STR + &PCIDServer +
+
+ + + 19260 + STRCAT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TH0 + ; + &HW_TTNR + ; + &MAC_ADDRESS + ; + &PCIDServer + + + +

+ + + + + STR + &ServerPCIDSave +
+
+ + + 19280 + STRCAT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &ServerPCIDSave + ; + &MarketCode + ; + &VehicleCode + + + + + +

+ + + + + STR + &ServerPCIDSave +
+
+ + + 19300 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + PCID Save Format + + + + + + +

+ &ServerPCIDSave + - +

+ + + + + NONE + - +
+
+ + + 19320 + SENDBYETHERNET + MACRO + 170350 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + PCID_SAVE + TRUE + PCID_SAVE + &ServerPCIDSave + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 19340 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 5000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 19360 + CAN2000INI2 + MACRO + 390010 + + + PCM_CAN_INIT******************************************************* + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + PCMCANINIT + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 19380 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + PCMCANINIT + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 19400 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 421 + + + + + + +

+ Inserting V2G Root (Part-20) Certification + - +

+ + + + + NONE + - +
+
+ + + 19420 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 19440 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 19460 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F153 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 19480 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READ_CERT_COUNT + + + + + + +

+ 1 + 3 +

+ + 62F153 + 62F153 + + HEX + +
+
+ + + 19500 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + Part20 OEM Cert. + + + + + + +

+ 13 + 13 +

+ + 00 + 09 + + INT + &P20OEMCnt +
+
+ + + 19520 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part20 EVCC Cert. + + + + + + +

+ 14 + 14 +

+ + 00 + 09 + + INT + &P20EVCCCnt +
+
+ + + 19540 + BLOCKINT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part20 V2G Root Cert. Index 01 + + - + - + - + - + +

+ 15 + 15 +

+ + 00 + 09 + + INT + &P20RootCnt_01 +
+
+ + + 19560 + BLOCKINT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part20 V2G Root Cert. Index 02 + + - + - + - + - + +

+ 16 + 16 +

+ + 00 + 09 + + INT + &P20RootCnt_02 +
+
+ + + 19580 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + No. of Part20 V2G Root Cert. + + + + + + +

+ &P20RootCnt_01 + &P20RootCnt_02 + 0 +

+ + 00 + 09 + + INT + &P20RootCnt +
+
+ + + 19600 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + V2G Root P20 Cert. Counting + + + + + + +

+ &P20RootCnt + 0 +

+ + + + + STR + +
+
+ + + 19620 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-20 OEM Leaf Cert. Counting + + + + + + +

+ &P20OEMCnt + 0 +

+ + + + + STR + +
+
+ + + 19640 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-20 EVCC Cert. Counting + + + + + + +

+ &P20EVCCCnt + 0 +

+ + + + + STR + +
+
+ + + 19660 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 19680 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ IF + (&P20RootCnt > 0) +

+ + + + + NONE + +
+
+ + + 19700 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 19720 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 422 + + + + + + +

+ Part-20 Root Cert. Initaiilization + - +

+ + + + + NONE + - +
+
+ + + 19740 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 19760 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 422-1 + + + + + + +

+ Part-20 V2G Root Cert. Initaiilization + - +

+ + + + + NONE + - +
+
+ + + 19780 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 19800 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 19820 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 19840 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 19860 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 19880 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 19900 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 19920 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 19940 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 19960 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 19980 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 20000 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 20020 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 20040 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 20060 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20080 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 20100 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 20120 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20140 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 20160 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + ADDCERTIFICATEINDEX + + + + + + +

+ 0002 + &P20_EPIT_ROOT + + + + + + + + +

+ + + + + STR + &F145_ROOTCERT_HEX +
+
+ + + 20180 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 20200 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_ROOTCERT_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20220 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE Part20 V2G ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 20240 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20260 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 422-2 + + + + + + +

+ Part-20 CharIN Root Cert. Initaiilization + - +

+ + + + + NONE + - +
+
+ + + 20280 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 20300 + BERECHNEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 20320 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 20340 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 20360 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20380 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 20400 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 50 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20420 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20440 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 20460 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 20480 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 20500 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 20520 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 20540 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + WZ + 30 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 20560 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20580 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 20600 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 20620 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20640 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 20660 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + ADDCERTIFICATEINDEX + + + + + + +

+ 0002 + &P20_CHARIN_ROOT + + + + + + + + +

+ + + + + STR + &F145_ROOTCERT_HEX +
+
+ + + 20680 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 20700 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_ROOTCERT_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20720 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + DELETE Part20 CharIN ROOT CERT (HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 0 + FFFFFF + + HEX + &DEL_RESULT +
+
+ + + 20740 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20760 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 20780 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20800 + PRINTOUT + MACRO + 410010 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 423 + + + + + + +

+ Inserting V2G Root Part-20 Cert. + 0 +

+ + + + + STR + +
+
+ + + 20820 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 20840 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 20860 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 20880 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20900 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 20920 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 20940 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 20960 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 20980 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 21000 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 21020 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 21040 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 21060 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 21080 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 21100 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 21120 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 21140 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 900 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21160 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 21180 + STRCAT + MACRO + 410270 + + + + V:0000000000000077;P:(E); + + + + ADDCERTIFICATEINDEX + + + + + + +

+ 0001 + &P20_EPIT_ROOT + + + + + + + + +

+ + + + + STR + &F145_ROOTCERT_HEX +
+
+ + + 21200 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 21220 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_ROOTCERT_HEX + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 21240 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 21260 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 21280 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21300 + PRINTOUT + MACRO + 410010 + + + + V:0000000000000066;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 424 + + + + + + +

+ Inserting Part-20 CharIN Root Cert. + 0 +

+ + + + + STR + +
+
+ + + 21320 + WARTEN + MACRO + 0 + + + + V:0000000000000066;P:(E); + + + + + +

+ + + + + NONE + + + + + + 21340 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 21360 + CONTROL + MACRO + 410050 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 21380 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000066;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 21400 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 21420 + WARTEN + MACRO + 0 + + + + V:0000000000000066;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21440 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000066;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 21460 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000066;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 21480 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000066;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 21500 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000066;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 21520 + STRCAT + MACRO + 410150 + + + + V:0000000000000066;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 21540 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000066;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 21560 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 21580 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000066;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 21600 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000066;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 21620 + CONTROL + MACRO + 410230 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 21640 + WARTEN + MACRO + 0 + + + + V:0000000000000066;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21660 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000066;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 21680 + STRCAT + MACRO + 410270 + + + + V:0000000000000066;P:(E); + + + + ADDCERTIFICATEINDEX + + + + + + +

+ 0001 + &P20_CHARIN_ROOT + + + + + + + + +

+ + + + + STR + &F145_ROOTCERT_HEX +
+
+ + + 21700 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 21720 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000066;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_ROOTCERT_HEX + 1000 + +

+ + + + + STR + +
+
+ + + 21740 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000066;P:(E); + + + + WRITEROOT_CERT(HEX606+2BYTE) + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 21760 + WARTEN + MACRO + 0 + + + + V:0000000000000066;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21780 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21800 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ IF + ((&P20OEMCnt >= 01) || (&P20EVCCCnt >= 01)) +

+ + + + + NONE + +
+
+ + + 21820 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 21840 + PRINTOUT + MACRO + 410010 + + + + V:0000000000000077;P:(E); + + + + ▣ Phase 425 + + + + + + +

+ Delete Part20 OEM Leaf Cert. + 0 +

+ + + + + STR + +
+
+ + + 21860 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 21880 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 21900 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 21920 + CONTROL + MACRO + 410050 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 21940 + COMBLOCK2 + MACRO + 410060 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 21960 + BLOCKINT + MACRO + 410070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 21980 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22000 + COMBLOCK2 + MACRO + 410090 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 22020 + BLOCKINT + MACRO + 410100 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 22040 + BLOCKINT + MACRO + 410110 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 22060 + BLOCKINT + MACRO + 410120 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 22080 + STRCAT + MACRO + 410150 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 22100 + SEEDKEY + MACRO + 410170 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 22120 + COMBLOCK2 + MACRO + 410190 + + + + V:0000000000000077;P:(E); + + + + WZ + 10 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 22140 + COMBLOCK2 + MACRO + 410200 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 22160 + BLOCKINT + MACRO + 410210 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 22180 + CONTROL + MACRO + 410230 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 22200 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22220 + BERECHNEN + MACRO + 410250 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 22240 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 22260 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0102FFFF + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 22280 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + Delete Part20 OEM Leaf Cert. + + + + + + +

+ 1 + 3 +

+ + 000000 + FFFFFF + + HEX + +
+
+ + + 22300 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22320 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 22340 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0202FFFF + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 22360 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + Delete Part20 OEM SubCA Cert. + + + + + + +

+ 1 + 3 +

+ + 000000 + FFFFFF + + HEX + +
+
+ + + 22380 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22400 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 22420 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0302FFFF + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 22440 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + Delete Vehicle Leaf Cert. + + + + + + +

+ 1 + 3 +

+ + 000000 + FFFFFF + + HEX + +
+
+ + + 22460 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22480 + COMBLOCK2 + MACRO + 410280 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 1000 + +

+ + + + + STR + +
+
+ + + 22500 + COMBLOCK2 + MACRO + 410290 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 0402FFFF + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 22520 + BLOCKINT + MACRO + 410300 + + + + V:0000000000000077;P:(E); + + + + Delete Vehicle SubCA Cert. + + + + + + +

+ 1 + 3 +

+ + 000000 + FFFFFF + + HEX + +
+
+ + + 22540 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22560 + CONTROL + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 22580 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22600 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 431 + + + + + + +

+ Server : Part-20 OEM CSR Gen. + 0 +

+ + + + + STR + +
+
+ + + 22620 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 22640 + COMBLOCK2 + MACRO + 420040 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F142 + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 22660 + BLOCKINT + MACRO + 420050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F142 + 62F142 + + HEX + +
+
+ + + 22680 + BLOCKINT + MACRO + 420060 + + + + V:0000000000000077;P:(E); + + + + Read PUBLICKEY (HEX132BYTE) + + + + + + +

+ 4 + 135 +

+ + + + + STR + &F142_PUBLICKEY_HEX +
+
+ + + 22700 + PRINTOUT + MACRO + 420070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F142_PUBLICKEY_HEX + 0 +

+ + + + + STR + +
+
+ + + 22720 + STRCAT + MACRO + 420080 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &MAC_ADDRESS + : + 04 + &F142_PUBLICKEY_HEX + :P:2:OEM20:KM7: + &UnitCode + : + &TierCode +

+ + + + + STR + &CSRMESSAGE1 +
+
+ + + 22740 + SENDBYETHERNET + MACRO + 420100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + VPKI + TRUE + VPKI_CSRGEN_20PRVC + &CSRMESSAGE1 + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 22760 + PARSEMESSAGE + MACRO + 420120 + + + + V:0000000000000077;P:(E); + + + + Server - PCID ASCII + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/PCID + &F141_PCID20_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 22780 + PRINTOUT + MACRO + 420130 + + + + V:0000000000000077;P:(E); + + + + Server - PCID ASCII + + + + + + +

+ &F141_PCID20_HEX + 0 +

+ + + + + STR + +
+
+ + + 22800 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F141_PCID20_HEX + 3 + 38 +

+ + + + + STR + &PCID_ASCII_OEM20 +
+
+ + + 22820 + PARSEMESSAGE + MACRO + 420150 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/HASHEDTBSCSR + &CSRHASH_HEX_OEM20 + STR + + + + STR +

+ + + + + STR + +
+
+ + + 22840 + PRINTOUT + MACRO + 420160 + + + + V:0000000000000077;P:(E); + + + + Server - CSR HASH (HEX66BYTE) + + + + + + +

+ &CSRHASH_HEX_OEM20 + 0 +

+ + + + + STR + +
+
+ + + 22860 + STRCAT + MACRO + 420170 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index for CSR HASH + + + + + + +

+ 01 + &CSRHASH_HEX_OEM20 + + + + + + + + +

+ + + + + STR + &F143_CSRHASH_HEX +
+
+ + + 22880 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 22900 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 432 + + + + + + +

+ VCMS Signing Hash + 0 +

+ + + + + STR + +
+
+ + + 22920 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 22940 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 22960 + WARTEN + MACRO + 0 + wz 0 > 500, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 22980 + CONTROL + MACRO + 420200 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 23000 + COMBLOCK2 + MACRO + 420210 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 23020 + BLOCKINT + MACRO + 420220 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 23040 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23060 + COMBLOCK2 + MACRO + 420240 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 23080 + BLOCKINT + MACRO + 420250 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 23100 + BLOCKINT + MACRO + 420260 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 23120 + BLOCKINT + MACRO + 420270 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 23140 + STRCAT + MACRO + 420300 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 23160 + SEEDKEY + MACRO + 420320 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 23180 + COMBLOCK2 + MACRO + 420340 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 23200 + COMBLOCK2 + MACRO + 420350 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 23220 + BLOCKINT + MACRO + 420360 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 23240 + CONTROL + MACRO + 420380 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 23260 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23280 + BERECHNEN + MACRO + 420400 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 23300 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF141 + 1000 + +

+ + + + + STR + +
+
+ + + 23320 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F141_PCID20_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 23340 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write PCID (15118-20) + + + + + + +

+ 1 + 3 +

+ + 6EF141 + 6EF141 + + HEX + +
+
+ + + 23360 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23380 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF143 + 1000 + +

+ + + + + STR + +
+
+ + + 23400 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F143_CSRHASH_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 23420 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write CSR HASH (15118-20) + + + + + + +

+ 1 + 3 +

+ + 6EF143 + 6EF143 + + HEX + +
+
+ + + 23440 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 23460 + COMBLOCK2 + MACRO + 420440 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F144 + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 23480 + BLOCKINT + MACRO + 420450 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F144 + 62F144 + + HEX + +
+
+ + + 23500 + BLOCKINT + MACRO + 420460 + + + + V:0000000000000077;P:(E); + + + + Read Signed HASH (15118-20) 132-BYTE + + + + + + +

+ 5 + 136 +

+ + + + + STR + &F144_CSRHASHSIGNEDVALUE_HEX +
+
+ + + 23520 + PRINTOUT + MACRO + 420470 + + + + V:0000000000000077;P:(E); + + + + Signed HASH (15118-20) 132-BYTE + + + + + + +

+ &F144_CSRHASHSIGNEDVALUE_HEX + 0 +

+ + + + + STR + +
+
+ + + 23540 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &F144_CSRHASHSIGNEDVALUE_HEX + : + &UnitCode + : + &TierCode + : + &VehicleCode + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 23560 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &CSRSIGNEDMESSAGE + : + &MarketCode + : + &BrandCode + + + + + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 23580 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 23600 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 433 + + + + + + +

+ Part-20 OEM Cert. Issue from Server + 0 +

+ + + + + STR + +
+
+ + + 23620 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 23640 + SENDBYETHERNET + MACRO + 420500 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + VPKI + TRUE + VPKI_CERTPUB_20PRVC + &CSRSIGNEDMESSAGE + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 23660 + PARSEMESSAGE + MACRO + 420510 + + + + V:0000000000000077;P:(E); + + + + P20 OEM Leaf Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/LEAFCERTIFICATE + &OEMLEAF_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 23680 + PRINTOUT + MACRO + 420520 + + + + V:0000000000000077;P:(E); + + + + Part 20 OEM Leaf + + + + + + +

+ &OEMLEAF_HEX + 0 +

+ + + + + STR + +
+
+ + + 23700 + PARSEMESSAGE + MACRO + 420530 + + + + V:0000000000000077;P:(E); + + + + P20 SubCA Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/SUBCACERTIFICATE + &SUBCA_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 23720 + PRINTOUT + MACRO + 420540 + + + + V:0000000000000077;P:(E); + + + + Part 20 OEM Sub CA + + + + + + +

+ &SUBCA_HEX + 0 +

+ + + + + STR + +
+
+ + + 23740 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCA_HEX + 1889 + 1892 +

+ + + + + STR + &RP20SubCAOEMCRC +
+
+ + + 23760 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Received Sub CA - OEM P20 CRC + + + + + + +

+ &RP20SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 23780 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - OEM P20 CRC + + + + + + +

+ &P20SubCAOEMCRC + 0 +

+ + + + + STR + - +
+
+ + + 23800 + STRCMP + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part-20 Sub CA CRC Comp + + + + + + +

+ &RP20SubCAOEMCRC + &P20SubCAOEMCRC +

+ + 0 + 0 + + INT + +
+
+ + + 23820 + STRCAT + MACRO + 420550 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0101 + &OEMLEAF_HEX + + + + + + + + +

+ + + + + STR + &F145_OEMLEAF_HEX +
+
+ + + 23840 + STRCAT + MACRO + 420560 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0201 + &SUBCA_HEX + + + + + + + + +

+ + + + + STR + &F145_SUBCA_HEX +
+
+ + + 23860 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 23880 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 434 + + + + + + +

+ Inserting Part-20 OEM Leaf Cert. + 0 +

+ + + + + STR + +
+
+ + + 23900 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 23920 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 23940 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 23960 + CONTROL + MACRO + 420580 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 23980 + COMBLOCK2 + MACRO + 420590 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24000 + BLOCKINT + MACRO + 420600 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 24020 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24040 + COMBLOCK2 + MACRO + 420620 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24060 + BLOCKINT + MACRO + 420630 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 24080 + BLOCKINT + MACRO + 420640 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 24100 + BLOCKINT + MACRO + 420650 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 24120 + STRCAT + MACRO + 420680 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 24140 + SEEDKEY + MACRO + 420700 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 24160 + COMBLOCK2 + MACRO + 420720 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 24180 + COMBLOCK2 + MACRO + 420730 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24200 + BLOCKINT + MACRO + 420740 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 24220 + CONTROL + MACRO + 420760 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 24240 + WARTEN + MACRO + 0 + 600 > 700, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24260 + BERECHNEN + MACRO + 420780 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 24280 + COMBLOCK2 + MACRO + 420820 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 5000 + +

+ + + + + STR + +
+
+ + + 24300 + COMBLOCK2 + MACRO + 420830 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_OEMLEAF_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24320 + BLOCKINT + MACRO + 420840 + + + + V:0000000000000077;P:(E); + + + + OEMLEAFCERTIFICATEDATA + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 24340 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24360 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 435 + + + + + + +

+ Inserting Part-20 SubCA Cert. + 0 +

+ + + + + STR + +
+
+ + + 24380 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 24400 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 24420 + WARTEN + MACRO + 0 + wz 0 > 500, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24440 + CONTROL + MACRO + 420850 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 24460 + COMBLOCK2 + MACRO + 420860 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24480 + BLOCKINT + MACRO + 420870 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 24500 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24520 + COMBLOCK2 + MACRO + 420890 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24540 + BLOCKINT + MACRO + 420900 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 24560 + BLOCKINT + MACRO + 420910 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 24580 + BLOCKINT + MACRO + 420920 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 24600 + STRCAT + MACRO + 420950 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 24620 + SEEDKEY + MACRO + 420970 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 24640 + COMBLOCK2 + MACRO + 420990 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 24660 + COMBLOCK2 + MACRO + 421000 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24680 + BLOCKINT + MACRO + 421010 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 24700 + CONTROL + MACRO + 421030 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 24720 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24740 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 24760 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 5000 + +

+ + + + + STR + +
+
+ + + 24780 + COMBLOCK2 + MACRO + 421100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_SUBCA_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24800 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000077;P:(E); + + + + SUBCACERTIFICATEDATA + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 24820 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 24840 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 436 + + + + + + +

+ Verifying Cert. Result + 0 +

+ + + + + STR + +
+
+ + + 24860 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 24880 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F141 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 24900 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READPCIDDATA(15118-20) + + + + + + +

+ 1 + 3 +

+ + 62F141 + 62F141 + + HEX + +
+
+ + + 24920 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Read PCID (15118-20) + + + + + + +

+ 5 + 22 +

+ + + + + STR + &READ_PCID +
+
+ + + 24940 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-20 PCID (Server) + + + + + + +

+ &PCID_ASCII_OEM20 + 0 +

+ + + + + STR + +
+
+ + + 24960 + PRINTOUT + MACRO + 421180 + + + + V:0000000000000077;P:(E); + + + + Part-20 PCID (VCMS) + + + + + + +

+ &READ_PCID + 0 +

+ + + + + STR + +
+
+ + + 24980 + STRCMP + MACRO + 421190 + + + + V:0000000000000077;P:(E); + + + + Compare PCID + + + + + + +

+ &PCID_ASCII_OEM20 + &READ_PCID +

+ + 0 + 0 + + INT + +
+
+ + + 25000 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 25020 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 20 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 25040 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + ▣ Phase 441 + + + + + + +

+ Server : Part-20 EVCC CSR Gen. + 0 +

+ + + + + STR + +
+
+ + + 25060 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 25080 + COMBLOCK2 + MACRO + 420040 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F152 + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 25100 + BLOCKINT + MACRO + 420050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F152 + 62F152 + + HEX + +
+
+ + + 25120 + BLOCKINT + MACRO + 420060 + + + + V:0000000000000077;P:(E); + + + + Read PUBLICKEY (HEX132BYTE) + + + + + + +

+ 4 + 135 +

+ + + + + STR + &F142_PUBLICKEY_HEX +
+
+ + + 25140 + PRINTOUT + MACRO + 420070 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F142_PUBLICKEY_HEX + 0 +

+ + + + + STR + +
+
+ + + 25160 + STRCAT + MACRO + 420080 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &MAC_ADDRESS + : + 04 + &F142_PUBLICKEY_HEX + :V:2:EV:KM7: + &UnitCode + : + &TierCode +

+ + + + + STR + &CSRMESSAGE1 +
+
+ + + 25180 + SENDBYETHERNET + MACRO + 420100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ SENDBYETHERNET + VPKI + TRUE + VPKI_CSRGEN_20VHCC + &CSRMESSAGE1 + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 25200 + PARSEMESSAGE + MACRO + 420120 + + + + V:0000000000000077;P:(E); + + + + Server - EVCC ID ASCII + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/EVCCID + &F140_EVCCID_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 25220 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &F140_EVCCID_HEX + 3 + 42 +

+ + + + + STR + &EVCCID_HEX +
+
+ + + 25240 + PRINTOUT + MACRO + 420130 + + + + V:0000000000000077;P:(E); + + + + Server - EVCC ID ASCII + + + + + + +

+ &F140_EVCCID_HEX + 0 +

+ + + + + STR + +
+
+ + + 25260 + PARSEMESSAGE + MACRO + 420150 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/HASHEDTBSCSR + &CSRHASH_HEX_EV20 + STR + + + + STR +

+ + + + + STR + +
+
+ + + 25280 + PRINTOUT + MACRO + 420160 + + + + V:0000000000000077;P:(E); + + + + Server - CSR HASH (HEX66BYTE) + + + + + + +

+ &CSRHASH_HEX_EV20 + 0 +

+ + + + + STR + +
+
+ + + 25300 + STRCAT + MACRO + 420170 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index for CSR HASH + + + + + + +

+ 03 + &CSRHASH_HEX_EV20 + + + + + + + + +

+ + + + + STR + &F143_CSRHASH_HEX +
+
+ + + 25320 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 25340 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 442 + + + + + + +

+ VCMS Signing Hash + 0 +

+ + + + + STR + +
+
+ + + 25360 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 25380 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 25400 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 25420 + CONTROL + MACRO + 420200 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 25440 + COMBLOCK2 + MACRO + 420210 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 25460 + BLOCKINT + MACRO + 420220 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 25480 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 25500 + COMBLOCK2 + MACRO + 420240 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 25520 + BLOCKINT + MACRO + 420250 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 25540 + BLOCKINT + MACRO + 420260 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 25560 + BLOCKINT + MACRO + 420270 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 25580 + STRCAT + MACRO + 420300 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 25600 + SEEDKEY + MACRO + 420320 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 25620 + COMBLOCK2 + MACRO + 420340 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 25640 + COMBLOCK2 + MACRO + 420350 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 25660 + BLOCKINT + MACRO + 420360 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 25680 + CONTROL + MACRO + 420380 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 25700 + WARTEN + MACRO + 0 + 600 > 700, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 400 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 25720 + BERECHNEN + MACRO + 420400 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 25740 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF140 + 1000 + +

+ + + + + STR + +
+
+ + + 25760 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F140_EVCCID_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 25780 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write EVCC ID (EVCC) + + + + + + +

+ 1 + 3 +

+ + 6EF140 + 6EF140 + + HEX + +
+
+ + + 25800 + WARTEN + MACRO + 0 + 20 > 30, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 25820 + COMBLOCK2 + MACRO + 420410 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF143 + 1000 + +

+ + + + + STR + +
+
+ + + 25840 + COMBLOCK2 + MACRO + 420420 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F143_CSRHASH_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 25860 + BLOCKINT + MACRO + 420430 + + + + V:0000000000000077;P:(E); + + + + VCMS Write CSR HASH (EVCC) + + + + + + +

+ 1 + 3 +

+ + 6EF143 + 6EF143 + + HEX + +
+
+ + + 25880 + WARTEN + MACRO + 0 + 20 > 30, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 25900 + COMBLOCK2 + MACRO + 420440 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F144 + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 25920 + BLOCKINT + MACRO + 420450 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 3 +

+ + 62F144 + 62F144 + + HEX + +
+
+ + + 25940 + BLOCKINT + MACRO + 420460 + + + + V:0000000000000077;P:(E); + + + + Read Signed HASH (EVCC) 132-BYTE + + + + + + +

+ 5 + 136 +

+ + + + + STR + &F144_CSRHASHSIGNEDVALUE_HEX +
+
+ + + 25960 + PRINTOUT + MACRO + 420470 + + + + V:0000000000000077;P:(E); + + + + Signed HASH (EVCC) 132-BYTE + + + + + + +

+ &F144_CSRHASHSIGNEDVALUE_HEX + 0 +

+ + + + + STR + +
+
+ + + 25980 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &TESTERID + : + &F144_CSRHASHSIGNEDVALUE_HEX + : + &UnitCode + : + &TierCode + : + &VehicleCode + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 26000 + STRCAT + MACRO + 420480 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &CSRSIGNEDMESSAGE + : + &MarketCode + : + &BrandCode + + + + + +

+ + + + + STR + &CSRSIGNEDMESSAGE +
+
+ + + 26020 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 20 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26040 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 443 + + + + + + +

+ Vehicle Cert. Issue from Server + 0 +

+ + + + + STR + +
+
+ + + 26060 + WARTEN + MACRO + 0 + 0 > 100, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26080 + SENDBYETHERNET + MACRO + 420500 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ SENDBYETHERNET + VPKI + TRUE + VPKI_CERTPUB_20VHCC + &CSRSIGNEDMESSAGE + &TX_RESULT + 1000 +

+ + + + + STR + +
+
+ + + 26100 + PARSEMESSAGE + MACRO + 420510 + + + + V:0000000000000077;P:(E); + + + + Vehicle Leaf Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/LEAFCERTIFICATE + &OEMLEAF_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 26120 + PRINTOUT + MACRO + 420520 + + + + V:0000000000000077;P:(E); + + + + Vehicle Leaf Cert. + + + + + + +

+ &OEMLEAF_HEX + 0 +

+ + + + + STR + +
+
+ + + 26140 + PARSEMESSAGE + MACRO + 420530 + + + + V:0000000000000077;P:(E); + + + + Vechicle SubCA Cert. from Server + + + + + + +

+ PARSEMESSAGE + &TX_RESULT + JSON + DATA/SUBCACERTIFICATE + &SUBCA_HEX + STR + + + + STR +

+ + + + + STR + +
+
+ + + 26160 + PRINTOUT + MACRO + 420540 + + + + V:0000000000000077;P:(E); + + + + Vechicle SubCA Cert. + + + + + + +

+ &SUBCA_HEX + 0 +

+ + + + + STR + +
+
+ + + 26180 + STRCOPY + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ &SUBCA_HEX + 1889 + 1892 +

+ + + + + STR + &RP20SubCAVHCCRC +
+
+ + + 26200 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Received Sub CA - Vehicle P20 CRC + + + + + + +

+ &RP20SubCAVHCCRC + 0 +

+ + + + + STR + - +
+
+ + + 26220 + PRINTOUT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Master Sub CA - Vehicle P20 CRC + + + + + + +

+ &P20SubCAVHCCRC + 0 +

+ + + + + STR + - +
+
+ + + 26240 + STRCMP + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part-20 Vehicle Sub CA CRC Comp + + + + + + +

+ &RP20SubCAVHCCRC + &P20SubCAVHCCRC +

+ + 0 + 0 + + INT + +
+
+ + + 26260 + STRCAT + MACRO + 420550 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0301 + &OEMLEAF_HEX + + + + + + + + +

+ + + + + STR + &F145_OEMLEAF_HEX +
+
+ + + 26280 + STRCAT + MACRO + 420560 + + + + V:0000000000000077;P:(E); + + + + Add Cert. Index + + + + + + +

+ 0401 + &SUBCA_HEX + + + + + + + + +

+ + + + + STR + &F145_SUBCA_HEX +
+
+ + + 26300 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 26320 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + ▣ Phase 444 + + + + + + +

+ Inserting Vehicle Leaf Cert. + 0 +

+ + + + + STR + +
+
+ + + 26340 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 26360 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 26380 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 26400 + CONTROL + MACRO + 420580 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 26420 + COMBLOCK2 + MACRO + 420590 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 26440 + BLOCKINT + MACRO + 420600 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 26460 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26480 + COMBLOCK2 + MACRO + 420620 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 26500 + BLOCKINT + MACRO + 420630 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 26520 + BLOCKINT + MACRO + 420640 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 26540 + BLOCKINT + MACRO + 420650 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 26560 + STRCAT + MACRO + 420680 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 26580 + SEEDKEY + MACRO + 420700 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 26600 + COMBLOCK2 + MACRO + 420720 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 26620 + COMBLOCK2 + MACRO + 420730 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 26640 + BLOCKINT + MACRO + 420740 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 26660 + CONTROL + MACRO + 420760 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 26680 + WARTEN + MACRO + 0 + 600 > 700, mitech + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26700 + BERECHNEN + MACRO + 420780 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 26720 + COMBLOCK2 + MACRO + 420820 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 5000 + +

+ + + + + STR + +
+
+ + + 26740 + COMBLOCK2 + MACRO + 420830 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_OEMLEAF_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 26760 + BLOCKINT + MACRO + 420840 + + + + V:0000000000000077;P:(E); + + + + VEHICLE LEAF CERTIFICATE DATA + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 26780 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26800 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 445 + + + + + + +

+ Inserting Vehicle SubCA Cert. + 0 +

+ + + + + STR + +
+
+ + + 26820 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 26840 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 26860 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 26880 + CONTROL + MACRO + 420850 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 26900 + COMBLOCK2 + MACRO + 420860 + + + + V:0000000000000077;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 26920 + BLOCKINT + MACRO + 420870 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 26940 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 26960 + COMBLOCK2 + MACRO + 420890 + + + + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 26980 + BLOCKINT + MACRO + 420900 + + + + V:0000000000000077;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 27000 + BLOCKINT + MACRO + 420910 + + + + V:0000000000000077;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 27020 + BLOCKINT + MACRO + 420920 + + + + V:0000000000000077;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 27040 + STRCAT + MACRO + 420950 + + + + V:0000000000000077;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 27060 + SEEDKEY + MACRO + 420970 + + + + V:0000000000000077;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 27080 + COMBLOCK2 + MACRO + 420990 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 27100 + COMBLOCK2 + MACRO + 421000 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 27120 + BLOCKINT + MACRO + 421010 + + + + V:0000000000000077;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 27140 + CONTROL + MACRO + 421030 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 27160 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 27180 + BERECHNEN + MACRO + 421050 + + + + V:0000000000000077;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ (0) + 0 +

+ + + + + DEZ + &VALUE +
+
+ + + 27200 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF145 + 5000 + +

+ + + + + STR + +
+
+ + + 27220 + COMBLOCK2 + MACRO + 421100 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &F145_SUBCA_HEX + 10000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 27240 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000077;P:(E); + + + + SUBCACERTIFICATEDATA + + + + + + +

+ 1 + 3 +

+ + 6EF145 + 6EF145 + + HEX + +
+
+ + + 27260 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 27280 + PRINTOUT + MACRO + 420000 + + + OEMCERTIFICATE_15118-2******************************************** + V:0000000000000077;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Phase 446 + + + + + + +

+ Verifying Cert. Result + 0 +

+ + + + + STR + +
+
+ + + 27300 + WARTEN + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + + +

+ + + + + NONE + + + + + + 27320 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F140 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 27340 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READPCIDDATA(15118-20) + + + + + + +

+ 1 + 3 +

+ + 62F140 + 62F140 + + HEX + +
+
+ + + 27360 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Read EVCC ID (15118-20) + + + + + + +

+ 5 + 24 +

+ + + + + HEX + &READ_EVCCID +
+
+ + + 27380 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + EVCC ID (Server) + + + + + + +

+ &EVCCID_HEX + 0 +

+ + + + + STR + +
+
+ + + 27400 + PRINTOUT + MACRO + 421180 + + + + V:0000000000000077;P:(E); + + + + EVCC ID (VCMS) + + + + + + +

+ &READ_EVCCID + 0 +

+ + + + + STR + +
+
+ + + 27420 + STRCMP + MACRO + 421190 + + + + V:0000000000000077;P:(E); + + + + Compare EVCC ID + + + + + + +

+ &EVCCID_HEX + &READ_EVCCID +

+ + 0 + 0 + + INT + +
+
+ + + 27440 + COMBLOCK2 + MACRO + 421130 + + + + V:0000000000000077;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F153 + 5000 + &RX_BUFFER +

+ + + + + STR + +
+
+ + + 27460 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + READ_CERT_COUNT + + + + + + +

+ 1 + 3 +

+ + 62F153 + 62F153 + + HEX + +
+
+ + + 27480 + BLOCKINT + MACRO + 421140 + + + + V:0000000000000077;P:(E); + + + + Part20 OEM Cert. + + + + + + +

+ 13 + 13 +

+ + 1 + 1 + + INT + &P20OEMCnt +
+
+ + + 27500 + BLOCKINT + MACRO + 421150 + + + + V:0000000000000077;P:(E); + + + + Part20 EVCC Cert. + + + + + + +

+ 14 + 14 +

+ + 1 + 1 + + INT + &P20EVCCCnt +
+
+ + + 27520 + BLOCKINT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part20 V2G Root Cert. Index 01 + + - + - + - + - + +

+ 15 + 15 +

+ + 0 + 1 + + INT + &P20RootCnt_01 +
+
+ + + 27540 + BLOCKINT + MACRO + 0 + + + + V:0000000000000077;P:(E); + + + + Part20 V2G Root Cert. Index 02 + + - + - + - + - + +

+ 16 + 16 +

+ + 0 + 1 + + INT + &P20RootCnt_02 +
+
+ + + 27560 + BERECHNEN + MACRO + 0 + + + + V:0000000000000011;P:(E); + + + + No. of Part20 V2G Root Cert. + + + + + + +

+ &P20RootCnt_01 + &P20RootCnt_02 + 0 +

+ + 1 + 1 + + INT + &P20RootCnt +
+
+ + + 27580 + BERECHNEN + MACRO + 0 + + + + V:0000000000000066;P:(E); + + + + No. of Part20 V2G Root Cert. + + + + + + +

+ &P20RootCnt_01 + &P20RootCnt_02 + 0 +

+ + 2 + 2 + + INT + &P20RootCnt +
+
+ + + 27600 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + V2G Root P20 Cert. Counting + + + + + + +

+ &P20RootCnt + 0 +

+ + + + + STR + +
+
+ + + 27620 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-20 OEM Leaf Cert. Counting + + + + + + +

+ &P20OEMCnt + 0 +

+ + + + + STR + +
+
+ + + 27640 + PRINTOUT + MACRO + 421170 + + + + V:0000000000000077;P:(E); + + + + Part-20 EVCC Cert. Counting + + + + + + +

+ &P20EVCCCnt + 0 +

+ + + + + STR + +
+
+ + + 27660 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 27680 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Phase 521-2 + + + + + + +

+ PSD Measurement Read + - +

+ + + + + STR + - +
+
+ + + 27700 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 27720 + RFMEAS_PSD + MACRO + 0 + + + + V:;P:(E); + + + + PSD Evaluation + + + +

+ PSD + 15000000 + 30000000 + 10000 + 100000 + ON + 26000000 + 32 + OFF + READ +

+ + -90 + -60 + + DEZ + &ResultPSD +
+
+ + + 27740 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 40 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 27760 + WARTEN + MACRO + 0 + + + + + + + + WZ + - + - + NONE + + + + + + + +

+ + + + + NONE + + + + + + 27780 + WARTEN + MACRO + 0 + + + + + + + + + +

+ + + + + NONE + + + + + + 27800 + WARTEN + MACRO + 0 + + + PLC_OFF5********************************************************** + + + + + A033_SV + - + - + NONE + + + + + A035_SV + - + - + NONE + + + + + IQ_UMAX + - + - + NONE + + + + + PLC + - + - + NONE + + + + + UB + - + - + NONE + + + + + UB_IMAX + 10 + - + A + + + + + WZ + 0 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 27820 + PRINTOUT + MACRO + 610000 + + + PCM_CAN_INIT******************************************************* + V:;P:(E); + + + + IQ_UMAX + 6 + - + V + + + + + UB + 12 + - + V + + + + + UB_IMAX + 3 + - + A + + + + + + PRINTMODULENAME + + + + + + +

+ CAN_INIT + 0 +

+ + + + + STR + +
+
+ + + 27840 + CAN2000INI2 + MACRO + 630040 + CAN Port Close + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 27860 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 27880 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 27900 + CAN2000INI2 + MACRO + 610020 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 27920 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A033_SV + UB + - + SA + + + + + A035_SV + UB + - + SA + + + + + + + +

+ + + + + NONE + + + + + + 27940 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 27960 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 321 + + + + + + +

+ Secure Debug (PCM) Check + +

+ + + + + NONE + - +
+
+ + + 27980 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28000 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + UDS DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 28020 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 28040 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28060 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 322 + + + + + + +

+ PCM Password Generation + 0 +

+ + + + + STR + - +
+
+ + + 28080 + KUNDENDAT1 + MACRO + 0 + SFRV (Seed Fixed Random Variable) - 010 = 호기번호 ASCII 4-Byte (HEXString) + + + V:;P:(E); + + + + + + + + + + +

+ SFRV + 010 + - + - + - + - +

+ + + + + HEX + &SFRV010 +
+
+ + + 28100 + KUNDENDAT1 + MACRO + 0 + SFRV (Seed Fixed Random Variable) : 020 = 일시분초 (ddHHmmss) 4-Byte + + + V:;P:(E); + + + + + + + + + + +

+ SFRV + 020 + - + - + - + - +

+ + + + + HEX + &SFRV020 +
+
+ + + 28120 + KUNDENDAT1 + MACRO + 0 + RN (Random Number) : 320 = 32-Byte Password 생성. 4-Byte 2개 변수를 입력하여 생성. + + + V:;P:(E); + + + + + + + + + + +

+ RN + 320 + &SFRV010 + &SFRV020 + - + - +

+ + + + + HEX + &RN320 +
+
+ + + 28140 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Password Seed RV 01 + + + + + + +

+ &SFRV010 + - +

+ + + + + STR + - +
+
+ + + 28160 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Password Seed RV 02 + + + + + + +

+ &SFRV020 + - +

+ + + + + STR + - +
+
+ + + 28180 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + PCM Password + + + + + + +

+ &RN320 + - +

+ + + + + STR + - +
+
+ + + 28200 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F151 + 1000 + +

+ + + + + STR + +
+
+ + + 28220 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Activation + + + + + + +

+ 1 + 3 +

+ + 62F151 + 62F151 + + HEX + +
+
+ + + 28240 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status + + + + + + +

+ 4 + 4 +

+ + 00 + FF + + HEX + &PCM_SB +
+
+ + + 28260 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Firmware Tamper Det. Status + + + + + + +

+ 5 + 5 +

+ + 00 + FF + + HEX + &PCM_FTD +
+
+ + + 28280 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Status + + + + + + +

+ 6 + 6 +

+ + 00 + FF + + HEX + &PCM_SDS +
+
+ + + 28300 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Config Lock Status + + + + + + +

+ 7 + 7 +

+ + 00 + FF + + HEX + &PCM_CFGLock +
+
+ + + 28320 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28340 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 28360 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28380 + CONTROL + MACRO + 420580 + + + + V:;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 28400 + COMBLOCK2 + MACRO + 420590 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 28420 + BLOCKINT + MACRO + 420600 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 28440 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28460 + COMBLOCK2 + MACRO + 420620 + + + + V:;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 28480 + BLOCKINT + MACRO + 420630 + + + + V:;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 28500 + BLOCKINT + MACRO + 420640 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 28520 + BLOCKINT + MACRO + 420650 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 28540 + STRCAT + MACRO + 420680 + + + + V:;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 28560 + SEEDKEY + MACRO + 420700 + + + + V:;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 28580 + COMBLOCK2 + MACRO + 420720 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 28600 + COMBLOCK2 + MACRO + 420730 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 28620 + BLOCKINT + MACRO + 420740 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 28640 + CONTROL + MACRO + 420760 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 28660 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 900 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 28680 + PRINTOUT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 323 + + + + + + +

+ PCM Memory Partition Swap (A→B) + 0 +

+ + + + + STR + - +
+
+ + + 28700 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 28720 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + +

+ + + + + STR + +
+
+ + + 28740 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 10F1FB + 5000 + +

+ + + + + STR + +
+
+ + + 28760 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + + + + + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 28780 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + Command + + + + + + +

+ 4 + 4 +

+ + 10 + 10 + + HEX + +
+
+ + + 28800 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (A) + + - + - + - + - + +

+ 5 + 5 +

+ + 00 + FF + + HEX + &PartitionStatus +
+
+ + + 28820 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 300 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 28840 + CONTROL + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ IF + (&PartitionStatus != 11) +

+ + + + + INT + +
+
+ + + 28860 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + +

+ + + + + STR + +
+
+ + + 28880 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 130BF1FB + 5000 + +

+ + + + + STR + +
+
+ + + 28900 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + + + + + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 28920 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Command + + - + - + - + - + +

+ 4 + 4 +

+ + 13 + 13 + + HEX + +
+
+ + + 28940 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (B) + + - + - + - + - + +

+ 5 + 5 +

+ + 0B + 0B + + HEX + +
+
+ + + 28960 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 1000 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 28980 + CONTROL + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 29000 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29020 + BERECHNEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 29040 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29060 + CONTROL + MACRO + 420580 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 29080 + COMBLOCK2 + MACRO + 420590 + + + + V:0000000000000007;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 29100 + BLOCKINT + MACRO + 420600 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 29120 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29140 + COMBLOCK2 + MACRO + 420620 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 29160 + BLOCKINT + MACRO + 420630 + + + + V:0000000000000007;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 29180 + BLOCKINT + MACRO + 420640 + + + + V:0000000000000007;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 29200 + BLOCKINT + MACRO + 420650 + + + + V:0000000000000007;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 29220 + STRCAT + MACRO + 420680 + + + + V:0000000000000007;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 29240 + SEEDKEY + MACRO + 420700 + + + + V:0000000000000007;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 29260 + COMBLOCK2 + MACRO + 420720 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 29280 + COMBLOCK2 + MACRO + 420730 + + + + V:0000000000000007;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 29300 + BLOCKINT + MACRO + 420740 + + + + V:0000000000000007;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 29320 + CONTROL + MACRO + 420760 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 29340 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29360 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 324 + + + + + + +

+ Secure Boot Enable + - +

+ + + + + STR + - +
+
+ + + 29380 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 110 + 0 +

+ + + + + INT + &SBResult +
+
+ + + 29400 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29420 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&PCM_SB != 3) +

+ + + + + NONE + +
+
+ + + 29440 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29460 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF150 + 5000 + +

+ + + + + STR + +
+
+ + + 29480 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 01 + 5000 + +

+ + + + + STR + +
+
+ + + 29500 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Secure Boot Enable + + + + + + +

+ 1 + 3 +

+ + 6EF150 + 6EF150 + + HEX + +
+
+ + + 29520 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Action Result + + + + + + +

+ 1 + 1 +

+ + 6E + 6E + + HEX + &SBResult +
+
+ + + 29540 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29560 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ IF + (&SBResult != 110) +

+ + + + + NONE + +
+
+ + + 29580 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &SBResult +
+
+ + + 29600 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 29620 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 29640 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29660 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 325 + + + + + + +

+ FTD Run Disable + 0 +

+ + + + + STR + - +
+
+ + + 29680 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 110 + 0 +

+ + + + + INT + &FTDResult +
+
+ + + 29700 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29720 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&PCM_FTD != 2)&&(&SBResult == 110) +

+ + + + + NONE + +
+
+ + + 29740 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29760 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF150 + 5000 + +

+ + + + + STR + +
+
+ + + 29780 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 02 + 5000 + +

+ + + + + STR + +
+
+ + + 29800 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + F/W Tamper Det. Disable + + + + + + +

+ 1 + 3 +

+ + 6EF150 + 6EF150 + + HEX + +
+
+ + + 29820 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Action Result + + + + + + +

+ 1 + 1 +

+ + 6E + 6E + + HEX + &FTDResult +
+
+ + + 29840 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 29860 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ELSE + +

+ + + + + NONE + +
+
+ + + 29880 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &FTDResult +
+
+ + + 29900 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 29920 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 29940 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 326 + + + + + + +

+ Secure Debug Enable + - +

+ + + + + STR + - +
+
+ + + 29960 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 110 + 0 +

+ + + + + INT + &SDSResult +
+
+ + + 29980 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30000 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&PCM_SDS!= 1)&&(&FTDResult == 110) +

+ + + + + NONE + +
+
+ + + 30020 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30040 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF150 + 5000 + +

+ + + + + STR + +
+
+ + + 30060 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 03 + 5000 + +

+ + + + + STR + +
+
+ + + 30080 + COMBLOCK2 + MACRO + 421100 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &RN320 + 5000 + +

+ + + + + STR + +
+
+ + + 30100 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Secure Debug Enable + + + + + + +

+ 1 + 3 +

+ + 6EF150 + 6EF150 + + HEX + +
+
+ + + 30120 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Action Result + + + + + + +

+ 1 + 1 +

+ + 6E + 6E + + HEX + &SDSResult +
+
+ + + 30140 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30160 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ELSE + +

+ + + + + NONE + +
+
+ + + 30180 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &SDSResult +
+
+ + + 30200 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 30220 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30240 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 327 + + + + + + +

+ Confguration Lock + - +

+ + + + + STR + - +
+
+ + + 30260 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30280 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ IF + (&PCM_CFGLock != 1)&&(&SDSResult == 110) +

+ + + + + NONE + +
+
+ + + 30300 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30320 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF150 + 5000 + +

+ + + + + STR + +
+
+ + + 30340 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 04 + 5000 + +

+ + + + + STR + +
+
+ + + 30360 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Configuration Lock + + + + + + +

+ 1 + 3 +

+ + 6EF150 + 6EF150 + + HEX + +
+
+ + + 30380 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30400 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 30420 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30440 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30460 + PRINTOUT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 328 + + + + + + +

+ PCM Memory Partition Swap (B→A) + 0 +

+ + + + + STR + - +
+
+ + + 30480 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30500 + BERECHNEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 30520 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 30540 + CONTROL + MACRO + 420580 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 30560 + COMBLOCK2 + MACRO + 420590 + + + + V:0000000000000007;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 30580 + BLOCKINT + MACRO + 420600 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 30600 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30620 + COMBLOCK2 + MACRO + 420620 + + + + V:0000000000000007;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 30640 + BLOCKINT + MACRO + 420630 + + + + V:0000000000000007;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 30660 + BLOCKINT + MACRO + 420640 + + + + V:0000000000000007;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 30680 + BLOCKINT + MACRO + 420650 + + + + V:0000000000000007;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 30700 + STRCAT + MACRO + 420680 + + + + V:0000000000000007;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 30720 + SEEDKEY + MACRO + 420700 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 30740 + COMBLOCK2 + MACRO + 420720 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 30760 + COMBLOCK2 + MACRO + 420730 + + + + V:0000000000000007;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 30780 + BLOCKINT + MACRO + 420740 + + + + V:0000000000000007;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 30800 + CONTROL + MACRO + 420760 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 30820 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30840 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + +

+ + + + + STR + +
+
+ + + 30860 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 10F1FB + 5000 + +

+ + + + + STR + +
+
+ + + 30880 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + - + - + - + - + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 30900 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + Command + + + + + + +

+ 4 + 4 +

+ + 10 + 10 + + HEX + +
+
+ + + 30920 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (B) + + - + - + - + - + +

+ 5 + 5 +

+ + 00 + FF + + HEX + +
+
+ + + 30940 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 600 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 30960 + COMBLOCK2 + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 310102 + 5000 + +

+ + + + + STR + +
+
+ + + 30980 + COMBLOCK2 + MACRO + 421090 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 130AF1FB + 20000 + +

+ + + + + STR + +
+
+ + + 31000 + BLOCKINT + MACRO + 421110 + + + + V:0000000000000007;P:(E); + + + + HSM Cmd. + + + + + + +

+ 1 + 3 +

+ + 710102 + 710102 + + HEX + +
+
+ + + 31020 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Command + + - + - + - + - + +

+ 4 + 4 +

+ + 13 + 13 + + HEX + +
+
+ + + 31040 + BLOCKINT + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + Current Partition Status (A) + + - + - + - + - + +

+ 5 + 5 +

+ + 0A + 0A + + HEX + +
+
+ + + 31060 + WARTEN + MACRO + 0 + + + + V:0000000000000007;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31080 + PRINTOUT + MACRO + 610000 + + + PCM_CAN_INIT******************************************************* + V:;P:(E); + + + + PRINTMODULENAME + + + + + + +

+ CAN_INIT + 0 +

+ + + + + STR + +
+
+ + + 31100 + CAN2000INI2 + MACRO + 630040 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 31120 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:; + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 +

+ + + + + STR + +
+
+ + + 31140 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31160 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A019_SV + UB + A038 + NONE + + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31180 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + ▣ Step 329 + + + + + + +

+ Secure Debug (CMS) Check + +

+ + + + + NONE + - +
+
+ + + 31200 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31220 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + UDS DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 31240 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 31260 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31280 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 330 + + + + + + +

+ CMS Password Generation + 0 +

+ + + + + STR + - +
+
+ + + 31300 + KUNDENDAT1 + MACRO + 0 + SFRV (Seed Fixed Random Variable) - 010 = 호기번호 ASCII 4-Byte (HEXString) + + + V:;P:(E); + + + + + + + + + + +

+ SFRV + 010 + - + - + - + - +

+ + + + + HEX + &SFRV010 +
+
+ + + 31320 + KUNDENDAT1 + MACRO + 0 + SFRV (Seed Fixed Random Variable) : 021 = 일시분초 (ssmmHHdd) 4-Byte + + + V:;P:(E); + + + + + + + + + + +

+ SFRV + 021 + - + - + - + - +

+ + + + + HEX + &SFRV021 +
+
+ + + 31340 + KUNDENDAT1 + MACRO + 0 + RN (Random Number) : 160 = 16-Byte Password 생성. 4-Byte 2개 변수를 입력하여 생성. + + + V:;P:(E); + + + + + + + + + + +

+ RN + 160 + &SFRV010 + &SFRV021 + - + - +

+ + + + + HEX + &RN160 +
+
+ + + 31360 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Password Seed RV 01 + + + + + + +

+ &SFRV010 + - +

+ + + + + STR + - +
+
+ + + 31380 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + Password Seed RV 02 + + + + + + +

+ &SFRV021 + - +

+ + + + + STR + - +
+
+ + + 31400 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + CMS Password + + + + + + +

+ &RN160 + - +

+ + + + + STR + - +
+
+ + + 31420 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31440 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F14A + 1000 + +

+ + + + + STR + +
+
+ + + 31460 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Activation + + + + + + +

+ 1 + 3 +

+ + 62F14A + 62F14A + + HEX + +
+
+ + + 31480 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #1 + + + + + + +

+ 4 + 4 +

+ + 00 + FF + + HEX + &PCM_SB1 +
+
+ + + 31500 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #2 + + + + + + +

+ 5 + 5 +

+ + 00 + FF + + HEX + &PCM_SB2 +
+
+ + + 31520 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #3 + + + + + + +

+ 6 + 6 +

+ + 00 + FF + + HEX + &PCM_SB3 +
+
+ + + 31540 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #4 + + + + + + +

+ 7 + 7 +

+ + 00 + FF + + HEX + &PCM_SB4 +
+
+ + + 31560 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #5 + + + + + + +

+ 8 + 8 +

+ + 00 + FF + + HEX + &PCM_SB5 +
+
+ + + 31580 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31600 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ IF + (&PCM_SB3 == 0) +

+ + + + + INT + +
+
+ + + 31620 + BERECHNEN + MACRO + 0 + + + + V:;P:(E); + + + + + + + + + + +

+ 0 + 0 +

+ + + + + INT + &VALUE +
+
+ + + 31640 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 31660 + CONTROL + MACRO + 420580 + + + + V:;P:(E); + + + + + + + + + + +

+ WHILE + (&VALUE!=26386) +

+ + + + + INT + +
+
+ + + 31680 + COMBLOCK2 + MACRO + 420590 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 31700 + BLOCKINT + MACRO + 420600 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 31720 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 15 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31740 + COMBLOCK2 + MACRO + 420620 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 31760 + BLOCKINT + MACRO + 420630 + + + + V:;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 31780 + BLOCKINT + MACRO + 420640 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 31800 + BLOCKINT + MACRO + 420650 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 31820 + STRCAT + MACRO + 420680 + + + + V:;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 31840 + SEEDKEY + MACRO + 420700 + + + + V:;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_CMS + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 31860 + COMBLOCK2 + MACRO + 420720 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 31880 + COMBLOCK2 + MACRO + 420730 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 31900 + BLOCKINT + MACRO + 420740 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 0 + FFFF + + HEX + &VALUE +
+
+ + + 31920 + CONTROL + MACRO + 420760 + + + + V:;P:(E); + + + + + + + + + + +

+ ENDWHILE + +

+ + + + + INT + +
+
+ + + 31940 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 31960 + PRINTOUT + MACRO + 420770 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ &VALUE + 0 +

+ + + + + STR + +
+
+ + + 31980 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + ▣ Step 331 + + + + + + +

+ CMS Secure Debug Enable + 0 +

+ + + + + STR + - +
+
+ + + 32000 + COMBLOCK2 + MACRO + 421090 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + C + + 2EF149 + 5000 + +

+ + + + + STR + +
+
+ + + 32020 + COMBLOCK2 + MACRO + 421100 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + &RN160 + 5000 + +

+ + + + + STR + +
+
+ + + 32040 + BLOCKINT + MACRO + 421110 + + + + V:;P:(E); + + + + Secure Debug Enable + + + + + + +

+ 1 + 3 +

+ + 6EF149 + 6EF149 + + HEX + +
+
+ + + 32060 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 1200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 32080 + CONTROL + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ ENDIF + +

+ + + + + NONE + +
+
+ + + 32100 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32120 + PRINTOUT + MACRO + 610000 + + + PCM_CAN_INIT******************************************************* + V:;P:(E); + + + + A033_SV + - + - + NONE + + + + + A035_SV + - + - + NONE + + + + + + Power Off + + + + + + +

+ VCMS and CAN Channel Reset + 0 +

+ + + + + STR + +
+
+ + + 32140 + CAN2000INI2 + MACRO + 630040 + CAN Port Close + + + V:0000000000000007;P:(E); + + + + WZ + 200 + - + MS + + + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 32160 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + + + + + + + +

+ CAN1 + L + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 32180 + CAN2000INI2 + MACRO + 610020 + + + + V:0000000000000007;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 32200 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + WZ + 200 + - + MS + + + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 733 + 11 + 73B + 11 +

+ + + + + STR + +
+
+ + + 32220 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32240 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + A033_SV + UB + - + SA + + + + + A035_SV + UB + - + SA + + + + + + + +

+ + + + + NONE + + + + + + 32260 + WARTEN + MACRO + 0 + 300 > 500, mitech 2023.5.29 + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 32280 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 332 + + + + + + +

+ Secure Debug (PCM) Verification + +

+ + + + + NONE + - +
+
+ + + 32300 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32320 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + UDS DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 32340 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 32360 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32380 + COMBLOCK2 + MACRO + 170480 + + + + V:;P:(E); + + + + SECURITY_ACCESS + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 2711 + 1000 + +

+ + + + + STR + +
+
+ + + 32400 + BLOCKINT + MACRO + 170490 + + + + V:;P:(E); + + + + RESP + + + + + + +

+ 1 + 2 +

+ + 6711 + 6711 + + HEX + +
+
+ + + 32420 + BLOCKINT + MACRO + 170500 + + + + V:;P:(E); + + + + SEED1 + + + + + + +

+ 3 + 6 +

+ + 0 + FFFFFFFF + + HEX + &SEED1 +
+
+ + + 32440 + BLOCKINT + MACRO + 170510 + + + + V:;P:(E); + + + + SEED2 + + + + + + +

+ 7 + 10 +

+ + 0 + FFFFFFFF + + HEX + &SEED2 +
+
+ + + 32460 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32480 + STRCAT + MACRO + 170540 + + + + V:;P:(E); + + + + SEED_INPUT + + + + + + +

+ &SEED1 + &SEED2 + + + + + + + + +

+ + + + + STR + &SEED_INPUT +
+
+ + + 32500 + SEEDKEY + MACRO + 170560 + + + + V:;P:(E); + + + + CALCULATE_SEED + + + + + + +

+ &DLL_FILE_PCM + + &SEED_INPUT +

+ + + + + STR + &SEEDKEY +
+
+ + + 32520 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32540 + COMBLOCK2 + MACRO + 170580 + + + + V:;P:(E); + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2712 + 1000 + +

+ + + + + STR + +
+
+ + + 32560 + COMBLOCK2 + MACRO + 170590 + + + + V:;P:(E); + + + + SEEDKEY_SEND + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &SEEDKEY + 1000 + +

+ + + + + STR + +
+
+ + + 32580 + BLOCKINT + MACRO + 170600 + + + + V:;P:(E); + + + + SEEDKEY_POSITIVE + + + + + + +

+ 1 + 2 +

+ + 6712 + 6712 + + HEX + +
+
+ + + 32600 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 100 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 32620 + COMBLOCK2 + MACRO + 170620 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + WRITEF18B (HSM Verify) + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + C + + 2EF18B + 1000 + +

+ + + + + STR + +
+
+ + + 32640 + COMBLOCK2 + MACRO + 170630 + + + + V:;P:(E); + + + + WRITEF18B (HSM Verify) + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + &FD3 + 2000 + +

+ + + + + STR + +
+
+ + + 32660 + BLOCKINT + MACRO + 170640 + + + + V:;P:(E); + + + + WRITEF18B (HSM Verify) + + + + + + +

+ 1 + 3 +

+ + 6EF18B + 6EF18B + + HEX + +
+
+ + + 32680 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 32700 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 32720 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 22F151 + 1000 + +

+ + + + + STR + +
+
+ + + 32740 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Activation + + + + + + +

+ 1 + 3 +

+ + 62F151 + 62F151 + + HEX + +
+
+ + + 32760 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status + + + + + + +

+ 4 + 4 +

+ + 03 + 03 + + HEX + &PCM_SB +
+
+ + + 32780 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Firmware Tamper Det. Status + + + + + + +

+ 5 + 5 +

+ + 02 + 02 + + HEX + &PCM_FTD +
+
+ + + 32800 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Status + + + + + + +

+ 6 + 6 +

+ + 01 + 01 + + HEX + &PCM_SDS +
+
+ + + 32820 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Config Lock Status + + + + + + +

+ 7 + 7 +

+ + 01 + 01 + + HEX + &PCM_CFGLock +
+
+ + + 32840 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 800 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 32860 + PRINTOUT + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 333 + + + + + + +

+ Secure Debug (CSM) Verification + +

+ + + + + NONE + - +
+
+ + + 32880 + CAN2000INI2 + MACRO + 630040 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 32900 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + A019_SV + - + - + NONE + + + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 +

+ + + + + STR + +
+
+ + + 32920 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 500 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 32940 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + UDS DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 32960 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 32980 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 33000 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + WZ + - + - + NONE + + + + + + + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 22F14A + 8000 + +

+ + + + + STR + +
+
+ + + 33020 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Debug Activation + + + + + + +

+ 1 + 3 +

+ + 62F14A + 62F14A + + HEX + +
+
+ + + 33040 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #1 + + + + + + +

+ 4 + 4 +

+ + 01 + 01 + + HEX + &PCM_SB1 +
+
+ + + 33060 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #2 + + + + + + +

+ 5 + 5 +

+ + 01 + 01 + + HEX + &PCM_SB2 +
+
+ + + 33080 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #3 + + + + + + +

+ 6 + 6 +

+ + 01 + 01 + + HEX + &PCM_SB3 +
+
+ + + 33100 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #4 + + + + + + +

+ 7 + 7 +

+ + 01 + 01 + + HEX + &PCM_SB4 +
+
+ + + 33120 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + Secure Boot Status #5 + + + + + + +

+ 8 + 8 +

+ + 01 + 01 + + HEX + &PCM_SB5 +
+
+ + + 33140 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + WZ + 200 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 33160 + PRINTOUT + MACRO + 620010 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 301 + + + + + + +

+ DTC_CLEAR (PCM) + 0 +

+ + + + + STR + +
+
+ + + 33180 + COMBLOCK2 + MACRO + 620030 + + + + V:;P:(E); + + + + UDS Diagnosis + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 1003 + 1000 + +

+ + + + + STR + +
+
+ + + 33200 + BLOCKINT + MACRO + 620040 + + + + V:;P:(E); + + + + + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 33220 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 33240 + COMBLOCK2 + MACRO + 620070 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 14FFFFFF + 1000 + +

+ + + + + STR + +
+
+ + + 33260 + BLOCKINT + MACRO + 620080 + + + + V:;P:(E); + + + + POSITIVE + + + + + + +

+ 1 + 1 +

+ + 54 + 54 + + HEX + +
+
+ + + 33280 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 33300 + COMBLOCK2 + MACRO + 620100 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 733 + 73B + 8 + L + + 190209 + 1000 + +

+ + + + + STR + +
+
+ + + 33320 + BLOCKINT + MACRO + 620110 + + + + V:;P:(E); + + + + POSITIVE + + + + + + +

+ 1 + 2 +

+ + 5902 + 5902 + + HEX + +
+
+ + + 33340 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 33360 + PRINTOUT + MACRO + 630000 + + + CMS_CAN_INIT******************************************************* + V:;P:(E); + + + + PRINTMODULENAME + + + + + + +

+ CAN_INIT + 0 +

+ + + + + STR + +
+
+ + + 33380 + CAN2000INI2 + MACRO + 630040 + + + + V:0000000000000007;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 + 2000000 +

+ + + + + STR + +
+
+ + + 33400 + CAN2000INI + MACRO + 0 + + + + V:0000000000000170;P:(E); + + + + + + + + + + +

+ CAN1 + H + 500000 + 75 + 120 + 1 + 744 + 11 + 74C + 11 +

+ + + + + STR + +
+
+ + + 33420 + WARTEN + MACRO + 0 + 500 > 700, mitech + + + V:;P:(E); + + + + WZ + 700 + - + MS + + + + + + + +

+ + + + + NONE + + + + + + 33440 + PRINTOUT + MACRO + 640010 + + + + V:;P:(E); + + + + WZ + 0 + - + MS + + + + + + ▣ Step 302 + + + + + + +

+ DTC_CLEAR (CMS) + 0 +

+ + + + + STR + +
+
+ + + 33460 + COMBLOCK2 + MACRO + 640030 + + + + V:;P:(E); + + + + UDS_DIAGNOSIS + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 1003 + 5000 + +

+ + + + + STR + +
+
+ + + 33480 + BLOCKINT + MACRO + 640040 + + + + V:;P:(E); + + + + POSITIVE + + + + + + +

+ 1 + 2 +

+ + 5003 + 5003 + + HEX + +
+
+ + + 33500 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 33520 + COMBLOCK2 + MACRO + 640060 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 14FFFFFF + 5000 + +

+ + + + + STR + +
+
+ + + 33540 + BLOCKINT + MACRO + 640070 + + + + V:;P:(E); + + + + POSITIVE + + + + + + +

+ 1 + 1 +

+ + 54 + 54 + + HEX + +
+
+ + + 33560 + WARTEN + MACRO + 0 + + + + V:;P:(E); + + + + + +

+ + + + + NONE + + + + + + 33580 + COMBLOCK2 + MACRO + 640090 + + + + V:;P:(E); + + + + STARTCOMMUNICATION + + + + + + +

+ COMBLOCK2 + CAN1 + 744 + 74C + 8 + L + + 190209 + 5000 + +

+ + + + + STR + +
+
+ + + 33600 + BLOCKINT + MACRO + 640100 + + + + V:;P:(E); + + + + POSITIVE + + + + + + +

+ 1 + 2 +

+ + 5902 + 5902 + + HEX + +
+
+ + + 33620 + WARTEN + MACRO + 0 + + + + + + + + A019_SV + - + - + NONE + + + + + PLC + - + - + NONE + + + + + + + +

+ + + + + NONE + + + + + + 33640 + PRINTOUT + MACRO + 650000 + + + STIMULI_OFF******************************************************** + + + + + PRINTMODULENAME + + + + + + +

+ STIMULI_OFF + 0 +

+ + + + + STR + +
+
+ + + 33660 + WARTEN + MACRO + 0 + + + + + + + + IQ_UMAX + - + - + NONE + + + + + UB + 0 + - + V + + + + + UB_IMAX + 0 + - + A + + + + + + + +

+ + + + + NONE + + + + + + 33680 + WARTEN + MACRO + 0 + + + + + + + + + +

+ + + + + NONE + + + + + + 33700 + WARTEN + MACRO + 0 + + + + + + + + A007_S + - + - + NONE + + + + + A008_S + - + - + NONE + + + + + A033_SV + - + - + NONE + + + + + A035_SV + - + - + NONE + + + + + + + +

+ + + + + NONE + + + + + + 33720 + PRINTOUT + MACRO + 660000 + + + NUMBER_OF_NG'S***************************************************** + + + + + A038_SV + - + - + NONE + + + + + + PRINTMODULENAME + + + + + + +

+ NUMBER OF NG'S + 0 +

+ + + + + STR + +
+
+ + + 33740 + BREAK + MACRO + 660010 + + + + + + + + BREAK + + + + + + +

+ &G_NERR +

+ + 0 + 0 + + INT + +
+
+ + + 33760 + WARTEN + MACRO + 0 + + + + + + + + + +

+ + + + + NONE + + + + + + \ No newline at end of file diff --git a/Projects/VPKI/Doc/커넥티드카 인증서비스(vPKI) API 정의서_v2.1.pdf b/Projects/VPKI/Doc/커넥티드카 인증서비스(vPKI) API 정의서_v2.1.pdf new file mode 100644 index 0000000..b7782c3 Binary files /dev/null and b/Projects/VPKI/Doc/커넥티드카 인증서비스(vPKI) API 정의서_v2.1.pdf differ diff --git a/Projects/VPKI/Tools/Tools_DB_Create.bat b/Projects/VPKI/Tools/Tools_DB_Create.bat new file mode 100644 index 0000000..a23295c --- /dev/null +++ b/Projects/VPKI/Tools/Tools_DB_Create.bat @@ -0,0 +1,9 @@ +::도커 재실행 +@echo off + +cd ../VPKI.DB/DBPatch + +::start CreateAccountDB.bat +::start CreateDataDB.bat + +timeout /t 3 \ No newline at end of file diff --git a/Projects/VPKI/Tools/Tools_DB_Scaffold.bat b/Projects/VPKI/Tools/Tools_DB_Scaffold.bat new file mode 100644 index 0000000..841b955 --- /dev/null +++ b/Projects/VPKI/Tools/Tools_DB_Scaffold.bat @@ -0,0 +1,7 @@ +cd ../VPKI/VPKI.Library.DB + +::AccountDB +dotnet ef dbcontext scaffold "server=127.0.0.1; user id=VPKI; password=Kefico!@34; database=VPKI_AccountDB; TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer --namespace DB.VPKI_AccountDB --context-dir DB\VPKI_AccountDB\Context --output-dir DB\VPKI_AccountDB\Tables -f + +::DataDB +dotnet ef dbcontext scaffold "server=127.0.0.1; user id=VPKI; password=Kefico!@34; database=VPKI_DataDB; TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer --namespace DB.VPKI_DataDB --context-dir DB\VPKI_DataDB\Context --output-dir DB\VPKI_DataDB\Tables -f \ No newline at end of file diff --git a/Projects/VPKI/Tools/Tools_DB_Update.bat b/Projects/VPKI/Tools/Tools_DB_Update.bat new file mode 100644 index 0000000..259fe70 --- /dev/null +++ b/Projects/VPKI/Tools/Tools_DB_Update.bat @@ -0,0 +1,9 @@ +::도커 재실행 +@echo off + +cd ../VPKI.DB/DBPatch + +::start UpdateAccountDB.bat +start UpdateDataDB.bat + +timeout /t 3 \ No newline at end of file diff --git a/Projects/VPKI/Tools/Tools_Docker_Build.VPKI.WebApi.bat b/Projects/VPKI/Tools/Tools_Docker_Build.VPKI.WebApi.bat new file mode 100644 index 0000000..0e1a51d --- /dev/null +++ b/Projects/VPKI/Tools/Tools_Docker_Build.VPKI.WebApi.bat @@ -0,0 +1,11 @@ +@echo off + +cd ../VPKI + +::dotnet 빌드 +dotnet build ..\VPKI\VPKI.Web.Api\VPKI.Web.Api.csproj + +::도커 빌드 +docker build -f ..\VPKI\VPKI.Web.Api\Dockerfile . -t vpki.web.api + +timeout /t 3 \ No newline at end of file diff --git a/Projects/VPKI/Tools/Tools_Docker_Restart.bat b/Projects/VPKI/Tools/Tools_Docker_Restart.bat new file mode 100644 index 0000000..1299dd4 --- /dev/null +++ b/Projects/VPKI/Tools/Tools_Docker_Restart.bat @@ -0,0 +1,9 @@ +::도커 재실행 +@echo off + +cd ../VPKI + +docker compose down +docker compose up -d + +timeout /t 3 \ No newline at end of file diff --git a/Projects/VPKI/Tools/Tools_Docker_SystemLogViewer.bat b/Projects/VPKI/Tools/Tools_Docker_SystemLogViewer.bat new file mode 100644 index 0000000..c4070b3 --- /dev/null +++ b/Projects/VPKI/Tools/Tools_Docker_SystemLogViewer.bat @@ -0,0 +1,8 @@ +::도커 이미지 안에 로그 보기위해 최신 날짜로 열기 +@echo off + +set YEAR=%date:~0,4% +set MONTH=%date:~5,2% +set DAY=%date:~8,2% + +Powershell.exe get-content ..\VPKI\Docker_log\%YEAR%\%MONTH%\%date%.log -wait -tail 20 \ No newline at end of file diff --git a/Projects/VPKI/Utils/Utils_DockerBaseImageCreator.bat b/Projects/VPKI/Utils/Utils_DockerBaseImageCreator.bat new file mode 100644 index 0000000..2160ced --- /dev/null +++ b/Projects/VPKI/Utils/Utils_DockerBaseImageCreator.bat @@ -0,0 +1,7 @@ +::인터넷 연결 없이 도커 빌드하기 위해 다른 이미지로 copy +::copy해두지 않으면 자동으로 외부 연결하면서 빌드가 안된다 + +docker pull mcr.microsoft.com/dotnet/sdk:8.0 +docker tag mcr.microsoft.com/dotnet/sdk:8.0 dotnet8 + +timeout /t 3 \ No newline at end of file diff --git a/Projects/VPKI/Utils/Win64OpenSSL-3_4_1.exe b/Projects/VPKI/Utils/Win64OpenSSL-3_4_1.exe new file mode 100644 index 0000000..5be0b8f Binary files /dev/null and b/Projects/VPKI/Utils/Win64OpenSSL-3_4_1.exe differ diff --git a/Projects/VPKI/Utils/_CreateDBAccount_VPKI_관리자권한으로실행.bat.lnk b/Projects/VPKI/Utils/_CreateDBAccount_VPKI_관리자권한으로실행.bat.lnk new file mode 100644 index 0000000..eddc92a Binary files /dev/null and b/Projects/VPKI/Utils/_CreateDBAccount_VPKI_관리자권한으로실행.bat.lnk differ diff --git a/Projects/VPKI/Utils/aspnetcore-runtime-8.0.13-win-x64.exe b/Projects/VPKI/Utils/aspnetcore-runtime-8.0.13-win-x64.exe new file mode 100644 index 0000000..2d082c0 Binary files /dev/null and b/Projects/VPKI/Utils/aspnetcore-runtime-8.0.13-win-x64.exe differ diff --git a/Projects/VPKI/Utils/dotnet-hosting-8.0.13-win.exe b/Projects/VPKI/Utils/dotnet-hosting-8.0.13-win.exe new file mode 100644 index 0000000..e757d15 Binary files /dev/null and b/Projects/VPKI/Utils/dotnet-hosting-8.0.13-win.exe differ diff --git a/Projects/VPKI/VPKI.DB/DBPatch/CreateAccountDB.bat b/Projects/VPKI/VPKI.DB/DBPatch/CreateAccountDB.bat new file mode 100644 index 0000000..79e47a8 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/DBPatch/CreateAccountDB.bat @@ -0,0 +1,17 @@ +@echo off +::log +IF NOT EXIST .\logs mkdir logs + +::서버연결정보 +SET ServerIP=127.0.0.1 +SET ServerPort=1433 + +::DB 정보 +SET UserID=VPKI +SET Passwd=Kefico!@34 +SET DBName=VPKI_AccountDB + +::Default DB +@echo off +CALL CreateVPKIAccountDB.bat %ServerIP% %ServerPort% %UserID% %Passwd% %DBName% +CALL CreateVPKIAccountDB.bat %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%_DEV \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/DBPatch/CreateDataDB.bat b/Projects/VPKI/VPKI.DB/DBPatch/CreateDataDB.bat new file mode 100644 index 0000000..ac1aeb3 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/DBPatch/CreateDataDB.bat @@ -0,0 +1,17 @@ +@echo off +::log +IF NOT EXIST .\logs mkdir logs + +::서버연결정보 +SET ServerIP=127.0.0.1 +SET ServerPort=1433 + +::DB 정보 +SET UserID=VPKI +SET Passwd=Kefico!@34 +SET DBName=VPKI_DataDB + +::Default DB +@echo off +CALL CreateVPKIDataDB.bat %ServerIP% %ServerPort% %UserID% %Passwd% %DBName% +CALL CreateVPKIDataDB.bat %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%_DEV \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/DBPatch/CreateVPKIAccountDB.bat b/Projects/VPKI/VPKI.DB/DBPatch/CreateVPKIAccountDB.bat new file mode 100644 index 0000000..78dcc12 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/DBPatch/CreateVPKIAccountDB.bat @@ -0,0 +1,18 @@ +@echo off + +SET ServerIP=%1 +SET ServerPort=%2 +SET UserID=%3 +SET Passwd=%4 +SET DBName=%5 + +SET SqlCmdOption=-C -U %UserID% -P %Passwd% -S %ServerIP%,%ServerPort% -f 65001 -o .\logs\%DBName%.log +SET DatabaseName=%DBName% +sqlcmd %SqlCmdOption% -i .\sqlScripts\VPKI.AccountDB_Create.sql +if errorlevel 1 goto errexit +goto end +:errexit +echo DB Patch Fail +goto end +:end +@echo on \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/DBPatch/CreateVPKIDataDB.bat b/Projects/VPKI/VPKI.DB/DBPatch/CreateVPKIDataDB.bat new file mode 100644 index 0000000..f33423f --- /dev/null +++ b/Projects/VPKI/VPKI.DB/DBPatch/CreateVPKIDataDB.bat @@ -0,0 +1,18 @@ +@echo off + +SET ServerIP=%1 +SET ServerPort=%2 +SET UserID=%3 +SET Passwd=%4 +SET DBName=%5 + +SET SqlCmdOption=-C -U %UserID% -P %Passwd% -S %ServerIP%,%ServerPort% -f 65001 -o .\logs\%DBName%.log +SET DatabaseName=%DBName% +sqlcmd %SqlCmdOption% -i .\sqlScripts\VPKI.DataDB_Create.sql +if errorlevel 1 goto errexit +goto end +:errexit +echo DB Patch Fail +goto end +:end +@echo on \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/DBPatch/UpdateAccountDB.bat b/Projects/VPKI/VPKI.DB/DBPatch/UpdateAccountDB.bat new file mode 100644 index 0000000..625f42c --- /dev/null +++ b/Projects/VPKI/VPKI.DB/DBPatch/UpdateAccountDB.bat @@ -0,0 +1,25 @@ +@echo off +::log +IF NOT EXIST .\logs mkdir logs + +::서버연결정보 +SET ServerIP=127.0.0.1 +SET ServerPort=1433 + +::DB 정보 +SET UserID=VPKI +SET Passwd=Kefico!@34 +SET DBName=VPKI_AccountDB + +::Update script 정보 +SET Dacpac=.\sqlScripts\dacpac\VPKI.AccountDB.dacpac +SET OUTPUT=VPKI.AccountDB_Update.sql + + +@echo off +::generate update script +CALL UpdateScriptGenerate.bat %ServerIP% %ServerPort% %UserID% %Passwd% %DBName% %Dacpac% %OUTPUT% + +::Default DB +CALL UpdateVPKIAccountDB.bat %ServerIP% %ServerPort% %UserID% %Passwd% VPKI_AccountDB +CALL UpdateVPKIAccountDB.bat %ServerIP% %ServerPort% %UserID% %Passwd% VPKI_AccountDB_DEV \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/DBPatch/UpdateDataDB.bat b/Projects/VPKI/VPKI.DB/DBPatch/UpdateDataDB.bat new file mode 100644 index 0000000..ef46fb5 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/DBPatch/UpdateDataDB.bat @@ -0,0 +1,25 @@ +@echo off +::log +IF NOT EXIST .\logs mkdir logs + +::서버연결정보 +SET ServerIP=127.0.0.1 +SET ServerPort=1433 + +::DB 정보 +SET UserID=VPKI +SET Passwd=Kefico!@34 +SET DBName=VPKI_DataDB + +::Update script 정보 +SET Dacpac=.\sqlScripts\dacpac\VPKI.DataDB.dacpac +SET OUTPUT=VPKI.DataDB_Update.sql + + +@echo off +::generate update script +CALL UpdateScriptGenerate.bat %ServerIP% %ServerPort% %UserID% %Passwd% %DBName% %Dacpac% %OUTPUT% + +::Default DB +CALL UpdateVPKIDataDB.bat %ServerIP% %ServerPort% %UserID% %Passwd% VPKI_DataDB +CALL UpdateVPKIDataDB.bat %ServerIP% %ServerPort% %UserID% %Passwd% VPKI_DataDB_DEV \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/DBPatch/UpdateScriptGenerate.bat b/Projects/VPKI/VPKI.DB/DBPatch/UpdateScriptGenerate.bat new file mode 100644 index 0000000..0d95840 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/DBPatch/UpdateScriptGenerate.bat @@ -0,0 +1,12 @@ +@echo off + +SET ServerIP=%1 +SET ServerPort=%2 +SET UserID=%3 +SET Passwd=%4 +SET DBName=%5 +SET Dacpac=%6 +SET OUTPUT=%7 + +::create update sql file +sqlpackage /Action:Script /SourceFile:%Dacpac% /TargetConnectionString:"server=%ServerIP%,%ServerPort%; user id=%UserID%; password=%Passwd%; database=%DBName%; TrustServerCertificate=true" /OutputPath:".\sqlScripts\%OUTPUT%" /p:CommentOutSetVarDeclarations=True \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/DBPatch/UpdateVPKIAccountDB.bat b/Projects/VPKI/VPKI.DB/DBPatch/UpdateVPKIAccountDB.bat new file mode 100644 index 0000000..403749b --- /dev/null +++ b/Projects/VPKI/VPKI.DB/DBPatch/UpdateVPKIAccountDB.bat @@ -0,0 +1,19 @@ +@echo off + +SET ServerIP=%1 +SET ServerPort=%2 +SET UserID=%3 +SET Passwd=%4 +SET DBName=%5 + +SET SqlCmdOption=-U %UserID% -P %Passwd% -S %ServerIP%,%ServerPort% -d %DBName% -o .\logs\%DBName%.log +SET DatabaseName=%DBName% +sqlcmd %SqlCmdOption% -i .\sqlScripts\VPKI.AccountDB_Update.sql + +if errorlevel 1 goto errexit +goto end +:errexit +echo DB Patch Fail +goto end +:end +@echo on \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/DBPatch/UpdateVPKIDataDB.bat b/Projects/VPKI/VPKI.DB/DBPatch/UpdateVPKIDataDB.bat new file mode 100644 index 0000000..6c7cb92 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/DBPatch/UpdateVPKIDataDB.bat @@ -0,0 +1,19 @@ +@echo off + +SET ServerIP=%1 +SET ServerPort=%2 +SET UserID=%3 +SET Passwd=%4 +SET DBName=%5 + +SET SqlCmdOption=-U %UserID% -P %Passwd% -S %ServerIP%,%ServerPort% -d %DBName% -o .\logs\%DBName%.log +SET DatabaseName=%DBName% +sqlcmd %SqlCmdOption% -i .\sqlScripts\VPKI.DataDB_Update.sql + +if errorlevel 1 goto errexit +goto end +:errexit +echo DB Patch Fail +goto end +:end +@echo on \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/DBPatch/_CreateAccount_관리자권한으로실행.bat b/Projects/VPKI/VPKI.DB/DBPatch/_CreateAccount_관리자권한으로실행.bat new file mode 100644 index 0000000..c6c8430 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/DBPatch/_CreateAccount_관리자권한으로실행.bat @@ -0,0 +1,19 @@ +@echo Create Admin Account Start +@echo off + +SET SqlCmdOption=-E -C +sqlcmd %SqlCmdOption% -i %~dp0\sqlScripts\AdminAccount_Create.sql +if errorlevel 1 goto errexit +goto end +:errexit +echo DB Patch Fail +goto end +:end +@echo on + +@echo Create Admin Account End + +net stop /y MSSQLSERVER +net start /y MSSQLSERVER + +pause \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/AdminAccount_Create.sql b/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/AdminAccount_Create.sql new file mode 100644 index 0000000..6ee1f07 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/AdminAccount_Create.sql @@ -0,0 +1,20 @@ +USE [master] +GO + +CREATE LOGIN [VPKI] WITH PASSWORD=N'Kefico!@34', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[English], CHECK_POLICY=ON +GO + +ALTER LOGIN [VPKI] ENABLE +GO + +ALTER SERVER ROLE [sysadmin] ADD MEMBER [VPKI] +GO + +ALTER SERVER ROLE [securityadmin] ADD MEMBER [VPKI] +GO + +ALTER SERVER ROLE [serveradmin] ADD MEMBER [VPKI] +GO + +ALTER SERVER ROLE [setupadmin] ADD MEMBER [VPKI] +GO \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/VPKI.AccountDB_Create.sql b/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/VPKI.AccountDB_Create.sql new file mode 100644 index 0000000..ea2f815 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/VPKI.AccountDB_Create.sql @@ -0,0 +1,365 @@ +/* +VPKI.AccountDB의 배포 스크립트 + +이 코드는 도구를 사용하여 생성되었습니다. +파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +변경 내용이 손실됩니다. +*/ + +GO +SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON; + +SET NUMERIC_ROUNDABORT OFF; + + +GO +/* +:setvar DatabaseName "VPKI.AccountDB" +:setvar DefaultFilePrefix "VPKI.AccountDB" +:setvar DefaultDataPath "" +:setvar DefaultLogPath "" +*/ + +GO +:on error exit +GO +/* +SQLCMD 모드가 지원되지 않으면 SQLCMD 모드를 검색하고 스크립트를 실행하지 않습니다. +SQLCMD 모드를 설정한 후에 이 스크립트를 다시 사용하려면 다음을 실행합니다. +SET NOEXEC OFF; +*/ +:setvar __IsSqlCmdEnabled "True" +GO +IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True' + BEGIN + PRINT N'이 스크립트를 실행하려면 SQLCMD 모드를 사용하도록 설정해야 합니다.'; + SET NOEXEC ON; + END + + +GO +USE [master]; + + +GO + +IF (DB_ID(N'$(DatabaseName)') IS NOT NULL) +BEGIN + ALTER DATABASE [$(DatabaseName)] + SET SINGLE_USER WITH ROLLBACK IMMEDIATE; + DROP DATABASE [$(DatabaseName)]; +END + +GO +PRINT N'$(DatabaseName) 데이터베이스를 만드는 중...' +GO +CREATE DATABASE [$(DatabaseName)] COLLATE Korean_Wansung_CI_AS +GO +USE [$(DatabaseName)]; + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET ANSI_NULLS ON, + ANSI_PADDING ON, + ANSI_WARNINGS ON, + ARITHABORT ON, + CONCAT_NULL_YIELDS_NULL ON, + NUMERIC_ROUNDABORT OFF, + QUOTED_IDENTIFIER ON, + ANSI_NULL_DEFAULT ON, + CURSOR_DEFAULT LOCAL, + RECOVERY SIMPLE, + CURSOR_CLOSE_ON_COMMIT OFF, + AUTO_CREATE_STATISTICS ON, + AUTO_SHRINK OFF, + AUTO_UPDATE_STATISTICS ON, + RECURSIVE_TRIGGERS OFF + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET ALLOW_SNAPSHOT_ISOLATION OFF; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET READ_COMMITTED_SNAPSHOT OFF + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET AUTO_UPDATE_STATISTICS_ASYNC OFF, + PAGE_VERIFY NONE, + DATE_CORRELATION_OPTIMIZATION OFF, + DISABLE_BROKER, + PARAMETERIZATION SIMPLE, + SUPPLEMENTAL_LOGGING OFF + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF IS_SRVROLEMEMBER(N'sysadmin') = 1 + BEGIN + IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)] + SET TRUSTWORTHY OFF, + DB_CHAINING OFF + WITH ROLLBACK IMMEDIATE'; + END + END +ELSE + BEGIN + PRINT N'데이터베이스 설정을 수정할 수 없습니다. 이러한 설정을 적용하려면 SysAdmin이어야 합니다.'; + END + + +GO +IF IS_SRVROLEMEMBER(N'sysadmin') = 1 + BEGIN + IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)] + SET HONOR_BROKER_PRIORITY OFF + WITH ROLLBACK IMMEDIATE'; + END + END +ELSE + BEGIN + PRINT N'데이터베이스 설정을 수정할 수 없습니다. 이러한 설정을 적용하려면 SysAdmin이어야 합니다.'; + END + + +GO +ALTER DATABASE [$(DatabaseName)] + SET TARGET_RECOVERY_TIME = 0 SECONDS + WITH ROLLBACK IMMEDIATE; + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET FILESTREAM(NON_TRANSACTED_ACCESS = OFF), + CONTAINMENT = NONE + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET AUTO_CREATE_STATISTICS ON(INCREMENTAL = OFF), + MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = OFF, + DELAYED_DURABILITY = DISABLED + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET QUERY_STORE (QUERY_CAPTURE_MODE = ALL, DATA_FLUSH_INTERVAL_SECONDS = 900, INTERVAL_LENGTH_MINUTES = 60, MAX_PLANS_PER_QUERY = 200, CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 367), MAX_STORAGE_SIZE_MB = 100) + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET QUERY_STORE = OFF + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 0; + ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = PRIMARY; + ALTER DATABASE SCOPED CONFIGURATION SET LEGACY_CARDINALITY_ESTIMATION = OFF; + ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = PRIMARY; + ALTER DATABASE SCOPED CONFIGURATION SET PARAMETER_SNIFFING = ON; + ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = PRIMARY; + ALTER DATABASE SCOPED CONFIGURATION SET QUERY_OPTIMIZER_HOTFIXES = OFF; + ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET QUERY_OPTIMIZER_HOTFIXES = PRIMARY; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET TEMPORAL_HISTORY_RETENTION ON + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF fulltextserviceproperty(N'IsFulltextInstalled') = 1 + EXECUTE sp_fulltext_database 'enable'; + + +GO +PRINT N'테이블 [dbo].[tRefreshToken]을(를) 만드는 중...'; + + +GO +CREATE TABLE [dbo].[tRefreshToken] ( + [cAuid] NVARCHAR (250) NOT NULL, + [cRefreshToken] NVARCHAR (1000) NOT NULL, + PRIMARY KEY CLUSTERED ([cAuid] ASC) +); + + +GO +PRINT N'테이블 [dbo].[tRole]을(를) 만드는 중...'; + + +GO +CREATE TABLE [dbo].[tRole] ( + [cAuid] NVARCHAR (250) NOT NULL, + [cRoleID] TINYINT NOT NULL, + [cRoleName] NVARCHAR (20) NOT NULL, + PRIMARY KEY CLUSTERED ([cAuid] ASC) +); + + +GO +PRINT N'테이블 [dbo].[tUser]을(를) 만드는 중...'; + + +GO +CREATE TABLE [dbo].[tUser] ( + [cUserID] NVARCHAR (50) NOT NULL, + [cAuid] NVARCHAR (250) NOT NULL, + [cPasswordHashed] NVARCHAR (250) NOT NULL, + [cState] TINYINT NOT NULL, + [cCreateDateTime] DATETIME2 (7) NOT NULL, + [cLastLoginDateTime] DATETIME2 (7) NULL, + PRIMARY KEY CLUSTERED ([cUserID] ASC) +); + + +GO +-- 배포된 트랜잭션 로그를 사용하여 대상 서버를 업데이트하는 리팩터링 단계 + +IF OBJECT_ID(N'dbo.__RefactorLog') IS NULL +BEGIN + CREATE TABLE [dbo].[__RefactorLog] (OperationKey UNIQUEIDENTIFIER NOT NULL PRIMARY KEY) + EXEC sp_addextendedproperty N'microsoft_database_tools_support', N'refactoring log', N'schema', N'dbo', N'table', N'__RefactorLog' +END +GO +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '7ca1fbc9-cead-4c01-b8df-1a9a69e13266') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('7ca1fbc9-cead-4c01-b8df-1a9a69e13266') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '7e3c9cab-1b27-43f3-8519-960704ce037b') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('7e3c9cab-1b27-43f3-8519-960704ce037b') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = 'f0511507-0a0d-4bde-a3b2-39b5106c85f0') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('f0511507-0a0d-4bde-a3b2-39b5106c85f0') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = 'da1fde46-473c-41bb-aa02-260e3385475d') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('da1fde46-473c-41bb-aa02-260e3385475d') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '8f767203-3e50-46b7-a513-53461cf358ac') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('8f767203-3e50-46b7-a513-53461cf358ac') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '4b1fa7eb-a0b5-425d-8358-7a8ca6cff7ad') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('4b1fa7eb-a0b5-425d-8358-7a8ca6cff7ad') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '5e298150-8e73-458c-aad7-8bf15975edc0') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('5e298150-8e73-458c-aad7-8bf15975edc0') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '6b49864f-05d3-40ae-9c55-b7845af2d49e') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('6b49864f-05d3-40ae-9c55-b7845af2d49e') + +GO + +GO +/* +배포 후 스크립트 템플릿 +-------------------------------------------------------------------------------------- + 이 파일에는 빌드 스크립트에 추가될 SQL 문이 있습니다. + SQLCMD 구문을 사용하여 파일을 배포 후 스크립트에 포함합니다. + 예: :r .\myfile.sql + SQLCMD 구문을 사용하여 배포 후 스크립트의 변수를 참조합니다. + 예: :setvar TableName MyTable + SELECT * FROM [$(TableName)] +-------------------------------------------------------------------------------------- +*/ + +IF NOT EXISTS (SELECT 1 FROM tUser WHERE cUserID = 'Alis') +BEGIN + INSERT INTO tUser (cUserID, cAuid, cPasswordHashed, cState, cCreateDateTime, cLastLoginDateTime) + VALUES ('Alis', 'SuperUser' ,'oKLQCdunc2kT5aAVfK+POKwd8R3p8OZvs/NATwpg4gM=' ,1 ,GETDATE(), GETDATE()); + + INSERT INTO tRole(cAuid, cRoleID, cRoleName) + VALUES ('SuperUser','20','SuperUser'); +END +GO + +GO +DECLARE @VarDecimalSupported AS BIT; + +SELECT @VarDecimalSupported = 0; + +IF ((ServerProperty(N'EngineEdition') = 3) + AND (((@@microsoftversion / power(2, 24) = 9) + AND (@@microsoftversion & 0xffff >= 3024)) + OR ((@@microsoftversion / power(2, 24) = 10) + AND (@@microsoftversion & 0xffff >= 1600)))) + SELECT @VarDecimalSupported = 1; + +IF (@VarDecimalSupported > 0) + BEGIN + EXECUTE sp_db_vardecimal_storage_format N'$(DatabaseName)', 'ON'; + END + + +GO +ALTER DATABASE [$(DatabaseName)] + SET MULTI_USER + WITH ROLLBACK IMMEDIATE; + + +GO +PRINT N'업데이트가 완료되었습니다.'; + + +GO diff --git a/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/VPKI.DataDB_Create.sql b/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/VPKI.DataDB_Create.sql new file mode 100644 index 0000000..933880d --- /dev/null +++ b/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/VPKI.DataDB_Create.sql @@ -0,0 +1,380 @@ +/* +VPKI.DataDB의 배포 스크립트 + +이 코드는 도구를 사용하여 생성되었습니다. +파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +변경 내용이 손실됩니다. +*/ + +GO +SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON; + +SET NUMERIC_ROUNDABORT OFF; + + +GO +/* +:setvar DatabaseName "VPKI.DataDB" +:setvar DefaultFilePrefix "VPKI.DataDB" +:setvar DefaultDataPath "" +:setvar DefaultLogPath "" +*/ + +GO +:on error exit +GO +/* +SQLCMD 모드가 지원되지 않으면 SQLCMD 모드를 검색하고 스크립트를 실행하지 않습니다. +SQLCMD 모드를 설정한 후에 이 스크립트를 다시 사용하려면 다음을 실행합니다. +SET NOEXEC OFF; +*/ +:setvar __IsSqlCmdEnabled "True" +GO +IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True' + BEGIN + PRINT N'이 스크립트를 실행하려면 SQLCMD 모드를 사용하도록 설정해야 합니다.'; + SET NOEXEC ON; + END + + +GO +USE [master]; + + +GO + +IF (DB_ID(N'$(DatabaseName)') IS NOT NULL) +BEGIN + ALTER DATABASE [$(DatabaseName)] + SET SINGLE_USER WITH ROLLBACK IMMEDIATE; + DROP DATABASE [$(DatabaseName)]; +END + +GO +PRINT N'$(DatabaseName) 데이터베이스를 만드는 중...' +GO +CREATE DATABASE [$(DatabaseName)] COLLATE Korean_Wansung_CI_AS +GO +USE [$(DatabaseName)]; + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET ANSI_NULLS ON, + ANSI_PADDING ON, + ANSI_WARNINGS ON, + ARITHABORT ON, + CONCAT_NULL_YIELDS_NULL ON, + NUMERIC_ROUNDABORT OFF, + QUOTED_IDENTIFIER ON, + ANSI_NULL_DEFAULT ON, + CURSOR_DEFAULT LOCAL, + RECOVERY SIMPLE, + CURSOR_CLOSE_ON_COMMIT OFF, + AUTO_CREATE_STATISTICS ON, + AUTO_SHRINK OFF, + AUTO_UPDATE_STATISTICS ON, + RECURSIVE_TRIGGERS OFF + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET ALLOW_SNAPSHOT_ISOLATION OFF; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET READ_COMMITTED_SNAPSHOT OFF + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET AUTO_UPDATE_STATISTICS_ASYNC OFF, + PAGE_VERIFY NONE, + DATE_CORRELATION_OPTIMIZATION OFF, + DISABLE_BROKER, + PARAMETERIZATION SIMPLE, + SUPPLEMENTAL_LOGGING OFF + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF IS_SRVROLEMEMBER(N'sysadmin') = 1 + BEGIN + IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)] + SET TRUSTWORTHY OFF, + DB_CHAINING OFF + WITH ROLLBACK IMMEDIATE'; + END + END +ELSE + BEGIN + PRINT N'데이터베이스 설정을 수정할 수 없습니다. 이러한 설정을 적용하려면 SysAdmin이어야 합니다.'; + END + + +GO +IF IS_SRVROLEMEMBER(N'sysadmin') = 1 + BEGIN + IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)] + SET HONOR_BROKER_PRIORITY OFF + WITH ROLLBACK IMMEDIATE'; + END + END +ELSE + BEGIN + PRINT N'데이터베이스 설정을 수정할 수 없습니다. 이러한 설정을 적용하려면 SysAdmin이어야 합니다.'; + END + + +GO +ALTER DATABASE [$(DatabaseName)] + SET TARGET_RECOVERY_TIME = 0 SECONDS + WITH ROLLBACK IMMEDIATE; + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET FILESTREAM(NON_TRANSACTED_ACCESS = OFF), + CONTAINMENT = NONE + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET AUTO_CREATE_STATISTICS ON(INCREMENTAL = OFF), + MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = OFF, + DELAYED_DURABILITY = DISABLED + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET QUERY_STORE (QUERY_CAPTURE_MODE = ALL, DATA_FLUSH_INTERVAL_SECONDS = 900, INTERVAL_LENGTH_MINUTES = 60, MAX_PLANS_PER_QUERY = 200, CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 367), MAX_STORAGE_SIZE_MB = 100) + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET QUERY_STORE = OFF + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 0; + ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = PRIMARY; + ALTER DATABASE SCOPED CONFIGURATION SET LEGACY_CARDINALITY_ESTIMATION = OFF; + ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = PRIMARY; + ALTER DATABASE SCOPED CONFIGURATION SET PARAMETER_SNIFFING = ON; + ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = PRIMARY; + ALTER DATABASE SCOPED CONFIGURATION SET QUERY_OPTIMIZER_HOTFIXES = OFF; + ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET QUERY_OPTIMIZER_HOTFIXES = PRIMARY; + END + + +GO +IF EXISTS (SELECT 1 + FROM [master].[dbo].[sysdatabases] + WHERE [name] = N'$(DatabaseName)') + BEGIN + ALTER DATABASE [$(DatabaseName)] + SET TEMPORAL_HISTORY_RETENTION ON + WITH ROLLBACK IMMEDIATE; + END + + +GO +IF fulltextserviceproperty(N'IsFulltextInstalled') = 1 + EXECUTE sp_fulltext_database 'enable'; + + +GO +PRINT N'테이블 [dbo].[tVerifyResult]을(를) 만드는 중...'; + + +GO +CREATE TABLE [dbo].[tVerifyResult] ( + [cCuid] BIGINT NOT NULL, + [cResult] NCHAR (20) NOT NULL, + PRIMARY KEY CLUSTERED ([cCuid] ASC) +); + + +GO +PRINT N'테이블 [dbo].[tOcsp]을(를) 만드는 중...'; + + +GO +CREATE TABLE [dbo].[tOcsp] ( + [cCuid] BIGINT NOT NULL, + [cStatus] NVARCHAR (20) NOT NULL, + [cVerify] NVARCHAR (20) NOT NULL, + [cOcsp] NVARCHAR (MAX) NULL, + [cDateTime] DATETIME2 (7) NOT NULL, + PRIMARY KEY CLUSTERED ([cCuid] ASC) +); + + +GO +PRINT N'테이블 [dbo].[tTbscsr]을(를) 만드는 중...'; + + +GO +CREATE TABLE [dbo].[tTbscsr] ( + [cCuid] BIGINT IDENTITY (1, 1) NOT NULL, + [cIftid] NVARCHAR (100) NOT NULL, + [cMacaddr] NVARCHAR (100) NOT NULL, + [cWmi] NVARCHAR (20) NOT NULL, + [cIdType] NVARCHAR (10) NOT NULL, + [cSupplierId] NVARCHAR (10) NOT NULL, + [cDc] NVARCHAR (20) NOT NULL, + [cTierCode] NVARCHAR (20) NOT NULL, + [cUnitCode] NVARCHAR (20) NOT NULL, + [cPublickey] NVARCHAR (1024) NOT NULL, + [cCertType] NVARCHAR (20) NOT NULL, + [cOriginTbscsr] NVARCHAR (4000) NOT NULL, + [cHashedTbscsr] NVARCHAR (1024) NOT NULL, + [cPcid] NVARCHAR (50) NOT NULL, + [cDn] NVARCHAR (250) NOT NULL, + [cDateTime] DATETIME2 (7) NOT NULL, + PRIMARY KEY CLUSTERED ([cCuid] ASC) +); + + +GO +PRINT N'테이블 [dbo].[tCertificate]을(를) 만드는 중...'; + + +GO +CREATE TABLE [dbo].[tCertificate] ( + [cCuid] BIGINT NOT NULL, + [cCsrsignature] NVARCHAR (1024) NOT NULL, + [cTierCode] NVARCHAR (20) NOT NULL, + [cUnitCode] NVARCHAR (20) NOT NULL, + [cVehicleCode] NVARCHAR (20) NOT NULL, + [cLocalCode] NVARCHAR (20) NOT NULL, + [cBrandCode] NVARCHAR (20) NOT NULL, + [cCsr] NVARCHAR (2048) NOT NULL, + [cCert] NVARCHAR (2048) NOT NULL, + [cMessage] NVARCHAR (250) NOT NULL, + [cIssueCount] INT NOT NULL, + [cDateTime] DATETIME2 (7) NOT NULL, + PRIMARY KEY CLUSTERED ([cCuid] ASC) +); + + +GO +-- 배포된 트랜잭션 로그를 사용하여 대상 서버를 업데이트하는 리팩터링 단계 + +IF OBJECT_ID(N'dbo.__RefactorLog') IS NULL +BEGIN + CREATE TABLE [dbo].[__RefactorLog] (OperationKey UNIQUEIDENTIFIER NOT NULL PRIMARY KEY) + EXEC sp_addextendedproperty N'microsoft_database_tools_support', N'refactoring log', N'schema', N'dbo', N'table', N'__RefactorLog' +END +GO +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = 'aef5aa4e-a13d-46f1-b18e-e058c617b408') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('aef5aa4e-a13d-46f1-b18e-e058c617b408') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '648c532d-8e23-44f8-b657-11f87afbf718') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('648c532d-8e23-44f8-b657-11f87afbf718') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '9ee0544c-0be5-4023-8ef4-033987c586b8') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('9ee0544c-0be5-4023-8ef4-033987c586b8') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '88f4fb4b-2eb9-4f7f-a439-a365764395e2') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('88f4fb4b-2eb9-4f7f-a439-a365764395e2') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '5a0e9793-c50f-4b5b-8c05-283639a11124') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('5a0e9793-c50f-4b5b-8c05-283639a11124') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '3ba5afba-2388-4351-9e65-025f6cbe3c89') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('3ba5afba-2388-4351-9e65-025f6cbe3c89') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '98b90247-2504-4303-be66-2742a0bf0681') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('98b90247-2504-4303-be66-2742a0bf0681') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '8fa6e7d1-aa81-4b5d-afbe-2bbf9823e5e3') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('8fa6e7d1-aa81-4b5d-afbe-2bbf9823e5e3') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '192ddc5c-7dab-4713-b486-4f0b3afb9817') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('192ddc5c-7dab-4713-b486-4f0b3afb9817') +IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = 'c7631cfd-d064-4fce-b44f-9df70e6cc41e') +INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('c7631cfd-d064-4fce-b44f-9df70e6cc41e') + +GO + +GO +DECLARE @VarDecimalSupported AS BIT; + +SELECT @VarDecimalSupported = 0; + +IF ((ServerProperty(N'EngineEdition') = 3) + AND (((@@microsoftversion / power(2, 24) = 9) + AND (@@microsoftversion & 0xffff >= 3024)) + OR ((@@microsoftversion / power(2, 24) = 10) + AND (@@microsoftversion & 0xffff >= 1600)))) + SELECT @VarDecimalSupported = 1; + +IF (@VarDecimalSupported > 0) + BEGIN + EXECUTE sp_db_vardecimal_storage_format N'$(DatabaseName)', 'ON'; + END + + +GO +ALTER DATABASE [$(DatabaseName)] + SET MULTI_USER + WITH ROLLBACK IMMEDIATE; + + +GO +PRINT N'업데이트가 완료되었습니다.'; + + +GO diff --git a/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/VPKI.DataDB_Update.sql b/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/VPKI.DataDB_Update.sql new file mode 100644 index 0000000..1a45625 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/VPKI.DataDB_Update.sql @@ -0,0 +1,195 @@ +/* +VPKI_DataDB의 배포 스크립트 + +이 코드는 도구를 사용하여 생성되었습니다. +파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +변경 내용이 손실됩니다. +*/ + +GO +SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON; + +SET NUMERIC_ROUNDABORT OFF; + + +GO +/* +:setvar DatabaseName "VPKI_DataDB" +:setvar DefaultFilePrefix "VPKI_DataDB" +:setvar DefaultDataPath "D:\MSSQL\DATA\" +:setvar DefaultLogPath "D:\MSSQL\DATA\" +*/ + +GO +:on error exit +GO +/* +SQLCMD 모드가 지원되지 않으면 SQLCMD 모드를 검색하고 스크립트를 실행하지 않습니다. +SQLCMD 모드를 설정한 후에 이 스크립트를 다시 사용하려면 다음을 실행합니다. +SET NOEXEC OFF; +*/ +:setvar __IsSqlCmdEnabled "True" +GO +IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True' + BEGIN + PRINT N'이 스크립트를 실행하려면 SQLCMD 모드를 사용하도록 설정해야 합니다.'; + SET NOEXEC ON; + END + + +GO +USE [$(DatabaseName)]; + + +GO +/* +[dbo].[tCertificate].[cDn] 열이 삭제되므로 데이터 손실이 발생할 수 있습니다. + +테이블 [dbo].[tCertificate]의 열 [[dbo].[tCertificate].[cCsrsignature]]을(를) 추가해야 하지만 해당 열에 기본값이 없으며 NULL 값을 허용하지 않습니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 열에 기본값을 추가 및 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오. + +[dbo].[tCertificate] 테이블의 cCert 열을 NULL에서 NOT NULL로 변경해야 합니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 모든 행에 대해 이 열에 값을 추가 또는 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오. + +[dbo].[tCertificate] 테이블의 cMessage 열을 NULL에서 NOT NULL로 변경해야 합니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 모든 행에 대해 이 열에 값을 추가 또는 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오. +*/ + +IF EXISTS (select top 1 1 from [dbo].[tCertificate]) + RAISERROR (N'행이 발견되었습니다. 데이터가 손실될 수 있으므로 스키마 업데이트가 종료됩니다.', 16, 127) WITH NOWAIT + +GO +/* +[dbo].[tTbscsr].[cCsrsignature] 열이 삭제되므로 데이터 손실이 발생할 수 있습니다. + +[dbo].[tTbscsr].[cTbscsrOrigin] 열이 삭제되므로 데이터 손실이 발생할 수 있습니다. + +테이블 [dbo].[tTbscsr]의 열 [[dbo].[tTbscsr].[cDn]]을(를) 추가해야 하지만 해당 열에 기본값이 없으며 NULL 값을 허용하지 않습니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 열에 기본값을 추가 및 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오. + +테이블 [dbo].[tTbscsr]의 열 [[dbo].[tTbscsr].[cOriginTbscsr]]을(를) 추가해야 하지만 해당 열에 기본값이 없으며 NULL 값을 허용하지 않습니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 열에 기본값을 추가 및 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오. +*/ + +IF EXISTS (select top 1 1 from [dbo].[tTbscsr]) + RAISERROR (N'행이 발견되었습니다. 데이터가 손실될 수 있으므로 스키마 업데이트가 종료됩니다.', 16, 127) WITH NOWAIT + +GO +PRINT N'[dbo].[tCertificate] 테이블 다시 빌드 시작...'; + + +GO +BEGIN TRANSACTION; + +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; + +SET XACT_ABORT ON; + +CREATE TABLE [dbo].[tmp_ms_xx_tCertificate] ( + [cCuid] BIGINT NOT NULL, + [cCsrsignature] NVARCHAR (1024) NOT NULL, + [cTierCode] NVARCHAR (20) NOT NULL, + [cUnitCode] NVARCHAR (20) NOT NULL, + [cVehicleCode] NVARCHAR (20) NOT NULL, + [cLocalCode] NVARCHAR (20) NOT NULL, + [cBrandCode] NVARCHAR (20) NOT NULL, + [cCsr] NVARCHAR (2048) NOT NULL, + [cCert] NVARCHAR (2048) NOT NULL, + [cMessage] NVARCHAR (250) NOT NULL, + [cIssueCount] INT NOT NULL, + [cDateTime] DATETIME2 (7) NOT NULL, + PRIMARY KEY CLUSTERED ([cCuid] ASC) +); + +IF EXISTS (SELECT TOP 1 1 + FROM [dbo].[tCertificate]) + BEGIN + INSERT INTO [dbo].[tmp_ms_xx_tCertificate] ([cCuid], [cCsr], [cTierCode], [cUnitCode], [cVehicleCode], [cLocalCode], [cBrandCode], [cCert], [cMessage], [cIssueCount], [cDateTime]) + SELECT [cCuid], + [cCsr], + [cTierCode], + [cUnitCode], + [cVehicleCode], + [cLocalCode], + [cBrandCode], + [cCert], + [cMessage], + [cIssueCount], + [cDateTime] + FROM [dbo].[tCertificate] + ORDER BY [cCuid] ASC; + END + +DROP TABLE [dbo].[tCertificate]; + +EXECUTE sp_rename N'[dbo].[tmp_ms_xx_tCertificate]', N'tCertificate'; + +COMMIT TRANSACTION; + +SET TRANSACTION ISOLATION LEVEL READ COMMITTED; + + +GO +PRINT N'[dbo].[tTbscsr] 테이블 다시 빌드 시작...'; + + +GO +BEGIN TRANSACTION; + +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; + +SET XACT_ABORT ON; + +CREATE TABLE [dbo].[tmp_ms_xx_tTbscsr] ( + [cCuid] BIGINT IDENTITY (1, 1) NOT NULL, + [cIftid] NVARCHAR (100) NOT NULL, + [cMacaddr] NVARCHAR (100) NOT NULL, + [cWmi] NVARCHAR (20) NOT NULL, + [cIdType] NVARCHAR (10) NOT NULL, + [cSupplierId] NVARCHAR (10) NOT NULL, + [cDc] NVARCHAR (20) NOT NULL, + [cTierCode] NVARCHAR (20) NOT NULL, + [cUnitCode] NVARCHAR (20) NOT NULL, + [cPublickey] NVARCHAR (1024) NOT NULL, + [cCertType] NVARCHAR (20) NOT NULL, + [cOriginTbscsr] NVARCHAR (4000) NOT NULL, + [cHashedTbscsr] NVARCHAR (1024) NOT NULL, + [cPcid] NVARCHAR (50) NOT NULL, + [cDn] NVARCHAR (250) NOT NULL, + [cDateTime] DATETIME2 (7) NOT NULL, + PRIMARY KEY CLUSTERED ([cCuid] ASC) +); + +IF EXISTS (SELECT TOP 1 1 + FROM [dbo].[tTbscsr]) + BEGIN + SET IDENTITY_INSERT [dbo].[tmp_ms_xx_tTbscsr] ON; + INSERT INTO [dbo].[tmp_ms_xx_tTbscsr] ([cCuid], [cIftid], [cMacaddr], [cWmi], [cIdType], [cSupplierId], [cDc], [cTierCode], [cUnitCode], [cPublickey], [cCertType], [cHashedTbscsr], [cPcid], [cDateTime]) + SELECT [cCuid], + [cIftid], + [cMacaddr], + [cWmi], + [cIdType], + [cSupplierId], + [cDc], + [cTierCode], + [cUnitCode], + [cPublickey], + [cCertType], + [cHashedTbscsr], + [cPcid], + [cDateTime] + FROM [dbo].[tTbscsr] + ORDER BY [cCuid] ASC; + SET IDENTITY_INSERT [dbo].[tmp_ms_xx_tTbscsr] OFF; + END + +DROP TABLE [dbo].[tTbscsr]; + +EXECUTE sp_rename N'[dbo].[tmp_ms_xx_tTbscsr]', N'tTbscsr'; + +COMMIT TRANSACTION; + +SET TRANSACTION ISOLATION LEVEL READ COMMITTED; + + +GO +PRINT N'업데이트가 완료되었습니다.'; + + +GO diff --git a/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/dacpac/VPKI.AccountDB.dacpac b/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/dacpac/VPKI.AccountDB.dacpac new file mode 100644 index 0000000..ca49829 Binary files /dev/null and b/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/dacpac/VPKI.AccountDB.dacpac differ diff --git a/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/dacpac/VPKI.DataDB.dacpac b/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/dacpac/VPKI.DataDB.dacpac new file mode 100644 index 0000000..3e648c8 Binary files /dev/null and b/Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/dacpac/VPKI.DataDB.dacpac differ diff --git a/Projects/VPKI/VPKI.DB/VPKI.AccountDB/VPKI.AccountDB.refactorlog b/Projects/VPKI/VPKI.DB/VPKI.AccountDB/VPKI.AccountDB.refactorlog new file mode 100644 index 0000000..58d1a66 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/VPKI.AccountDB/VPKI.AccountDB.refactorlog @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/VPKI.AccountDB/VPKI.AccountDB.sqlproj b/Projects/VPKI/VPKI.DB/VPKI.AccountDB/VPKI.AccountDB.sqlproj new file mode 100644 index 0000000..0b3ca48 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/VPKI.AccountDB/VPKI.AccountDB.sqlproj @@ -0,0 +1,84 @@ + + + + Debug + AnyCPU + VPKI.AccountDB + 2.0 + 4.1 + {6d9f945f-42ae-4c95-9656-a24fa23f4782} + Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider + Database + + + VPKI.AccountDB + VPKI.AccountDB + 1042,CI + BySchemaAndSchemaType + True + v4.7.2 + CS + Properties + False + True + True + True + Korean_Wansung_CI_AS + SIMPLE + + + bin\Release\ + $(MSBuildProjectName).sql + False + pdbonly + true + false + true + prompt + 4 + + + bin\Debug\ + $(MSBuildProjectName).sql + true + true + full + false + true + true + prompt + 4 + + + 11.0 + + True + 11.0 + + + + + + + + + + + + + + + + + + + + + + + + xcopy /y $(ProjectDir)$(OutputPath)$(TargetName)_Create.sql $(SolutionDir)DBPatch\sqlScripts\ + +xcopy /y $(ProjectDir)$(OutputPath)$(TargetName).dacpac $(SolutionDir)DBPatch\sqlScripts\dacpac\ + + \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/VPKI.AccountDB/dbo/Scripts/scriptAfterBuild.sql b/Projects/VPKI/VPKI.DB/VPKI.AccountDB/dbo/Scripts/scriptAfterBuild.sql new file mode 100644 index 0000000..8aad045 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/VPKI.AccountDB/dbo/Scripts/scriptAfterBuild.sql @@ -0,0 +1,20 @@ +/* +배포 후 스크립트 템플릿 +-------------------------------------------------------------------------------------- + 이 파일에는 빌드 스크립트에 추가될 SQL 문이 있습니다. + SQLCMD 구문을 사용하여 파일을 배포 후 스크립트에 포함합니다. + 예: :r .\myfile.sql + SQLCMD 구문을 사용하여 배포 후 스크립트의 변수를 참조합니다. + 예: :setvar TableName MyTable + SELECT * FROM [$(TableName)] +-------------------------------------------------------------------------------------- +*/ + +IF NOT EXISTS (SELECT 1 FROM tUser WHERE cUserID = 'Alis') +BEGIN + INSERT INTO tUser (cUserID, cAuid, cPasswordHashed, cState, cCreateDateTime, cLastLoginDateTime) + VALUES ('Alis', 'SuperUser' ,'oKLQCdunc2kT5aAVfK+POKwd8R3p8OZvs/NATwpg4gM=' ,1 ,GETDATE(), GETDATE()); + + INSERT INTO tRole(cAuid, cRoleID, cRoleName) + VALUES ('SuperUser','20','SuperUser'); +END \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/VPKI.AccountDB/dbo/Tables/tRefreshToken.sql b/Projects/VPKI/VPKI.DB/VPKI.AccountDB/dbo/Tables/tRefreshToken.sql new file mode 100644 index 0000000..0ec9fd9 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/VPKI.AccountDB/dbo/Tables/tRefreshToken.sql @@ -0,0 +1,5 @@ +CREATE TABLE [dbo].[tRefreshToken] +( + [cAuid] NVARCHAR(250) NOT NULL PRIMARY KEY, + [cRefreshToken] NVARCHAR(1000) NOT NULL +) diff --git a/Projects/VPKI/VPKI.DB/VPKI.AccountDB/dbo/Tables/tRole.sql b/Projects/VPKI/VPKI.DB/VPKI.AccountDB/dbo/Tables/tRole.sql new file mode 100644 index 0000000..5a49a82 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/VPKI.AccountDB/dbo/Tables/tRole.sql @@ -0,0 +1,6 @@ +CREATE TABLE [dbo].[tRole] +( + [cAuid] NVARCHAR(250) NOT NULL PRIMARY KEY, + [cRoleID] TINYINT NOT NULL, + [cRoleName] NVARCHAR(20) NOT NULL +) diff --git a/Projects/VPKI/VPKI.DB/VPKI.AccountDB/dbo/Tables/tUser.sql b/Projects/VPKI/VPKI.DB/VPKI.AccountDB/dbo/Tables/tUser.sql new file mode 100644 index 0000000..a7e6a64 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/VPKI.AccountDB/dbo/Tables/tUser.sql @@ -0,0 +1,10 @@ +CREATE TABLE [dbo].[tUser] +( + [cUserID] NVARCHAR(50) NOT NULL, + [cAuid] NVARCHAR(250) NOT NULL , + [cPasswordHashed] NVARCHAR(250) NOT NULL, + [cState] tinyint NOT NULL, + [cCreateDateTime] DATETIME2 NOT NULL, + [cLastLoginDateTime] DATETIME2 NULL, + PRIMARY KEY ([cUserID]) +) diff --git a/Projects/VPKI/VPKI.DB/VPKI.DB.sln b/Projects/VPKI/VPKI.DB/VPKI.DB.sln new file mode 100644 index 0000000..3f4e3b7 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/VPKI.DB.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.9.34728.123 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "VPKI.AccountDB", "VPKI.AccountDB\VPKI.AccountDB.sqlproj", "{6D9F945F-42AE-4C95-9656-A24FA23F4782}" +EndProject +Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "VPKI.DataDB", "VPKI.DataDB\VPKI.DataDB.sqlproj", "{85B3CD8C-6920-4E6D-A914-7D25B6924A22}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6D9F945F-42AE-4C95-9656-A24FA23F4782}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D9F945F-42AE-4C95-9656-A24FA23F4782}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D9F945F-42AE-4C95-9656-A24FA23F4782}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {6D9F945F-42AE-4C95-9656-A24FA23F4782}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D9F945F-42AE-4C95-9656-A24FA23F4782}.Release|Any CPU.Build.0 = Release|Any CPU + {6D9F945F-42AE-4C95-9656-A24FA23F4782}.Release|Any CPU.Deploy.0 = Release|Any CPU + {85B3CD8C-6920-4E6D-A914-7D25B6924A22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85B3CD8C-6920-4E6D-A914-7D25B6924A22}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85B3CD8C-6920-4E6D-A914-7D25B6924A22}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {85B3CD8C-6920-4E6D-A914-7D25B6924A22}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85B3CD8C-6920-4E6D-A914-7D25B6924A22}.Release|Any CPU.Build.0 = Release|Any CPU + {85B3CD8C-6920-4E6D-A914-7D25B6924A22}.Release|Any CPU.Deploy.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {783B428F-7368-4F65-98B6-DB3C2B2D0EB0} + EndGlobalSection +EndGlobal diff --git a/Projects/VPKI/VPKI.DB/VPKI.DataDB/VPKI.DataDB.refactorlog b/Projects/VPKI/VPKI.DB/VPKI.DataDB/VPKI.DataDB.refactorlog new file mode 100644 index 0000000..768557b --- /dev/null +++ b/Projects/VPKI/VPKI.DB/VPKI.DataDB/VPKI.DataDB.refactorlog @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/VPKI.DataDB/VPKI.DataDB.sqlproj b/Projects/VPKI/VPKI.DB/VPKI.DataDB/VPKI.DataDB.sqlproj new file mode 100644 index 0000000..ee9fabb --- /dev/null +++ b/Projects/VPKI/VPKI.DB/VPKI.DataDB/VPKI.DataDB.sqlproj @@ -0,0 +1,82 @@ + + + + Debug + AnyCPU + VPKI.DataDB + 2.0 + 4.1 + {85b3cd8c-6920-4e6d-a914-7d25b6924a22} + Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider + Database + + + VPKI.DataDB + VPKI.DataDB + 1042,CI + BySchemaAndSchemaType + True + v4.7.2 + CS + Properties + False + True + True + True + Korean_Wansung_CI_AS + SIMPLE + + + bin\Release\ + $(MSBuildProjectName).sql + False + pdbonly + true + false + true + prompt + 4 + + + bin\Debug\ + $(MSBuildProjectName).sql + true + true + full + false + true + true + prompt + 4 + AnyCPU + + + 11.0 + + True + 11.0 + + + + + + + + + + + + + + + + + + + + + xcopy /y $(ProjectDir)$(OutputPath)$(TargetName)_Create.sql $(SolutionDir)DBPatch\sqlScripts\ + +xcopy /y $(ProjectDir)$(OutputPath)$(TargetName).dacpac $(SolutionDir)DBPatch\sqlScripts\dacpac\ + + \ No newline at end of file diff --git a/Projects/VPKI/VPKI.DB/VPKI.DataDB/dbo/Tables/tCertificate.sql b/Projects/VPKI/VPKI.DB/VPKI.DataDB/dbo/Tables/tCertificate.sql new file mode 100644 index 0000000..5b3ef42 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/VPKI.DataDB/dbo/Tables/tCertificate.sql @@ -0,0 +1,15 @@ +CREATE TABLE [dbo].[tCertificate] +( + [cCuid] BIGINT NOT NULL PRIMARY KEY, + [cCsrsignature] NVARCHAR(1024) NOT NULL, + [cTierCode]NVARCHAR(20) NOT NULL, + [cUnitCode]NVARCHAR(20) NOT NULL, + [cVehicleCode]NVARCHAR(20) NOT NULL, + [cLocalCode]NVARCHAR(20) NOT NULL, + [cBrandCode]NVARCHAR(20) NOT NULL, + [cCsr] NVARCHAR(2048) NOT NULL, + [cCert] NVARCHAR(2048) NOT NULL, + [cMessage] NVARCHAR(250) NOT NULL, + [cIssueCount] INT NOT NULL, + [cDateTime] DATETIME2 NOT NULL +) diff --git a/Projects/VPKI/VPKI.DB/VPKI.DataDB/dbo/Tables/tOcsp.sql b/Projects/VPKI/VPKI.DB/VPKI.DataDB/dbo/Tables/tOcsp.sql new file mode 100644 index 0000000..a46a532 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/VPKI.DataDB/dbo/Tables/tOcsp.sql @@ -0,0 +1,8 @@ +CREATE TABLE [dbo].[tOcsp] +( + [cCuid] BIGINT NOT NULL PRIMARY KEY, + [cStatus] NVARCHAR(20) NOT NULL, + [cVerify] NVARCHAR(20) NOT NULL, + [cOcsp] NVARCHAR(MAX) NULL, + [cDateTime] DATETIME2 NOT NULL +) diff --git a/Projects/VPKI/VPKI.DB/VPKI.DataDB/dbo/Tables/tTbscsr.sql b/Projects/VPKI/VPKI.DB/VPKI.DataDB/dbo/Tables/tTbscsr.sql new file mode 100644 index 0000000..b1455a2 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/VPKI.DataDB/dbo/Tables/tTbscsr.sql @@ -0,0 +1,19 @@ +CREATE TABLE [dbo].[tTbscsr] +( + [cCuid] BIGINT NOT NULL PRIMARY KEY IDENTITY(1,1), + [cIftid] NVARCHAR(100) NOT NULL, + [cMacaddr] NVARCHAR(100) NOT NULL, + [cWmi] NVARCHAR(20) NOT NULL, + [cIdType] NVARCHAR(10)NOT NULL, + [cSupplierId] NVARCHAR(10) NOT NULL, + [cDc] NVARCHAR(20) NOT NULL, + [cTierCode]NVARCHAR(20) NOT NULL, + [cUnitCode]NVARCHAR(20) NOT NULL, + [cPublickey]NVARCHAR(1024) NOT NULL, + [cCertType]NVARCHAR(20) NOT NULL, + [cOriginTbscsr] NVARCHAR(4000) NOT NULL, + [cHashedTbscsr] NVARCHAR(1024) NOT NULL, + [cPcid] NVARCHAR(50) NOT NULL, + [cDn]NVARCHAR(250) NOT NULL, + [cDateTime] DATETIME2 NOT NULL +) diff --git a/Projects/VPKI/VPKI.DB/VPKI.DataDB/dbo/Tables/tVerifyResult.sql b/Projects/VPKI/VPKI.DB/VPKI.DataDB/dbo/Tables/tVerifyResult.sql new file mode 100644 index 0000000..5cb4b60 --- /dev/null +++ b/Projects/VPKI/VPKI.DB/VPKI.DataDB/dbo/Tables/tVerifyResult.sql @@ -0,0 +1,5 @@ +CREATE TABLE [dbo].[tVerifyResult] +( + [cCuid] BIGINT NOT NULL PRIMARY KEY, + [cResult] NCHAR(20) NOT NULL +) diff --git a/Projects/VPKI/VPKI/.dockerignore b/Projects/VPKI/VPKI/.dockerignore new file mode 100644 index 0000000..fe1152b --- /dev/null +++ b/Projects/VPKI/VPKI/.dockerignore @@ -0,0 +1,30 @@ +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md +!**/.gitignore +!.git/HEAD +!.git/config +!.git/packed-refs +!.git/refs/heads/** \ No newline at end of file diff --git a/Projects/VPKI/VPKI/Config/VPKI.WebApiConfig.json b/Projects/VPKI/VPKI/Config/VPKI.WebApiConfig.json new file mode 100644 index 0000000..287dfbb --- /dev/null +++ b/Projects/VPKI/VPKI/Config/VPKI.WebApiConfig.json @@ -0,0 +1,80 @@ +{ + "Server": { + "Address": "https://*", + "Port": 8080, + "IIS": false + }, + "API": [ + { + "ApiName": "vpkira", + "Address": "https://vpkira.hmckmc.co.kr/" + //"Address": "https://vpkira-dev.hmckmc.co.kr/" + }, + //{ + // "ApiName": "ocsp", + // "Address": "http://ocsp.hmckmc.co.kr/" + // //"Address": "http://d-ocsp.hmckmc.co.kr/" + //}, + //{ + // "ApiName": "d-crl", + // "Address": "http://crl.hmckmc.co.kr/" + // //"Address": "http://d-crl.hmckmc.co.kr/" + //} + ], + "Auth": { + "issuer": "vpki.api", + "audience": "vpki", + "accessTokenSecret": "t6zdogyrT0U1bYw3gJvMm3JHmj2Iyawr7O2WKE2truX+MK0l/XNGmpU2ofagdUWBN4DxAUv7c8xSYVv/8abL6A==", + "accessTokenExpires": 60, //minutes + "refreshTokenSecret": "1vVuoGqIqkStFI3QUXHMr0/yO1feLPnhqcfFGjZyk478+4WY7dhrUjCfVeWjmmSZYgb+rtP0X6ec+3iL35Yezw==", + "refreshTokenExpires": 1440 //minuts, 60*24 (1day) + }, + "DataBase": [ + { + "IP": "127.0.0.1", + "Port": 1433, + "DBName": "VPKI_AccountDB", + "DBID": 1, + "DBContext": "VpkiAccountDbContext", + "UserID": "VPKI", + "Password": "Kefico!@34" + }, + { + "IP": "127.0.0.1", + "Port": 1433, + "DBName": "VPKI_AccountDB_DEV", + "DBID": 2, + "DBContext": "VpkiAccountDbContext", + "UserID": "VPKI", + "Password": "Kefico!@34" + }, + { + "IP": "127.0.0.1", + "Port": 1433, + "DBName": "VPKI_DataDB", + "DBID": 1, + "DBContext": "VpkiDataDbContext", + "UserID": "VPKI", + "Password": "Kefico!@34" + }, + { + "IP": "127.0.0.1", + "Port": 1433, + "DBName": "VPKI_DataDB_DEV", + "DBID": 2, + "DBContext": "VpkiDataDbContext", + "UserID": "VPKI", + "Password": "Kefico!@34" + } + ], + "Openssl": { + "Path": "C:/Program Files/OpenSSL-Win64/bin/openssl.exe", + "SubCAPath": "../SubCA/", + "SubCA": { + "prov_v1": "SubCA_P02OEM.pem", + "prov_cert": "SubCA_P20OEM.pem", + "vehicle_cert": "SubCA_P20VHC.pem" + }, + "RootCA": "hkmcrootca.pem" + } +} \ No newline at end of file diff --git a/Projects/VPKI/VPKI/Config/VPKI.WebClientConfig.json b/Projects/VPKI/VPKI/Config/VPKI.WebClientConfig.json new file mode 100644 index 0000000..e6325b9 --- /dev/null +++ b/Projects/VPKI/VPKI/Config/VPKI.WebClientConfig.json @@ -0,0 +1,14 @@ +{ + "Server": { + "Address": "https://*", + "Port": 8000, + "IIS": false + }, + "Api": [ + { + "ApiName": "VPKI.API", + "Address": "https://127.0.0.1", + "Port": 8080 + } + ] +} \ No newline at end of file diff --git a/Projects/VPKI/VPKI/Config/log4net.config b/Projects/VPKI/VPKI/Config/log4net.config new file mode 100644 index 0000000..e5b8ab4 --- /dev/null +++ b/Projects/VPKI/VPKI/Config/log4net.config @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Projects/VPKI/VPKI/Config/nginx.conf b/Projects/VPKI/VPKI/Config/nginx.conf new file mode 100644 index 0000000..f99c24e --- /dev/null +++ b/Projects/VPKI/VPKI/Config/nginx.conf @@ -0,0 +1,16 @@ +events { + worker_connections 1000; +} + +http { + upstream vpki.web.api { + server vpki.web.api:5555; + } + + server { + listen 80; + location / { + proxy_pass https://vpki.web.api/; + } + } +} \ No newline at end of file diff --git a/Projects/VPKI/VPKI/SubCA/SubCA_P02OEM.pem b/Projects/VPKI/VPKI/SubCA/SubCA_P02OEM.pem new file mode 100644 index 0000000..2b75461 --- /dev/null +++ b/Projects/VPKI/VPKI/SubCA/SubCA_P02OEM.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICszCCAlmgAwIBAgIUHxrrBdc1lvNKymblQjb06G6MSJYwCgYIKoZIzj0EAwI +wPjELMAkGA1UEBhMCS1IxDTALBgNVBAoMBEhLTUMxDDAKBgNVBAsMA0VDQzESMB +AGA1UEAwwJUm9vdENBMDAxMCAXDTE5MDYxMjA2MTUxNVoYDzIwNzkwNjEyMjM1O +TU5WjA8MQswCQYDVQQGEwJLUjENMAsGA1UECgwESEtNQzEMMAoGA1UECwwDRUND +MRAwDgYDVQQDDAdDQTAxMDAxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEB0K +uXigZeI7U1McUnjEhYGL4g7zsvyzoNl8SMJ0oPxJgiXka+A37JjK4L/P85bAG7N +4C6IYuSem99P0C0vt0K6OCATMwggEvMB8GA1UdIwQYMBaAFLW9YfqauBG22R0cD +ywt08OqFD99MB0GA1UdDgQWBBQl67U3b8S3sG1J/ukFKlGcqPpw8DAOBgNVHQ8B +Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADBBBgNVHR8EOjA4MDagNKAyhjB +odHRwOi8vY3JsLmhtY2ttYy5jby5rci9FQ0MvUm9vdC9hcmwvQXJsMURwMS5jcm +wwgYUGCCsGAQUFBwEBBHkwdzA7BggrBgEFBQcwAoYvaHR0cDovL2NybC5obWNrb +WMuY28ua3IvRUNDL2NlcnQvaGttY3Jvb3RjYS5kZXIwOAYIKwYBBQUHMAGGLGh0 +dHA6Ly9ydG9jc3AuaG1ja21jLmNvLmtyL0VDQy9PQ1NQL2hrbWNvY3NwMAoGCCq +GSM49BAMCA0gAMEUCICfXVV8IhFBXkaOHkg2Wk883y9r3B5rPtDV9JKhUQuBXAi +EAug5R/broK+ZjM3vYdU7dndBfMFkOYtCa1NBdq6ie/Fs= +-----END CERTIFICATE----- \ No newline at end of file diff --git a/Projects/VPKI/VPKI/SubCA/SubCA_P20OEM.pem b/Projects/VPKI/VPKI/SubCA/SubCA_P20OEM.pem new file mode 100644 index 0000000..8529fef --- /dev/null +++ b/Projects/VPKI/VPKI/SubCA/SubCA_P20OEM.pem @@ -0,0 +1,3 @@ +-----BEGIN CERTIFICATE----- +MIICvzCCAiCgAwIBAgIUDsyHo4Z9sUNMNqyLEBC1HBmJjDIwCgYIKoZIzj0EAwQwPjELMAkGA1UEBhMCS1IxDTALBgNVBAoMBEhLTUMxDDAKBgNVBAsMA0VDQzESMBAGA1UEAwwJUm9vdENBMDAyMCAXDTIzMDEzMDAyNTAzM1oYDzIwODMwMTMwMTQ1OTU5WjA8MQswCQYDVQQGEwJLUjENMAsGA1UECgwESEtNQzEMMAoGA1UECwwDRUNDMRAwDgYDVQQDDAdDQTAxMDAyMIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQB0OtZd+xmRyO4zVZxg3sHV+TsDq/eUq10gqDU8UgdWOX2dqS9ELG1atX7jZ/B7GjpkM+iHkfWT2HAdq5UbDo8hq0BnisaBxK5GCE39Qn6RRtuCaBxuxmSdLUUj/2FNun7enFzlL8hsYt3MK4iK4YLI6ibaVUvuegeYRKYai5XscAPgkajgbgwgbUwIgYDVR0jAQH/BBgwFoAURTRfYSTjJP2uBQL8GaTkuNZZ/LAwIAYDVR0OAQH/BBYEFAYMTDbCQgUerEWCQXA17t7r/CDyMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMEkGA1UdHwEB/wQ/MD0wO6A5oDeGNWh0dHA6Ly9jcmwuaG1ja21jLmNvLmtyL0VDQy9Sb290Q0EwMDIvYXJsL0FybDFEcDEuY3JsMAoGCCqGSM49BAMEA4GMADCBiAJCAPW2gWcbrJdhOPbHGiXHHrSBiV8z5BSLzmHFn4jmsmFOrVpACVZTcTXg0odfug9iyI+OjTI2yj8MqdcGpfd3CZu8AkIBazSGl8GqiCi7dJb346Y/1TFLg14R76UVG2EahQIetp4Hj8SZtN8eHcVrXmm+ksL8OKyMh9lc5S2qmTch1ZxY9Bk= +-----END CERTIFICATE----- \ No newline at end of file diff --git a/Projects/VPKI/VPKI/SubCA/SubCA_P20VHC.pem b/Projects/VPKI/VPKI/SubCA/SubCA_P20VHC.pem new file mode 100644 index 0000000..3afe8df --- /dev/null +++ b/Projects/VPKI/VPKI/SubCA/SubCA_P20VHC.pem @@ -0,0 +1,3 @@ +-----BEGIN CERTIFICATE----- +MIICvjCCAiCgAwIBAgIUD3/W7mdD8uEvO8tG52SdiVKJgB0wCgYIKoZIzj0EAwQwPjELMAkGA1UEBhMCS1IxDTALBgNVBAoMBEhLTUMxDDAKBgNVBAsMA0VDQzESMBAGA1UEAwwJUm9vdENBMDAyMCAXDTIzMDEzMDAzMjA1NloYDzIwODMwMTMwMTQ1OTU5WjA8MQswCQYDVQQGEwJLUjENMAsGA1UECgwESEtNQzEMMAoGA1UECwwDRUNDMRAwDgYDVQQDDAdDQTAxMDAzMIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQA0eDXwzSjBaWTFcjg48QtsHGrcSJ4n++/EB76paBW8hfA1FQ3rGtZ0cVR5NPfS2+2R1sgqJz6LpGvh1LgXCV+DG8B+HpqSE7JjGaLrUhpN0GObyEmQzid4YISEqAcgXonh6l/F7C76QsSOjMQigVAxZUWk0Z7WVGi3zO+5eKAiFoztKSjgbgwgbUwIgYDVR0jAQH/BBgwFoAURTRfYSTjJP2uBQL8GaTkuNZZ/LAwIAYDVR0OAQH/BBYEFI0Kz6ICty/fnhYaFq4ckuNJoHSwMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMEkGA1UdHwEB/wQ/MD0wO6A5oDeGNWh0dHA6Ly9jcmwuaG1ja21jLmNvLmtyL0VDQy9Sb290Q0EwMDIvYXJsL0FybDFEcDEuY3JsMAoGCCqGSM49BAMEA4GLADCBhwJBAZ8WxHdQFXzR5MBbzBKrE0phkHxXNtg8ncDtusaBrCcMFLQYQUSzf1gmxcGHWGGhBEOwBpN5EU9ox7HQ6P0HYv4CQgEYx+Qu5VxjnsNkue8Xl9kaFdZp2wf5drmk67XcV7O4llCnWa/L45PS9CrpLp8qjxAQffjrqumYglJn45+EfYeO2A== +-----END CERTIFICATE----- \ No newline at end of file diff --git a/Projects/VPKI/VPKI/SubCA/hkmcrootca.pem b/Projects/VPKI/VPKI/SubCA/hkmcrootca.pem new file mode 100644 index 0000000..3b812c8 --- /dev/null +++ b/Projects/VPKI/VPKI/SubCA/hkmcrootca.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIBwTCCAWigAwIBAgIUCeUMZnQywRQfK13l7kWUsltWGOAwCgYIKoZIzj0EAwIw +PjELMAkGA1UEBhMCS1IxDTALBgNVBAoMBEhLTUMxDDAKBgNVBAsMA0VDQzESMBAG +A1UEAwwJUm9vdENBMDAxMCAXDTE5MDUwOTAwNDEwMFoYDzIxMDkwNTA5MjM1OTU5 +WjA+MQswCQYDVQQGEwJLUjENMAsGA1UECgwESEtNQzEMMAoGA1UECwwDRUNDMRIw +EAYDVQQDDAlSb290Q0EwMDEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR/ROoS +YMi4T9nJ+KGujVjnWWxHMy2+8TZ69QcfFqO5Rg0ipl7t9N1BQWj1BqfsYEjzCpQZ +9jppik7NeknLgZ9Io0IwQDAdBgNVHQ4EFgQUtb1h+pq4EbbZHRwPLC3Tw6oUP30w +DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwIDRwAw +RAIgPQ/HKZJI3cuz38yNJTrmlOz5vwB5QfAOU8lwk+7pmCoCIFMk1HQSpARINQH/ +Pm27xACoQY4OTElHcJ1EKOTOnIDp +-----END CERTIFICATE----- diff --git a/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_AccountDB/Context/VpkiAccountDbContext.cs b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_AccountDB/Context/VpkiAccountDbContext.cs new file mode 100644 index 0000000..39a8293 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_AccountDB/Context/VpkiAccountDbContext.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using Microsoft.EntityFrameworkCore; + +namespace DB.VPKI_AccountDB; + +public partial class VpkiAccountDbContext : DbContext +{ + public VpkiAccountDbContext() + { + } + + public VpkiAccountDbContext(DbContextOptions options) + : base(options) + { + } + + public virtual DbSet TRefreshTokens { get; set; } + + public virtual DbSet TRoles { get; set; } + + public virtual DbSet TUsers { get; set; } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) +#warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see https://go.microsoft.com/fwlink/?LinkId=723263. + => optionsBuilder.UseSqlServer("server=127.0.0.1; user id=VPKI; password=Kefico!@34; database=VPKI_AccountDB; TrustServerCertificate=true;"); + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.CAuid).HasName("PK__tRefresh__FBF0855408955D04"); + + entity.ToTable("tRefreshToken"); + + entity.Property(e => e.CAuid) + .HasMaxLength(250) + .HasColumnName("cAuid"); + entity.Property(e => e.CRefreshToken) + .HasMaxLength(1000) + .HasColumnName("cRefreshToken"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.CAuid).HasName("PK__tRole__FBF0855456FE2E20"); + + entity.ToTable("tRole"); + + entity.Property(e => e.CAuid) + .HasMaxLength(250) + .HasColumnName("cAuid"); + entity.Property(e => e.CRoleId).HasColumnName("cRoleID"); + entity.Property(e => e.CRoleName) + .HasMaxLength(20) + .HasColumnName("cRoleName"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.CUserId).HasName("PK__tUser__A75DC19A1C6A7C5E"); + + entity.ToTable("tUser"); + + entity.Property(e => e.CUserId) + .HasMaxLength(50) + .HasColumnName("cUserID"); + entity.Property(e => e.CAuid) + .HasMaxLength(250) + .HasColumnName("cAuid"); + entity.Property(e => e.CCreateDateTime).HasColumnName("cCreateDateTime"); + entity.Property(e => e.CLastLoginDateTime).HasColumnName("cLastLoginDateTime"); + entity.Property(e => e.CPasswordHashed) + .HasMaxLength(250) + .HasColumnName("cPasswordHashed"); + entity.Property(e => e.CState).HasColumnName("cState"); + }); + + OnModelCreatingPartial(modelBuilder); + } + + partial void OnModelCreatingPartial(ModelBuilder modelBuilder); +} diff --git a/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_AccountDB/Tables/TRefreshToken.cs b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_AccountDB/Tables/TRefreshToken.cs new file mode 100644 index 0000000..fa69a98 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_AccountDB/Tables/TRefreshToken.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; + +namespace DB.VPKI_AccountDB; + +public partial class TRefreshToken +{ + public string CAuid { get; set; } = null!; + + public string CRefreshToken { get; set; } = null!; +} diff --git a/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_AccountDB/Tables/TRole.cs b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_AccountDB/Tables/TRole.cs new file mode 100644 index 0000000..2595d68 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_AccountDB/Tables/TRole.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; + +namespace DB.VPKI_AccountDB; + +public partial class TRole +{ + public string CAuid { get; set; } = null!; + + public byte CRoleId { get; set; } + + public string CRoleName { get; set; } = null!; +} diff --git a/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_AccountDB/Tables/TUser.cs b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_AccountDB/Tables/TUser.cs new file mode 100644 index 0000000..2c3a5dc --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_AccountDB/Tables/TUser.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; + +namespace DB.VPKI_AccountDB; + +public partial class TUser +{ + public string CUserId { get; set; } = null!; + + public string CAuid { get; set; } = null!; + + public string CPasswordHashed { get; set; } = null!; + + public byte CState { get; set; } + + public DateTime CCreateDateTime { get; set; } + + public DateTime? CLastLoginDateTime { get; set; } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_DataDB/Context/VpkiDataDbContext.cs b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_DataDB/Context/VpkiDataDbContext.cs new file mode 100644 index 0000000..2a68408 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_DataDB/Context/VpkiDataDbContext.cs @@ -0,0 +1,162 @@ +using System; +using System.Collections.Generic; +using Microsoft.EntityFrameworkCore; + +namespace DB.VPKI_DataDB; + +public partial class VpkiDataDbContext : DbContext +{ + public VpkiDataDbContext() + { + } + + public VpkiDataDbContext(DbContextOptions options) + : base(options) + { + } + + public virtual DbSet TCertificates { get; set; } + + public virtual DbSet TOcsps { get; set; } + + public virtual DbSet TTbscsrs { get; set; } + + public virtual DbSet TVerifyResults { get; set; } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) +#warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see https://go.microsoft.com/fwlink/?LinkId=723263. + => optionsBuilder.UseSqlServer("server=127.0.0.1; user id=VPKI; password=Kefico!@34; database=VPKI_DataDB; TrustServerCertificate=true;"); + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.CCuid).HasName("PK__tCertifi__2AA00D94B11718A8"); + + entity.ToTable("tCertificate"); + + entity.Property(e => e.CCuid) + .ValueGeneratedNever() + .HasColumnName("cCuid"); + entity.Property(e => e.CBrandCode) + .HasMaxLength(20) + .HasColumnName("cBrandCode"); + entity.Property(e => e.CCert) + .HasMaxLength(2048) + .HasColumnName("cCert"); + entity.Property(e => e.CCsr) + .HasMaxLength(2048) + .HasColumnName("cCsr"); + entity.Property(e => e.CCsrsignature) + .HasMaxLength(1024) + .HasColumnName("cCsrsignature"); + entity.Property(e => e.CDateTime).HasColumnName("cDateTime"); + entity.Property(e => e.CIssueCount).HasColumnName("cIssueCount"); + entity.Property(e => e.CLocalCode) + .HasMaxLength(20) + .HasColumnName("cLocalCode"); + entity.Property(e => e.CMessage) + .HasMaxLength(250) + .HasColumnName("cMessage"); + entity.Property(e => e.CTierCode) + .HasMaxLength(20) + .HasColumnName("cTierCode"); + entity.Property(e => e.CUnitCode) + .HasMaxLength(20) + .HasColumnName("cUnitCode"); + entity.Property(e => e.CVehicleCode) + .HasMaxLength(20) + .HasColumnName("cVehicleCode"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.CCuid).HasName("PK__tOcsp__2AA00D941E2BA200"); + + entity.ToTable("tOcsp"); + + entity.Property(e => e.CCuid) + .ValueGeneratedNever() + .HasColumnName("cCuid"); + entity.Property(e => e.CDateTime).HasColumnName("cDateTime"); + entity.Property(e => e.COcsp).HasColumnName("cOcsp"); + entity.Property(e => e.CStatus) + .HasMaxLength(20) + .HasColumnName("cStatus"); + entity.Property(e => e.CVerify) + .HasMaxLength(20) + .HasColumnName("cVerify"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.CCuid).HasName("PK__tTbscsr__2AA00D94155F4FC3"); + + entity.ToTable("tTbscsr"); + + entity.Property(e => e.CCuid).HasColumnName("cCuid"); + entity.Property(e => e.CCertType) + .HasMaxLength(20) + .HasColumnName("cCertType"); + entity.Property(e => e.CDateTime).HasColumnName("cDateTime"); + entity.Property(e => e.CDc) + .HasMaxLength(20) + .HasColumnName("cDc"); + entity.Property(e => e.CDn) + .HasMaxLength(250) + .HasColumnName("cDn"); + entity.Property(e => e.CHashedTbscsr) + .HasMaxLength(1024) + .HasColumnName("cHashedTbscsr"); + entity.Property(e => e.CIdType) + .HasMaxLength(10) + .HasColumnName("cIdType"); + entity.Property(e => e.CIftid) + .HasMaxLength(100) + .HasColumnName("cIftid"); + entity.Property(e => e.CMacaddr) + .HasMaxLength(100) + .HasColumnName("cMacaddr"); + entity.Property(e => e.COriginTbscsr) + .HasMaxLength(4000) + .HasColumnName("cOriginTbscsr"); + entity.Property(e => e.CPcid) + .HasMaxLength(50) + .HasColumnName("cPcid"); + entity.Property(e => e.CPublickey) + .HasMaxLength(1024) + .HasColumnName("cPublickey"); + entity.Property(e => e.CSupplierId) + .HasMaxLength(10) + .HasColumnName("cSupplierId"); + entity.Property(e => e.CTierCode) + .HasMaxLength(20) + .HasColumnName("cTierCode"); + entity.Property(e => e.CUnitCode) + .HasMaxLength(20) + .HasColumnName("cUnitCode"); + entity.Property(e => e.CWmi) + .HasMaxLength(20) + .HasColumnName("cWmi"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.CCuid).HasName("PK__tVerifyR__2AA00D94A7EE4DE6"); + + entity.ToTable("tVerifyResult"); + + entity.Property(e => e.CCuid) + .ValueGeneratedNever() + .HasColumnName("cCuid"); + entity.Property(e => e.CResult) + .HasMaxLength(20) + .IsFixedLength() + .HasColumnName("cResult"); + }); + + OnModelCreatingPartial(modelBuilder); + } + + partial void OnModelCreatingPartial(ModelBuilder modelBuilder); +} diff --git a/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_DataDB/Tables/TCertificate.cs b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_DataDB/Tables/TCertificate.cs new file mode 100644 index 0000000..cdf32b4 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_DataDB/Tables/TCertificate.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; + +namespace DB.VPKI_DataDB; + +public partial class TCertificate +{ + public long CCuid { get; set; } + + public string CCsrsignature { get; set; } = null!; + + public string CTierCode { get; set; } = null!; + + public string CUnitCode { get; set; } = null!; + + public string CVehicleCode { get; set; } = null!; + + public string CLocalCode { get; set; } = null!; + + public string CBrandCode { get; set; } = null!; + + public string CCsr { get; set; } = null!; + + public string CCert { get; set; } = null!; + + public string CMessage { get; set; } = null!; + + public int CIssueCount { get; set; } + + public DateTime CDateTime { get; set; } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_DataDB/Tables/TOcsp.cs b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_DataDB/Tables/TOcsp.cs new file mode 100644 index 0000000..a64c1e0 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_DataDB/Tables/TOcsp.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; + +namespace DB.VPKI_DataDB; + +public partial class TOcsp +{ + public long CCuid { get; set; } + + public string CStatus { get; set; } = null!; + + public string CVerify { get; set; } = null!; + + public string? COcsp { get; set; } + + public DateTime CDateTime { get; set; } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_DataDB/Tables/TTbscsr.cs b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_DataDB/Tables/TTbscsr.cs new file mode 100644 index 0000000..e3c5cd2 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_DataDB/Tables/TTbscsr.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace DB.VPKI_DataDB; + +public partial class TTbscsr +{ + public long CCuid { get; set; } + + public string CIftid { get; set; } = null!; + + public string CMacaddr { get; set; } = null!; + + public string CWmi { get; set; } = null!; + + public string CIdType { get; set; } = null!; + + public string CSupplierId { get; set; } = null!; + + public string CDc { get; set; } = null!; + + public string CTierCode { get; set; } = null!; + + public string CUnitCode { get; set; } = null!; + + public string CPublickey { get; set; } = null!; + + public string CCertType { get; set; } = null!; + + public string COriginTbscsr { get; set; } = null!; + + public string CHashedTbscsr { get; set; } = null!; + + public string CPcid { get; set; } = null!; + + public string CDn { get; set; } = null!; + + public DateTime CDateTime { get; set; } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_DataDB/Tables/TVerifyResult.cs b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_DataDB/Tables/TVerifyResult.cs new file mode 100644 index 0000000..aedc795 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library.DB/DB/VPKI_DataDB/Tables/TVerifyResult.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; + +namespace DB.VPKI_DataDB; + +public partial class TVerifyResult +{ + public long CCuid { get; set; } + + public string CResult { get; set; } = null!; +} diff --git a/Projects/VPKI/VPKI/VPKI.Library.DB/VPKI.Library.DB.csproj b/Projects/VPKI/VPKI/VPKI.Library.DB/VPKI.Library.DB.csproj new file mode 100644 index 0000000..5b78381 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library.DB/VPKI.Library.DB.csproj @@ -0,0 +1,31 @@ + + + + net8.0 + enable + enable + + + + True + 1701;1702;1030 + + + + True + 1701;1702;1030 + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + diff --git a/Projects/VPKI/VPKI/VPKI.Library/Config/Model/Api.cs b/Projects/VPKI/VPKI/VPKI.Library/Config/Model/Api.cs new file mode 100644 index 0000000..a70ef3f --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Config/Model/Api.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; + +namespace VPKI.Library.Config.Model +{ + public class Api + { + [JsonPropertyName("ApiName")] + public string? ApiName { get; set; } + + [JsonPropertyName("Address")] + public string? Address { get; set; } + + [JsonPropertyName("Port")] + public int Port { get; set; } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Config/Model/Auth.cs b/Projects/VPKI/VPKI/VPKI.Library/Config/Model/Auth.cs new file mode 100644 index 0000000..33d9383 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Config/Model/Auth.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; + +namespace VPKI.Library.Config.Model +{ + public class Auth + { + //jwt common + [JsonPropertyName("issuer")] + public string? issuer { get; set; } + + [JsonPropertyName("audience")] + public string? audience { get; set; } + + //access token + [JsonPropertyName("accessTokenSecret")] + public string? accessTokenSecret { get; set; } + + [JsonPropertyName("accessTokenExpires")] + public uint? accessTokenExpires { get; set; } + + //refresh token + [JsonPropertyName("refreshTokenSecret")] + public string? refreshTokenSecret { get; set; } + + [JsonPropertyName("refreshTokenExpires")] + public uint? refreshTokenExpires { get; set; } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Config/Model/DataBase.cs b/Projects/VPKI/VPKI/VPKI.Library/Config/Model/DataBase.cs new file mode 100644 index 0000000..5584c8b --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Config/Model/DataBase.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; + +namespace VPKI.Library.Config.Model +{ + public class DataBase + { + [JsonPropertyName("IP")] + public string? IP { get; set; } + + [JsonPropertyName("Port")] + public int Port { get; set; } + + [JsonPropertyName("DBName")] + public string? DBName { get; set; } + + [JsonPropertyName("DBID")] + public int DBID { get; set; } + + [JsonPropertyName("DBContext")] + public string? DBContext { get; set; } + + [JsonPropertyName("UserID")] + public string? UserID { get; set; } + + [JsonPropertyName("Password")] + public string? Password { get; set; } + } +} \ No newline at end of file diff --git a/Projects/VPKI/VPKI/VPKI.Library/Config/Model/Openssl.cs b/Projects/VPKI/VPKI/VPKI.Library/Config/Model/Openssl.cs new file mode 100644 index 0000000..80a0d44 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Config/Model/Openssl.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; + +namespace VPKI.Library.Config.Model +{ + public class Openssl + { + [JsonPropertyName("Path")] + public string? Path { get; set; } + + [JsonPropertyName("SubCAPath")] + public string? SubCAPath { get; set; } + + [JsonPropertyName("SubCA")] + public SubCA? SubCA { get; set; } + + [JsonPropertyName("RootCA")] + public string? RootCA { get; set; } + } + + public class SubCA + { + [JsonPropertyName("prov_v1")] + public string? prov_v1 { get; set; } + + [JsonPropertyName("prov_cert")] + public string? prov_cert { get; set; } + + [JsonPropertyName("vehicle_cert")] + public string? vehicle_cert { get; set; } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Config/Model/Server.cs b/Projects/VPKI/VPKI/VPKI.Library/Config/Model/Server.cs new file mode 100644 index 0000000..b1a3fb6 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Config/Model/Server.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; + +namespace VPKI.Library.Config.Model +{ + public class Server + { + [JsonPropertyName("Address")] + public string? Address { get; set; } + + [JsonPropertyName("Port")] + public int Port { get; set; } + + [JsonPropertyName("IIS")] + public bool IIS { get; set; } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Config/WebApiConfig.cs b/Projects/VPKI/VPKI/VPKI.Library/Config/WebApiConfig.cs new file mode 100644 index 0000000..a7c048e --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Config/WebApiConfig.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; +using VPKI.Library.Config.Model; + +namespace VPKI.Library.Config +{ + public class WebApiConfig : WebCommonConfig + { + [JsonPropertyName("Api")] + public List? Api { get; set; } + + [JsonPropertyName("Auth")] + public Auth? Auth { get; set; } + + [JsonPropertyName("DataBase")] + public List? DataBase { get; set; } + + [JsonPropertyName("Openssl")] + public Openssl? Openssl { get; set; } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Config/WebClientConfig.cs b/Projects/VPKI/VPKI/VPKI.Library/Config/WebClientConfig.cs new file mode 100644 index 0000000..b21e0d1 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Config/WebClientConfig.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; +using VPKI.Library.Config.Model; + +namespace VPKI.Library.Config +{ + public class WebClientConfig : WebCommonConfig + { + [JsonPropertyName("Api")] + public List? Api { get; set; } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Config/WebCommonConfig.cs b/Projects/VPKI/VPKI/VPKI.Library/Config/WebCommonConfig.cs new file mode 100644 index 0000000..fcbe527 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Config/WebCommonConfig.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; +using VPKI.Library.Config.Model; + +namespace VPKI.Library.Config +{ + public class WebCommonConfig + { + [JsonPropertyName("Server")] + public Server Server { get; set; } = new(); + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Consts/Consts.cs b/Projects/VPKI/VPKI/VPKI.Library/Consts/Consts.cs new file mode 100644 index 0000000..f0dfd27 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Consts/Consts.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +public class Consts +{ + //vpki fixex value + public static readonly string VPKI_API = "VPKI.API"; + public static readonly string VPKI_API_VPKIRA = "VPKIRA"; + + //certificate fixed value + public static readonly string BEGIN_CERTIFICATE_REQUEST = "-----BEGIN CERTIFICATE_REQUEST-----"; + public static readonly string END_CERTIFICATE_REQUEST = "-----END CERTIFICATE_REQUEST-----"; + + public static readonly string BEGIN_CERTIFICATE = $"-----BEGIN CERTIFICATE-----"; + public static readonly string END_CERTIFICATE = $"-----END CERTIFICATE-----"; + + public static readonly string BEGIN_PUBLIC_KEY = $"-----BEGIN PUBLIC KEY-----"; + public static readonly string END_PUBLIC_KEY = $"-----END PUBLIC KEY-----"; +} \ No newline at end of file diff --git a/Projects/VPKI/VPKI/VPKI.Library/Enums/ECDSAType.cs b/Projects/VPKI/VPKI/VPKI.Library/Enums/ECDSAType.cs new file mode 100644 index 0000000..0b3efc7 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Enums/ECDSAType.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VPKI.Library.Enums +{ + public enum ECDSAType + { + NONEWITHECDSA = 1, + SHA256WITHECDSA = 2, + } + + public enum CurveName + { + secp256r1 = 0, + secp521r1 = 1, + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Enums/ErrorCode.cs b/Projects/VPKI/VPKI/VPKI.Library/Enums/ErrorCode.cs new file mode 100644 index 0000000..8955aad --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Enums/ErrorCode.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VPKI.Library.Enums +{ + public enum ERROR_CODE + { + //기본 에러 + EC_NONE = 0, + EC_OK = 1, + + //DB 관련 에러 + EC_DEFAULT_ERROR = 1000, + EC_DATABASE_ERROR = 1001, + + //유저 관련 에러 + EC_USER_REGISTER_FAILED = 2000, + EC_USER_REGISTER_EXIST = 2001, + EC_USER_REGISTER_CONFIRM_PASSWORD_ERROR = 2002, + + EC_USER_LOGIN_FAILED = 2100, + EC_USER_LOGIN_NOT_EXIST = 2101, + EC_USER_LOGIN_INVALID_PASSWORD = 2102, + EC_USER_LOGIN_INAVTIVE = 2103, + EC_USER_LOGIN_BLOCKED = 2104, + + EC_USER_LOGOUT_FAILED = 2200 + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Enums/StatusCode.cs b/Projects/VPKI/VPKI/VPKI.Library/Enums/StatusCode.cs new file mode 100644 index 0000000..c21f8b3 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Enums/StatusCode.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VPKI.Library.Enums +{ + //VPKI 응답 상태, API 문서 참고 + public enum Status + { + none = 0, + success = 1, + error = 2, + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Enums/UserRole.cs b/Projects/VPKI/VPKI/VPKI.Library/Enums/UserRole.cs new file mode 100644 index 0000000..b5ca981 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Enums/UserRole.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VPKI.Library.Enums +{ + //User 권한 + public enum UserRole : byte + { + None = 0, + Ananymous = 1, + + User = 10, + Admin = 11, + + SuperUser = 20, + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Enums/UserState.cs b/Projects/VPKI/VPKI/VPKI.Library/Enums/UserState.cs new file mode 100644 index 0000000..0d48b84 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Enums/UserState.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VPKI.Library.Enums +{ + public enum UserState: byte + { + Inactive = 0, + Active = 1, + Block = 2 + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Enums/VpkiType.cs b/Projects/VPKI/VPKI/VPKI.Library/Enums/VpkiType.cs new file mode 100644 index 0000000..ee1b10a --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Enums/VpkiType.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VPKI.Library.Enums +{ + public enum VpkiType + { + prov_v1 = 1, + prov_cert = 2, + vehicle_cert = 3, + + evcc_cert = 10, + } + + public enum VpkiIsoType + { + ISO15118_02 = 1, + ISO15118_20 = 2, + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/ExtendClass/LogModelExtend.cs b/Projects/VPKI/VPKI/VPKI.Library/ExtendClass/LogModelExtend.cs new file mode 100644 index 0000000..fe9e49d --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/ExtendClass/LogModelExtend.cs @@ -0,0 +1,25 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using VPKI.Library.Model; + +public static class LogModelExtend +{ + public static string LogModelToString(this LogModel log, string header = "") + { + string logString = string.Empty; + + if (string.IsNullOrEmpty(header) == false) + { + logString += $"{header}::"; + } + + logString += JsonConvert.SerializeObject(log, Formatting.Indented); + logString += Environment.NewLine; + + return logString; + } +} \ No newline at end of file diff --git a/Projects/VPKI/VPKI/VPKI.Library/ExtendClass/ObjectExtend.cs b/Projects/VPKI/VPKI/VPKI.Library/ExtendClass/ObjectExtend.cs new file mode 100644 index 0000000..88b0d63 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/ExtendClass/ObjectExtend.cs @@ -0,0 +1,35 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +public static class ObjectExtend +{ + public static string ToJson(this object obj) + { + string result = string.Empty; + try + { + result = JsonConvert.SerializeObject(obj, Formatting.Indented); + } + catch(Exception e) + { + result = e.Message.ToString(); + } + result += Environment.NewLine; + + return result; + } + + public static T? DeepCopy(this T obj) where T : class, new() + { + string originJson = obj.ToJson(); + T? clone = JsonConvert.DeserializeObject(originJson); + + return clone; + } +} + diff --git a/Projects/VPKI/VPKI/VPKI.Library/ExtendClass/StringExtend.cs b/Projects/VPKI/VPKI/VPKI.Library/ExtendClass/StringExtend.cs new file mode 100644 index 0000000..ca5f0a0 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/ExtendClass/StringExtend.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using System.Threading.Tasks; + +public static class StringExtend +{ + ///

+ /// String To SHA256 Hash Base64 + /// + public static string StringToSHA256Base64(this string str) + { + var hashedBytes = SHA256.HashData(Encoding.UTF8.GetBytes(str)); + var hashedString = Convert.ToBase64String(hashedBytes); + + return hashedString; + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Model/Auth/LoginModel.cs b/Projects/VPKI/VPKI/VPKI.Library/Model/Auth/LoginModel.cs new file mode 100644 index 0000000..feaa575 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Model/Auth/LoginModel.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using VPKI.Library.Enums; + +namespace VPKI.Library.Model +{ + //로그인 요청 모델 + public class LoginModel + { + [Required] + public string? UserID { get; set; } + + [Required] + public string? Password { get; set; } + } + + //로그인 응답 모델 + public class LoginResponseModel + { + public string? UserID { get; set; } + public UserRole Role { get; set; } + public string? RoleName { get; set; } + + public string? AccessToken { get; set; } + public long AccessTokenExpired { get; set; } + public string? RefreshToken { get; set; } + + public ERROR_CODE? EC { get; set; } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Model/Auth/LogoutModel.cs b/Projects/VPKI/VPKI/VPKI.Library/Model/Auth/LogoutModel.cs new file mode 100644 index 0000000..fcc854b --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Model/Auth/LogoutModel.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using VPKI.Library.Enums; + +namespace VPKI.Library.Model.Auth +{ + public class LogoutModel + { + [Required] + public string? UserID { get; set; } + } + + public class LogoutResponseModel + { + public string? UserID { get; set; } + + public ERROR_CODE? EC { get; set; } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Model/Auth/RegisterModel.cs b/Projects/VPKI/VPKI/VPKI.Library/Model/Auth/RegisterModel.cs new file mode 100644 index 0000000..843565a --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Model/Auth/RegisterModel.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using VPKI.Library.Enums; + +namespace VPKI.Library.Model +{ + //유저 등록 모델 + public class RegisterModel + { + [Required] + public string UserID { get; set; } = string.Empty; + + [Required] + public string Password { get; set; } = string.Empty; + + [Required] + public string PasswordConfirm { get; set; } = string.Empty; + + [Required] + public UserRole Role { get; set; } = UserRole.User; + } + + public class RegisterResponseModel + { + public string? UserID { get; set; } + public UserRole Role { get; set; } + public string? RoleName { get; set; } + + public ERROR_CODE? EC { get; set; } = ERROR_CODE.EC_USER_REGISTER_FAILED; + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Model/CertificateHistoryModel.cs b/Projects/VPKI/VPKI/VPKI.Library/Model/CertificateHistoryModel.cs new file mode 100644 index 0000000..133e478 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Model/CertificateHistoryModel.cs @@ -0,0 +1,18 @@ +using DB.VPKI_AccountDB; +using DB.VPKI_DataDB; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VPKI.Library.Model +{ + public class CertificateHistoryModel + { + public TTbscsr? TTbscsr { get; set; } + public TCertificate? TCertificate { get; set; } + public TVerifyResult? TVerifyResult { get; set; } + public TOcsp? TOcsp { get; set; } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Model/CsrCompleteModel.cs b/Projects/VPKI/VPKI/VPKI.Library/Model/CsrCompleteModel.cs new file mode 100644 index 0000000..e09210c --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Model/CsrCompleteModel.cs @@ -0,0 +1,34 @@ +using DB.VPKI_DataDB; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using System.Threading.Tasks; + +namespace VPKI.Library.Model +{ + public class CsrCompleteModel + { + public byte[]? Tbscsr { get; set; } + public byte[]? Signature { get; set; } + public Oid? SignatureAlgorithm { get; set; } + + public byte[] CreateCertificateRequest() + { + // TBSCsr, 서명 알고리즘, 서명 데이터를 결합하여 최종 CSR 포맷을 만든다. + var data = Encoding.ASCII.GetBytes($"{SignatureAlgorithm?.Value}"); + using (var ms = new MemoryStream()) + { + if (Tbscsr != null && Signature != null) + { + ms.Write(Tbscsr, 0, Tbscsr.Length); + ms.Write(Encoding.ASCII.GetBytes($"{SignatureAlgorithm?.Value}"), 0, data.Length); + ms.Write(Signature, 0, Signature.Length); + } + + return ms.ToArray(); + } + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Model/CsrHashedModel.cs b/Projects/VPKI/VPKI/VPKI.Library/Model/CsrHashedModel.cs new file mode 100644 index 0000000..101582e --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Model/CsrHashedModel.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VPKI.Library.Model +{ + public class CsrHashedModel + { + public string? SignedCsr { get; set; } = string.Empty; + public string? EncodedSignedCsr { get; set; } = string.Empty; + public bool Verify { get; set; } = false; + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Model/LogModel.cs b/Projects/VPKI/VPKI/VPKI.Library/Model/LogModel.cs new file mode 100644 index 0000000..d3f1207 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Model/LogModel.cs @@ -0,0 +1,19 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace VPKI.Library.Model +{ + public class LogModel + { + public string? ClientIP { get; set; } + public string? Method { get; set; } + public string? Action { get; set; } + public string? RequestUrl { get; set; } + public dynamic? Body { get; set; } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Model/UserModel.cs b/Projects/VPKI/VPKI/VPKI.Library/Model/UserModel.cs new file mode 100644 index 0000000..7f7b0c1 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Model/UserModel.cs @@ -0,0 +1,15 @@ +using DB.VPKI_AccountDB; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VPKI.Library.Model +{ + public class UserModel + { + public TUser? TUser { get; set; } + public TRole? TRole { get; set; } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Packet/CommonPacket.cs b/Projects/VPKI/VPKI/VPKI.Library/Packet/CommonPacket.cs new file mode 100644 index 0000000..ae3d7fc --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Packet/CommonPacket.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using VPKI.Library.Enums; + +namespace VPKI.Library.Packet +{ + public class CommonPacket + { + } + + //request + public class CommonPacketRequest : CommonPacket + { + } + + //response + public class CommonPacketResponse : CommonPacket + { + public string? status { get; set; } = Status.success.ToString(); + public string? message { get; set; } = string.Empty; + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Packet/OEMPacket.cs b/Projects/VPKI/VPKI/VPKI.Library/Packet/OEMPacket.cs new file mode 100644 index 0000000..7272502 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Packet/OEMPacket.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +//VPKI <-> OEM PKI(auto ever srver) +namespace VPKI.Library.Packet +{ + #region 인증서 발급/재발급 요청 (ISO15118-2/ISO15118-20) + public class Request_CertificateOEM : CommonPacketRequest + { + public string? csr { get; set; } + public string? unitCode { get; set; } + public string? tierCode { get; set; } + public string? vehicleCode { get; set; } + public string? localCode { get; set; } + public string? brandCode { get; set; } + } + + public class Response_CertificateOEM : CommonPacketResponse + { + public string? cert { get; set; } + public string? resultMessage { get; set; } + } + #endregion + + #region 인증서 폐기 요청 (ISO15118-2/ISO15118-20) + public class Request_CertificateRevokeOEM : CommonPacketRequest + { + public string dn { get; set; } = string.Empty; + } + + public class Response_CertificateRevokeOEM : CommonPacketResponse + { + } + #endregion +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Packet/VPKIPacket.cs b/Projects/VPKI/VPKI/VPKI.Library/Packet/VPKIPacket.cs new file mode 100644 index 0000000..a08b5ce --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Packet/VPKIPacket.cs @@ -0,0 +1,103 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +//client <-> vPKI(VPKI Server) +namespace VPKI.Library.Packet +{ + #region CSR 생성 요청 (ISO15118-2) + public class Request_Tbscsr : CommonPacketRequest + { + public string iftid { get; set; } = string.Empty; + public CnInfo cnInfo { get; set; } = new(); + public CertInfo certInfo { get; set; } = new(); + public string publickey { get; set; } = string.Empty; + + #region InnerClass + public class CnInfo + { + public string macaddr { get; set; } = string.Empty; + public string wmi { get; set; } = string.Empty; + public string idType { get; set; } = string.Empty; + public string supplierId { get; set; } = string.Empty; + } + + public class CertInfo + { + public string dc { get; set; } = string.Empty; + public string tierCode { get; set; } = string.Empty; + public string unitCode { get; set; } = string.Empty; + } + + public string certType { get; set; } = string.Empty; + #endregion + } + + public class Response_Tbscsr : CommonPacketResponse + { + public Data? data { get; set; } + + #region InnerClass + public class Data + { + public string? hashedtbscsr { get; set; } + public string? pcid { get; set; } + public string? evccid { get; set; } + } + #endregion + } + #endregion + + #region 인증서 발급 요청 (ISO15118-2/ISO15118-20) + public class Request_Certificate : CommonPacketRequest + { + public string? iftid { get; set; } + public string? csrsignature { get; set; } + public string? unitCode { get; set; } + public string? tierCode { get; set; } + public string? vehicleCode { get; set; } + public string? localCode { get; set; } + public string? brandCode { get; set; } + } + + public class Response_Certificate : CommonPacketResponse + { + public Data? data { get; set; } + + #region InnerClass + public class Data + { + public string? leafcertificate { get; set; } + public string? subcacertificate { get; set; } + } + #endregion + } + #endregion + + #region 인증서 검증 결과 전송 (ISO15118-2/ISO15118-20) + public class Request_Verifyresult : CommonPacketRequest + { + public string? iftid { get; set; } + public string? pcid { get; set; } + public string? result { get; set; } + } + + public class Response_Verifyresult : CommonPacketResponse + { + public Data? data { get; set; } + + #region InnerClass + public class Data + { + public string? iftid { get; set; } + public string? pcid{ get; set; } + public string? ift_result{ get; set; } + public string? server_result{ get; set; } + } + #endregion + } + #endregion + +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Services/CertificateService.cs b/Projects/VPKI/VPKI/VPKI.Library/Services/CertificateService.cs new file mode 100644 index 0000000..0d9f51a --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Services/CertificateService.cs @@ -0,0 +1,960 @@ +using Azure.Core; +using DB.VPKI_DataDB; +using DocumentFormat.OpenXml.Bibliography; +using DocumentFormat.OpenXml.Office2016.Excel; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Internal; +using Microsoft.IdentityModel.Tokens; +using Newtonsoft.Json; +using Org.BouncyCastle.Asn1; +using Org.BouncyCastle.Asn1.IsisMtt.Ocsp; +using Org.BouncyCastle.Asn1.Nist; +using Org.BouncyCastle.Asn1.Ocsp; +using Org.BouncyCastle.Asn1.Pkcs; +using Org.BouncyCastle.Asn1.Sec; +using Org.BouncyCastle.Asn1.X509; +using Org.BouncyCastle.Asn1.X9; +using Org.BouncyCastle.Bcpg.OpenPgp; +using Org.BouncyCastle.Cms; +using Org.BouncyCastle.Crypto; +using Org.BouncyCastle.Crypto.Agreement; +using Org.BouncyCastle.Crypto.Generators; +using Org.BouncyCastle.Crypto.Operators; +using Org.BouncyCastle.Crypto.Parameters; +using Org.BouncyCastle.Crypto.Signers; +using Org.BouncyCastle.Math; +using Org.BouncyCastle.Math.EC; +using Org.BouncyCastle.Ocsp; +using Org.BouncyCastle.OpenSsl; +using Org.BouncyCastle.Pkcs; +using Org.BouncyCastle.Pqc.Asn1; +using Org.BouncyCastle.Pqc.Crypto; +using Org.BouncyCastle.Pqc.Crypto.Lms; +using Org.BouncyCastle.Security; +using Org.BouncyCastle.Tls; +using Org.BouncyCastle.Utilities.IO.Pem; +using Org.BouncyCastle.X509; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Formats.Asn1; +using System.Linq; +using System.Security.AccessControl; +using System.Security.Cryptography; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.Xml.Linq; +using VPKI.Library.Config; +using VPKI.Library.Enums; +using VPKI.Library.Model; +using VPKI.Library.Packet; + +namespace VPKI.Library.Services +{ + public class CertificateService : CommonService + { + private Dictionary WordMap = new Dictionary(); + + private readonly int PublicKey256Length = 66; + private readonly int PublicKey256Offset = 25; + + private readonly int PublickKey512Length = 134; + private readonly int PublickKey512Offset = 24; + + public CertificateService() + { + InitMapTable(); + } + + /// + /// sha256 base64 + /// + public string CreateCsr256(string dn, string publicKey) + { + string csrBase64 = string.Empty; + + try + { + using (ECDsa ecdsa = ECDsa.Create(System.Security.Cryptography.ECCurve.NamedCurves.nistP256)) + { + //load public key + var publicKeyPem = ConvertToPEM(Convert.FromBase64String(publicKey)); + Log4net.WriteLine($"Input Public Key (Base64): {publicKey}", LogType.Info); + Log4net.WriteLine($"Input Public Key Pem (Base64): {publicKeyPem}", LogType.Debug); + + //create csr + X500DistinguishedName subjectName = new X500DistinguishedName(dn); + var csrRequest = new System.Security.Cryptography.X509Certificates.CertificateRequest(subjectName, ecdsa, HashAlgorithmName.SHA256); + + byte[] csrBytes = csrRequest.CreateSigningRequest(); + byte[] publicKeyArr = Convert.FromBase64String(publicKeyPem); + + //input public key + int startOffset = 0; + for(int i = 2; i < csrBytes.Length - 2 ; i++) + { + if (csrBytes[i - 2] == 3 && csrBytes[i - 1] == 66 && csrBytes[i] == 0 && csrBytes[i + 1] == 4) + { + startOffset = i; + break; + } + } + + for (int i = 0; i < PublicKey256Length; i++) + { + csrBytes[i + startOffset] = publicKeyArr[i + PublicKey256Offset]; + } + Asn1Sequence sequence = (Asn1Sequence)Asn1Object.FromByteArray(csrBytes); + + var writer = new AsnWriter(AsnEncodingRules.DER); + writer.WriteEncodedValue(sequence[0].GetEncoded()); + + //csr origin + csrBase64 = Convert.ToBase64String(writer.Encode()); + + Log4net.WriteLine($"Origin CSR (Base64): {csrBase64}", LogType.Debug); + } + } + catch (Exception e) + { + Log4net.WriteLine(e); + } + + return csrBase64; + } + + /// + /// sha256 base64 + /// + public string CreateCsr512(string dn, string publicKey) + { + string csrBase64 = string.Empty; + + try + { + using (ECDsa ecdsa = ECDsa.Create(System.Security.Cryptography.ECCurve.NamedCurves.nistP521)) + { + //load public key + var publicKeyPem = ConvertToPEM(Convert.FromBase64String(publicKey)); + Log4net.WriteLine($"Input Public Key (Base64): {publicKey}", LogType.Info); + Log4net.WriteLine($"Input Public Key Pem (Base64): {publicKeyPem}", LogType.Debug); + + //create csr + X500DistinguishedName subjectName = new X500DistinguishedName(dn); + var csrRequest = new System.Security.Cryptography.X509Certificates.CertificateRequest(subjectName, ecdsa, HashAlgorithmName.SHA256); + + byte[] csrBytes = csrRequest.CreateSigningRequest(); + byte[] publicKeyArr = Convert.FromBase64String(publicKeyPem); + + //input public key + int startOffset = 0; + for (int i = 2; i < csrBytes.Length - 2; i++) + { + if (csrBytes[i - 2] == 129 && csrBytes[i - 1] == 134 && csrBytes[i] == 0 && csrBytes[i + 1] == 4) + { + startOffset = i; + break; + } + } + + for (int i = 0; i < PublickKey512Length; i++) + { + csrBytes[i + startOffset] = publicKeyArr[i + PublickKey512Offset]; + } + + Asn1Sequence sequence = (Asn1Sequence)Asn1Object.FromByteArray(csrBytes); + + var writer = new AsnWriter(AsnEncodingRules.DER); + writer.WriteEncodedValue(sequence[0].GetEncoded()); + //csr origin + csrBase64 = Convert.ToBase64String(writer.Encode()); + + Log4net.WriteLine($"Origin CSR (Base64): {csrBase64}", LogType.Debug); + } + } + catch (Exception e) + { + Log4net.WriteLine(e); + } + + return csrBase64; + } + + public AsymmetricKeyParameter LoadPublicKey(string publicKeyPem) + { + using (StringReader reader = new StringReader(publicKeyPem)) + { + var pemObje = (AsymmetricKeyParameter)new Org.BouncyCastle.OpenSsl.PemReader(reader).ReadObject(); + return pemObje; + } + } + + /// + /// pcid + /// + public string CreatePCID(Request_Tbscsr request, VpkiType vpkiType) + { + string pcid = string.Empty; + + switch(vpkiType) + { + case VpkiType.prov_v1: + pcid = CreatePCIDV1(request); + break; + case VpkiType.prov_cert: + pcid = CreatePCIDV2Prov(request); + break; + case VpkiType.vehicle_cert: + pcid = CreatePCIDV2Vehicle(request); + break; + } + + return pcid; + } + + private string CreatePCIDV1(Request_Tbscsr request) + { + var wmi = $"{request?.cnInfo?.wmi}"; + var idType = $"{request?.cnInfo?.idType}"; + var supplierId = $"{request?.cnInfo?.supplierId}"; + + string strMacEnc = EncodeMacAddress($"{request?.cnInfo?.macaddr}"); + string strCvVal = ConvertNotation(strMacEnc); + + string strIDVal = wmi + idType + supplierId + strCvVal; + string strValueString = GeneratePCID(strIDVal); + + return strValueString; + } + + private string CreatePCIDV2Prov(Request_Tbscsr request) + { + var wmi = $"{request?.cnInfo?.wmi}"; + var idType = $"{request?.cnInfo?.idType}"; + var supplierId = $"{request?.cnInfo?.supplierId}"; + + string strMacEnc = EncodeMacAddress($"{request?.cnInfo?.macaddr}"); + string strCvVal = ConvertNotation(strMacEnc); + + string strSID = (Convert.ToInt32(supplierId) + 1).ToString(); + string strIDVal = wmi + idType + strSID + strCvVal; + string strValueString = GeneratePCID(strIDVal); + + return strValueString; + } + private string CreatePCIDV2Vehicle(Request_Tbscsr request) + { + var wmi = $"{request?.cnInfo?.wmi}"; + var idType = $"{request?.cnInfo?.idType}"; + var supplierId = $"{request?.cnInfo?.supplierId}"; + + string strMacEnc = EncodeMacAddress($"{request?.cnInfo?.macaddr}"); + string strCvVal = ConvertNotation(strMacEnc); + + string strIDVal = wmi + idType + supplierId + "00" + strCvVal; + string strValueString = GeneratePCID(strIDVal); + + return strValueString; + } + + string GetChecksumString(string strInput) + { + List vnCheckUnit = new List(); + + for (int i = 0; i < strInput.Length; i++) + { + char cVal = strInput.ElementAt(i); + int nVal = Convert.ToInt32(cVal.ToString()); + //Console.WriteLine(nVal); + long nFactor = Convert.ToInt64(Math.Pow(2, i)); + + vnCheckUnit.Add(nVal * nFactor); + } + + long nSum = vnCheckUnit.Sum(); + + return nSum.ToString(); + } + + string GeneratePCID(string strIDVal) + { + string strValueString = string.Empty; + + foreach (char cVal in strIDVal.ToArray()) + strValueString += WordMap[cVal]; + + int nLengthStr = strValueString.Length; + string strChecksumStr = GetChecksumString(strValueString); + long nModuloCRC11 = Convert.ToInt64(strChecksumStr) % 11; + + if (nModuloCRC11 == 10) + strIDVal = strIDVal + "X"; + else + strIDVal = strIDVal + nModuloCRC11.ToString(); + + return strIDVal; + } + + string ConvertNotation(string strHexValue) + { + string strOriginVal = strHexValue; + string strNewVal = string.Empty; + + if (strOriginVal.Length % 2 > 0) + strOriginVal = "0" + strOriginVal; + + List vstrNewVals = new List(); + + for (int i = 0; i < strOriginVal.Length - 1; i = i + 2) + { + string strHexUnit = strOriginVal.Substring(i, 2); + int nVal = int.Parse(strHexUnit, System.Globalization.NumberStyles.HexNumber); + string strTHVal = ConvertBase(nVal, 32); + + vstrNewVals.Add(strTHVal); + } + + foreach (string strUnit in vstrNewVals) + strNewVal += strUnit; + + return strNewVal; + } + + private string ConvertBase(int nVal, int nBase) + { + string strVal = string.Empty; + int k = nVal / nBase; + int nRest = (nVal % nBase); + + strVal = nRest.ToString() + strVal; // 나머지를 뒤로 이동     + + if (k >= nBase) + ConvertBase(k, nBase); // 나눌게 있다면? 재귀함수     + else + { + if (nRest >= 10 && nRest < nBase) + strVal = (Convert.ToChar(55 + nRest)).ToString(); + + strVal = k.ToString() + strVal; // 나눌게 없다면 ? 몫} + } + + return strVal; + } + + public string EncodeMacAddress(string strMacID) + { + List vnMacAddr = StringToByteArray(strMacID).ToList(); + List vnMacAddrEnc = (from nUnit in vnMacAddr let nEnc = Convert.ToByte(nUnit ^ 0xFF) select nEnc).ToList(); + + string strEncMacID = ByteArrayToHexString(vnMacAddrEnc.ToArray()); + + return strEncMacID; + } + + public string ByteArrayToHexString(byte[] bytearray) + { + string hex = BitConverter.ToString(bytearray); + hex = hex.Replace("-", ""); + return hex; + } + + public byte[] StringToByteArray(string str) + { + int length = str.Length / 2; // 짝수일 경우만 고려함 --> 홀수의 경우 어떻게 자를지 고민해야 할듯(필요없을 수도) + byte[] byteArray = new byte[length]; + + for (int i = 0; i < length; i++) + { + string strUnit = str.Substring(i * 2, 2); + byteArray[i] = Convert.ToByte(strUnit, 16); + } + return byteArray; + } + + void InitMapTable() + { + WordMap.Add('0', "0"); + WordMap.Add('1', "1"); + WordMap.Add('2', "2"); + WordMap.Add('3', "3"); + WordMap.Add('4', "4"); + WordMap.Add('5', "5"); + WordMap.Add('6', "6"); + WordMap.Add('7', "7"); + WordMap.Add('8', "8"); + WordMap.Add('9', "9"); + WordMap.Add('A', "10"); + WordMap.Add('B', "11"); + WordMap.Add('C', "12"); + WordMap.Add('D', "13"); + WordMap.Add('E', "14"); + WordMap.Add('F', "15"); + WordMap.Add('G', "16"); + WordMap.Add('H', "17"); + WordMap.Add('I', "18"); + WordMap.Add('J', "19"); + WordMap.Add('K', "20"); + WordMap.Add('L', "21"); + WordMap.Add('M', "22"); + WordMap.Add('N', "23"); + WordMap.Add('O', "24"); + WordMap.Add('P', "25"); + WordMap.Add('Q', "26"); + WordMap.Add('R', "27"); + WordMap.Add('S', "28"); + WordMap.Add('T', "29"); + WordMap.Add('U', "30"); + WordMap.Add('V', "31"); + WordMap.Add('W', "32"); + WordMap.Add('X', "33"); + WordMap.Add('Y', "34"); + WordMap.Add('Z', "35"); + } + + #region MacAddress Decode + private string DecodeMacAddress(string macAddress) + { + var decodeByteArray = HexStringToByteArray(macAddress); + List vnMacAddrEnc = + (from nUnit in decodeByteArray let nEnc = Convert.ToByte(nUnit ^ 0xFF) select nEnc).ToList(); + + string macAddressHexString = ByteArrayToHexString(vnMacAddrEnc.ToArray()); + + return macAddressHexString; + } + + private byte[] HexStringToByteArray(string str) + { + int length = str.Length / 2; + byte[] byteArray = new byte[length]; + + for (int i = 0; i < length; i++) + { + string strUnit = str.Substring(i * 2, 2); + byteArray[i] = Convert.ToByte(strUnit, 16); + } + return byteArray; + } + + #endregion + + #region BouncyCastle + public AsymmetricCipherKeyPair GenerateBouncyCastleKeyPairECDH(string curveName) + { + ECKeyPairGenerator gen = new ECKeyPairGenerator("ECDSA"); + SecureRandom rndSecure = new SecureRandom(); + + X9ECParameters ecp = SecNamedCurves.GetByName($"{curveName}"); + ECDomainParameters ecSpec = new ECDomainParameters(ecp.Curve, ecp.G, ecp.N, ecp.H, ecp.GetSeed()); + ECKeyGenerationParameters ecgp = new ECKeyGenerationParameters(ecSpec, rndSecure); + + gen.Init(ecgp); + + AsymmetricCipherKeyPair eckp = gen.GenerateKeyPair(); + ECPublicKeyParameters ecPub = (ECPublicKeyParameters)eckp.Public; + ECPrivateKeyParameters ecPri = (ECPrivateKeyParameters)eckp.Private; + + byte[] publicKeyBytes = ecPub.Q.GetEncoded(); + byte[] privateKey = ecPri.D.ToByteArrayUnsigned(); + string strValue = GetKeyString(publicKeyBytes.ToList()); + + return eckp; + } + + public string GetKeyString(List vnData) + { + string strResult = string.Empty; + + for (int i = 0; i < vnData.Count; i++) + strResult += Convert.ToChar(vnData[i]).ToString(); + + int nLen = strResult.Length; + + return strResult; + } + + public List GetKeyArray(string strKey) + { + List vstrResult = new List(); + + for (int i = 0; i < strKey.Length; i++) + vstrResult.Add(Convert.ToByte(strKey[i])); + + return vstrResult; + } + + public List? GetPublicKeyArrayBC(ECPublicKeyParameters? pubKey) + { + if (pubKey != null) + { + byte[] publicKeyBytes = pubKey.Q.GetEncoded(); + List vnX = pubKey.Q.AffineXCoord.GetEncoded().ToList(); + List vnY = pubKey.Q.AffineYCoord.GetEncoded().ToList(); + + return publicKeyBytes.ToList(); + } + + return null; + } + + public List? GetPrivateKeyArrayBC(ECPrivateKeyParameters? ecPri) + { + if (ecPri != null) + { + byte[] privateKey = ecPri.D.ToByteArrayUnsigned(); + + return privateKey.ToList(); + } + + return null; + } + + public ECPublicKeyParameters? GetPublicKeyBC(AsymmetricCipherKeyPair? keyPair) + { + if (keyPair != null) + { + ECPublicKeyParameters ecPub = (ECPublicKeyParameters)keyPair.Public; + return ecPub; + } + + return null; + } + + public ECPrivateKeyParameters? GetPrivateKeyBC(AsymmetricCipherKeyPair? keyPair) + { + if (keyPair != null) + { + ECPrivateKeyParameters ecPri = (ECPrivateKeyParameters)keyPair.Private; + return ecPri; + } + return null; + } + + public string GetKeyBase64Encrypted(List keyValue) + { + List publicKey = keyValue; + string strKey = GetKeyString(publicKey); + int nOrgKeyLen = strKey.Length; + + string strEnc64Val = Convert.ToBase64String(publicKey.ToArray()); + + return strEnc64Val; + } + + public List GetKeyDecrypted(string strEncKey) + { + string strResult = string.Empty; + List vnStrDecKey = Convert.FromBase64String(strEncKey).ToList(); + string strStrDecKey = GetKeyString(vnStrDecKey); + + int nOutLength = 0; + List vnDerDecKey = AsnDecoder.ReadIntegerBytes(vnStrDecKey.ToArray(), AsnEncodingRules.DER, out nOutLength).ToArray().ToList(); + string strDerDecKey = GetKeyString(vnDerDecKey); + + List derDecStr = GetKeyArray(strDerDecKey); + + return derDecStr; + } + + public CsrHashedModel SignHashed02(string? csr, AsymmetricCipherKeyPair? keyPair) + { + CsrHashedModel hashedCsr = new CsrHashedModel(); + + if (string.IsNullOrWhiteSpace(csr)) + return hashedCsr; + + List vnRHashVal = Convert.FromBase64String(csr).ToList(); + List vnSignedHash = GetBouncyCastleECDSASignedHashKey(vnRHashVal, GetPrivateKeyBC(keyPair), ECDSAType.SHA256WITHECDSA); + List vnDEREncVal = EncodeDERSignature_02(vnSignedHash); + bool bVerfRst = VerifyHashBC(vnSignedHash, vnRHashVal, GetPublicKeyBC(keyPair), ECDSAType.SHA256WITHECDSA); + + hashedCsr.SignedCsr = GetKeyBase64Encrypted(vnSignedHash); + hashedCsr.EncodedSignedCsr = GetKeyBase64Encrypted(vnDEREncVal); + hashedCsr.Verify = bVerfRst; + + var decoded = DecodeDERSignature_02(vnDEREncVal); + + return hashedCsr; + } + + public CsrHashedModel SignHashed20(string? csr, AsymmetricCipherKeyPair? keyPair) + { + CsrHashedModel hashedCsr = new CsrHashedModel(); + + if (string.IsNullOrWhiteSpace(csr)) + return hashedCsr; + + List vnRHashVal = Convert.FromBase64String(csr).ToList(); + List vnSignedHash = GetBouncyCastleECDSASignedHashKey(vnRHashVal, GetPrivateKeyBC(keyPair), ECDSAType.NONEWITHECDSA); + List vnDEREncVal = EncodeDERSignature_20(vnSignedHash); + bool bVerfRst = VerifyHashBC(vnSignedHash, vnRHashVal, GetPublicKeyBC(keyPair), ECDSAType.NONEWITHECDSA); + + hashedCsr.SignedCsr = GetKeyBase64Encrypted(vnSignedHash); + hashedCsr.EncodedSignedCsr = GetKeyBase64Encrypted(vnDEREncVal); + hashedCsr.Verify = bVerfRst; + + return hashedCsr; + } + + public List GetBouncyCastleECDSASignedHashKey(List vnRHashVal, ECPrivateKeyParameters? priKey, ECDSAType ecdsaType) + { + var signer = new ECDsaSigner(); + + signer.Init(true, priKey); + + var anSign = signer.GenerateSignature(vnRHashVal.ToArray()); + byte[] signatureBytes = ConvertSignatureToByteArray(anSign); + return signatureBytes.ToList(); + } + + byte[] ConvertSignatureToByteArray(BigInteger[] signature) + { + // 서명은 r과 s 값으로 이루어져 있습니다. + byte[] rBytes = signature[0].ToByteArrayUnsigned(); // r 값 + byte[] sBytes = signature[1].ToByteArrayUnsigned(); // s 값 + + // r과 s를 DER 형식으로 결합 + var seq = new DerSequence(new DerInteger(signature[0]), new DerInteger(signature[1])); + + return seq.GetEncoded(); // DER 인코딩된 byte[] 반환 + } + + public List EncodeDERSignature_02(List signature) + { + List resultData = new List(); + byte[] r = new byte[32]; + byte[] s = new byte[32]; + + int lengthOfR = signature[3]; + + int lengthOfS = signature[lengthOfR + 5]; + + if (lengthOfR == 33) + r = signature.GetRange(5, lengthOfR - 1).ToArray(); + else if (lengthOfR == 32) + r = signature.GetRange(4, lengthOfR).ToArray(); + else + { + List rawData = signature.GetRange(4, lengthOfR); + + for (int nBI = 32 - lengthOfR; nBI < lengthOfR; nBI++) + r[nBI] = rawData[nBI - 32 + lengthOfR]; + } + + if (lengthOfS == 33) + s = signature.GetRange(lengthOfR + 7, lengthOfS - 1).ToArray(); + else if (lengthOfS == 32) + s = signature.GetRange(lengthOfR + 6, lengthOfS).ToArray(); + else + { + List rawData = signature.GetRange(lengthOfR + 6, lengthOfS); + + for (int nBI = 32 - lengthOfS; nBI < lengthOfS; nBI++) + s[nBI] = rawData[nBI - 32 + lengthOfS]; + } + + resultData.AddRange(r); + resultData.AddRange(s); + + return resultData; + } + + public List DecodeDERSignature_02(List signature) + { + List> decodeData = new List>(); + + List r = signature.GetRange(0, 32); + List s = signature.GetRange(32, 32); + + for (int i = 0; i < 4; i++) + { + List caseData = new List(); + + //header 고정값 1자리 + caseData.Add(48); + + if (i == 0) + { + caseData.Add(68); + + caseData.Add(2); + caseData.Add(32); + caseData.AddRange(r); + + caseData.Add(2); + caseData.Add(32); + caseData.AddRange(s); + } + if (i == 1) + { + caseData.Add(69); + + caseData.Add(2); + caseData.Add(32); + caseData.AddRange(r); + + caseData.Add(2); + caseData.Add(33); + caseData.Add(0); + caseData.AddRange(s); + } + if (i == 2) + { + caseData.Add(69); + + caseData.Add(2); + caseData.Add(33); + caseData.Add(0); + caseData.AddRange(r); + + caseData.Add(2); + caseData.Add(32); + caseData.AddRange(s); + } + if (i == 3) + { + caseData.Add(70); + + caseData.Add(2); + caseData.Add(33); + caseData.Add(0); + caseData.AddRange(r); + + caseData.Add(2); + caseData.Add(33); + caseData.Add(0); + caseData.AddRange(s); + + + } + decodeData.Add(caseData.ToList()); + } + + return decodeData.Last(); + } + + public bool VerifyHashBC(List signedHash, List unsignedHash, ECPublicKeyParameters? publicKey, ECDSAType ecdsaType) + { + ISigner signer = SignerUtilities.GetSigner($"{ecdsaType.ToString()}"); + List vnRHashVal = unsignedHash; + + signer.Init(false, publicKey); + signer.BlockUpdate(vnRHashVal.ToArray(), 0, vnRHashVal.Count); + + bool bResult = signer.VerifySignature(signedHash.ToArray()); + + return bResult; + } + + public List GetKeyBase64Decrypted(string strKey) + { + List vnKey = Convert.FromBase64String(strKey).ToList(); + + return vnKey; + } + + public List EncodeDERSignature_20(List signature) + { + List resultData = new List(); + List r = new List(66); + List s = new List(66); + + int lengthOfR = signature[4]; + int lengthOfS = signature[lengthOfR + 6]; + + if (lengthOfR == 66) + r.AddRange(signature.GetRange(5, lengthOfR)); + else if (lengthOfR == 65) + { + r.Add(00); + r.AddRange(signature.GetRange(5, lengthOfR)); + } + + + if (lengthOfS == 66) + s.AddRange(signature.GetRange(lengthOfR + 7, lengthOfS)); + else if (lengthOfS == 65) + { + s.Add(00); + s.AddRange(signature.GetRange(lengthOfR + 7, lengthOfS)); + } + + resultData.AddRange(r); + resultData.AddRange(s); + + return resultData; + } + + public List DecodeDERSignature_20(List signature) + { + List> decodeData = new List>(); + + List r = signature.GetRange(0, 66); + List s = signature.GetRange(66, 66); + + for(int i = 0 ; i < 4 ; i++) + { + List caseData = new List(); + + //header 고정값 2자리 + caseData.Add(48); + caseData.Add(129); + + if (i == 0) + { + caseData.Add(134); + caseData.Add(2); + caseData.Add(65); + caseData.AddRange(r.GetRange(1, 65)); + + caseData.Add(2); + caseData.Add(65); + caseData.AddRange(s.GetRange(1, 65)); + } + else if (i == 1) + { + caseData.Add(135); + caseData.Add(2); + caseData.Add(65); + caseData.AddRange(r.GetRange(1,65)); + + caseData.Add(2); + caseData.Add(66); + caseData.AddRange(s); + } + else if(i == 2) + { + caseData.Add(135); + caseData.Add(2); + caseData.Add(66); + caseData.AddRange(r); + + caseData.Add(2); + caseData.Add(65); + caseData.AddRange(s.GetRange(1,65)); + } + else if (i == 3) + { + caseData.Add(136); + caseData.Add(2); + caseData.Add(66); + caseData.AddRange(r); + + caseData.Add(2); + caseData.Add(66); + caseData.AddRange(s); + } + + decodeData.Add(caseData); + } + + return decodeData.Last(); + } + + #endregion + + #region CRC16 + private ushort[] CRCTable = + { + 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, + 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, + 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, + 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de, + 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485, + 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d, + 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4, + 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, + 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823, + 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b, + 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12, + 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a, + 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41, + 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49, + 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70, + 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78, + 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f, + 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067, + 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e, + 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256, + 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d, + 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, + 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c, + 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634, + 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab, + 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3, + 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a, + 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92, + 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, + 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1, + 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, + 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0 + }; + + //==========================================================================// + + public List MakeCRC16_CCIT(List bytes, int ilen) + { + int icrc = 0xFFFF; + + for (int i = 0; i < ilen; i++) + { + icrc = (ushort)((icrc << 8) ^ CRCTable[((icrc >> 8) ^ (bytes[i]) & 0xFF)]); + } + + List ret = BitConverter.GetBytes(icrc).ToList(); + + return ret; + } + #endregion + + public string ConvertToPEM(byte[] rawPublicKey) + { + if (rawPublicKey.Count() > 65) + { + // ECDSA 공개키를 X.509 형식으로 변환 + var ecParameters = new ECParameters + { + Q = new System.Security.Cryptography.ECPoint + { + X = rawPublicKey.Skip(1).Take(66).ToArray(), // X 좌표 (66바이트) + Y = rawPublicKey.Skip(67).Take(132).ToArray() // Y 좌표 (66바이트) + }, + Curve = System.Security.Cryptography.ECCurve.NamedCurves.nistP521 + }; + + using (var ecdsa = ECDsa.Create(ecParameters)) + { + // 공개키를 X.509 형식으로 변환 + byte[] x509PublicKey = ecdsa.ExportSubjectPublicKeyInfo(); + + // PEM 형식으로 변환 + return Convert.ToBase64String(x509PublicKey); + } + } + else + { + // ECDSA 공개키를 X.509 형식으로 변환 + var ecParameters = new ECParameters + { + Q = new System.Security.Cryptography.ECPoint + { + X = rawPublicKey.Skip(1).Take(32).ToArray(), // X 좌표 (32바이트) + Y = rawPublicKey.Skip(33).Take(32).ToArray() // Y 좌표 (32바이트) + }, + Curve = System.Security.Cryptography.ECCurve.NamedCurves.nistP256 + }; + + using (var ecdsa = ECDsa.Create(ecParameters)) + { + // 공개키를 X.509 형식으로 변환 + byte[] x509PublicKey = ecdsa.ExportSubjectPublicKeyInfo(); + + // PEM 형식으로 변환 + return Convert.ToBase64String(x509PublicKey); + } + } + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Services/CommonService.cs b/Projects/VPKI/VPKI/VPKI.Library/Services/CommonService.cs new file mode 100644 index 0000000..1177f43 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Services/CommonService.cs @@ -0,0 +1,18 @@ +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace VPKI.Library.Services +{ + public class CommonService + { + public CommonService() + { + } + + }//end class +}//end namespace diff --git a/Projects/VPKI/VPKI/VPKI.Library/Services/ConfigService.cs b/Projects/VPKI/VPKI/VPKI.Library/Services/ConfigService.cs new file mode 100644 index 0000000..516e3dc --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Services/ConfigService.cs @@ -0,0 +1,39 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using VPKI.Library.Config; + +namespace VPKI.Library.Services +{ + public class ConfigService where T : WebCommonConfig + { + public static T? Config { get; set; } + + public bool OpenConfig(string path) + { + bool result = true; + + try + { + string clientConfigJson = File.ReadAllText(path); + Config = JsonConvert.DeserializeObject(clientConfigJson); + } + catch (Exception e) + { + Console.WriteLine("Config Init Error"); + Console.WriteLine(e.Message); + result = false; + } + + return result; + } + + public T? GetConfig() + { + return Config; + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Services/HttpService.cs b/Projects/VPKI/VPKI/VPKI.Library/Services/HttpService.cs new file mode 100644 index 0000000..f60bd5a --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Services/HttpService.cs @@ -0,0 +1,112 @@ +using System.Net.Http.Json; + +namespace VPKI.Library.Services +{ + public class HttpService : CommonService + { + public HttpService() + : base() + { + } + + /// + /// PostJsonAsync + /// + /// https://127.0.0.1:443 + /// Range 5~30 secconds + public virtual async Task PostJsonAsync(string url, REQUEST request, short timeOutSeconds = 5) where REQUEST : class where RESPONSE : class + { + RESPONSE? response = default(RESPONSE); + Guid guid = Guid.NewGuid(); + + using (HttpClient httpClient = new HttpClient(GetClientHandler())) + { + int retry = 0; + while (true) + { + await Task.Delay(1); + try + { + var timeOutSec = SetTimeout(timeOutSeconds); + httpClient.Timeout = new TimeSpan(0, 0, timeOutSec); + httpClient.BaseAddress = new Uri($"{url}"); + + Log4net.WriteLine($"[POST] Request({guid})::{url}{Environment.NewLine}{request?.ToJson()}", LogType.Warn); + + DateTime requestTime = DateTime.Now; + var res = await httpClient.PostAsJsonAsync(url, request); + response = await res.Content.ReadFromJsonAsync(); + + Log4net.WriteLine($"[POST] Rseponse({guid}) ({(DateTime.Now - requestTime).TotalSeconds} sec)::{url}{Environment.NewLine}{response?.ToJson()}", LogType.Warn); + break; + } + catch (Exception e) + { + Log4net.WriteLine(e); + retry += 1; + } + + if (retry > 1) + break; + } + } + + return response; + } + + /// + /// GetJsonAsnyc + /// + /// https://127.0.0.1:443 + /// Range 5~30 secconds + public virtual async Task GetJsonAsync(string url, short timeOutSeconds = 10) where RESPONSE : class + { + RESPONSE? response = default(RESPONSE); + Guid guid = Guid.NewGuid(); + + using (HttpClient httpClient = new HttpClient(GetClientHandler())) + { + try + { + var timeOutSec = SetTimeout(timeOutSeconds); + httpClient.Timeout = new TimeSpan(0, 0, timeOutSec); + httpClient.BaseAddress = new Uri($"{url}"); + + Log4net.WriteLine($"[GET] Request({guid})::{url}", LogType.Warn); + + DateTime requestTime = DateTime.Now; + response = await httpClient.GetFromJsonAsync(url); + + Log4net.WriteLine($"[GET] Rseponse({guid}) ({(DateTime.Now - requestTime).TotalSeconds} sec)::{url}", LogType.Warn); + } + catch (Exception e) + { + Log4net.WriteLine(e); + } + } + + return response; + } + + protected HttpClientHandler GetClientHandler() + { + HttpClientHandler clientHandler = new HttpClientHandler(); + clientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, sslPolicyErrors) => + { + return true; + }; + + return clientHandler; + } + + protected short SetTimeout(short timeOutSeconds) + { + short timeoutMin = 5; + short timeoutMax = 30; + + timeOutSeconds = Math.Clamp(timeOutSeconds, timeoutMin, timeoutMax); + + return timeOutSeconds; + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/Static/Document4net.cs b/Projects/VPKI/VPKI/VPKI.Library/Static/Document4net.cs new file mode 100644 index 0000000..c61d339 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/Static/Document4net.cs @@ -0,0 +1,139 @@ +using DocumentFormat.OpenXml; +using DocumentFormat.OpenXml.Packaging; +using DocumentFormat.OpenXml.Spreadsheet; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Reflection.Metadata.Ecma335; +using System.Text; +using System.Threading.Tasks; + +namespace VPKI.Library.Static +{ + public static class Document4net + { + public static List ConvertToCsvFile(this IEnumerable data) + { + string separator = ","; + List result = new List(); + + try + { + Type t = typeof(T); + var properties = t.GetProperties(); + + //header + List headers = GetHeader(properties); + result.Add(string.Join(separator, headers.ToArray())); + //data + + foreach (var d in data) + { + var getValues = GetValue(d); + string rsultValue = string.Empty; + + foreach (var h in headers) + { + bool isFindHeader = false; + foreach(var v in getValues) + { + if (v.Header == h) + { + isFindHeader = true; + rsultValue += $"{v.Value}{separator}";//string.Join(separator, v.Value); + break; + //result.Add(string.Join(separator, getValues.ToArray())); + } + } + + if(isFindHeader == false) + rsultValue += $"{separator}"; + } + + result.Add(rsultValue); + } + } + catch(Exception ex) + { + Log4net.WriteLine("Document4net ExportToCsv Exception",LogType.Error); + Log4net.WriteLine(ex); + } + + return result; + } + + private static List GetHeader(PropertyInfo[] propertyInfo) + { + List result = new List(); + + foreach(var prop in propertyInfo) + { + if (prop != null) + { + //객체일때 재귀 + if (prop.PropertyType!.IsClass == true && prop.PropertyType.Name.ToLower().Contains("string") == false) + { + result.AddRange(GetHeader(prop.PropertyType.GetProperties())); + } + else + { + result.Add($"{prop.DeclaringType!.Name}.{prop.Name}"); + } + } + } + + return result; + } + + private static List GetValue(T data) + { + List result = new List(); + + if(data != null) + { + foreach (var prop in data.GetType().GetProperties()) + { + //객체일때 재귀 + if (prop.PropertyType!.IsClass == true && prop.PropertyType.Name.ToLower().Contains("string") == false) + { + result.AddRange(GetValue(prop.GetValue(data))); + } + else + { + if (prop.PropertyType == typeof(DateTime)) + { + var datetTime = Convert.ToDateTime(prop!.GetValue(data)); + result.Add(new CSV + { + Header = $"{prop.DeclaringType!.Name}.{prop.Name}", + Value = $"\"{datetTime.ToString("yyyy-MM-dd HH:mm:ss")}\"".Replace("\r", "").Replace("\n", "") + }); + } + else + { + result.Add(new CSV + { + Header = $"{prop.DeclaringType!.Name}.{prop.Name}", + Value = $"\"{prop!.GetValue(data)}\"".Replace("\r", "").Replace("\n", "") + }); + } + + } + } + } + + return result; + } + } + + public class CSV + { + public string? Header { get; set; } + public string? Value { get; set; } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Library/VPKI.Library.csproj b/Projects/VPKI/VPKI/VPKI.Library/VPKI.Library.csproj new file mode 100644 index 0000000..3ddea5b --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Library/VPKI.Library.csproj @@ -0,0 +1,45 @@ + + + + net8.0 + enable + enable + + + + True + + + + True + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + ..\..\..\DLL\SystemX.Core.dll + + + + diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/.config/dotnet-tools.json b/Projects/VPKI/VPKI/VPKI.Web.Api/.config/dotnet-tools.json new file mode 100644 index 0000000..40d4373 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/.config/dotnet-tools.json @@ -0,0 +1,12 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "dotnet-ef": { + "version": "8.0.10", + "commands": [ + "dotnet-ef" + ] + } + } +} \ No newline at end of file diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/AuthController.cs b/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/AuthController.cs new file mode 100644 index 0000000..6642110 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/AuthController.cs @@ -0,0 +1,151 @@ +using Azure; +using Azure.Core; +using DB.VPKI_AccountDB; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.DataProtection.KeyManagement; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.HttpResults; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Internal; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.IdentityModel.Tokens; +using System.IdentityModel.Tokens.Jwt; +using System.Security.Claims; +using System.Security.Principal; +using System.Text; +using VPKI.Library.Enums; +using VPKI.Library.Model; +using VPKI.Library.Model.Auth; +using VPKI.Library.Services; +using VPKI.Web.Api.Services; + +namespace VPKI.Web.Api.Controllers +{ + [Tags("Auth")] + [Route("api/auth")] + [ApiController] + [ApiExplorerSettings(IgnoreApi = true)] + public class AuthController : CommonController + { + private readonly AuthService _authService; + + public AuthController(IServiceProvider serviceProvider, IHttpContextAccessor httpContextAccessor, + AuthService authService) + : base(serviceProvider, httpContextAccessor) + { + _authService = authService; + } + + [HttpPost("regisger")] + public async Task Register([FromBody] RegisterModel request) + { + Log4net.WriteLine(GetRequestLog(request).LogModelToString("Request Auth"), LogType.Debug); + + RegisterResponseModel response = new RegisterResponseModel(); + + if (request?.UserID != null && request?.Password != null) + { + response = await _authService.CreateUser(request); + } + + Log4net.WriteLine(GetResponseLog(response).LogModelToString("Response Auth"), LogType.Debug); + + return Results.Ok(response); + } + + [HttpPost("login")] + public async Task Login([FromBody] LoginModel request) + { + Log4net.WriteLine(GetRequestLog(request).LogModelToString("Request Auth"), LogType.Debug); + + LoginResponseModel response = new LoginResponseModel(); + response.UserID = request.UserID; + response.EC = ERROR_CODE.EC_USER_LOGIN_FAILED; + + if (request.UserID != null && request.Password != null) + { + response = await _authService.SelectUser(request); + + if (response.EC == ERROR_CODE.EC_OK) + { + double convertExpires = Convert.ToDouble(_configService?.GetConfig()?.Auth?.accessTokenExpires); + + response.AccessToken = GenerateJwtToken(response); + response.AccessTokenExpired = DateTime.UtcNow.AddMinutes(convertExpires).ToUnixTime(); + + response.RefreshToken = GenerateJwtToken(response, true); + } + + await _authService.UpdateLoginInfo(request, response.RefreshToken); + } + + Log4net.WriteLine(GetResponseLog(response).LogModelToString("Response Auth"), LogType.Debug); + + return Results.Ok(response); + } + + [HttpPost("logout")] + public async Task Logout([FromBody] LogoutModel request) + { + Log4net.WriteLine(GetRequestLog(request).LogModelToString("Request Auth"), LogType.Debug); + + var response = _authService.LogoutUser(request); + await Task.CompletedTask; + + Log4net.WriteLine(GetResponseLog(response).LogModelToString("Response Auth"), LogType.Debug); + + return Results.Ok(response); + } + + [Authorize] + [HttpPost("validate")] + public ActionResult Validate([FromBody] string authToken) + { + return ""; + } + + private TokenValidationParameters GetValidationParameters() + { + return new TokenValidationParameters() + { + ValidateLifetime = true, + ValidateAudience = true, + ValidateIssuer = true, + ValidIssuer = $"{_configService?.GetConfig()?.Auth?.issuer}", + ValidAudience = $"{_configService?.GetConfig()?.Auth?.issuer}", + IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes($"{_configService?.GetConfig()?.Auth?.accessTokenSecret}")) + }; + } + + private string GenerateJwtToken(LoginResponseModel loginResponseModel, bool isRefreshToken = false) + { + var claims = new[] + { + new Claim(ClaimTypes.Name, $"{loginResponseModel.UserID}"), + new Claim(ClaimTypes.Role, $"{loginResponseModel.RoleName}"), + }; + + string secret = $"{_configService?.GetConfig()?.Auth?.accessTokenSecret}"; + double convertExpires = Convert.ToDouble(_configService?.GetConfig()?.Auth?.accessTokenExpires); + if (isRefreshToken == true) + { + secret = $"{_configService?.GetConfig()?.Auth?.refreshTokenSecret}"; + convertExpires = Convert.ToDouble(_configService?.GetConfig()?.Auth?.refreshTokenExpires); + } + + var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secret)); + var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); + + var token = new JwtSecurityToken( + issuer: $"{_configService?.GetConfig()?.Auth?.issuer}", + audience: $"{_configService?.GetConfig()?.Auth?.audience}", + claims: claims, + expires: DateTime.UtcNow.AddMinutes(convertExpires), + signingCredentials: creds + ); + + return new JwtSecurityTokenHandler().WriteToken(token); + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/CommonController.cs b/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/CommonController.cs new file mode 100644 index 0000000..9cbca4c --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/CommonController.cs @@ -0,0 +1,106 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.ViewEngines; +using Newtonsoft.Json; +using System.Runtime.CompilerServices; +using VPKI.Library.Config; +using VPKI.Library.Model; +using VPKI.Library.Services; + +namespace VPKI.Web.Api.Controllers +{ + public class CommonController + { + public readonly IServiceProvider _serviceProvider; + public readonly IHttpContextAccessor _httpContextAccessor; + + public readonly ConfigService? _configService; + + protected static Guid guid { get; private set; } = Guid.NewGuid(); + + public CommonController(IServiceProvider serviceProvider, IHttpContextAccessor httpContextAccessor) + { + //provider + _serviceProvider = serviceProvider; + _httpContextAccessor = httpContextAccessor; + + //service + _configService = _serviceProvider.GetService>(); + } + + /// + /// Request 클라이언트 IP + /// + protected virtual string? GetClientIP() + { + return _httpContextAccessor?.HttpContext?.Connection?.RemoteIpAddress?.ToString(); + } + + /// + /// Request 클라이언트 Url + /// + protected virtual string? GetRequestUrl() + { + return _httpContextAccessor?.HttpContext?.Request?.Path; + } + + /// + /// Request 클라이언트 method: [GET] or [POST] + /// + protected virtual string? GetRequestMethod() + { + return _httpContextAccessor?.HttpContext?.Request?.Method; + } + + /// + /// 현재 Action(함수) 이름 가져오기 + /// + protected virtual string GetMethodName([CallerMemberName] string callerMemberName = "") + { + return callerMemberName; + } + + #region System Log + //request log + protected virtual LogModel GetRequestLog([CallerMemberName] string callerMemberName = "") + { + return new LogModel + { + ClientIP = $"{GetClientIP()}", + Method = $"{GetRequestMethod()}", + RequestUrl = $"{GetRequestUrl()}", + Action = $"{callerMemberName}", + Body = null, + }; + } + + protected virtual LogModel GetRequestLog(T fromBody, [CallerMemberName] string callerMemberName = "") + { + var requestLog = GetRequestLog(callerMemberName); + requestLog.Body = fromBody; + + return requestLog; + } + + //response log + protected virtual LogModel GetResponseLog([CallerMemberName] string callerMemberName = "") + { + return new LogModel + { + ClientIP = $"{GetClientIP()}", + Method = $"{GetRequestMethod()}", + RequestUrl = $"{GetRequestUrl()}", + Action = $"{callerMemberName}", + Body = null, + }; + } + + protected virtual LogModel GetResponseLog(T fromBody, [CallerMemberName] string callerMemberName = "") + { + var responseLog = GetResponseLog(callerMemberName); + responseLog.Body = fromBody; + + return responseLog; + } + #endregion + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/UserController.cs b/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/UserController.cs new file mode 100644 index 0000000..1716573 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/UserController.cs @@ -0,0 +1,46 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using VPKI.Library.Model; +using VPKI.Web.Api.Services; + +namespace VPKI.Web.Api.Controllers +{ + [Route("api/user/[Action]")] + [Authorize] + [ApiController] + [ApiExplorerSettings(IgnoreApi = true)] + public class UserController : CommonController + { + private readonly UserService _userService; + + public UserController(IServiceProvider serviceProvider, IHttpContextAccessor httpContextAccessor, + UserService userService) + : base(serviceProvider, httpContextAccessor) + { + _userService = userService; + } + + [HttpGet] + public async Task> GetAllUser(string url = "") + { + Log4net.WriteLine(GetRequestLog().LogModelToString("Request Auth"), LogType.Debug); + var response = await _userService.GetAllUsers(); + + Log4net.WriteLine(GetRequestLog(response).LogModelToString("Response Auth"), LogType.Debug); + + return response; + } + + [HttpPost] + [Authorize] + public async Task UpdateUser(UserModel user) + { + Log4net.WriteLine(GetRequestLog().LogModelToString("Request Auth"), LogType.Debug); + var response = await _userService.UpdateUser(user); + + Log4net.WriteLine(GetRequestLog(response).LogModelToString("Response Auth"), LogType.Debug); + + return response; + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/VPKIBaseController.cs b/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/VPKIBaseController.cs new file mode 100644 index 0000000..ca8c7ae --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/VPKIBaseController.cs @@ -0,0 +1,133 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using VPKI.Library.Enums; +using VPKI.Library.Model; +using VPKI.Web.Api.Services; + +namespace VPKI.Web.Api.Controllers +{ + public class VPKIBaseController : CommonController + { + public VPKIBaseController(IServiceProvider serviceProvider, IHttpContextAccessor _httpContextAccessor) + :base(serviceProvider, _httpContextAccessor) + { + } + + /// + /// tbscsr데이터 조회 (ISO15118-2) + /// + [Tags("VPKI API Base")] + [HttpGet] + [Route("history")] + public async Task TbscsrHistory(DateTime startDate, DateTime endDate) + { + List response = new List(); + + Log4net.WriteLine(GetRequestLog().LogModelToString("Request"), LogType.Debug); + var service = _serviceProvider.GetService(); + if (service != null) + { + response = await service.History(DateOnly.FromDateTime(startDate), DateOnly.FromDateTime(endDate)); + } + + long min = 0; + if(response.Count > 0) + { + response.Min(x => x!.TTbscsr!.CCuid); + } + + Log4net.WriteLine($"Ressponse::Start CCUID:{min}, Count:{response.Count}", LogType.Debug); + + return Results.Ok(response); + } + + /// + /// tbscsr데이터 조회 (ISO15118-2) + /// + [Tags("VPKI API Base")] + [HttpGet] + [Route("history/ccuid")] + public async Task TbscsrHistoryByCcuid(long ccuid = 0) + { + CertificateHistoryModel response = new CertificateHistoryModel(); + + Log4net.WriteLine(GetRequestLog().LogModelToString("Request"), LogType.Debug); + var service = _serviceProvider.GetService(); + if (service != null) + { + response = await service.History(ccuid); + } + + Log4net.WriteLine(GetResponseLog(response).LogModelToString("Response"), LogType.Debug); + + return Results.Ok(response); + } + + /// + /// prov + /// + [Tags("VPKI API Base")] + [HttpGet] + [Route("certificate/GetProv")] + [ApiExplorerSettings(IgnoreApi = true)] + public async Task GetProv(VpkiType vpkiType) + { + string response = string.Empty; + + Log4net.WriteLine(GetRequestLog().LogModelToString("Request"), LogType.Debug); + var service = _serviceProvider.GetService(); + if (service != null) + { + response = service.GetSubCA(vpkiType, false); + } + await Task.CompletedTask; + Log4net.WriteLine(GetResponseLog(response).LogModelToString("Response"), LogType.Debug); + + return Results.Ok(response); + } + + /// + /// certificate info + /// + [Tags("VPKI API Base")] + [HttpGet] + [Route("certificate/GetCertificateInfo")] + [ApiExplorerSettings(IgnoreApi = true)] + public async Task GetCertificateInfo(long ccuid = 0) + { + string response = string.Empty; + + Log4net.WriteLine(GetRequestLog().LogModelToString("Request"), LogType.Debug); + var service = _serviceProvider.GetService(); + if (service != null) + { + response = await service.GetCertificateInfo(ccuid); + } + Log4net.WriteLine(GetResponseLog(response).LogModelToString("Response"), LogType.Debug); + + return Results.Ok(response); + } + + /// + /// certificate info + /// + [Tags("VPKI API Base")] + [HttpGet] + [Route("certificate/ocsp")] + [ApiExplorerSettings(IgnoreApi = true)] + public async Task Ocsp(long ccuid = 0) + { + string response = string.Empty; + + Log4net.WriteLine(GetRequestLog().LogModelToString("Request"), LogType.Debug); + var service = _serviceProvider.GetService(); + if (service != null) + { + response = await service.Ocsp(ccuid); + } + Log4net.WriteLine(GetResponseLog(response).LogModelToString("Response"), LogType.Debug); + + return Results.Ok(response); + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/VPKIv1_Controller.cs b/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/VPKIv1_Controller.cs new file mode 100644 index 0000000..89328aa --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/VPKIv1_Controller.cs @@ -0,0 +1,143 @@ +using DB.VPKI_DataDB; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Primitives; +using Microsoft.OpenApi.Validations.Rules; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using VPKI.Library.Model; +using VPKI.Library.Packet; +using VPKI.Web.Api.Services; + +namespace VPKI.Web.Api.Controllers +{ + [Tags("VPKI API v1")] + [ApiController()] + [Route("api/v1")] + public class VPKIv1_Controller : VPKIBaseController + { + public VPKIv1_Controller(IServiceProvider serviceProvider, IHttpContextAccessor _httpContextAccessor) + : base(serviceProvider, _httpContextAccessor) + { + } + + /// + /// CSR 생성 요청 (ISO15118-2) + /// + [HttpPost] + [Route("tbscsr")] + public async Task Tbscsr([FromBody] Request_Tbscsr _request) + { + Response_Tbscsr response = new Response_Tbscsr(); + + Guid guid = Guid.NewGuid(); + Log4net.WriteLine(GetRequestLog(_request).LogModelToString($"Request ({guid})"), LogType.Info); + + var service = _serviceProvider.GetService(); + if (service != null) + { + response = await service.RequestTbscsr(_request); + } + + Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"), LogType.Info); + + return Results.Ok(response); + } + + /// + /// 인증서 발급 요청 (ISO15118-2) + /// + [HttpPost] + [Route("certificate")] + public async Task Certificate([FromBody] Request_Certificate _request) + { + Response_Certificate response = new Response_Certificate(); + + Guid guid = Guid.NewGuid(); + Log4net.WriteLine(GetRequestLog(_request).LogModelToString($"Request ({guid})")); + + var service = _serviceProvider.GetService(); + if (service != null) + { + response = await service.RequestCertificate(_request); + } + + Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})")); + + return Results.Ok(response); + } + + /// + /// 인증서 검증 결과 전송 (ISO15118-2) + /// + [HttpPost] + [Route("verifyresult")] + public async Task Verifyresult([FromBody] Request_Verifyresult request) + { + Response_Verifyresult response = new Response_Verifyresult(); + + Guid guid = Guid.NewGuid(); + Log4net.WriteLine(GetRequestLog(request).LogModelToString("Request")); + + var service = _serviceProvider.GetService(); + if(service != null) + { + response = await service.RequestVerifyresult(request); + } + + Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})")); + + return Results.Ok(response); + } + + /// + /// 인증서 재발급 (ISO15118-2) + /// + [HttpPost] + [Route("reissue")] + [ApiExplorerSettings(IgnoreApi = true)] + public async Task Reissue([FromBody] Request_Certificate request) + { + //Response_Certificate response = new Response_Certificate(); + //Log4net.WriteLine(GetRequestLog(request).LogModelToString("Request")); + + //var service = _serviceProvider.GetService(); + //if (service != null) + //{ + // response = await service.RequestCertificateReissue(request); + //} + + //Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})")); + + //return Results.Ok(response); + await Task.CompletedTask; + return Results.NotFound(); + } + + /// + /// 인증서 폐기 (ISO15118-2) + /// + [HttpPost] + [Route("revoke")] + [ApiExplorerSettings(IgnoreApi = true)] + public async Task Revoke([FromBody] Request_CertificateRevokeOEM request) + { + //Response_CertificateRevokeOEM response = new Response_CertificateRevokeOEM(); + + //Guid guid = Guid.NewGuid(); + //Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})")); + + //var service = _serviceProvider.GetService(); + //if (service != null) + //{ + // response = await service.RequestCertificateRevoke(request); + //} + + //Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})")); + + //return Results.Ok(response); + await Task.CompletedTask; + return Results.NotFound(); + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/VPKIv2_Controller.cs b/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/VPKIv2_Controller.cs new file mode 100644 index 0000000..c6e18fa --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/VPKIv2_Controller.cs @@ -0,0 +1,275 @@ +using Azure; +using Microsoft.AspNetCore.Mvc; +using VPKI.Library.Model; +using VPKI.Library.Packet; +using VPKI.Web.Api.Services; + +namespace VPKI.Web.Api.Controllers +{ + [ApiController()] + [Route("api/v2")] + public class VPKIv2_Controller : VPKIBaseController + { + public VPKIv2_Controller(IServiceProvider serviceProvider, IHttpContextAccessor _httpContextAccessor) + : base(serviceProvider, _httpContextAccessor) + { + } + + #region prov + /// + /// CSR 생성 요청 (ISO15118-20) prov + /// + [Tags("VPKI API v2 prov")] + [HttpPost] + [Route("prov/tbscsr")] + public async Task ProvTbscsr([FromBody] Request_Tbscsr _request) + { + Response_Tbscsr response = new Response_Tbscsr(); + + Guid guid = Guid.NewGuid(); + Log4net.WriteLine(GetRequestLog(_request).LogModelToString($"Request ({guid})")); + + var service = _serviceProvider.GetService(); + if(service != null) + { + response = await service.RequestTbscsr(_request, Library.Enums.VpkiType.prov_cert); + } + + Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})")); + + return Results.Ok(response); + } + + /// + /// 인증서 발급 요청 (ISO15118-20) prov + /// + [Tags("VPKI API v2 prov")] + [HttpPost] + [Route("prov/certificate")] + public async Task ProvCertificate([FromBody] Request_Certificate _request) + { + Response_Certificate response = new Response_Certificate(); + + Guid guid = Guid.NewGuid(); + Log4net.WriteLine(GetRequestLog(_request).LogModelToString($"Request ({guid})")); + + var service = _serviceProvider.GetService(); + if(service != null) + { + response = await service.RequestCertificate(_request, Library.Enums.VpkiType.prov_cert); + } + + Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})")); + + return Results.Ok(response); + } + + /// + /// 인증서 검증 결과 전송 (ISO15118-20) prov + /// + [Tags("VPKI API v2 prov")] + [HttpPost] + [Route("prov/verifyresult")] + public async Task ProvVerifyresult([FromBody] Request_Verifyresult request) + { + Response_Verifyresult response = new Response_Verifyresult(); + + Guid guid = Guid.NewGuid(); + Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})")); + + var service = _serviceProvider.GetService(); + if (service != null) + { + response = await service.RequestVerifyresult(request); + } + + Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})")); + + return Results.Ok(response); + } + + /// + /// 인증서 재발급 (ISO15118-20) + /// + [Tags("VPKI API v2 prov")] + [HttpPost] + [Route("prov/reissue")] + [ApiExplorerSettings(IgnoreApi = true)] + public async Task ProvReissue([FromBody] Request_Certificate request) + { + //Response_Certificate response = new Response_Certificate(); + + //Guid guid = Guid.NewGuid(); + //Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})")); + + //var service = _serviceProvider.GetService(); + //if (service != null) + //{ + // response = await service.RequestCertificateReissue(request, Library.Enums.VpkiType.prov_cert); + //} + + //Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})")); + + //return Results.Ok(response); + await Task.CompletedTask; + return Results.NotFound(); + } + + /// + /// 인증서 폐기 (ISO15118-20) + /// + [Tags("VPKI API v2 prov")] + [HttpPost] + [Route("prov/revoke")] + [ApiExplorerSettings(IgnoreApi = true)] + public async Task ProvRevoke([FromBody] Request_CertificateRevokeOEM request) + { + //Response_CertificateRevokeOEM response = new Response_CertificateRevokeOEM(); + + //Guid guid = Guid.NewGuid(); + //Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})")); + + //var service = _serviceProvider.GetService(); + //if (service != null) + //{ + // response = await service.RequestCertificateRevoke(request, Library.Enums.VpkiType.prov_cert); + //} + + //Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})")); + + //return Results.Ok(response); + await Task.CompletedTask; + return Results.NotFound(); + } + #endregion + + #region vehicle + /// + /// CSR 생성 요청 (ISO15118-20) vehicle + /// + [Tags("VPKI API v2 vehicle")] + [HttpPost] + [Route("vehicle/tbscsr")] + public async Task VehicleTbscsr([FromBody] Request_Tbscsr _request) + { + Response_Tbscsr response = new Response_Tbscsr(); + + Guid guid = Guid.NewGuid(); + Log4net.WriteLine(GetRequestLog(_request).LogModelToString($"Request ({guid})")); + + var service = _serviceProvider.GetService(); + if (service != null) + { + response = await service.RequestTbscsr(_request, Library.Enums.VpkiType.vehicle_cert); + } + + Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})")); + + return Results.Ok(response); + } + + /// + /// 인증서 발급 요청 (ISO15118-20) vehicle + /// + [Tags("VPKI API v2 vehicle")] + [HttpPost] + [Route("vehicle/certificate")] + public async Task VehicleCertificate([FromBody] Request_Certificate _request) + { + Response_Certificate response = new Response_Certificate(); + + Guid guid = Guid.NewGuid(); + Log4net.WriteLine(GetRequestLog(_request).LogModelToString($"Request ({guid})")); + + var service = _serviceProvider.GetService(); + if (service != null) + { + response = await service.RequestCertificate(_request, Library.Enums.VpkiType.vehicle_cert); + } + + Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})")); + + return Results.Ok(response); + } + + /// + /// 인증서 검증 결과 전송 (ISO15118-20) vehicle + /// + [Tags("VPKI API v2 vehicle")] + [HttpPost] + [Route("vehicle/verifyresult")] + public async Task VehicleVerifyresult([FromBody] Request_Verifyresult request) + { + Response_Verifyresult response = new Response_Verifyresult(); + + Guid guid = Guid.NewGuid(); + Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})")); + + var service = _serviceProvider.GetService(); + if (service != null) + { + response = await service.RequestVerifyresult(request); + } + + Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})")); + + return Results.Ok(response); + } + + /// + /// 인증서 재발급 (ISO15118-20) + /// + [Tags("VPKI API v2 vehicle")] + [HttpPost] + [Route("vehicle/reissue")] + [ApiExplorerSettings(IgnoreApi = true)] + public async Task VehicleReissue([FromBody] Request_Certificate request) + { + //Response_Certificate response = new Response_Certificate(); + + //Guid guid = Guid.NewGuid(); + //Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})")); + + //var service = _serviceProvider.GetService(); + //if (service != null) + //{ + // response = await service.RequestCertificateReissue(request, Library.Enums.VpkiType.vehicle_cert); + //} + + //Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})")); + + //return Results.Ok(response); + await Task.CompletedTask; + return Results.NotFound(); + } + + /// + /// 인증서 폐기 (ISO15118-20) + /// + [Tags("VPKI API v2 vehicle")] + [HttpPost] + [Route("vehicle/revoke")] + [ApiExplorerSettings(IgnoreApi = true)] + public async Task VehicleRevoke([FromBody] Request_CertificateRevokeOEM request) + { + //Response_CertificateRevokeOEM response = new Response_CertificateRevokeOEM(); + + //Guid guid = Guid.NewGuid(); + //Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})")); + + //var service = _serviceProvider.GetService(); + //if (service != null) + //{ + // response = await service.RequestCertificateRevoke(request, Library.Enums.VpkiType.vehicle_cert); + //} + + //Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})")); + + //return Results.Ok(response); + await Task.CompletedTask; + return Results.NotFound(); + } + + #endregion + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/Dockerfile b/Projects/VPKI/VPKI/VPKI.Web.Api/Dockerfile new file mode 100644 index 0000000..4e54724 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/Dockerfile @@ -0,0 +1,35 @@ +#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. + +#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed. +#For more information, please see https://aka.ms/containercompat + +FROM dotnet8 AS base +EXPOSE 5555 + +WORKDIR / +RUN mkdir /Config +RUN dotnet dev-certs https --trust +COPY ["Config/*", "/Config/"] + +WORKDIR /app +FROM dotnet8 AS build +ARG BUILD_CONFIGURATION=Release + +WORKDIR /src +COPY ["VPKI.Web.Api/VPKI.Web.Api.csproj", "VPKI.Web.Api/"] +COPY ["VPKI.Library.DB/VPKI.Library.DB.csproj", "VPKI.Library.DB/"] +COPY ["VPKI.Library/VPKI.Library.csproj", "VPKI.Library/"] +RUN dotnet restore "./VPKI.Web.Api/VPKI.Web.Api.csproj" + +COPY . . +WORKDIR "/src/VPKI.Web.Api" +RUN dotnet build "./VPKI.Web.Api.csproj" -c %BUILD_CONFIGURATION% -o /app/build + +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./VPKI.Web.Api.csproj" -c %BUILD_CONFIGURATION% -o /app/publish /p:UseAppHost=false + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "VPKI.Web.Api.dll"] \ No newline at end of file diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/Program.cs b/Projects/VPKI/VPKI/VPKI.Web.Api/Program.cs new file mode 100644 index 0000000..bed3e60 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/Program.cs @@ -0,0 +1,138 @@ +using DB.VPKI_AccountDB; +using DB.VPKI_DataDB; +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Authentication.JwtBearer; +using Microsoft.AspNetCore.SignalR; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Internal; +using Microsoft.Identity.Client; +using Microsoft.IdentityModel.Tokens; +using Microsoft.OpenApi.Models; +using Newtonsoft.Json; +using System.Security.Cryptography.Xml; +using System.Text; +using VPKI.Library.Config; +using VPKI.Library.Services; +using VPKI.Web.Api.Services; + + +string configDir = @"../Config"; + +//raed log4net config +if (Log4net.IsConfigLoad == true) +{ + Log4net.WriteLine("Log4net Init Success"); +} +else +{ + Log4net.WriteLine("Log4net Init Failed", LogType.Error); +} + +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. + +builder.Services.AddControllers(); +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); +builder.Services.AddHttpContextAccessor(); + +//singleton +builder.Services.AddSingleton>(); +builder.Services.AddSingleton(); + +//scoped +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); + +//dbContext +builder.Services.AddDbContext(); +builder.Services.AddDbContext(); + +//config preload +ConfigService preloadConfig = new ConfigService(); +if (preloadConfig.OpenConfig($@"{configDir}/VPKI.WebApiConfig.json") == true) +{ + var config = preloadConfig.GetConfig(); + + //auth + builder.Services + .AddAuthentication(option => + { + option.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; + option.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; + }) + .AddJwtBearer(options => + { + options.TokenValidationParameters = new TokenValidationParameters + { + ValidateIssuer = true, + ValidateAudience = true, + ValidateLifetime = true, + ValidateIssuerSigningKey = true, + ClockSkew = TimeSpan.Zero, + ValidIssuer = $"{config?.Auth?.issuer}", + ValidAudience = $"{config?.Auth?.audience}", + IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes($"{config?.Auth?.accessTokenSecret}")) + }; + }); +} +else +{ + Console.WriteLine("Config Preload Load Error."); + return; +} + +var app = builder.Build(); + +//read api config and set +string serverUrl = string.Empty; +var configService = app.Services.GetService>(); +bool isIIS = false; +if (configService?.OpenConfig($@"{configDir}/VPKI.WebApiConfig.json") == true) +{ + Log4net.WriteLine("WebApi Config Success."); + var apiConfig = ConfigService.Config; + if(apiConfig != null) + { + serverUrl = $"{apiConfig?.Server?.Address}:{apiConfig?.Server?.Port}"; + isIIS = apiConfig!.Server.IIS; + } +} +else +{ + Log4net.WriteLine("WebApi Config Error."); + return; +} + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + Log4net.WriteLine($"IsDevelopment:{app.Environment.IsDevelopment()}"); + Log4net.WriteLine($"Swagger Url: {serverUrl}/swagger"); + app.UseSwagger(); + app.UseSwaggerUI(option => { + option.DefaultModelsExpandDepth(-1); + }); +} + +app.UseAuthentication(); +app.UseHttpsRedirection(); +app.UseAuthorization(); + +app.MapControllers(); + +if (isIIS == true) +{ + app.Run(); +} +else +{ + Log4net.WriteLine($"Operation Url: {serverUrl}"); + app.Run($"{serverUrl}"); +} + diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/Properties/launchSettings.json b/Projects/VPKI/VPKI/VPKI.Web.Api/Properties/launchSettings.json new file mode 100644 index 0000000..c28e97c --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/Properties/launchSettings.json @@ -0,0 +1,51 @@ +{ + "profiles": { + "http": { + "commandName": "Project", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "dotnetRunMessages": true, + "applicationUrl": "http://localhost:5013" + }, + "https": { + "commandName": "Project", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "dotnetRunMessages": true, + "applicationUrl": "https://localhost:7296;http://localhost:5013" + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Container (Dockerfile)": { + "commandName": "Docker", + "launchBrowser": true, + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger", + "environmentVariables": { + "ASPNETCORE_HTTP_PORTS": "5555" + }, + "publishAllPorts": true, + "useSSL": true + } + }, + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:48976", + "sslPort": 44335 + } + } +} \ No newline at end of file diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/Services/AuthService.cs b/Projects/VPKI/VPKI/VPKI.Web.Api/Services/AuthService.cs new file mode 100644 index 0000000..d4fd0ff --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/Services/AuthService.cs @@ -0,0 +1,265 @@ +using Azure; +using DB.VPKI_AccountDB; +using DocumentFormat.OpenXml.Presentation; +using Microsoft.EntityFrameworkCore; +using System; +using System.Data; +using SystemX.Core.DB; +using VPKI.Library.Config; +using VPKI.Library.Enums; +using VPKI.Library.Model; +using VPKI.Library.Model.Auth; +using VPKI.Library.Services; + +namespace VPKI.Web.Api.Services +{ + public class AuthService + { + private readonly IServiceProvider _serviceProvider; + private readonly IServiceScopeFactory _scopeFactory; + private readonly ConfigService? _configService; + + private readonly Library.Config.Model.DataBase? _accountDB; + + private static List Session = new List(); + + public AuthService(IServiceProvider serviceProvider, IServiceScopeFactory scopeFactory, ConfigService configSerice) + { + _serviceProvider = serviceProvider; + _configService = configSerice; + _scopeFactory = scopeFactory; + _accountDB = _configService?.GetConfig()?.DataBase?.Find(x=>x.DBContext == "VpkiAccountDbContext"); + } + + /// + /// create new user + /// + public async Task CreateUser(RegisterModel registerModel) + { + //response + RegisterResponseModel response = new RegisterResponseModel(); + response.EC = ERROR_CODE.EC_USER_REGISTER_FAILED; + response.UserID = registerModel.UserID; + response.Role = registerModel.Role; + response.RoleName = registerModel.Role.ToString(); + + //context + using (var scope = _scopeFactory.CreateScope()) + { + var context = scope.ServiceProvider.GetRequiredService(); + if (context is not null) + { + var user = await context.TUsers.AsNoTracking().Where(x => x.CUserId.ToLower() == registerModel.UserID.ToLower()).ToListAsync(); + if (user?.Count <= 0) + { + string auid = Guid.NewGuid().ToString(); + //user + TUser newUser = new TUser + { + CAuid = auid, + CUserId = registerModel.UserID, + CPasswordHashed = registerModel.Password, + CCreateDateTime = DateTime.Now, + CLastLoginDateTime = new DateTime() + }; + //role + TRole newUserRole = new TRole + { + CAuid = auid, + CRoleId = Convert.ToByte(registerModel.Role), + CRoleName = registerModel.Role.ToString() + }; + + using (var transaction = await context.CreateTransactionAsync()) + { + await context.AddAsync(newUser); + await context.AddAsync(newUserRole); + + var result = await context.CloseTransactionAsync(transaction); + if (result == true) + { + response.EC = ERROR_CODE.EC_OK; + } + } + } + } + } + + return response; + } + + /// + /// select user(login) + /// + public async Task SelectUser(LoginModel loginModel) + { + //response + LoginResponseModel response = new LoginResponseModel(); + response.EC = ERROR_CODE.EC_USER_LOGIN_FAILED; + response.UserID = loginModel.UserID; + + //var session = Session.Find(x => x.UserID?.ToLower() == loginModel.UserID?.ToLower()); + //if (session?.AccessTokenExpired < DateTime.Now.ToUnixTime()) + //{ + // Session.Remove(session); + //} + + //기존 로그인 체크 + // if (Session.Exists(x => x.UserID == $"{loginModel.UserID?.ToLower()}") == false) + { + if (loginModel != null) + { + //context + using (var scope = _scopeFactory.CreateScope()) + { + var context = scope.ServiceProvider.GetRequiredService(); + if (context is not null) + { + try + { + using (var transaction = await context.CreateTransactionAsync(IsolationLevel.ReadUncommitted)) + { + //select user + var selectUser = await context.TUsers.AsNoTracking().FirstOrDefaultAsync(x => x.CUserId.ToLower() == loginModel!.UserID!.ToLower()); + if (selectUser is not null) + { + if (selectUser.CPasswordHashed == loginModel?.Password) + { + //select role + var selectRole = await context.TRoles.FindAsync(selectUser.CAuid); + if (selectRole != null) + { + response.Role = (UserRole)Enum.Parse(typeof(UserRole), selectRole.CRoleId.ToString()); + response.RoleName = selectRole.CRoleName; + } + + // Session.Add(response); + + if (selectUser.CState == (byte)UserState.Active) + { + response.EC = ERROR_CODE.EC_OK; + } + else if (selectUser.CState == (byte)UserState.Inactive) + { + response.EC = ERROR_CODE.EC_USER_LOGIN_INAVTIVE; + } + else if (selectUser.CState == (byte)UserState.Block) + { + response.EC = ERROR_CODE.EC_USER_LOGIN_BLOCKED; + } + } + else + { + response.EC = ERROR_CODE.EC_USER_LOGIN_INVALID_PASSWORD; + } + } + else + { + response.EC = ERROR_CODE.EC_USER_LOGIN_NOT_EXIST; + Log4net.WriteLine($"{response.EC}", LogType.Error); + } + await context.CloseTransactionAsync(transaction); + } + } + catch (Exception e) + { + Log4net.WriteLine($"Select User Transaction Error", LogType.Error); + Log4net.WriteLine(e); + } + } + } + } + } + + return response; + } + + public async Task UpdateLoginInfo(LoginModel loginModel, string? RefreshToken = "") + { + bool result = false; + bool transactionResult = true; + + using (var scope = _scopeFactory.CreateScope()) + { + var context = scope.ServiceProvider.GetRequiredService(); + if (context is not null) + { + var selectUser = await context.TUsers.AsNoTracking().FirstOrDefaultAsync(x => x.CUserId.ToLower() == loginModel!.UserID!.ToLower()); + if (selectUser is not null) + { + using (var transaction = await context.CreateTransactionAsync()) + { + try + { + //user info + selectUser.CLastLoginDateTime = DateTime.Now; + context.Update(selectUser); + + //refresh token + var findRefreshToken = await context.TRefreshTokens.AsNoTracking().FirstOrDefaultAsync(x => x.CAuid == selectUser.CAuid); + //null이면(없으면) add + if (findRefreshToken == null) + { + await context.AddAsync(new TRefreshToken + { + CAuid = selectUser.CAuid, + CRefreshToken = $"{RefreshToken}" + }); + } + //있으면 update + else + { + findRefreshToken.CRefreshToken = $"{RefreshToken}"; + context.Update(findRefreshToken); + } + + //commit + Log4net.WriteLine(findRefreshToken?.ToJson(), LogType.Debug); + + result = true; + } + catch (Exception ex) + { + Log4net.WriteLine(ex); + } + + transactionResult = await context.CloseTransactionAsync(transaction); + } + } + else + { + Log4net.WriteLine($"Not Exist User {loginModel.UserID}", LogType.Error); + } + + //db error + if (transactionResult == false) + { + Log4net.WriteLine($"Transaction Error", LogType.Error); + } + else + { + Log4net.WriteLine($"Transaction Success", LogType.DB); + } + } + } + + return result; + } + + public LogoutResponseModel LogoutUser(LogoutModel logoutModel) + { + LogoutResponseModel response = new LogoutResponseModel(); + response.UserID = logoutModel.UserID; + response.EC = ERROR_CODE.EC_USER_LOGOUT_FAILED; + + var session = Session.Find(x => x.UserID?.ToLower() == logoutModel?.UserID?.ToLower()); + if (session != null) + { + Session.Remove(session); + response.EC = ERROR_CODE.EC_OK; + } + + return response; + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/Services/ISO15118_02Service.cs b/Projects/VPKI/VPKI/VPKI.Web.Api/Services/ISO15118_02Service.cs new file mode 100644 index 0000000..f16f7cf --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/Services/ISO15118_02Service.cs @@ -0,0 +1,373 @@ +using DB.VPKI_DataDB; +using Microsoft.EntityFrameworkCore; +using Org.BouncyCastle.Asn1; +using Org.BouncyCastle.Asn1.Pkcs; +using Org.BouncyCastle.Asn1.X509; +using Org.BouncyCastle.Asn1.X9; +using Org.BouncyCastle.Pkcs; +using System.Security.Cryptography; +using System.Text; +using SystemX.Core.DB; +using VPKI.Library.Config; +using VPKI.Library.Enums; +using VPKI.Library.Packet; +using VPKI.Library.Services; + +namespace VPKI.Web.Api.Services +{ + public class ISO15118_02Service : VpkiBaseService + { + private readonly IServiceScopeFactory _scopeFactory; + + private readonly string URL_V1_CERTIFICATE_ISSUE = "api/v1/{1}/issue"; + + public ISO15118_02Service(ConfigService configSerice, CertificateService certificateService, IServiceScopeFactory scopeFactory) + :base(configSerice, certificateService, scopeFactory) + { + _scopeFactory = scopeFactory; + } + + /// + /// tbscsr + /// + public async Task RequestTbscsr(Request_Tbscsr request, VpkiType vpkiType = VpkiType.prov_v1) + { + Response_Tbscsr response = new Response_Tbscsr(); + + if (request != null) + { + string pcid = _certificateService.CreatePCID(request, VpkiType.prov_v1); + string dn = $"cn={pcid},ou={request.certInfo.tierCode},ou={request.certInfo.unitCode},ou=ECC,o=HKMC,dc={request.certInfo.dc}"; + + string csrOrigin = _certificateService.CreateCsr256(dn, request.publickey); + string tbaCsrHashed = string.Empty; + + //sha 256 + using (SHA256 sha256 = SHA256.Create()) + { + byte[] hashed = sha256.ComputeHash(Convert.FromBase64String(csrOrigin)); + tbaCsrHashed = Convert.ToBase64String(hashed); + Log4net.WriteLine($"Hashed CSR (Base64): {tbaCsrHashed}", LogType.Info); + } + + //csr error + if (string.IsNullOrEmpty(csrOrigin) == true) + { + response.status = Status.error.ToString(); + response.message = "create csr error"; + } + //pcid error + else if (string.IsNullOrEmpty(pcid) == true) + { + response.status = Status.error.ToString(); + response.message = "create pcid error"; + } + //success + else + { + var tbscsr = new TTbscsr + { + CIftid = $"{request?.iftid}", + CMacaddr = $"{request?.cnInfo?.macaddr}", + CWmi = $"{request?.cnInfo?.wmi}", + CIdType = $"{request?.cnInfo?.idType}", + CSupplierId = $"{request?.cnInfo?.supplierId}", + CDc = $"{request?.certInfo?.dc}", + CTierCode = $"{request?.certInfo?.tierCode}", + CUnitCode = $"{request?.certInfo?.unitCode}", + CPublickey = $"{request?.publickey}", + CCertType = "prov_v1", + + COriginTbscsr = csrOrigin, + CHashedTbscsr = tbaCsrHashed, + CPcid = pcid, + CDn = $"{dn}", + + CDateTime = DateTime.Now + }; + + //db context + bool transactionResult = true; + bool isExist = false; + + using (var scope = _scopeFactory.CreateScope()) + { + var context = scope.ServiceProvider.GetRequiredService(); + + if (context != null) + { + //pcid 중복 체크, 있으면 에러 + if (await context.TTbscsrs.AsNoTracking().FirstOrDefaultAsync(x => x.CPcid == tbscsr.CPcid) != null) + { + isExist = true; + } + //success + else + { + using (var transaction = await context.CreateTransactionAsync()) + { + await context.AddAsync(tbscsr); + transactionResult = await context.CloseTransactionAsync(transaction); + } + } + } + } + + //db error + if (transactionResult == false) + { + response.status = Status.error.ToString(); + response.message = "ISO15118-02 Tbscsr database error"; + } + + if (isExist == true) + { + response.status = Status.error.ToString(); + response.message = $"pcid aleady exist"; + } + } + + response.data = new Response_Tbscsr.Data + { + hashedtbscsr = $"{tbaCsrHashed}", + pcid = $"{pcid}", + evccid = $"{pcid}", + }; + } + + return response; + } + + /// + /// certificate + /// + public async Task RequestCertificate(Request_Certificate request) + { + Response_Certificate response = new Response_Certificate(); + + Request_CertificateOEM requestOem = new Request_CertificateOEM(); + Response_CertificateOEM? responseOem = new Response_CertificateOEM(); + + bool isVerify = false; + bool transactionResult = true; + using (var scope = _scopeFactory.CreateScope()) + { + var context = scope.ServiceProvider.GetRequiredService(); + if (context != null) + { + string cCertType = "prov_v1"; + + TTbscsr tbscsr = new TTbscsr(); + foreach (var csr in await context.TTbscsrs.AsNoTracking().Where(x => x.CCertType == cCertType).OrderByDescending(x => x.CCuid).ToListAsync()) + { + try + { + using (ECDsa ecdsa = ECDsa.Create(ECCurve.NamedCurves.nistP256)) + { + var publicKeyPem = $"{_certificateService.ConvertToPEM(Convert.FromBase64String(csr.CPublickey))}"; + ecdsa.ImportSubjectPublicKeyInfo(Convert.FromBase64String(publicKeyPem), out _); + + var hachedTbsCsr = Convert.FromBase64String(csr.CHashedTbscsr); + isVerify = ecdsa.VerifyHash(hachedTbsCsr, Convert.FromBase64String($"{request.csrsignature}")); + } + + if (isVerify == true) + { + tbscsr = csr; + break; + } + } + catch (Exception e) + { + e.ToString(); + } + } + + if (isVerify == true) + { + var decode = _certificateService.DecodeDERSignature_02(Convert.FromBase64String($"{request.csrsignature}").ToList()); + Log4net.WriteLine($"Decode Csrsignature: {Convert.ToBase64String(decode.ToArray())}", LogType.Debug); + + CertificationRequestInfo certificationRequestInfo = CertificationRequestInfo.GetInstance(Convert.FromBase64String($"{tbscsr.COriginTbscsr}")); + CertificationRequest certificationRequest = new CertificationRequest( + certificationRequestInfo, + new AlgorithmIdentifier(X9ObjectIdentifiers.ECDsaWithSha256), + new DerBitString(decode.ToArray())); + Pkcs10CertificationRequest pKCS10CertificationRequest = new Pkcs10CertificationRequest(certificationRequest.GetEncoded()); + + byte[] completeCsr = pKCS10CertificationRequest.GetEncoded(); + + requestOem = new Request_CertificateOEM + { + csr = $"{Consts.BEGIN_CERTIFICATE_REQUEST}{Convert.ToBase64String(completeCsr)}{Consts.END_CERTIFICATE_REQUEST}", + unitCode = request.unitCode, + tierCode = request.tierCode, + vehicleCode = request.vehicleCode, + localCode = request.localCode, + brandCode = request.brandCode + }; + + string url = $"{URL_VPKI_BASE}{URL_V1_CERTIFICATE_ISSUE}"; + url = url.Replace("{1}", "prov"); + + responseOem = await PostJsonAsync($"{url}", requestOem); + + response.status = responseOem?.status; + response.message = $"{responseOem?.resultMessage}"; + + //db처리 + using (var transaction = await context.CreateTransactionAsync()) + { + if (await context.TCertificates.AsNoTracking().FirstOrDefaultAsync(x => x.CCuid == tbscsr.CCuid) != null) + { + var certificate = new TCertificate + { + CCuid = tbscsr.CCuid, + CCsrsignature = $"{request.csrsignature}", + CCsr = $"{requestOem?.csr}", + CTierCode = $"{requestOem?.tierCode}", + CUnitCode = $"{requestOem?.unitCode}", + CVehicleCode = $"{requestOem?.vehicleCode}", + CLocalCode = $"{requestOem?.localCode}", + CBrandCode = $"{requestOem?.brandCode}", + CCert = $"{responseOem?.cert}", + CMessage = $"{responseOem?.resultMessage}", + CIssueCount = 1, + + CDateTime = DateTime.Now + }; + await context.AddAsync(certificate); + } + transactionResult = await context.CloseTransactionAsync(transaction); + } + + //ocsp + var ocsp = await Ocsp(tbscsr.CCuid); + using (var transaction = await context.CreateTransactionAsync()) + { + if (await context.TOcsps.AsNoTracking().FirstOrDefaultAsync(x => x.CCuid == tbscsr.CCuid) != null) + { + var certificate = new TOcsp + { + CCuid = tbscsr.CCuid, + CStatus = GetOcspStatus(tbscsr.CPcid, ocsp), + CVerify = GetOcspVerify(ocsp), + COcsp = $"{ocsp}", + CDateTime = DateTime.Now + }; + await context.AddAsync(certificate); + } + transactionResult = await context.CloseTransactionAsync(transaction); + } + } + //verify failed + else + { + response.status = Status.error.ToString(); + response.message += "verify fialed"; + } + + //db error + if (transactionResult == false) + { + response.status = Status.error.ToString(); + response.message += "database error"; + } + } + } + + string cert = $"{responseOem?.cert}"; + cert = cert.Replace($"{Consts.BEGIN_CERTIFICATE}","").Replace($"{Consts.END_CERTIFICATE}", ""); + cert = cert.Replace($"\r","").Replace($"\n", ""); + response.data = new Response_Certificate.Data + { + leafcertificate = $"{cert}", + subcacertificate = $"{GetSubCA(VpkiType.prov_v1)}" + }; + + return response; + } + + /// + /// verifyresult + /// + public async Task RequestVerifyresult(Request_Verifyresult request) + { + Response_Verifyresult response = new Response_Verifyresult(); + + bool transactionResult = true; + string serverResult = "success"; + + using (var scope = _scopeFactory.CreateScope()) + { + var context = scope.ServiceProvider.GetRequiredService(); + if (context != null) + { + var tbscsr = await context.TTbscsrs.AsNoTracking().FirstOrDefaultAsync(x => x.CIftid == request.iftid && x.CPcid == request.pcid); + if (tbscsr != null) + { + using (var transaction = await context.CreateTransactionAsync()) + { + var findVerifyResult = await context.TVerifyResults.AsNoTracking().FirstOrDefaultAsync(x => x.CCuid == tbscsr.CCuid); + if (findVerifyResult == null) + { + var verifyResult = new TVerifyResult + { + CCuid = tbscsr.CCuid, + CResult = $"{request.result}" + }; + await context.AddAsync(verifyResult); + } + else + { + findVerifyResult.CResult = $"{request.result}"; + context.Update(findVerifyResult); + } + transactionResult = await context.CloseTransactionAsync(transaction); + } + + //db error + if (transactionResult == false) + { + response.status = Status.error.ToString(); + response.message += "database error"; + } + + //server_result + var certificate = await context.TCertificates.AsNoTracking().FirstOrDefaultAsync(x => x.CCuid == tbscsr.CCuid); + if (certificate != null) + { + //인증서 없다 + if (string.IsNullOrEmpty(certificate.CCert) == true) + { + serverResult = "empty"; + } + //폐기된 인증서 + else if (certificate.CIssueCount < 0) + { + serverResult = "revoked"; + } + } + } + //일치하는 데이터 없으면 + else + { + response.status = Status.error.ToString(); + response.message = "Not matched ift and pcid"; + serverResult = "error"; + } + } + } + + response.data = new Response_Verifyresult.Data + { + iftid = $"{request.iftid}", + pcid = $"{request.pcid}", + ift_result = $"{request.result}", + server_result=$"{serverResult}" + }; + + return response; + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/Services/ISO15118_20Service.cs b/Projects/VPKI/VPKI/VPKI.Web.Api/Services/ISO15118_20Service.cs new file mode 100644 index 0000000..e3e8333 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/Services/ISO15118_20Service.cs @@ -0,0 +1,364 @@ +using Org.BouncyCastle.Asn1.X509; +using Org.BouncyCastle.Asn1; +using Org.BouncyCastle.Pkcs; +using System.Security.Cryptography; +using System.Text; +using VPKI.Library.Config; +using VPKI.Library.Enums; +using VPKI.Library.Packet; +using VPKI.Library.Services; +using Org.BouncyCastle.Asn1.Pkcs; +using Org.BouncyCastle.Asn1.X9; +using DB.VPKI_DataDB; +using Microsoft.EntityFrameworkCore; +using SystemX.Core.DB; + +namespace VPKI.Web.Api.Services +{ + public class ISO15118_20Service : VpkiBaseService + { + private readonly IServiceScopeFactory _scopeFactory; + + private readonly string URL_V2_CERTIFICATE_ISSUE = "api/v2/{1}/issue"; + + public ISO15118_20Service(ConfigService configService, CertificateService certificateService, IServiceScopeFactory scopeFactory) + : base(configService, certificateService, scopeFactory) + { + _scopeFactory = scopeFactory; + } + + /// + /// tbscsr + /// + public async Task RequestTbscsr(Request_Tbscsr request, VpkiType vpkiType) + { + Response_Tbscsr response = new Response_Tbscsr(); + + if (request != null) + { + if (request.certType?.Contains(VpkiType.evcc_cert.ToString()) == true) + { + request.certType = VpkiType.vehicle_cert.ToString(); + } + + string pcid = _certificateService.CreatePCID(request, VpkiType.prov_v1); + string dn = $"cn={_certificateService.CreatePCID(request, VpkiType.prov_cert)},ou={request.certInfo.tierCode},ou={request.certInfo.unitCode},ou=ECC,o=HKMC,dc={request.certInfo.dc}"; + if (request.certType == VpkiType.vehicle_cert.ToString() || request.certType == VpkiType.evcc_cert.ToString()) + dn = $"cn={_certificateService.CreatePCID(request, VpkiType.vehicle_cert)},ou={request.certInfo.tierCode},ou={request.certInfo.unitCode},ou=ECC,o=HKMC,dc={request.certInfo.dc}"; + + string csrOrigin = _certificateService.CreateCsr512(dn, request.publickey); + string tbaCsrHashed = string.Empty; + + //sha 512 + using (SHA512 sha512 = SHA512.Create()) + { + byte[] hashed = sha512.ComputeHash(Convert.FromBase64String(csrOrigin)); + tbaCsrHashed = Convert.ToBase64String(hashed); + Log4net.WriteLine($"Hashed CSR (Base64): {tbaCsrHashed}", LogType.Debug); + } + + //csr error + if (string.IsNullOrEmpty(csrOrigin) == true) + { + response.status = Status.error.ToString(); + response.message = "create csr error"; + } + //pcid error + else if (string.IsNullOrEmpty(pcid) == true) + { + response.status = Status.error.ToString(); + response.message = "create pcid error"; + } + //success + else + { + var tbscsr = new TTbscsr + { + CIftid = $"{request?.iftid}", + CMacaddr = $"{request?.cnInfo?.macaddr}", + CWmi = $"{request?.cnInfo?.wmi}", + CIdType = $"{request?.cnInfo?.idType}", + CSupplierId = $"{request?.cnInfo?.supplierId}", + CDc = $"{request?.certInfo?.dc}", + CTierCode = $"{request?.certInfo?.tierCode}", + CUnitCode = $"{request?.certInfo?.unitCode}", + CPublickey = $"{request?.publickey}", + CCertType = $"{request?.certType}", + + COriginTbscsr = csrOrigin, + CHashedTbscsr = tbaCsrHashed, + CPcid = pcid, + CDn = $"{dn}", + + CDateTime = DateTime.Now + }; + + //db context + bool transactionResult = true; + bool isExist = false; + + using (var scope = _scopeFactory.CreateScope()) + { + var context = scope.ServiceProvider.GetRequiredService(); + if (context != null) + { + //pcid 중복 체크, 있으면 업데이트 + if (await context.TTbscsrs.AsNoTracking().FirstOrDefaultAsync(x => x.CPcid == tbscsr.CPcid) != null) + { + isExist = true; + } + //success + else + { + using (var transaction = await context.CreateTransactionAsync()) + { + await context.AddAsync(tbscsr); + transactionResult = await context.CloseTransactionAsync(transaction); + } + } + } + + //db error + if (transactionResult == false) + { + response.status = Status.error.ToString(); + response.message = "ISO15118-20 Tbscsr database error"; + } + + if (isExist == true) + { + response.status = Status.error.ToString(); + response.message = $"pcid aleady exist"; + } + } + } + + response.data = new Response_Tbscsr.Data + { + hashedtbscsr = $"{tbaCsrHashed}", + pcid = $"{pcid}", + evccid = $"{pcid}" + }; + } + Log4net.WriteLine(response.ToJson(), response!.status!.Contains("error") ? LogType.Error : LogType.Info); + + return response; + } + + /// + /// certificate + /// + public async Task RequestCertificate(Request_Certificate request, VpkiType vpkiType) + { + if (vpkiType == VpkiType.evcc_cert) + vpkiType = VpkiType.vehicle_cert; + + Response_Certificate response = new Response_Certificate(); + + Request_CertificateOEM requestOem = new Request_CertificateOEM(); + Response_CertificateOEM? responseOem = new Response_CertificateOEM(); + + bool isVerify = false; + bool transactionResult = true; + + using (var scope = _scopeFactory.CreateScope()) + { + var context = scope.ServiceProvider.GetRequiredService(); + if (context != null) + { + string cCertType = vpkiType.ToString(); + + TTbscsr tbscsr = new TTbscsr(); + foreach (var csr in await context.TTbscsrs.AsNoTracking().Where(x => x.CCertType == cCertType).OrderByDescending(x => x.CCuid).ToListAsync()) + { + try + { + using (ECDsa ecdsa = ECDsa.Create(ECCurve.NamedCurves.nistP521)) + { + var publicKeyPem = $"{_certificateService.ConvertToPEM(Convert.FromBase64String(csr.CPublickey))}"; + ecdsa.ImportSubjectPublicKeyInfo(Convert.FromBase64String(publicKeyPem), out _); + + var hachedTbsCsr = Convert.FromBase64String(csr.CHashedTbscsr); + isVerify = ecdsa.VerifyHash(hachedTbsCsr, Convert.FromBase64String($"{request.csrsignature}")); + } + + if (isVerify == true) + { + tbscsr = csr; + break; + } + } + catch (Exception e) + { + e.ToString(); + } + } + + if (isVerify == true) + { + var decode = _certificateService.DecodeDERSignature_20(Convert.FromBase64String($"{request.csrsignature}").ToList()); + Log4net.WriteLine($"Decode Csrsignature: {Convert.ToBase64String(decode.ToArray())}", LogType.Debug); + + CertificationRequestInfo certificationRequestInfo = CertificationRequestInfo.GetInstance(Convert.FromBase64String($"{tbscsr.COriginTbscsr}")); + CertificationRequest certificationRequest = new CertificationRequest( + certificationRequestInfo, + new AlgorithmIdentifier(X9ObjectIdentifiers.ECDsaWithSha512), + new DerBitString(decode.ToArray())); + Pkcs10CertificationRequest pKCS10CertificationRequest = new Pkcs10CertificationRequest(certificationRequest.GetEncoded()); + + byte[] completeCsr = pKCS10CertificationRequest.GetEncoded();//csr.CreateCertificateRequest(); + + requestOem = new Request_CertificateOEM + { + csr = $"{Consts.BEGIN_CERTIFICATE_REQUEST}{Convert.ToBase64String(completeCsr)}{Consts.END_CERTIFICATE_REQUEST}", + unitCode = request.unitCode, + tierCode = request.tierCode, + vehicleCode = request.vehicleCode, + localCode = request.localCode, + brandCode = request.brandCode + }; + + string url = $"{URL_VPKI_BASE}{URL_V2_CERTIFICATE_ISSUE}"; + url = url.Replace("{1}", $"{vpkiType.ToString().Split("_").FirstOrDefault()}"); + + responseOem = await PostJsonAsync(url, requestOem); + + response.status = responseOem?.status; + response.message = $"{responseOem?.resultMessage}"; + + using (var transaction = await context.CreateTransactionAsync()) + { + if (await context.TCertificates.AsNoTracking().FirstOrDefaultAsync(x => x.CCuid == tbscsr.CCuid) != null) + { + var certificate = new TCertificate + { + CCuid = tbscsr.CCuid, + CCsrsignature = $"{request.csrsignature}", + CCsr = requestOem.csr, + CTierCode = $"{requestOem?.tierCode}", + CUnitCode = $"{requestOem?.unitCode}", + CVehicleCode = $"{requestOem?.vehicleCode}", + CLocalCode = $"{requestOem?.localCode}", + CBrandCode = $"{requestOem?.brandCode}", + CCert = $"{responseOem?.cert}", + CMessage = $"{responseOem?.resultMessage}", + CIssueCount = 1, + + CDateTime = DateTime.Now + }; + await context.AddAsync(certificate); + } + transactionResult = await context.CloseTransactionAsync(transaction); + } + } + //verify failed + else + { + response.status = Status.error.ToString(); + response.message += "verify fialed"; + } + + //db error + if (transactionResult == false) + { + response.status = Status.error.ToString(); + response.message += "database error"; + } + } + } + + string cert = $"{responseOem?.cert}"; + cert = cert.Replace($"{Consts.BEGIN_CERTIFICATE}", "").Replace($"{Consts.END_CERTIFICATE}", ""); + cert = cert.Replace($"\r", "").Replace($"\n", ""); + response.data = new Response_Certificate.Data + { + leafcertificate = $"{cert}", + subcacertificate = $"{GetSubCA(vpkiType)}" + }; + + return response; + } + + /// + /// verifytresult + /// + public async Task RequestVerifyresult(Request_Verifyresult request) + { + Response_Verifyresult response = new Response_Verifyresult(); + + bool transactionResult = true; + string serverResult = "success"; + + using (var scope = _scopeFactory.CreateScope()) + { + var context = scope.ServiceProvider.GetRequiredService(); + if (context != null) + { + var tbscsr = await context.TTbscsrs.AsNoTracking().FirstOrDefaultAsync(x => x.CIftid == request.iftid && x.CPcid == request.pcid); + if (tbscsr != null) + { + using (var transaction = await context.CreateTransactionAsync()) + { + var findVerifyResult = await context.TVerifyResults.AsNoTracking().FirstOrDefaultAsync(x => x.CCuid == tbscsr.CCuid); + if (findVerifyResult == null) + { + var verifyResult = new TVerifyResult + { + CCuid = tbscsr.CCuid, + CResult = $"{request.result}" + }; + await context.AddAsync(verifyResult); + } + else + { + findVerifyResult.CResult = $"{request.result}"; + context.Update(findVerifyResult); + } + transactionResult = await context.CloseTransactionAsync(transaction); + } + + //db error + if (transactionResult == false) + { + response.status = Status.error.ToString(); + response.message += "database error"; + } + + //server_result + var certificate = context.TCertificates.ToList().Find(x => x.CCuid == tbscsr.CCuid); + if (certificate != null) + { + //인증서 없다 + if (string.IsNullOrEmpty(certificate.CCert) == true) + { + serverResult = "empty"; + } + //폐기된 인증서 + else if (certificate.CIssueCount < 0) + { + serverResult = "revoked"; + } + } + } + //일치하는 데이터 없으면 + else + { + response.status = Status.error.ToString(); + response.message = "Not matched ift and pcid"; + serverResult = "error"; + } + } + } + + response.data = new Response_Verifyresult.Data + { + iftid = $"{request.iftid}", + pcid = $"{request.pcid}", + ift_result = $"{request.result}", + server_result = $"{serverResult}" + }; + + return response; + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/Services/UserService.cs b/Projects/VPKI/VPKI/VPKI.Web.Api/Services/UserService.cs new file mode 100644 index 0000000..dc3b273 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/Services/UserService.cs @@ -0,0 +1,95 @@ +using Azure; +using DB.VPKI_AccountDB; +using DB.VPKI_DataDB; +using DocumentFormat.OpenXml.Spreadsheet; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Internal; +using Org.BouncyCastle.Pqc.Crypto.Lms; +using System; +using System.Data; +using SystemX.Core.DB; +using VPKI.Library.Config; +using VPKI.Library.Enums; +using VPKI.Library.Model; +using VPKI.Library.Services; + +namespace VPKI.Web.Api.Services +{ + public class UserService + { + private readonly IServiceProvider _serviceProvider; + private readonly IServiceScopeFactory _scopeFactory; + + private readonly ConfigService? _configService; + + private readonly Library.Config.Model.DataBase? _accountDB; + + public UserService(IServiceProvider serviceProvider, IServiceScopeFactory scopeFactory, + ConfigService configSerice) + { + _serviceProvider = serviceProvider; + _scopeFactory = scopeFactory; + _configService = configSerice; + + _accountDB = _configService?.GetConfig()?.DataBase?.Find(x => x.DBContext == "VpkiAccountDbContext"); + } + + public async Task> GetAllUsers() + { + List Users = new List(); + + //context + using (var scope = _scopeFactory.CreateScope()) + { + var context = scope.ServiceProvider.GetRequiredService(); + if (context is not null) + { + using (var transaction = await context.CreateTransactionAsync(IsolationLevel.ReadUncommitted)) + { + Users = await context.TUsers.AsNoTracking().Join(context.TRoles.AsNoTracking(), x => x.CAuid, y => y.CAuid, + (x, y) => new UserModel { TUser = x, TRole = y }).ToListAsync(); + + await context.CloseTransactionAsync(transaction); + } + } + } + + return Users; + } + + public async Task UpdateUser(UserModel user) + { + bool transactionResult = false; + + //context + if(user.TUser != null && user.TRole != null) + { + using (var scope = _scopeFactory.CreateScope()) + { + var context = scope.ServiceProvider.GetRequiredService(); + if (context is not null) + { + using (var transaction = await context.CreateTransactionAsync()) + { + context.Update(user.TUser); + context.Update(user.TRole); + transactionResult = await context.CloseTransactionAsync(transaction); + } + } + + //db error + if (transactionResult == false) + { + Log4net.WriteLine($"Transaction Error::", LogType.Error); + } + else + { + Log4net.WriteLine($"Transaction Success", LogType.DB); + } + } + } + + return user; + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/Services/VpkiBaseService.cs b/Projects/VPKI/VPKI/VPKI.Web.Api/Services/VpkiBaseService.cs new file mode 100644 index 0000000..49b0c7b --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/Services/VpkiBaseService.cs @@ -0,0 +1,298 @@ +using Azure; +using DB.VPKI_DataDB; +using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal; +using Microsoft.Extensions.FileSystemGlobbing.Internal; +using Microsoft.Identity.Client; +using Org.BouncyCastle.Crypto.Signers; +using Org.BouncyCastle.Utilities.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Reflection; +using System.Security.Cryptography; +using System.Text; +using System.Text.RegularExpressions; +using SystemX.Core.DB; +using VPKI.Library.Config; +using VPKI.Library.Config.Model; +using VPKI.Library.Enums; +using VPKI.Library.Model; +using VPKI.Library.Packet; +using VPKI.Library.Services; + +namespace VPKI.Web.Api.Services +{ + public class VpkiBaseService : HttpService + { + private readonly IServiceScopeFactory _scopeFactory; + + protected string URL_VPKI_BASE = string.Empty; + + protected readonly ConfigService _configService; + protected readonly CertificateService _certificateService; + + public VpkiBaseService(ConfigService configService, CertificateService certificateService, IServiceScopeFactory scopeFactory) + : base() + { + _configService = configService; + _certificateService = certificateService; + _scopeFactory = scopeFactory; + + var api = _configService!.GetConfig()?.Api?.Find(x => x.ApiName?.ToLower() == Consts.VPKI_API_VPKIRA.ToLower()); + URL_VPKI_BASE = $"{api?.Address}"; + } + + #region 공통 사용 함수 + public async Task> History(DateOnly startDate, DateOnly endDate) + { + List response = new List(); + + using (var scope = _scopeFactory.CreateScope()) + { + var context = scope.ServiceProvider.GetRequiredService(); + if (context != null) + { + using (var transaction = await context.CreateTransactionAsync(System.Data.IsolationLevel.ReadUncommitted)) + { + var getList = await context.TTbscsrs.AsNoTracking().Where(x => startDate <= DateOnly.FromDateTime(x.CDateTime.Date) + && DateOnly.FromDateTime(x.CDateTime.Date) <= endDate).ToListAsync(); + response.AddRange(getList.Select(x => new CertificateHistoryModel { TTbscsr = x, TCertificate = null })); + + foreach (var r in response) + { + var certificate = await context.TCertificates.AsNoTracking().FirstOrDefaultAsync(x => x.CCuid == r!.TTbscsr!.CCuid); + if (certificate != null) + r.TCertificate = certificate; + + var verifyResult = await context.TVerifyResults.AsNoTracking().FirstOrDefaultAsync(x => x.CCuid == r!.TTbscsr!.CCuid); + if (verifyResult != null) + r.TVerifyResult = verifyResult; + + var ocspResult = await context.TOcsps.AsNoTracking().FirstOrDefaultAsync(x => x.CCuid == r!.TTbscsr!.CCuid); + if (ocspResult != null) + r.TOcsp = ocspResult; + } + + await context.CloseTransactionAsync(transaction); + } + } + } + + return response; + } + + public async Task History(long ccuid) + { + CertificateHistoryModel response = new CertificateHistoryModel(); + + using (var scope = _scopeFactory.CreateScope()) + { + var context = scope.ServiceProvider.GetRequiredService(); + if (context != null) + { + using (var transaction = await context.CreateTransactionAsync(System.Data.IsolationLevel.ReadUncommitted)) + { + var searchData = await context.TTbscsrs.AsNoTracking().FirstOrDefaultAsync(x => x.CCuid == ccuid); + if (searchData != null) + { + response.TTbscsr = searchData; + + var certificate = await context.TCertificates.AsNoTracking().FirstOrDefaultAsync(x => x.CCuid == searchData!.CCuid); + if (certificate != null) + response.TCertificate = certificate; + + var verifyResult = await context.TVerifyResults.AsNoTracking().FirstOrDefaultAsync(x => x.CCuid == searchData!.CCuid); + if (verifyResult != null) + response.TVerifyResult = verifyResult; + + var ocspResult = await context.TOcsps.AsNoTracking().FirstOrDefaultAsync(x => x.CCuid == searchData!.CCuid); + if (ocspResult != null) + response.TOcsp = ocspResult; + } + + await context.CloseTransactionAsync(transaction); + } + } + } + + return response; + } + + + //SubCA + public virtual string GetSubCA(VpkiType vpkiType, bool isEncoding = true) + { + string result = string.Empty; + + var openSslConfig = $"{_configService?.GetConfig()?.Openssl?.SubCAPath}"; + string subCaName = FindSubCaName(vpkiType); + + var subCA = File.ReadAllText(@$"{openSslConfig}{subCaName}"); + if (isEncoding == false) + { + result = subCA; + } + else + { + subCA = subCA.Replace($"{Consts.BEGIN_CERTIFICATE}", "").Replace($"{Consts.END_CERTIFICATE}", ""); + subCA = subCA.Replace("\r", "").Replace("\n", ""); + var subCaAscii = Encoding.ASCII.GetBytes(subCA).ToList(); + if (subCaAscii != null) + { + result = Convert.ToBase64String(subCaAscii.ToArray()); + } + } + + return subCA; + } + + public async Task GetCertificateInfo(long ccuid) + { + string result = string.Empty; + + //인증서 Temp에 저장 + string tempPath = @$"{Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)}/temp/"; + var history = await History(ccuid); + if (Directory.Exists(tempPath) == false) + Directory.CreateDirectory(tempPath); + + string pcid = $"{history?.TTbscsr?.CPcid}"; + File.WriteAllText($"{tempPath}{pcid}.pem", history?.TCertificate?.CCert); + + // 프로세스 설정 + string command = $"x509 -in {tempPath}{pcid}.pem -text"; + ProcessStartInfo startInfo = new ProcessStartInfo + { + FileName = @$"{_configService?.GetConfig()?.Openssl?.Path}", // cmd.exe로 명령어 실행 + Arguments = $"{command}", // /c는 명령어 실행 후 종료하는 옵션 + RedirectStandardOutput = true, // 표준 출력 리디렉션 + RedirectStandardError = true, // 표준 오류 리디렉션 + UseShellExecute = false, // 셸을 사용하지 않도록 설정 + CreateNoWindow = true // 새 창을 열지 않도록 설정, + }; + + // 프로세스 실행 + using (Process? process = Process.Start(startInfo)) + { + if (process != null) + { + // 출력 결과를 읽기 + string output = process.StandardOutput.ReadToEnd(); + string error = process.StandardError.ReadToEnd(); + + // 출력 결과 또는 오류 표시 + if (!string.IsNullOrEmpty(output)) + result = output; + + if (!string.IsNullOrEmpty(error)) + result += output; + } + } + + return result; + } + + public async Task Ocsp(long ccuid) + { + string result = string.Empty; + + //인증서 Temp에 저장 + string tempPath = @$"{Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)}/temp/"; + string subCaPath = @$"{Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)}/../SubCA/"; + var history = await History(ccuid); + if (Directory.Exists(tempPath) == false) + Directory.CreateDirectory(tempPath); + + string pcid = $"{history?.TTbscsr?.CPcid}"; + File.WriteAllText($"{tempPath}{pcid}.pem", history?.TCertificate?.CCert); + + string certificateInfo = await GetCertificateInfo(ccuid); + string url = GetOcspUrl(certificateInfo); + + var vpkiType = (VpkiType)Enum.Parse(typeof(VpkiType), $"{history?.TTbscsr?.CCertType}"); + string subCaFile = string.Empty; + + var openSslConfig = _configService?.GetConfig()?.Openssl?.SubCA; + var prop = openSslConfig?.GetType()?.GetProperty($"{vpkiType}"); + subCaFile = $"{prop?.GetValue(openSslConfig)?.ToString()}"; + + // 프로세스 설정 + string command = $"ocsp -issuer {subCaPath}{subCaFile} -CAfile {subCaPath}hkmcrootca.pem -cert {tempPath}{pcid}.pem -url {url} -text -timeout 3"; + Log4net.WriteLine($"{command}", LogType.Info); + ProcessStartInfo startInfo = new ProcessStartInfo + { + FileName = @$"{_configService?.GetConfig()?.Openssl?.Path}", // cmd.exe로 명령어 실행 + Arguments = $"{command}", // /c는 명령어 실행 후 종료하는 옵션 + RedirectStandardOutput = true, // 표준 출력 리디렉션 + RedirectStandardError = true, // 표준 오류 리디렉션 + UseShellExecute = false, // 셸을 사용하지 않도록 설정 + CreateNoWindow = true // 새 창을 열지 않도록 설정, + }; + + // 프로세스 실행 + using (Process? process = Process.Start(startInfo)) + { + if (process != null) + { + // 출력 결과를 읽기 + string output = process.StandardOutput.ReadToEnd(); + string response = process.StandardError.ReadToEnd(); + + // 출력 결과 또는 오류 표시 + if (!string.IsNullOrEmpty(output)) + result = output; + + if (!string.IsNullOrEmpty(response)) + result += response; + } + } + + result = result.Replace($"{tempPath}",""); + GetOcspStatus(pcid, result); + GetOcspVerify(result); + + return result; + } + + protected virtual string GetOcspStatus(string pcid, string ocsp) + { + var ocspLines = ocsp.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None).ToList(); + var statusLine = ocspLines.Find(x => x.Contains($"{pcid}.pem")); + string? status = statusLine?.Split(":")?.Last(); + + return $"{status}"; + } + + protected virtual string GetOcspVerify(string ocsp) + { + var ocspLines = ocsp.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None).ToList(); + var verifyLine = ocspLines.Find(x => x.ToLower().Contains($"response verify")); + string? verify = verifyLine?.Split(" ")?.Last(); + + return $"{verify}"; + } + + protected virtual string GetOcspUrl(string certificateInfo) + { + string finder = "OCSP - URI:"; + + var certificateLines = certificateInfo.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None).ToList(); + var ocspUrl = certificateLines.Find(x => x.Contains($"{finder}")); + string? url = ocspUrl?.Replace(finder, ""); + + return $"{url}"; + } + + protected virtual string FindSubCaName(VpkiType vpkiType) + { + var openSslConfig = _configService?.GetConfig()?.Openssl?.SubCA; + var prop = openSslConfig?.GetType()?.GetProperty($"{vpkiType}"); + string subCaFile = $"{prop?.GetValue(openSslConfig)?.ToString()}"; + + return subCaFile; + } + + #endregion + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/VPKI.Web.Api.csproj b/Projects/VPKI/VPKI/VPKI.Web.Api/VPKI.Web.Api.csproj new file mode 100644 index 0000000..adcf600 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/VPKI.Web.Api.csproj @@ -0,0 +1,62 @@ + + + + net8.0 + enable + enable + a5eca56b-f522-474b-8bf2-451ed90325f3 + Windows + + + + True + + + + True + + + + + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + + + + ..\..\..\DLL\SystemX.Core.dll + + + + + + + + diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/appsettings.Development.json b/Projects/VPKI/VPKI/VPKI.Web.Api/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Api/appsettings.json b/Projects/VPKI/VPKI/VPKI.Web.Api/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Api/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/.config/dotnet-tools.json b/Projects/VPKI/VPKI/VPKI.Web.Client/.config/dotnet-tools.json new file mode 100644 index 0000000..40d4373 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/.config/dotnet-tools.json @@ -0,0 +1,12 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "dotnet-ef": { + "version": "8.0.10", + "commands": [ + "dotnet-ef" + ] + } + } +} \ No newline at end of file diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/App.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/App.razor new file mode 100644 index 0000000..8baad56 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/App.razor @@ -0,0 +1,25 @@ + + + + + + + VPKI Operation + + + + + + + + + + + + + + + + + + diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Dialog/Loading.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Dialog/Loading.razor new file mode 100644 index 0000000..99bb38d --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Dialog/Loading.razor @@ -0,0 +1,22 @@ +@page "/loading/{Message?}" + +
+
+
+
+
+
+
+
+ @Message +
+
+@code { + [Parameter] + public string? Message { get; set; } + + protected override void OnParametersSet() + { + + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Dialog/Loading.razor.css b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Dialog/Loading.razor.css new file mode 100644 index 0000000..7a45254 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Dialog/Loading.razor.css @@ -0,0 +1,57 @@ +.message { + /* change color here */ + color: #f8b26a; + text-align: center; +} + +.lds-ring { + /* change color here */ + color: #f8b26a; +} + +.lds-ring, +.lds-ring div { + box-sizing: border-box; +} + +.lds-ring { + display: inline-block; + position: relative; + width: 80px; + height: 80px; +} + + .lds-ring div { + box-sizing: border-box; + display: block; + position: absolute; + width: 64px; + height: 64px; + margin: 8px; + border: 8px solid currentColor; + border-radius: 50%; + animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; + border-color: currentColor transparent transparent transparent; + } + + .lds-ring div:nth-child(1) { + animation-delay: -0.45s; + } + + .lds-ring div:nth-child(2) { + animation-delay: -0.3s; + } + + .lds-ring div:nth-child(3) { + animation-delay: -0.15s; + } + +@keyframes lds-ring { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Layout/HeaderBar.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Layout/HeaderBar.razor new file mode 100644 index 0000000..f128aca --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Layout/HeaderBar.razor @@ -0,0 +1,86 @@ +@using System.Security.Claims +@using VPKI.Library.Model.Auth + +@inject NavigationManager NavigationManager +@inject AuthenticationStateProvider AuthStateProvider +@inject ApiService ApiService + +
+
+ +
+
+ + + + + + + + + + + +
+
+ +@code{ + private string Role = string.Empty; + private long LostLoginTime = 0; + + protected override void OnInitialized() + { + Task.Run(async() => + { + var state = await((ExtendAuthenticationStatProvicer)AuthStateProvider).GetAuthenticationStateAsync(); + if (state?.User?.Identity?.IsAuthenticated == true) + { + Role = $"{state?.User?.Claims.Where(x => x.Type == ClaimTypes.Role)?.First().Value}"; + await InvokeAsync(StateHasChanged); + } + }); + + //자동 로그아웃 + Task.Run(async () => + { + while (true) + { + var state = await ((ExtendAuthenticationStatProvicer)AuthStateProvider).GetAuthenticationStateAsync(); + if (state?.User?.Identity?.IsAuthenticated == true) + { + //expired + var expired = await ((ExtendAuthenticationStatProvicer)AuthStateProvider).GetExpiredTimeAsync(); + LostLoginTime = expired - DateTime.Now.ToUnixTime(); + if (LostLoginTime < 0) + { + await ((ExtendAuthenticationStatProvicer)AuthStateProvider).MakeUserLogout(); + NavigationManager.NavigateTo("/login"); + } + } + await Task.Delay(1000); + await InvokeAsync(StateHasChanged); + } + }); + } + + private async Task OnClickLogout() + { + var state = await ((ExtendAuthenticationStatProvicer)AuthStateProvider).GetAuthenticationStateAsync(); + + LogoutModel logoutModel = new LogoutModel + { + UserID = state?.User?.Identity?.Name + }; + + await((ExtendAuthenticationStatProvicer)AuthStateProvider).MakeUserLogout(); + var res = await ApiService.PostJsonAsyncBearer("/api/auth/logout", logoutModel); + NavigationManager.NavigateTo("/login"); + } + + private async Task OnClickLogin() + { + await Task.Delay(1); + //await ((ExtendAuthenticationStatProvicer)AuthStateProvider).MakeUserLogout(); + NavigationManager.NavigateTo("/login"); + } +} \ No newline at end of file diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Layout/MainLayout.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Layout/MainLayout.razor new file mode 100644 index 0000000..1c2e93a --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Layout/MainLayout.razor @@ -0,0 +1,36 @@ +@using Microsoft.AspNetCore.Components.Authorization +@inherits LayoutComponentBase +@rendermode InteractiveServer + + + + + + + + + + + + + + + + + +
+ @Body +
+
+ +
+ +
+
+
+ + + +@code { + bool sidebar1Expanded = true; +} \ No newline at end of file diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Layout/MainLayout.razor.css b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Layout/MainLayout.razor.css new file mode 100644 index 0000000..038baf1 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Layout/MainLayout.razor.css @@ -0,0 +1,96 @@ +.page { + position: relative; + display: flex; + flex-direction: column; +} + +main { + flex: 1; +} + +.sidebar { + background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%); +} + +.top-row { + background-color: #f7f7f7; + border-bottom: 1px solid #d6d5d5; + justify-content: flex-end; + height: 3.5rem; + display: flex; + align-items: center; +} + + .top-row ::deep a, .top-row ::deep .btn-link { + white-space: nowrap; + margin-left: 1.5rem; + text-decoration: none; + } + + .top-row ::deep a:hover, .top-row ::deep .btn-link:hover { + text-decoration: underline; + } + + .top-row ::deep a:first-child { + overflow: hidden; + text-overflow: ellipsis; + } + +@media (max-width: 640.98px) { + .top-row { + justify-content: space-between; + } + + .top-row ::deep a, .top-row ::deep .btn-link { + margin-left: 0; + } +} + +@media (min-width: 641px) { + .page { + flex-direction: row; + } + + .sidebar { + width: 250px; + height: 100vh; + position: sticky; + top: 0; + } + + .top-row { + position: sticky; + top: 0; + z-index: 1; + } + + .top-row.auth ::deep a:first-child { + flex: 1; + text-align: right; + width: 0; + } + + .top-row, article { + padding-left: 2rem !important; + padding-right: 1.5rem !important; + } +} + +#blazor-error-ui { + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; +} + + #blazor-error-ui .dismiss { + cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; + } diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Module/VPKIApiCertificate.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Module/VPKIApiCertificate.razor new file mode 100644 index 0000000..cf3e266 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Module/VPKIApiCertificate.razor @@ -0,0 +1,213 @@ +@using System.Security.Cryptography +@using System.Text +@using Org.BouncyCastle.Crypto +@using Org.BouncyCastle.Crypto.Generators +@using Org.BouncyCastle.Crypto.Parameters +@using Org.BouncyCastle.OpenSsl +@using Org.BouncyCastle.Security +@using VPKI.Library.Packet + +@inject CertificateService CertificateService +@inject ApiService ApiService +@inject VpkiDialogService DialogService + + +
+ + +
+ + +
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + +
+ + +
+
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+
+
+
+ +@code { + [Parameter, EditorRequired] + public CertificateContainer CertificateContainer { get; set; } = new CertificateContainer(); + [Parameter] + public EventCallback CertificateContainerChanged { get; set; } + + [Parameter, EditorRequired] + public string ServerAddress { get; set; } = string.Empty; + + [Parameter] + public TbscsrContainer TbscsrContainer { get; set; } = new TbscsrContainer(); + + //ISO + private string StrISO = string.Empty; + + private string StringCsrHashed = string.Empty; + + protected override void OnInitialized() + { + StrISO = $"{TbscsrContainer.ISOType.ToString().Replace("_", "-")}"; + } + + protected override void OnParametersSet() + { + string ecdsa = ""; + if (TbscsrContainer.VpkiType == VpkiType.prov_v1) + { + ecdsa = ECDSAType.SHA256WITHECDSA.ToString(); + } + else if (TbscsrContainer.VpkiType == VpkiType.prov_cert || TbscsrContainer.VpkiType == VpkiType.vehicle_cert) + { + ecdsa = ECDSAType.NONEWITHECDSA.ToString(); + } + + CreateCsrHash(ecdsa); + } + + private void OnClickSignedHash() + { + SignedHash(); + } + + private void SignedHash() + { + if (TbscsrContainer.KeyPair != null && TbscsrContainer.ResponseTbscsr.data != null) + { + var publicKey = (ECPublicKeyParameters)TbscsrContainer.KeyPair.Public; + + string ecdsa = ""; + if (TbscsrContainer.VpkiType == VpkiType.prov_v1) + { + ecdsa = ECDSAType.SHA256WITHECDSA.ToString(); + var pKey = TbscsrContainer.PublicKey; + CertificateContainer.CsrHashed = CertificateService.SignHashed02(TbscsrContainer.ResponseTbscsr.data.hashedtbscsr, TbscsrContainer.KeyPair); + } + else if (TbscsrContainer.VpkiType == VpkiType.prov_cert || TbscsrContainer.VpkiType == VpkiType.vehicle_cert) + { + ecdsa = ECDSAType.NONEWITHECDSA.ToString(); + CertificateContainer.CsrHashed = CertificateService.SignHashed20(TbscsrContainer.ResponseTbscsr.data.hashedtbscsr, TbscsrContainer.KeyPair); + } + + CreateCsrHash(ecdsa); + } + else + { + StringCsrHashed += "Request tbscsr first"; + } + } + + private void CreateCsrHash(string ecdsa) + { + if(string.IsNullOrEmpty(CertificateContainer.CsrHashed.SignedCsr) == false) + { + StringCsrHashed = $"{StrISO} Signed {ecdsa}:{Environment.NewLine}"; + StringCsrHashed += $"{CertificateContainer.CsrHashed.SignedCsr}{Environment.NewLine}"; + StringCsrHashed += $"{Environment.NewLine}"; + + StringCsrHashed += $"{StrISO} Signed {ecdsa}(DER ENCODED):{Environment.NewLine}"; + StringCsrHashed += $"{CertificateContainer.CsrHashed.EncodedSignedCsr}{Environment.NewLine}"; + StringCsrHashed += $"{Environment.NewLine}"; + + StringCsrHashed += $"Verify:{CertificateContainer.CsrHashed.Verify}{Environment.NewLine}"; + } + } + + private void OnClickGenerateCertificate() + { + CertificateContainer.RequestCertificate.csrsignature = CertificateContainer.CsrHashed.EncodedSignedCsr; + if (TbscsrContainer.VpkiType == VpkiType.prov_cert || TbscsrContainer.VpkiType == VpkiType.vehicle_cert) + { + CertificateContainer.RequestCertificate.csrsignature = CertificateContainer.CsrHashed.EncodedSignedCsr; + } + + CertificateContainer.StrRequest = $"{CertificateContainer.RequestCertificate.ToJson()}"; + } + + private async Task OnClickSendCertificate() + { + DialogService.OpenIndicator(); + + try + { + var request = JsonConvert.DeserializeObject(CertificateContainer.StrRequest); + if (request != null) + { + string url = $"api/v1/certificate"; + if (TbscsrContainer.VpkiType == VpkiType.prov_cert) + { + url = $"api/v2/prov/certificate"; + } + else if (TbscsrContainer.VpkiType == VpkiType.vehicle_cert) + { + url = $"api/v2/vehicle/certificate"; + } + + var Response = await ApiService.PostJsonAsync($"https://{ServerAddress}/{url}", request); + if (Response != null) + { + CertificateContainer.ResponseCertificate = Response; + CertificateContainer.StrResponse = $"{Response.ToJson()}"; + } + } + else + { + TbscsrContainer.StrResponse = "Request Context Error"; + } + } + catch (Exception ex) + { + Log4net.WriteLine(ex); + TbscsrContainer.StrResponse = $"Request Context Error{Environment.NewLine}{ex.Message}"; + } + + DialogService.CloseIndicator(); + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Module/VPKIApiTbscsr.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Module/VPKIApiTbscsr.razor new file mode 100644 index 0000000..5f7ac8a --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Module/VPKIApiTbscsr.razor @@ -0,0 +1,218 @@ +@using Org.BouncyCastle.Crypto +@using Org.BouncyCastle.Crypto.Parameters +@using VPKI.Library.Packet + +@inject CertificateService CertificateService +@inject ApiService ApiService +@inject VpkiDialogService DialogService + + +
+ + + @if (TbscsrContainer?.RequestTbscsr != null) + { +
+ + +
+
+ + + +
+
+ + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + +
+ +
+
+ + +
+ } +
+ + + +
+ + +
+
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+
+
+
+ +@code { + [Parameter, EditorRequired] + public TbscsrContainer TbscsrContainer { get; set; } = new TbscsrContainer(); + [Parameter] + public EventCallback TbscsrContainerChanged { get; set; } + + [Parameter, EditorRequired] + public string ServerAddress { get; set; } = string.Empty; + + [Parameter] + public EventCallback TbscsrCallback { get; set; } + + //ISO + private string StrISO = string.Empty; + + //Key + private string KeyPairString = string.Empty; + + protected override void OnParametersSet() + { + if (string.IsNullOrEmpty(TbscsrContainer.RequestTbscsr.cnInfo.macaddr) == true) + { + TbscsrContainer.RequestTbscsr.cnInfo.macaddr = CreateRandomMacAddress(); + } + + StrISO = $"{TbscsrContainer.ISOType.ToString().Replace("_", "-")}"; + + SetKeyPairString(); + } + + //mac address + private void OnClickRandomMacaddresss() + { + var randomMac = CreateRandomMacAddress(); + TbscsrContainer.RequestTbscsr.cnInfo.macaddr = randomMac; + } + + private string CreateRandomMacAddress() + { + Random rand = new Random(); + byte[] buffer = new byte[6]; + rand.NextBytes(buffer); + return string.Join("", buffer.Select(x => x.ToString("X2"))); + } + + //generate key + private void OnClickGenerateKey() + { + GenerateKey(); + } + + private void GenerateKey() + { + if (TbscsrContainer.ISOType == VpkiIsoType.ISO15118_02) + { + TbscsrContainer.KeyPair = CertificateService.GenerateBouncyCastleKeyPairECDH($"{CurveName.secp256r1}"); + var pKey = TbscsrContainer.PublicKey; + } + else if (TbscsrContainer.ISOType == VpkiIsoType.ISO15118_20) + { + TbscsrContainer.KeyPair = CertificateService.GenerateBouncyCastleKeyPairECDH($"{CurveName.secp521r1}"); + } + + //public key + var vnPubKey = CertificateService.GetPublicKeyArrayBC(CertificateService.GetPublicKeyBC(TbscsrContainer.KeyPair)); + if (vnPubKey != null) + TbscsrContainer.PublicKey = CertificateService.GetKeyBase64Encrypted(vnPubKey); + + //private key + var vnPriKey = CertificateService.GetPrivateKeyArrayBC(CertificateService.GetPrivateKeyBC(TbscsrContainer.KeyPair)); + if (vnPriKey != null) + TbscsrContainer.PrivateKey = CertificateService.GetKeyBase64Encrypted(vnPriKey); + + List vnPubKeyRcv = CertificateService.GetKeyBase64Decrypted(TbscsrContainer.PublicKey); + + var publicKey = (ECPublicKeyParameters)TbscsrContainer.KeyPair.Public; + + SetKeyPairString(); + } + + private void SetKeyPairString() + { + if (string.IsNullOrEmpty(TbscsrContainer.PublicKey) == false && string.IsNullOrEmpty(TbscsrContainer.PrivateKey) == false) + { + KeyPairString = $"{StrISO} Public Key ({TbscsrContainer.PublicKey.Length} Bytes): {Environment.NewLine}{TbscsrContainer.PublicKey}{Environment.NewLine}{Environment.NewLine}Private Key ({TbscsrContainer.PrivateKey.Length} Bytes): {Environment.NewLine}{TbscsrContainer.PrivateKey}"; + } + } + + //request tbscsr + private void OnClickGenerateTbscsr() + { + TbscsrContainer.RequestTbscsr.publickey = TbscsrContainer.PublicKey; + TbscsrContainer.StrRequest = $"{TbscsrContainer.RequestTbscsr.ToJson()}"; + } + + private async Task OnClickSendTbscsr() + { + DialogService.OpenIndicator(); + + try + { + var request = JsonConvert.DeserializeObject(TbscsrContainer.StrRequest); + if (request != null) + { + string url = $"api/v1/tbscsr"; + if (TbscsrContainer.VpkiType == VpkiType.prov_cert) + { + url = $"api/v2/prov/tbscsr"; + } + else if (TbscsrContainer.VpkiType == VpkiType.vehicle_cert) + { + url = $"api/v2/vehicle/tbscsr"; + } + + var Response = await ApiService.PostJsonAsync($"https://{ServerAddress}/{url}", request); + if (Response != null) + { + TbscsrContainer.ResponseTbscsr = Response; + TbscsrContainer.StrResponse = $"{Response.ToJson()}"; + + await TbscsrCallback.InvokeAsync(TbscsrContainer); + } + } + else + { + TbscsrContainer.StrResponse = "Request Context Error"; + } + } + catch (Exception ex) + { + Log4net.WriteLine(ex); + TbscsrContainer.StrResponse = $"Request Context Error{Environment.NewLine}{ex.Message}"; + } + DialogService.CloseIndicator(); + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Module/VPKIApiVerifyResult.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Module/VPKIApiVerifyResult.razor new file mode 100644 index 0000000..6a1c112 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Module/VPKIApiVerifyResult.razor @@ -0,0 +1,107 @@ +@using VPKI.Library.Packet + +@inject CertificateService CertificateService +@inject ApiService ApiService +@inject VpkiDialogService DialogService + + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + +
+
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+
+
+
+ +@code { + [Parameter, EditorRequired] + public VerifyResultContainer VerifyResultContainer { get; set; } = new VerifyResultContainer(); + [Parameter] + public EventCallback VerifyResultContainerChanged { get; set; } + + [Parameter, EditorRequired] + public string ServerAddress { get; set; } = string.Empty; + + [Parameter] + public TbscsrContainer TbscsrContainer { get; set; } = new TbscsrContainer(); + + //ISO + private string StrISO = string.Empty; + + protected override void OnInitialized() + { + StrISO = $"{TbscsrContainer.ISOType.ToString().Replace("_", "-")}"; + } + + private void OnClickGenerateVerifyResult() + { + VerifyResultContainer.StrRequest = $"{VerifyResultContainer.RequestVerifyresult.ToJson()}"; + } + + private async Task OnClickSendVerifyResult() + { + DialogService.OpenIndicator(); + try + { + var request = JsonConvert.DeserializeObject(VerifyResultContainer.StrRequest); + if (request != null) + { + string url = $"api/v1/verifyresult"; + if (TbscsrContainer.VpkiType == VpkiType.prov_cert) + { + url = $"api/v2/prov/verifyresult"; + } + else if (TbscsrContainer.VpkiType == VpkiType.vehicle_cert) + { + url = $"api/v2/vehicle/verifyresult"; + } + + var Response = await ApiService.PostJsonAsync($"https://{ServerAddress}/{url}", request); + if (Response != null) + { + VerifyResultContainer.ResponseVerifyresult = Response; + VerifyResultContainer.StrResponse = $"{Response.ToJson()}"; + } + } + } + catch(Exception ex) + { + Log4net.WriteLine(ex); + VerifyResultContainer.StrResponse = $"Request Context Error{Environment.NewLine}{ex.Message}"; + } + DialogService.CloseIndicator(); + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/Error.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/Error.razor new file mode 100644 index 0000000..576cc2d --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/Error.razor @@ -0,0 +1,36 @@ +@page "/Error" +@using System.Diagnostics + +Error + +

Error.

+

An error occurred while processing your request.

+ +@if (ShowRequestId) +{ +

+ Request ID: @RequestId +

+} + +

Development Mode

+

+ Swapping to Development environment will display more detailed information about the error that occurred. +

+

+ The Development environment shouldn't be enabled for deployed applications. + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development + and restarting the app. +

+ +@code{ + [CascadingParameter] + private HttpContext? HttpContext { get; set; } + + private string? RequestId { get; set; } + private bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + + protected override void OnInitialized() => + RequestId = Activity.Current?.Id ?? HttpContext?.TraceIdentifier; +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/Home.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/Home.razor new file mode 100644 index 0000000..bd43d44 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/Home.razor @@ -0,0 +1,10 @@ +@page "/" +@using Microsoft.AspNetCore.Components.Authorization + +Home + + +

Hello, @context.User.Identity?.Name!

+
+ +Welcome to your new app. diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/Login.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/Login.razor new file mode 100644 index 0000000..cbef224 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/Login.razor @@ -0,0 +1,68 @@ +@page "/login" + +@inject NavigationManager NavigationManager +@inject ApiService ApiService +@inject AuthenticationStateProvider AuthStateProvider +@inject VpkiDialogService DialogService +@inject IJSRuntime JS +@inject NotificationService NotiService + + + +
+ + +
+ + +
+
+
+ + +
+ +
+ @ErrorCode +
+
+
+ +@code { + private LoginModel LoginModel = new LoginModel(); + private string ErrorCode = string.Empty; + + protected override async Task OnInitializedAsync() + { + var auth = await((ExtendAuthenticationStatProvicer)AuthStateProvider).GetAuthenticationStateAsync(); + if(auth?.User?.Identity?.IsAuthenticated == true) + { + NavigationManager.NavigateTo("/"); + } + } + + private async Task HandleLogin() + { + DialogService.OpenIndicator("Login"); + + //password hash + LoginModel.Password = $"{LoginModel.Password?.StringToSHA256Base64()}"; + ErrorCode = string.Empty; + + var res = await ApiService.PostJsonAsyncBearer($"/api/auth/login", LoginModel); + if (res?.AccessToken != null) + { + await ((ExtendAuthenticationStatProvicer)AuthStateProvider).MakeUserAsAuthenticated(res); + NavigationManager.NavigateTo("/", true); + NotiService.Notify(NotificationSeverity.Success, "Login", "Login Success"); + } + else + { + LoginModel.Password = string.Empty; + ErrorCode = $"{res?.EC.ToString()}"; + NotiService.Notify(NotificationSeverity.Error, "Login", "Login Failed"); + } + + DialogService.CloseIndicator(); + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/Register.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/Register.razor new file mode 100644 index 0000000..5140424 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/Register.razor @@ -0,0 +1,84 @@ +@page "/register" + +@inject NavigationManager NavigationManager +@inject ApiService ApiService +@inject AuthenticationStateProvider AuthStateProvider + + + + @if (string.IsNullOrEmpty(RegisterUserID) == false) + { +
Register Success!
+
@($"UserID: {RegisterUserID}")
+
+ Go to Login + } + else + { +
+ + +
+ + +
+
+
+ + +
+
+
+ + +
+ +
+ @ErrorCode +
+ } +
+
+ +@code { + private RegisterModel RegisterModel = new RegisterModel(); + private string ErrorCode = string.Empty; + private string RegisterUserID = string.Empty; + + protected override async Task OnInitializedAsync() + { + RegisterUserID = string.Empty; + var auth = await ((ExtendAuthenticationStatProvicer)AuthStateProvider).GetAuthenticationStateAsync(); + if (auth?.User?.Identity?.IsAuthenticated == true) + { + NavigationManager.NavigateTo("/"); + } + } + + private async Task HandleRegister() + { + ErrorCode = string.Empty; + if (RegisterModel.Password != RegisterModel.PasswordConfirm) + { + ErrorCode = ERROR_CODE.EC_USER_REGISTER_CONFIRM_PASSWORD_ERROR.ToString(); + return; + } + + //password hash + RegisterModel.Password = $"{RegisterModel.Password?.StringToSHA256Base64()}"; + RegisterModel.PasswordConfirm = $"{RegisterModel.PasswordConfirm?.StringToSHA256Base64()}"; + var res = await ApiService.PostJsonAsyncBearer($"/api/auth/regisger", RegisterModel); + if (res != null) + { + if (res.EC == ERROR_CODE.EC_OK) + { + RegisterUserID = $"{res.UserID}"; + } + } + } + + private void OnClickGotoLogin() + { + NavigationManager.NavigateTo("/login"); + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/User.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/User.razor new file mode 100644 index 0000000..44a1ebf --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/User.razor @@ -0,0 +1,123 @@ +@page "/user" + +@inject ApiService ApiService +@inject VpkiDialogService DialogService +@inject IJSRuntime JS +@inject NotificationService NotiService + + + + + @if (data?.Count > 0) + { + + + + + + + @{ + var roleList = Enum.GetValues(typeof(UserRole)).Cast().Where(x => 10 <= (byte)x); + + + + } + + + + + + + + @{ + var stateList = Enum.GetValues(typeof(UserState)).Cast(); + + + + } + + + + + + + + + + + + + } + + + + + + +@code { + List data = new List(); + RadzenDataGrid? grid; + bool isEditing = false; + + protected override async Task OnInitializedAsync() + { + await GetAllUsers(); + } + + private async Task OnClickUserEdit(UserModel user) + { + isEditing = true; + await grid?.EditRow(user); + } + + private async Task OnClickUserEditApply(UserModel user) + { + bool confirm = await DialogService.Confirm("Edit User", "Apply Edit User?"); + if(confirm == true) + { + user.TRole.CRoleName = $"{Enum.GetName(typeof(UserRole), user.TRole.CRoleId)}"; + var retunUser = await ApiService.PostJsonAsyncBearer("/api/user/UpdateUser", user); + if (retunUser != null) + { + await GetAllUsers(); + NotiService.Notify(NotificationSeverity.Success, "Edit User",$"Edit '{user.TUser.CUserId}' Update Success"); + } + } + + isEditing = false; + } + + private async Task OnClickUserEditCancel(UserModel user) + { + await GetAllUsers(); + isEditing = false; + } + + private async Task GetAllUsers() + { + var response = await ApiService.GetJsonAsyncBearer>("/api/user/GetAllUser"); + if (response != null) + { + data = response.OrderBy(x=>x.TUser.CCreateDateTime).ToList(); + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/User.razor.css b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/User.razor.css new file mode 100644 index 0000000..096800d --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/User.razor.css @@ -0,0 +1,23 @@ +.user-inactive{ + color: yellow; +} + +.user-active { + color: lime; +} + +.user-block{ + color: #f9777f; +} + +.auth-superuser { + color: #FF5722; +} + +.auth-admin { + color: #FFEB3B; +} + +.auth-user { + color: #03A9F4; +} \ No newline at end of file diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/VPKIApi.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/VPKIApi.razor new file mode 100644 index 0000000..fc44eeb --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/VPKIApi.razor @@ -0,0 +1,232 @@ +@page "/Vpki/Api" +@using Newtonsoft.Json +@using Org.BouncyCastle.Crypto +@using VPKI.Library.Packet +@using VPKI.Library.Services + +@inject CertificateService csrSrvice; +@inject ApiService ApiService; + +

VPKI API

+ + + +
+ + +
+
+ + + + @foreach (var vpkiType in Enum.GetValues(typeof(VpkiType))) + { + if (DicTbscsrContainer.TryGetValue((VpkiType)vpkiType, out var outTbscsr) == true && + DicCertificateContainer.TryGetValue((VpkiType)vpkiType, out var outCertificate) == true && + DicVerifyResultContainer.TryGetValue((VpkiType)vpkiType, out var outVeryfiResult) == true) + { + +
+ + +
+ + + +
+ + + +
+
+ } + } +
+
+
+
+ + + +
+@code { + private string ServerAddress = "127.0.0.1:8080"; + + Dictionary DicTbscsrContainer = new Dictionary(); + Dictionary DicCertificateContainer = new Dictionary(); + Dictionary DicVerifyResultContainer = new Dictionary(); + + protected override void OnInitialized() + { + SetDefaultValue(); + } + + private void SetDefaultValue() + { + //tbscsr + DicTbscsrContainer.Add(VpkiType.prov_v1, new TbscsrContainer + { + RequestTbscsr = new Request_Tbscsr + { + iftid = "ift_1", + certInfo = new Request_Tbscsr.CertInfo + { + tierCode = "P002", + unitCode = "C001", + dc = "OEM" + }, + cnInfo = new Request_Tbscsr.CnInfo + { + idType = "P", + supplierId = "2", + wmi = "KM8", + macaddr = "" + } + }, + VpkiType = VpkiType.prov_v1, + ISOType = VpkiIsoType.ISO15118_02 + }); + + DicTbscsrContainer.Add(VpkiType.prov_cert, new TbscsrContainer + { + RequestTbscsr = new Request_Tbscsr + { + iftid = "ift_2", + certInfo = new Request_Tbscsr.CertInfo + { + tierCode = "P002", + unitCode = "C001", + dc = "OEM20" + }, + cnInfo = new Request_Tbscsr.CnInfo + { + idType = "P", + supplierId = "2", + wmi = "KM7", + macaddr = "" + }, + certType = $"{VpkiType.prov_cert}" + }, + VpkiType = VpkiType.prov_cert, + ISOType = VpkiIsoType.ISO15118_20 + }); + + DicTbscsrContainer.Add(VpkiType.vehicle_cert, new TbscsrContainer + { + RequestTbscsr = new Request_Tbscsr + { + iftid = "ift_3", + certInfo = new Request_Tbscsr.CertInfo + { + tierCode = "P002", + unitCode = "C001", + dc = "EV" + }, + cnInfo = new Request_Tbscsr.CnInfo + { + idType = "V", + supplierId = "2", + wmi = "KM7", + macaddr = "" + }, + certType = $"{VpkiType.vehicle_cert}" + }, + VpkiType = VpkiType.vehicle_cert, + ISOType = VpkiIsoType.ISO15118_20 + }); + + //certificate + DicCertificateContainer.Add(VpkiType.prov_v1, new CertificateContainer + { + RequestCertificate = new Request_Certificate + { + iftid = "ift_1", + csrsignature = string.Empty, + tierCode = "P002", + unitCode = "C001", + vehicleCode = "MV EV", + localCode = "EU", + brandCode = "KMC" + } + }); + + DicCertificateContainer.Add(VpkiType.prov_cert, new CertificateContainer + { + RequestCertificate = new Request_Certificate + { + iftid = "ift_2", + csrsignature = string.Empty, + tierCode = "P002", + unitCode = "C001", + vehicleCode = "MV EV", + localCode = "EU", + brandCode = "KMC" + } + }); + + DicCertificateContainer.Add(VpkiType.vehicle_cert, new CertificateContainer + { + RequestCertificate = new Request_Certificate + { + iftid = "ift_3", + csrsignature = string.Empty, + tierCode = "P002", + unitCode = "C001", + vehicleCode = "MV EV", + localCode = "EU", + brandCode = "KMC" + } + }); + + DicVerifyResultContainer.Add(VpkiType.prov_v1, new VerifyResultContainer + { + RequestVerifyresult = new Request_Verifyresult + { + iftid = "ift_1", + pcid = "", + result = "success" + } + }); + + DicVerifyResultContainer.Add(VpkiType.prov_cert, new VerifyResultContainer + { + RequestVerifyresult = new Request_Verifyresult + { + iftid = "ift_2", + pcid = "", + result = "success" + } + }); + + DicVerifyResultContainer.Add(VpkiType.vehicle_cert, new VerifyResultContainer + { + RequestVerifyresult = new Request_Verifyresult + { + iftid = "ift_3", + pcid = "", + result = "success" + } + }); + } + + private async Task TbscsrCallback(TbscsrContainer args) + { + if (DicCertificateContainer.TryGetValue(args.VpkiType, out var outCertificate) == true) + { + outCertificate.RequestCertificate.iftid = args.RequestTbscsr.iftid; + outCertificate.RequestCertificate.tierCode = args.RequestTbscsr.certInfo.tierCode; + outCertificate.RequestCertificate.unitCode = args.RequestTbscsr.certInfo.unitCode; + + outCertificate.RequestCertificate.csrsignature = args.ResponseTbscsr.data.hashedtbscsr; + } + + if (DicVerifyResultContainer.TryGetValue(args.VpkiType, out var outVerifyResult) == true) + { + outVerifyResult.RequestVerifyresult.iftid = args.RequestTbscsr.iftid; + outVerifyResult.RequestVerifyresult.pcid = args.ResponseTbscsr.data.pcid; + } + + await Task.CompletedTask; + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/VPKIManager.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/VPKIManager.razor new file mode 100644 index 0000000..a04ba79 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Pages/VPKIManager.razor @@ -0,0 +1,520 @@ +@page "/vpki/manager" +@using DB.VPKI_DataDB +@using System.Text +@using VPKI.Library.Packet +@using VPKI.Library.Static + +@inject ApiService ApiService +@inject VpkiDialogService DialogService +@inject IJSRuntime JS +@inject NotificationService NotiService +@inject TooltipService TooltipService + +

VPKI MANAGER

+ + + + +
+ + +
+
+ + +
+ + + + + + + + Search + + + + +
+
+
+ +
+
+ + +
+
+ + +
+
+ + + + + + @* + + *@ + + + @foreach (var prop in typeof(TTbscsr).GetProperties()) + { + if (prop.Name.ToLower().Contains("hashedtbscsr") || prop.Name.ToLower().Contains("publickey") || prop.Name.ToLower().Contains("origintbscsr") + || prop.Name.ToLower().Contains("csrsignature") || prop.Name.ToLower().Contains("datetime") || prop.Name.ToLower().Contains("cdn")) + continue; + + string propName = $"{prop.Name}"; + + } + + + + + + + @* + + *@ + @* + + *@ + + + +
+ + + +
+ +@code { + private string ServerAddress = "127.0.0.1:8080"; + + private DateOnly SearchStartDate = DateOnly.FromDateTime(DateTime.Now.AddDays(-7)); + private DateOnly SearchEndDate = DateOnly.FromDateTime(DateTime.Now); + + private string FilterIft = string.Empty; + private string FilterWMI = string.Empty; + private string FilterDC = string.Empty; + private string FilterCertType = string.Empty; + + private int ViewCount = 20; + + List history = new List(); + RadzenDataGrid grid = new(); + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if (firstRender) + { + //await Search(0); + } + await Task.CompletedTask; + } + + private async Task Search(int startCcuid) + { + DialogService.OpenIndicator("Search History"); + + string requestUrl = $"https://{ServerAddress}/history?"; + + //Default filter + requestUrl += $"startDate={SearchStartDate}&"; + requestUrl += $"endDate={SearchEndDate}&"; + requestUrl += $"startCcuid={startCcuid}&"; + + //optional filter + if (string.IsNullOrEmpty(FilterIft) == false) + { + requestUrl += $"ift={FilterIft}&"; + } + if (string.IsNullOrEmpty(FilterWMI) == false) + { + requestUrl += $"wmi={FilterWMI}&"; + } + if (string.IsNullOrEmpty(FilterDC) == false) + { + requestUrl += $"dc={FilterDC}&"; + } + if (string.IsNullOrEmpty(FilterCertType) == false) + { + requestUrl += $"certType={FilterCertType}&"; + } + + history?.Clear(); + var result = await ApiService.GetJsonAsync>(requestUrl); + if (result != null) + { + history.AddRange(result); + history.Reverse(); + } + grid?.Reload(); + + DialogService.CloseIndicator(); + } + + private async Task OnClickReissue(CertificateHistoryModel args) + { + var confirmRsult = await DialogService.Confirm("Reissue", "Are you sure certificate reissue?"); + if (confirmRsult == false) + return; + + DialogService.OpenIndicator("Reissue"); + + Request_Certificate requestReissue = new Request_Certificate + { + iftid = args.TTbscsr.CIftid, + csrsignature = args.TCertificate.CCsrsignature, + tierCode = args.TCertificate.CTierCode, + unitCode = args.TCertificate.CUnitCode, + vehicleCode = args.TCertificate.CVehicleCode, + localCode = args.TCertificate.CLocalCode, + brandCode = args.TCertificate.CBrandCode + }; + + string api = string.Empty; + if (args.TTbscsr.CCertType.ToLower() == VpkiType.prov_v1.ToString()) + { + api = "api/v1/reissue"; + } + else if (args.TTbscsr.CCertType.ToLower() == VpkiType.prov_cert.ToString()) + { + api = "api/v2/prov/reissue"; + } + else if (args.TTbscsr.CCertType.ToLower() == VpkiType.vehicle_cert.ToString()) + { + api = "api/v2/vehicle/reissue"; + } + + var result = await ApiService.PostJsonAsync($"https://{ServerAddress}/{api}", requestReissue); + if (result != null) + { + string requestUrl = $"https://{ServerAddress}/history/ccuid?ccuid={args.TTbscsr.CCuid}"; + var updateResult = await ApiService.GetJsonAsync(requestUrl); + if (updateResult != null) + { + args.TTbscsr = updateResult.TTbscsr; + args.TCertificate = updateResult.TCertificate; + args.TVerifyResult = updateResult.TVerifyResult; + args.TOcsp = updateResult.TOcsp; + } + NotiService.Notify(NotificationSeverity.Success, "Reissue", "Reissue Success"); + } + else + { + NotiService.Notify(NotificationSeverity.Error, "Reissue", "Reissue Failed"); + } + + await grid?.CollapseAll(); + await grid?.Reload(); + + StateHasChanged(); + DialogService.CloseIndicator(); + } + + private async Task OnClickRevoke(CertificateHistoryModel args) + { + var confirmRsult = await DialogService.Confirm("Revoke", "Are you sure certificate revoke?"); + if (confirmRsult == false) + return; + + DialogService.OpenIndicator("Revoke"); + Request_CertificateRevokeOEM requestRevoke = new Request_CertificateRevokeOEM + { + dn = args.TTbscsr.CDn + }; + + string api = string.Empty; + if (args.TTbscsr.CCertType.ToLower() == VpkiType.prov_v1.ToString()) + { + api = "api/v1/revoke"; + } + else if (args.TTbscsr.CCertType.ToLower() == VpkiType.prov_cert.ToString()) + { + api = "api/v2/prov/revoke"; + } + else if (args.TTbscsr.CCertType.ToLower() == VpkiType.vehicle_cert.ToString()) + { + api = "api/v2/vehicle/revoke"; + } + + var result = await ApiService.PostJsonAsync($"https://{ServerAddress}/{api}", requestRevoke); + if (result != null) + { + string requestUrl = $"https://{ServerAddress}/history/ccuid?ccuid={args.TTbscsr.CCuid}"; + var updateResult = await ApiService.GetJsonAsync(requestUrl); + if (updateResult != null) + { + args.TTbscsr = updateResult.TTbscsr; + args.TCertificate = updateResult.TCertificate; + args.TVerifyResult = updateResult.TVerifyResult; + args.TOcsp = updateResult.TOcsp; + } + NotiService.Notify(NotificationSeverity.Success, "Revoke", "Revoke Success"); + } + else + { + NotiService.Notify(NotificationSeverity.Error, "Revoke", "Revoke Failed"); + } + + await grid?.CollapseAll(); + await grid?.Reload(); + StateHasChanged(); + DialogService.CloseIndicator(); + } + + async Task OnClickExportCSV(bool isFilter = false) + { + DialogService.OpenIndicator("Export to CSV"); + List exportData = new List(); + + if (isFilter == true) + { + //필터링된 데이터만 + exportData.AddRange(grid.View.ToList().ConvertToCsvFile()); + } + else + { + //전체 데이터 + exportData.AddRange(history.ConvertToCsvFile()); + } + + if (exportData?.Count > 0) + { + string fileName = $"VPKI_{DateTime.Now.ToString("yyyyMMdd_HHmmss")}.csv"; + bool exportResult = await JS.InvokeAsync("openSaveFileCSV", fileName, exportData.ToJson()); + if (exportResult == true) + { + NotiService.Notify(new NotificationMessage + { + Severity = NotificationSeverity.Success, + Summary = "Success", + Detail = "CSV Export Success" + }); + } + else + { + NotiService.Notify(new NotificationMessage + { + Severity = NotificationSeverity.Error, + Summary = "Failed", + Detail = "CSV Export Failed", + }); + } + } + + DialogService.CloseIndicator(); + } + + void OnChangeFilter() + { + StateHasChanged(); + } + + async Task OnClickExportCertificate(CertificateHistoryModel? certificate) + { + DialogService.OpenIndicator("Export to Prov Certificate"); + + if (certificate != null) + { + string fileName = $"{certificate?.TTbscsr?.CPcid}.pem"; + bool exportResult = await JS.InvokeAsync("openSaveFileStr", fileName, certificate?.TCertificate?.CCert); + if (exportResult == true) + { + NotiService.Notify(new NotificationMessage + { + Severity = NotificationSeverity.Success, + Summary = "Success", + Detail = "Certificate Export Success" + }); + } + else + { + NotiService.Notify(new NotificationMessage + { + Severity = NotificationSeverity.Error, + Summary = "Failed", + Detail = "Certificate Export Failed", + }); + } + } + + DialogService.CloseIndicator(); + } + + async Task OnClickExportSubCACertificate(CertificateHistoryModel? certificate) + { + DialogService.OpenIndicator("Export to Prov Certificate"); + + if (certificate != null) + { + string requestUrl = $"https://{ServerAddress}/certificate/GetProv?vpkiType={certificate.TTbscsr.CCertType}"; + var response = await ApiService.GetJsonAsync(requestUrl); + + string fileName = $"SubCA.pem"; + bool exportResult = await JS.InvokeAsync("openSaveFileStr", fileName, response); + if (exportResult == true) + { + NotiService.Notify(new NotificationMessage + { + Severity = NotificationSeverity.Success, + Summary = "Success", + Detail = "SubCA Certificate Export Success" + }); + } + else + { + NotiService.Notify(new NotificationMessage + { + Severity = NotificationSeverity.Error, + Summary = "Failed", + Detail = "SubCA Certificate Export Failed", + }); + } + } + + DialogService.CloseIndicator(); + } + + async Task OnClickOcspDownload(CertificateHistoryModel? certificate) + { + DialogService.OpenIndicator("Export to Prov Certificate"); + + if (certificate != null) + { + string fileName = $"OCSP_{certificate.TTbscsr.CPcid}.txt"; + bool exportResult = await JS.InvokeAsync("openSaveFileStr", fileName, certificate.TOcsp.COcsp); + if (exportResult == true) + { + NotiService.Notify(new NotificationMessage + { + Severity = NotificationSeverity.Success, + Summary = "Success", + Detail = "OCSP Export Success" + }); + } + else + { + NotiService.Notify(new NotificationMessage + { + Severity = NotificationSeverity.Error, + Summary = "Failed", + Detail = "OCSP Certificate Export Failed", + }); + } + } + + DialogService.CloseIndicator(); + } + + private async Task OnExpand(CertificateHistoryModel history) + { + await Task.CompletedTask; + } + + private async Task OnClickCopy(string? text) + { + await CopyToClipboard(text); + } + + private async Task CopyToClipboard(string? text) + { + bool result = await JS.InvokeAsync("copyTextToClipboard", text); + if (result == true) + { + NotiService.Notify(new NotificationMessage + { + Severity = NotificationSeverity.Success, + Summary = "Success", + Detail = "Copy To Clipboard Success." + }); + } + else + { + NotiService.Notify(new NotificationMessage + { + Severity = NotificationSeverity.Error, + Summary = "Failed", + Detail = "Copy To Clipboard Failed.", + }); + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Routes.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Routes.razor new file mode 100644 index 0000000..ed528a5 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/Routes.razor @@ -0,0 +1,7 @@ +@using Microsoft.AspNetCore.Components.Authorization + + + + + + diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Components/_Imports.razor b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/_Imports.razor new file mode 100644 index 0000000..8c9821a --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Components/_Imports.razor @@ -0,0 +1,24 @@ +@using System.Net.Http +@using System.Net.Http.Json +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using static Microsoft.AspNetCore.Components.Web.RenderMode +@using Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.JSInterop + +@using Radzen +@using Radzen.Blazor +@using Newtonsoft.Json + +@using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Components.Authorization + +@using VPKI.Library.Model +@using VPKI.Library.Enums +@using VPKI.Library.Services +@using VPKI.Web.Client +@using VPKI.Web.Client.Components +@using VPKI.Web.Client.Services +@using VPKI.Web.Client.Model +@using VPKI.Web.Client.Components.Module \ No newline at end of file diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Model/CertificateContainer.cs b/Projects/VPKI/VPKI/VPKI.Web.Client/Model/CertificateContainer.cs new file mode 100644 index 0000000..c995c73 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Model/CertificateContainer.cs @@ -0,0 +1,15 @@ +using VPKI.Library.Model; +using VPKI.Library.Packet; + +namespace VPKI.Web.Client.Model +{ + public class CertificateContainer + { + public Request_Certificate RequestCertificate { get; set; } = new(); + public Response_Certificate ResponseCertificate { get; set; } = new(); + public CsrHashedModel CsrHashed { get; set; } = new(); + + public string StrRequest { get; set; } = string.Empty; + public string StrResponse { get; set; } = string.Empty; + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Model/TbscsrContainer.cs b/Projects/VPKI/VPKI/VPKI.Web.Client/Model/TbscsrContainer.cs new file mode 100644 index 0000000..9103ac0 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Model/TbscsrContainer.cs @@ -0,0 +1,23 @@ +using Org.BouncyCastle.Crypto; +using VPKI.Library.Enums; +using VPKI.Library.Packet; + +namespace VPKI.Web.Client.Model +{ + public class TbscsrContainer + { + public Request_Tbscsr RequestTbscsr { get; set; } = new(); + + public Response_Tbscsr ResponseTbscsr { get; set; } = new(); + + public VpkiType VpkiType { get; set; } + public VpkiIsoType ISOType { get; set; } + + public AsymmetricCipherKeyPair? KeyPair { get; set; } + public string PublicKey { get; set; } = string.Empty; + public string PrivateKey { get; set; } = string.Empty; + + public string StrRequest { get; set; } = string.Empty; + public string StrResponse { get; set; } = string.Empty; + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Model/VerifyResultContainer.cs b/Projects/VPKI/VPKI/VPKI.Web.Client/Model/VerifyResultContainer.cs new file mode 100644 index 0000000..a7f277f --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Model/VerifyResultContainer.cs @@ -0,0 +1,13 @@ +using VPKI.Library.Packet; + +namespace VPKI.Web.Client.Model +{ + public class VerifyResultContainer + { + public Request_Verifyresult RequestVerifyresult { get; set; } = new(); + public Response_Verifyresult ResponseVerifyresult { get; set; } = new(); + + public string StrRequest { get; set; } = string.Empty; + public string StrResponse { get; set; } = string.Empty; + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Program.cs b/Projects/VPKI/VPKI/VPKI.Web.Client/Program.cs new file mode 100644 index 0000000..1b1995a --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Program.cs @@ -0,0 +1,89 @@ +using Microsoft.AspNetCore.Components.Authorization; +using Microsoft.Identity.Client; +using Radzen; +using VPKI.Library.Config; +using VPKI.Library.Services; +using VPKI.Web.Client.Components; +using VPKI.Web.Client.Services; + +string configDir = @"../Config"; + +if (Log4net.IsConfigLoad == true) +{ + Log4net.WriteLine("Log4net Init Success"); +} +else +{ + Log4net.WriteLine("Log4net Init Failed", LogType.Error); +} + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.AddRadzenComponents(); + +// Add services to the container. +builder.Services.AddRazorComponents() + .AddInteractiveServerComponents(); + +//singleton +builder.Services.AddSingleton>(); + +builder.Services.AddAuthentication(); +builder.Services.AddCascadingAuthenticationState(); +builder.Services.AddScoped(); + +builder.Services.AddOutputCache(); + +//scope +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); + +var app = builder.Build(); + +//read client config and set +string serverUrl = string.Empty; +var configService = app.Services.GetService>(); +bool isIIS = false; +if (configService?.OpenConfig($@"{configDir}/VPKI.WebClientConfig.json") == true) +{ + Log4net.WriteLine("WebClient Config Success."); + var clientConfig = ConfigService.Config; + serverUrl = $"{clientConfig?.Server?.Address}:{clientConfig?.Server?.Port}"; + isIIS = clientConfig!.Server.IIS; +} +else +{ + Log4net.WriteLine("WebClient Config Error."); + return; +} + +// Configure the HTTP request pipeline. +if (!app.Environment.IsDevelopment()) +{ + Log4net.WriteLine($"IsDevelopment:{app.Environment.IsDevelopment()}"); + app.UseExceptionHandler("/Error", createScopeForErrors: true); + // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. + app.UseHsts(); +} + +app.UseHttpsRedirection(); + +app.UseStaticFiles(); +app.UseAntiforgery(); + +app.UseAuthentication(); +app.UseAuthorization(); + +app.MapRazorComponents() + .AddInteractiveServerRenderMode(); + +if (isIIS == true) +{ + app.Run(); +} +else +{ + Log4net.WriteLine($"Operation Url: {serverUrl}"); + app.Run($"{serverUrl}"); +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Properties/launchSettings.json b/Projects/VPKI/VPKI/VPKI.Web.Client/Properties/launchSettings.json new file mode 100644 index 0000000..24bcbb0 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Properties/launchSettings.json @@ -0,0 +1,38 @@ +{ + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:9092", + "sslPort": 44389 + } + }, + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:5231", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7139;http://localhost:5231", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } + } diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Services/ApiService.cs b/Projects/VPKI/VPKI/VPKI.Web.Client/Services/ApiService.cs new file mode 100644 index 0000000..511fad2 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Services/ApiService.cs @@ -0,0 +1,98 @@ +using Azure; +using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage; +using System.Net; +using System.Net.Http; +using VPKI.Library.Config; +using VPKI.Library.Model; +using VPKI.Library.Services; + +namespace VPKI.Web.Client.Services +{ + public class ApiService : HttpService + { + private readonly ProtectedLocalStorage _localStorage; + private readonly ConfigService _configService; + + private readonly string SESSION_STATE = "sessionState"; + + public ApiService(ConfigService configService, + ProtectedLocalStorage localStorage) + :base() + { + _localStorage = localStorage; + _configService = configService; + } + + public async Task PostJsonAsyncBearer(string url, REQUEST request, short timeOutSeconds = 5) where REQUEST : class where RESPONSE : class + { + RESPONSE? response = default(RESPONSE); + Guid guid = Guid.NewGuid(); + + var apiConfig = _configService?.GetConfig()?.Api?.Find(x => x.ApiName?.ToLower() == Consts.VPKI_API.ToLower()); + string apiUrl = $"{apiConfig.Address}:{apiConfig.Port}"; + + using (HttpClient httpClient = new HttpClient(GetClientHandler())) + { + try + { + //bearer token set + var sessionModel = (await _localStorage.GetAsync(SESSION_STATE)).Value; + var token = sessionModel?.AccessToken; + httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", $"{token}"); + + var timeOutSec = SetTimeout(timeOutSeconds); + httpClient.Timeout = new TimeSpan(0, 0, timeOutSec); + httpClient.BaseAddress = new Uri($"{apiUrl}{url}"); + + Log4net.WriteLine($"[POST] Request({guid})::{url}{Environment.NewLine}{request?.ToJson()}", LogType.Warn); + + var res = await httpClient.PostAsJsonAsync(url, request); + response = await res.Content.ReadFromJsonAsync(); + + Log4net.WriteLine($"[POST] Rseponse({guid})::{url}{Environment.NewLine}{response?.ToJson()}", LogType.Warn); + } + catch (Exception e) + { + Log4net.WriteLine(e); + } + } + return response; + } + + public async Task GetJsonAsyncBearer(string url, short timeOutSeconds = 5) where RESPONSE : class + { + RESPONSE? response = default(RESPONSE); + Guid guid = Guid.NewGuid(); + + var apiConfig = _configService?.GetConfig()?.Api?.Find(x => x.ApiName?.ToLower() == Consts.VPKI_API.ToLower()); + string apiUrl = $"{apiConfig.Address}:{apiConfig.Port}"; + + using (HttpClient httpClient = new HttpClient(GetClientHandler())) + { + try + { + //bearer token set + var sessionModel = (await _localStorage.GetAsync(SESSION_STATE)).Value; + var token = sessionModel?.AccessToken; + httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", $"{token}"); + + var timeOutSec = SetTimeout(timeOutSeconds); + httpClient.Timeout = new TimeSpan(0, 0, timeOutSec); + httpClient.BaseAddress = new Uri($"{apiUrl}{url}"); + + Log4net.WriteLine($"[GET] Request({guid})::{url}{Environment.NewLine}", LogType.Warn); + + var res = await httpClient.GetAsync(url); + response = await res.Content.ReadFromJsonAsync(); + + Log4net.WriteLine($"[GET] Rseponse({guid})::{url}{Environment.NewLine}{response?.ToJson()}", LogType.Warn); + } + catch (Exception e) + { + Log4net.WriteLine(e); + } + } + return response; + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Services/ExtendAuthenticationStatProvicer.cs b/Projects/VPKI/VPKI/VPKI.Web.Client/Services/ExtendAuthenticationStatProvicer.cs new file mode 100644 index 0000000..fe1f41c --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Services/ExtendAuthenticationStatProvicer.cs @@ -0,0 +1,75 @@ +using Microsoft.AspNetCore.Components.Authorization; +using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage; +using System.IdentityModel.Tokens.Jwt; +using System.Runtime.CompilerServices; +using System.Security.Claims; +using VPKI.Library.Model; + +namespace VPKI.Web.Client.Services +{ + public class ExtendAuthenticationStatProvicer(ProtectedLocalStorage localStorage) : AuthenticationStateProvider + { + public async override Task GetAuthenticationStateAsync() + { + var sessionModel = (await localStorage.GetAsync("sessionState")).Value; + ClaimsIdentity identity = new ClaimsIdentity(); + if(sessionModel?.AccessToken != null) + { + identity = sessionModel == null ? new ClaimsIdentity() : GetClaimsIdentity(sessionModel.AccessToken); + var user = new ClaimsPrincipal(identity); + return new AuthenticationState(user); + } + + return new AuthenticationState(new ClaimsPrincipal(identity)); + } + + public async Task GetAccessToken() + { + var sessionModel = (await localStorage.GetAsync("sessionState")).Value; + return $"{sessionModel?.AccessToken}"; + } + + public async Task GetExpiredTimeAsync() + { + var sessionModel = (await localStorage.GetAsync("sessionState")).Value; + ClaimsIdentity identity = new ClaimsIdentity(); + if (sessionModel?.AccessToken != null) + { + return sessionModel.AccessTokenExpired; + } + + return -1; + } + + public async Task MakeUserAsAuthenticated(LoginResponseModel model) + { + string accessToken = string.Empty; + + if (model?.AccessToken != null) + { + accessToken = model.AccessToken; + await localStorage.SetAsync("sessionState", model); + var identity = GetClaimsIdentity(accessToken); + var user = new ClaimsPrincipal(identity); + + NotifyAuthenticationStateChanged(Task.FromResult(new AuthenticationState(user))); + } + } + + public async Task MakeUserLogout() + { + await localStorage.DeleteAsync("sessionState"); + var identity = new ClaimsIdentity(); + var user = new ClaimsPrincipal(identity); + NotifyAuthenticationStateChanged(Task.FromResult(new AuthenticationState(user))); + } + + private ClaimsIdentity GetClaimsIdentity(string token) + { + var handler = new JwtSecurityTokenHandler(); + var jwtToken = handler.ReadJwtToken(token); + var claims = jwtToken.Claims; + return new ClaimsIdentity(claims,"jwt"); + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/Services/VpkiDialogService.cs b/Projects/VPKI/VPKI/VPKI.Web.Client/Services/VpkiDialogService.cs new file mode 100644 index 0000000..18b5beb --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/Services/VpkiDialogService.cs @@ -0,0 +1,45 @@ +using Microsoft.AspNetCore.Components; +using Microsoft.EntityFrameworkCore.Diagnostics; +using Radzen; +using VPKI.Web.Client.Components.Dialog; + +namespace VPKI.Web.Client.Services +{ + public class VpkiDialogService + { + public DialogService _dialogService; + + public VpkiDialogService(DialogService dialogService) + { + _dialogService = dialogService; + } + + public async Task Confirm(string title, string message) + { + bool result = false; + result = await _dialogService.Confirm(message, title, new ConfirmOptions + { + OkButtonText = "OK", + CancelButtonText = "Cancel", + })??false; + return result; + } + + public void OpenIndicator(string message = "") + { + _dialogService.Open("", + new Dictionary() { { "Message", message } }, + new DialogOptions + { + ShowClose = false, + ShowTitle =false, + Style = "box-shadow: none; background: transparent; min-width:0; min-height:0; width:auto;" + }); + } + + public void CloseIndicator() + { + _dialogService.Close(); + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/VPKI.Web.Client.csproj b/Projects/VPKI/VPKI/VPKI.Web.Client/VPKI.Web.Client.csproj new file mode 100644 index 0000000..30af49f --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/VPKI.Web.Client.csproj @@ -0,0 +1,41 @@ + + + + net8.0 + enable + enable + + + + True + 1701;1702;8602 + + + + True + 1701;1702;8602 + + + + + + + + + + + + + + + + + ..\..\..\DLL\SystemX.Core.dll + + + + + + + + diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/appsettings.Development.json b/Projects/VPKI/VPKI/VPKI.Web.Client/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/appsettings.json b/Projects/VPKI/VPKI/VPKI.Web.Client/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/wwwroot/Kefico_CI.PNG b/Projects/VPKI/VPKI/VPKI.Web.Client/wwwroot/Kefico_CI.PNG new file mode 100644 index 0000000..ed53c82 Binary files /dev/null and b/Projects/VPKI/VPKI/VPKI.Web.Client/wwwroot/Kefico_CI.PNG differ diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/wwwroot/SystemX_CI.png b/Projects/VPKI/VPKI/VPKI.Web.Client/wwwroot/SystemX_CI.png new file mode 100644 index 0000000..c993fbf Binary files /dev/null and b/Projects/VPKI/VPKI/VPKI.Web.Client/wwwroot/SystemX_CI.png differ diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/wwwroot/app.css b/Projects/VPKI/VPKI/VPKI.Web.Client/wwwroot/app.css new file mode 100644 index 0000000..3eedc17 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/wwwroot/app.css @@ -0,0 +1,52 @@ +html, body { + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 62.5%; +} + +a, .btn-link { + color: #006bb7; +} + +.btn-primary { + color: #fff; + background-color: #1b6ec2; + border-color: #1861ac; +} + +.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus { + box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb; +} + +.content { + padding-top: 1.1rem; +} + +h1:focus { + outline: none; +} + +.valid.modified:not([type=checkbox]) { + outline: 1px solid #26b050; +} + +.invalid { + outline: 1px solid #e50000; +} + +.validation-message { + color: #e50000; +} + +.blazor-error-boundary { + background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121; + padding: 1rem 1rem 1rem 3.7rem; + color: white; +} + + .blazor-error-boundary::after { + content: "An error has occurred." + } + +.darker-border-checkbox.form-check-input { + border-color: #929292; +} diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/wwwroot/bootstrap/bootstrap.min.css b/Projects/VPKI/VPKI/VPKI.Web.Client/wwwroot/bootstrap/bootstrap.min.css new file mode 100644 index 0000000..02ae65b --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/wwwroot/bootstrap/bootstrap.min.css @@ -0,0 +1,7 @@ +@charset "UTF-8";/*! + * Bootstrap v5.1.0 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-rgb:33,37,41;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x) * -.5);margin-left:calc(var(--bs-gutter-x) * -.5)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio:calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio:calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#6c757d!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/Projects/VPKI/VPKI/VPKI.Web.Client/wwwroot/bootstrap/bootstrap.min.css.map b/Projects/VPKI/VPKI/VPKI.Web.Client/wwwroot/bootstrap/bootstrap.min.css.map new file mode 100644 index 0000000..afcd9e3 --- /dev/null +++ b/Projects/VPKI/VPKI/VPKI.Web.Client/wwwroot/bootstrap/bootstrap.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","../../scss/mixins/_border-radius.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/_containers.scss","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/_tables.scss","../../scss/mixins/_table-variants.scss","../../scss/forms/_labels.scss","../../scss/forms/_form-text.scss","../../scss/forms/_form-control.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_gradients.scss","../../scss/forms/_form-select.scss","../../scss/forms/_form-check.scss","../../scss/forms/_form-range.scss","../../scss/forms/_floating-labels.scss","../../scss/forms/_input-group.scss","../../scss/mixins/_forms.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/_button-group.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_accordion.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/mixins/_backdrop.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/_offcanvas.scss","../../scss/_placeholders.scss","../../scss/helpers/_colored-links.scss","../../scss/helpers/_ratio.scss","../../scss/helpers/_position.scss","../../scss/helpers/_stacks.scss","../../scss/helpers/_visually-hidden.scss","../../scss/mixins/_visually-hidden.scss","../../scss/helpers/_stretched-link.scss","../../scss/helpers/_text-truncation.scss","../../scss/mixins/_text-truncate.scss","../../scss/helpers/_vr.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"iBAAA;;;;;ACAA,MAQI,UAAA,QAAA,YAAA,QAAA,YAAA,QAAA,UAAA,QAAA,SAAA,QAAA,YAAA,QAAA,YAAA,QAAA,WAAA,QAAA,UAAA,QAAA,UAAA,QAAA,WAAA,KAAA,UAAA,QAAA,eAAA,QAIA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAIA,aAAA,QAAA,eAAA,QAAA,aAAA,QAAA,UAAA,QAAA,aAAA,QAAA,YAAA,QAAA,WAAA,QAAA,UAAA,QAIA,iBAAA,EAAA,CAAA,GAAA,CAAA,IAAA,mBAAA,GAAA,CAAA,GAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,GAAA,CAAA,GAAA,cAAA,EAAA,CAAA,GAAA,CAAA,IAAA,iBAAA,GAAA,CAAA,GAAA,CAAA,EAAA,gBAAA,GAAA,CAAA,EAAA,CAAA,GAAA,eAAA,GAAA,CAAA,GAAA,CAAA,IAAA,cAAA,EAAA,CAAA,EAAA,CAAA,GAGF,eAAA,GAAA,CAAA,GAAA,CAAA,IACA,eAAA,CAAA,CAAA,CAAA,CAAA,EACA,cAAA,EAAA,CAAA,EAAA,CAAA,GAMA,qBAAA,SAAA,CAAA,aAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBACA,oBAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,UACA,cAAA,2EAQA,sBAAA,0BACA,oBAAA,KACA,sBAAA,IACA,sBAAA,IACA,gBAAA,QAIA,aAAA,KClCF,EC+CA,QADA,SD3CE,WAAA,WAeE,8CANJ,MAOM,gBAAA,QAcN,KACE,OAAA,EACA,YAAA,2BEmPI,UAAA,yBFjPJ,YAAA,2BACA,YAAA,2BACA,MAAA,qBACA,WAAA,0BACA,iBAAA,kBACA,yBAAA,KACA,4BAAA,YAUF,GACE,OAAA,KAAA,EACA,MAAA,QACA,iBAAA,aACA,OAAA,EACA,QAAA,IAGF,eACE,OAAA,IAUF,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAGA,YAAA,IACA,YAAA,IAIF,IAAA,GEwMQ,UAAA,uBAlKJ,0BFtCJ,IAAA,GE+MQ,UAAA,QF1MR,IAAA,GEmMQ,UAAA,sBAlKJ,0BFjCJ,IAAA,GE0MQ,UAAA,MFrMR,IAAA,GE8LQ,UAAA,oBAlKJ,0BF5BJ,IAAA,GEqMQ,UAAA,SFhMR,IAAA,GEyLQ,UAAA,sBAlKJ,0BFvBJ,IAAA,GEgMQ,UAAA,QF3LR,IAAA,GEgLM,UAAA,QF3KN,IAAA,GE2KM,UAAA,KFhKN,EACE,WAAA,EACA,cAAA,KCmBF,6BDRA,YAEE,wBAAA,UAAA,OAAA,gBAAA,UAAA,OACA,OAAA,KACA,iCAAA,KAAA,yBAAA,KAMF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QAMF,GCIA,GDFE,aAAA,KCQF,GDLA,GCIA,GDDE,WAAA,EACA,cAAA,KAGF,MCKA,MACA,MAFA,MDAE,cAAA,EAGF,GACE,YAAA,IAKF,GACE,cAAA,MACA,YAAA,EAMF,WACE,OAAA,EAAA,EAAA,KAQF,ECNA,ODQE,YAAA,OAQF,OAAA,ME4EM,UAAA,OFrEN,MAAA,KACE,QAAA,KACA,iBAAA,QASF,ICpBA,IDsBE,SAAA,SEwDI,UAAA,MFtDJ,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAKN,EACE,MAAA,QACA,gBAAA,UAEA,QACE,MAAA,QAWF,2BAAA,iCAEE,MAAA,QACA,gBAAA,KCxBJ,KACA,ID8BA,IC7BA,KDiCE,YAAA,yBEcI,UAAA,IFZJ,UAAA,IACA,aAAA,cAOF,IACE,QAAA,MACA,WAAA,EACA,cAAA,KACA,SAAA,KEAI,UAAA,OFKJ,SELI,UAAA,QFOF,MAAA,QACA,WAAA,OAIJ,KEZM,UAAA,OFcJ,MAAA,QACA,UAAA,WAGA,OACE,MAAA,QAIJ,IACE,QAAA,MAAA,MExBI,UAAA,OF0BJ,MAAA,KACA,iBAAA,QG7SE,cAAA,MHgTF,QACE,QAAA,EE/BE,UAAA,IFiCF,YAAA,IASJ,OACE,OAAA,EAAA,EAAA,KAMF,ICjDA,IDmDE,eAAA,OAQF,MACE,aAAA,OACA,gBAAA,SAGF,QACE,YAAA,MACA,eAAA,MACA,MAAA,QACA,WAAA,KAOF,GAEE,WAAA,QACA,WAAA,qBCxDF,MAGA,GAFA,MAGA,GDuDA,MCzDA,GD+DE,aAAA,QACA,aAAA,MACA,aAAA,EAQF,MACE,QAAA,aAMF,OAEE,cAAA,EAQF,iCACE,QAAA,ECtEF,OD2EA,MCzEA,SADA,OAEA,SD6EE,OAAA,EACA,YAAA,QE9HI,UAAA,QFgIJ,YAAA,QAIF,OC5EA,OD8EE,eAAA,KAKF,cACE,OAAA,QAGF,OAGE,UAAA,OAGA,gBACE,QAAA,EAOJ,0CACE,QAAA,KClFF,cACA,aACA,cDwFA,OAIE,mBAAA,OCxFF,6BACA,4BACA,6BDyFI,sBACE,OAAA,QAON,mBACE,QAAA,EACA,aAAA,KAKF,SACE,OAAA,SAUF,SACE,UAAA,EACA,QAAA,EACA,OAAA,EACA,OAAA,EAQF,OACE,MAAA,KACA,MAAA,KACA,QAAA,EACA,cAAA,MEnNM,UAAA,sBFsNN,YAAA,QExXE,0BFiXJ,OExMQ,UAAA,QFiNN,SACE,MAAA,KChGJ,kCDuGA,uCCxGA,mCADA,+BAGA,oCAJA,6BAKA,mCD4GE,QAAA,EAGF,4BACE,OAAA,KASF,cACE,eAAA,KACA,mBAAA,UAmBF,4BACE,mBAAA,KAKF,+BACE,QAAA,EAMF,uBACE,KAAA,QAMF,6BACE,KAAA,QACA,mBAAA,OAKF,OACE,QAAA,aAKF,OACE,OAAA,EAOF,QACE,QAAA,UACA,OAAA,QAQF,SACE,eAAA,SAQF,SACE,QAAA,eInlBF,MFyQM,UAAA,QEvQJ,YAAA,IAKA,WFsQM,UAAA,uBEpQJ,YAAA,IACA,YAAA,IFiGA,0BEpGF,WF6QM,UAAA,ME7QN,WFsQM,UAAA,uBEpQJ,YAAA,IACA,YAAA,IFiGA,0BEpGF,WF6QM,UAAA,QE7QN,WFsQM,UAAA,uBEpQJ,YAAA,IACA,YAAA,IFiGA,0BEpGF,WF6QM,UAAA,ME7QN,WFsQM,UAAA,uBEpQJ,YAAA,IACA,YAAA,IFiGA,0BEpGF,WF6QM,UAAA,QE7QN,WFsQM,UAAA,uBEpQJ,YAAA,IACA,YAAA,IFiGA,0BEpGF,WF6QM,UAAA,ME7QN,WFsQM,UAAA,uBEpQJ,YAAA,IACA,YAAA,IFiGA,0BEpGF,WF6QM,UAAA,QEvPR,eCrDE,aAAA,EACA,WAAA,KDyDF,aC1DE,aAAA,EACA,WAAA,KD4DF,kBACE,QAAA,aAEA,mCACE,aAAA,MAUJ,YFsNM,UAAA,OEpNJ,eAAA,UAIF,YACE,cAAA,KF+MI,UAAA,QE5MJ,wBACE,cAAA,EAIJ,mBACE,WAAA,MACA,cAAA,KFqMI,UAAA,OEnMJ,MAAA,QAEA,2BACE,QAAA,KE9FJ,WCIE,UAAA,KAGA,OAAA,KDDF,eACE,QAAA,OACA,iBAAA,KACA,OAAA,IAAA,MAAA,QHGE,cAAA,OIRF,UAAA,KAGA,OAAA,KDcF,QAEE,QAAA,aAGF,YACE,cAAA,MACA,YAAA,EAGF,gBJ+PM,UAAA,OI7PJ,MAAA,QElCA,WPqmBF,iBAGA,cACA,cACA,cAHA,cADA,eQzmBE,MAAA,KACA,cAAA,0BACA,aAAA,0BACA,aAAA,KACA,YAAA,KCwDE,yBF5CE,WAAA,cACE,UAAA,OE2CJ,yBF5CE,WAAA,cAAA,cACE,UAAA,OE2CJ,yBF5CE,WAAA,cAAA,cAAA,cACE,UAAA,OE2CJ,0BF5CE,WAAA,cAAA,cAAA,cAAA,cACE,UAAA,QE2CJ,0BF5CE,WAAA,cAAA,cAAA,cAAA,cAAA,eACE,UAAA,QGfN,KCAA,cAAA,OACA,cAAA,EACA,QAAA,KACA,UAAA,KACA,WAAA,8BACA,aAAA,+BACA,YAAA,+BDHE,OCYF,YAAA,EACA,MAAA,KACA,UAAA,KACA,cAAA,8BACA,aAAA,8BACA,WAAA,mBA+CI,KACE,KAAA,EAAA,EAAA,GAGF,iBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,cACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,UAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,UAxDV,YAAA,YAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,IAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,IAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,IAwDU,WAxDV,YAAA,aAwDU,WAxDV,YAAA,aAmEM,KXusBR,MWrsBU,cAAA,EAGF,KXusBR,MWrsBU,cAAA,EAPF,KXitBR,MW/sBU,cAAA,QAGF,KXitBR,MW/sBU,cAAA,QAPF,KX2tBR,MWztBU,cAAA,OAGF,KX2tBR,MWztBU,cAAA,OAPF,KXquBR,MWnuBU,cAAA,KAGF,KXquBR,MWnuBU,cAAA,KAPF,KX+uBR,MW7uBU,cAAA,OAGF,KX+uBR,MW7uBU,cAAA,OAPF,KXyvBR,MWvvBU,cAAA,KAGF,KXyvBR,MWvvBU,cAAA,KFzDN,yBESE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QX45BR,SW15BU,cAAA,EAGF,QX45BR,SW15BU,cAAA,EAPF,QXs6BR,SWp6BU,cAAA,QAGF,QXs6BR,SWp6BU,cAAA,QAPF,QXg7BR,SW96BU,cAAA,OAGF,QXg7BR,SW96BU,cAAA,OAPF,QX07BR,SWx7BU,cAAA,KAGF,QX07BR,SWx7BU,cAAA,KAPF,QXo8BR,SWl8BU,cAAA,OAGF,QXo8BR,SWl8BU,cAAA,OAPF,QX88BR,SW58BU,cAAA,KAGF,QX88BR,SW58BU,cAAA,MFzDN,yBESE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QXinCR,SW/mCU,cAAA,EAGF,QXinCR,SW/mCU,cAAA,EAPF,QX2nCR,SWznCU,cAAA,QAGF,QX2nCR,SWznCU,cAAA,QAPF,QXqoCR,SWnoCU,cAAA,OAGF,QXqoCR,SWnoCU,cAAA,OAPF,QX+oCR,SW7oCU,cAAA,KAGF,QX+oCR,SW7oCU,cAAA,KAPF,QXypCR,SWvpCU,cAAA,OAGF,QXypCR,SWvpCU,cAAA,OAPF,QXmqCR,SWjqCU,cAAA,KAGF,QXmqCR,SWjqCU,cAAA,MFzDN,yBESE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QXs0CR,SWp0CU,cAAA,EAGF,QXs0CR,SWp0CU,cAAA,EAPF,QXg1CR,SW90CU,cAAA,QAGF,QXg1CR,SW90CU,cAAA,QAPF,QX01CR,SWx1CU,cAAA,OAGF,QX01CR,SWx1CU,cAAA,OAPF,QXo2CR,SWl2CU,cAAA,KAGF,QXo2CR,SWl2CU,cAAA,KAPF,QX82CR,SW52CU,cAAA,OAGF,QX82CR,SW52CU,cAAA,OAPF,QXw3CR,SWt3CU,cAAA,KAGF,QXw3CR,SWt3CU,cAAA,MFzDN,0BESE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QX2hDR,SWzhDU,cAAA,EAGF,QX2hDR,SWzhDU,cAAA,EAPF,QXqiDR,SWniDU,cAAA,QAGF,QXqiDR,SWniDU,cAAA,QAPF,QX+iDR,SW7iDU,cAAA,OAGF,QX+iDR,SW7iDU,cAAA,OAPF,QXyjDR,SWvjDU,cAAA,KAGF,QXyjDR,SWvjDU,cAAA,KAPF,QXmkDR,SWjkDU,cAAA,OAGF,QXmkDR,SWjkDU,cAAA,OAPF,QX6kDR,SW3kDU,cAAA,KAGF,QX6kDR,SW3kDU,cAAA,MFzDN,0BESE,SACE,KAAA,EAAA,EAAA,GAGF,qBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,cAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,cAxDV,YAAA,EAwDU,cAxDV,YAAA,YAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,IAwDU,eAxDV,YAAA,aAwDU,eAxDV,YAAA,aAmEM,SXgvDR,UW9uDU,cAAA,EAGF,SXgvDR,UW9uDU,cAAA,EAPF,SX0vDR,UWxvDU,cAAA,QAGF,SX0vDR,UWxvDU,cAAA,QAPF,SXowDR,UWlwDU,cAAA,OAGF,SXowDR,UWlwDU,cAAA,OAPF,SX8wDR,UW5wDU,cAAA,KAGF,SX8wDR,UW5wDU,cAAA,KAPF,SXwxDR,UWtxDU,cAAA,OAGF,SXwxDR,UWtxDU,cAAA,OAPF,SXkyDR,UWhyDU,cAAA,KAGF,SXkyDR,UWhyDU,cAAA,MCpHV,OACE,cAAA,YACA,qBAAA,YACA,yBAAA,QACA,sBAAA,oBACA,wBAAA,QACA,qBAAA,mBACA,uBAAA,QACA,oBAAA,qBAEA,MAAA,KACA,cAAA,KACA,MAAA,QACA,eAAA,IACA,aAAA,QAOA,yBACE,QAAA,MAAA,MACA,iBAAA,mBACA,oBAAA,IACA,WAAA,MAAA,EAAA,EAAA,EAAA,OAAA,0BAGF,aACE,eAAA,QAGF,aACE,eAAA,OAIF,uCACE,oBAAA,aASJ,aACE,aAAA,IAUA,4BACE,QAAA,OAAA,OAeF,gCACE,aAAA,IAAA,EAGA,kCACE,aAAA,EAAA,IAOJ,oCACE,oBAAA,EASF,yCACE,qBAAA,2BACA,MAAA,8BAQJ,cACE,qBAAA,0BACA,MAAA,6BAQA,4BACE,qBAAA,yBACA,MAAA,4BCxHF,eAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QAfF,iBAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QAfF,eAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QAfF,YAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QAfF,eAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QAfF,cAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QAfF,aAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QAfF,YAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QDgIA,kBACE,WAAA,KACA,2BAAA,MHvEF,4BGqEA,qBACE,WAAA,KACA,2BAAA,OHvEF,4BGqEA,qBACE,WAAA,KACA,2BAAA,OHvEF,4BGqEA,qBACE,WAAA,KACA,2BAAA,OHvEF,6BGqEA,qBACE,WAAA,KACA,2BAAA,OHvEF,6BGqEA,sBACE,WAAA,KACA,2BAAA,OE/IN,YACE,cAAA,MASF,gBACE,YAAA,oBACA,eAAA,oBACA,cAAA,EboRI,UAAA,QahRJ,YAAA,IAIF,mBACE,YAAA,kBACA,eAAA,kBb0QI,UAAA,QatQN,mBACE,YAAA,mBACA,eAAA,mBboQI,UAAA,QcjSN,WACE,WAAA,OdgSI,UAAA,Oc5RJ,MAAA,QCLF,cACE,QAAA,MACA,MAAA,KACA,QAAA,QAAA,Of8RI,UAAA,Ke3RJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,QACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KdGE,cAAA,OeHE,WAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAIA,uCDhBN,cCiBQ,WAAA,MDGN,yBACE,SAAA,OAEA,wDACE,OAAA,QAKJ,oBACE,MAAA,QACA,iBAAA,KACA,aAAA,QACA,QAAA,EAKE,WAAA,EAAA,EAAA,EAAA,OAAA,qBAOJ,2CAEE,OAAA,MAIF,gCACE,MAAA,QAEA,QAAA,EAHF,2BACE,MAAA,QAEA,QAAA,EAQF,uBAAA,wBAEE,iBAAA,QAGA,QAAA,EAIF,oCACE,QAAA,QAAA,OACA,OAAA,SAAA,QACA,mBAAA,OAAA,kBAAA,OACA,MAAA,QE3EF,iBAAA,QF6EE,eAAA,KACA,aAAA,QACA,aAAA,MACA,aAAA,EACA,wBAAA,IACA,cAAA,ECtEE,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAIA,uCDuDJ,oCCtDM,WAAA,MDqEN,yEACE,iBAAA,QAGF,0CACE,QAAA,QAAA,OACA,OAAA,SAAA,QACA,mBAAA,OAAA,kBAAA,OACA,MAAA,QE9FF,iBAAA,QFgGE,eAAA,KACA,aAAA,QACA,aAAA,MACA,aAAA,EACA,wBAAA,IACA,cAAA,ECzFE,mBAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAAA,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAIA,uCD0EJ,0CCzEM,mBAAA,KAAA,WAAA,MDwFN,+EACE,iBAAA,QASJ,wBACE,QAAA,MACA,MAAA,KACA,QAAA,QAAA,EACA,cAAA,EACA,YAAA,IACA,MAAA,QACA,iBAAA,YACA,OAAA,MAAA,YACA,aAAA,IAAA,EAEA,wCAAA,wCAEE,cAAA,EACA,aAAA,EAWJ,iBACE,WAAA,0BACA,QAAA,OAAA,MfmJI,UAAA,QClRF,cAAA,McmIF,uCACE,QAAA,OAAA,MACA,OAAA,QAAA,OACA,mBAAA,MAAA,kBAAA,MAGF,6CACE,QAAA,OAAA,MACA,OAAA,QAAA,OACA,mBAAA,MAAA,kBAAA,MAIJ,iBACE,WAAA,yBACA,QAAA,MAAA,KfgII,UAAA,QClRF,cAAA,McsJF,uCACE,QAAA,MAAA,KACA,OAAA,OAAA,MACA,mBAAA,KAAA,kBAAA,KAGF,6CACE,QAAA,MAAA,KACA,OAAA,OAAA,MACA,mBAAA,KAAA,kBAAA,KAQF,sBACE,WAAA,2BAGF,yBACE,WAAA,0BAGF,yBACE,WAAA,yBAKJ,oBACE,MAAA,KACA,OAAA,KACA,QAAA,QAEA,mDACE,OAAA,QAGF,uCACE,OAAA,Md/LA,cAAA,OcmMF,0CACE,OAAA,MdpMA,cAAA,OiBdJ,aACE,QAAA,MACA,MAAA,KACA,QAAA,QAAA,QAAA,QAAA,OAEA,mBAAA,oBlB2RI,UAAA,KkBxRJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KACA,iBAAA,gOACA,kBAAA,UACA,oBAAA,MAAA,OAAA,OACA,gBAAA,KAAA,KACA,OAAA,IAAA,MAAA,QjBFE,cAAA,OeHE,WAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YESJ,mBAAA,KAAA,gBAAA,KAAA,WAAA,KFLI,uCEfN,aFgBQ,WAAA,MEMN,mBACE,aAAA,QACA,QAAA,EAKE,WAAA,EAAA,EAAA,EAAA,OAAA,qBAIJ,uBAAA,mCAEE,cAAA,OACA,iBAAA,KAGF,sBAEE,iBAAA,QAKF,4BACE,MAAA,YACA,YAAA,EAAA,EAAA,EAAA,QAIJ,gBACE,YAAA,OACA,eAAA,OACA,aAAA,MlByOI,UAAA,QkBrON,gBACE,YAAA,MACA,eAAA,MACA,aAAA,KlBkOI,UAAA,QmBjSN,YACE,QAAA,MACA,WAAA,OACA,aAAA,MACA,cAAA,QAEA,8BACE,MAAA,KACA,YAAA,OAIJ,kBACE,MAAA,IACA,OAAA,IACA,WAAA,MACA,eAAA,IACA,iBAAA,KACA,kBAAA,UACA,oBAAA,OACA,gBAAA,QACA,OAAA,IAAA,MAAA,gBACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KACA,2BAAA,MAAA,aAAA,MAGA,iClBXE,cAAA,MkBeF,8BAEE,cAAA,IAGF,yBACE,OAAA,gBAGF,wBACE,aAAA,QACA,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,OAAA,qBAGF,0BACE,iBAAA,QACA,aAAA,QAEA,yCAII,iBAAA,8NAIJ,sCAII,iBAAA,sIAKN,+CACE,iBAAA,QACA,aAAA,QAKE,iBAAA,wNAIJ,2BACE,eAAA,KACA,OAAA,KACA,QAAA,GAOA,6CAAA,8CACE,QAAA,GAcN,aACE,aAAA,MAEA,+BACE,MAAA,IACA,YAAA,OACA,iBAAA,uJACA,oBAAA,KAAA,OlB9FA,cAAA,IeHE,WAAA,oBAAA,KAAA,YAIA,uCGyFJ,+BHxFM,WAAA,MGgGJ,qCACE,iBAAA,yIAGF,uCACE,oBAAA,MAAA,OAKE,iBAAA,sIAMR,mBACE,QAAA,aACA,aAAA,KAGF,WACE,SAAA,SACA,KAAA,cACA,eAAA,KAIE,yBAAA,0BACE,eAAA,KACA,OAAA,KACA,QAAA,IC9IN,YACE,MAAA,KACA,OAAA,OACA,QAAA,EACA,iBAAA,YACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KAEA,kBACE,QAAA,EAIA,wCAA0B,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,OAAA,qBAC1B,oCAA0B,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,OAAA,qBAG5B,8BACE,OAAA,EAGF,kCACE,MAAA,KACA,OAAA,KACA,WAAA,QHzBF,iBAAA,QG2BE,OAAA,EnBZA,cAAA,KeHE,mBAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAAA,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YImBF,mBAAA,KAAA,WAAA,KJfE,uCIMJ,kCJLM,mBAAA,KAAA,WAAA,MIgBJ,yCHjCF,iBAAA,QGsCA,2CACE,MAAA,KACA,OAAA,MACA,MAAA,YACA,OAAA,QACA,iBAAA,QACA,aAAA,YnB7BA,cAAA,KmBkCF,8BACE,MAAA,KACA,OAAA,KHnDF,iBAAA,QGqDE,OAAA,EnBtCA,cAAA,KeHE,gBAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAAA,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YI6CF,gBAAA,KAAA,WAAA,KJzCE,uCIiCJ,8BJhCM,gBAAA,KAAA,WAAA,MI0CJ,qCH3DF,iBAAA,QGgEA,8BACE,MAAA,KACA,OAAA,MACA,MAAA,YACA,OAAA,QACA,iBAAA,QACA,aAAA,YnBvDA,cAAA,KmB4DF,qBACE,eAAA,KAEA,2CACE,iBAAA,QAGF,uCACE,iBAAA,QCvFN,eACE,SAAA,SAEA,6BtB+iFF,4BsB7iFI,OAAA,mBACA,YAAA,KAGF,qBACE,SAAA,SACA,IAAA,EACA,KAAA,EACA,OAAA,KACA,QAAA,KAAA,OACA,eAAA,KACA,OAAA,IAAA,MAAA,YACA,iBAAA,EAAA,ELDE,WAAA,QAAA,IAAA,WAAA,CAAA,UAAA,IAAA,YAIA,uCKXJ,qBLYM,WAAA,MKCN,6BACE,QAAA,KAAA,OAEA,+CACE,MAAA,YADF,0CACE,MAAA,YAGF,0DAEE,YAAA,SACA,eAAA,QAHF,mCAAA,qDAEE,YAAA,SACA,eAAA,QAGF,8CACE,YAAA,SACA,eAAA,QAIJ,4BACE,YAAA,SACA,eAAA,QAMA,gEACE,QAAA,IACA,UAAA,WAAA,mBAAA,mBAFF,yCtBmjFJ,2DACA,kCsBnjFM,QAAA,IACA,UAAA,WAAA,mBAAA,mBAKF,oDACE,QAAA,IACA,UAAA,WAAA,mBAAA,mBCtDN,aACE,SAAA,SACA,QAAA,KACA,UAAA,KACA,YAAA,QACA,MAAA,KAEA,2BvB2mFF,0BuBzmFI,SAAA,SACA,KAAA,EAAA,EAAA,KACA,MAAA,GACA,UAAA,EAIF,iCvBymFF,gCuBvmFI,QAAA,EAMF,kBACE,SAAA,SACA,QAAA,EAEA,wBACE,QAAA,EAWN,kBACE,QAAA,KACA,YAAA,OACA,QAAA,QAAA,OtBsPI,UAAA,KsBpPJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,OACA,YAAA,OACA,iBAAA,QACA,OAAA,IAAA,MAAA,QrBpCE,cAAA,OFuoFJ,qBuBzlFA,8BvBulFA,6BACA,kCuBplFE,QAAA,MAAA,KtBgOI,UAAA,QClRF,cAAA,MFgpFJ,qBuBzlFA,8BvBulFA,6BACA,kCuBplFE,QAAA,OAAA,MtBuNI,UAAA,QClRF,cAAA,MqBgEJ,6BvBulFA,6BuBrlFE,cAAA,KvB0lFF,uEuB7kFI,8FrB/DA,wBAAA,EACA,2BAAA,EFgpFJ,iEuB3kFI,2FrBtEA,wBAAA,EACA,2BAAA,EqBgFF,0IACE,YAAA,KrBpEA,uBAAA,EACA,0BAAA,EsBzBF,gBACE,QAAA,KACA,MAAA,KACA,WAAA,OvByQE,UAAA,OuBtQF,MAAA,QAGF,eACE,SAAA,SACA,IAAA,KACA,QAAA,EACA,QAAA,KACA,UAAA,KACA,QAAA,OAAA,MACA,WAAA,MvB4PE,UAAA,QuBzPF,MAAA,KACA,iBAAA,mBtB1BA,cAAA,OFmsFJ,0BACA,yBwBrqFI,sCxBmqFJ,qCwBjqFM,QAAA,MA9CF,uBAAA,mCAoDE,aAAA,QAGE,cAAA,qBACA,iBAAA,2OACA,kBAAA,UACA,oBAAA,MAAA,wBAAA,OACA,gBAAA,sBAAA,sBAGF,6BAAA,yCACE,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,OAAA,oBAhEJ,2CAAA,+BAyEI,cAAA,qBACA,oBAAA,IAAA,wBAAA,MAAA,wBA1EJ,sBAAA,kCAiFE,aAAA,QAGE,kDAAA,gDAAA,8DAAA,4DAEE,cAAA,SACA,iBAAA,+NAAA,CAAA,2OACA,oBAAA,MAAA,OAAA,MAAA,CAAA,OAAA,MAAA,QACA,gBAAA,KAAA,IAAA,CAAA,sBAAA,sBAIJ,4BAAA,wCACE,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,OAAA,oBA/FJ,2BAAA,uCAsGE,aAAA,QAEA,mCAAA,+CACE,iBAAA,QAGF,iCAAA,6CACE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAGF,6CAAA,yDACE,MAAA,QAKJ,qDACE,YAAA,KAvHF,oCxBwwFJ,mCwBxwFI,gDxBuwFJ,+CwBxoFQ,QAAA,EAIF,0CxB0oFN,yCwB1oFM,sDxByoFN,qDwBxoFQ,QAAA,EAjHN,kBACE,QAAA,KACA,MAAA,KACA,WAAA,OvByQE,UAAA,OuBtQF,MAAA,QAGF,iBACE,SAAA,SACA,IAAA,KACA,QAAA,EACA,QAAA,KACA,UAAA,KACA,QAAA,OAAA,MACA,WAAA,MvB4PE,UAAA,QuBzPF,MAAA,KACA,iBAAA,mBtB1BA,cAAA,OF4xFJ,8BACA,6BwB9vFI,0CxB4vFJ,yCwB1vFM,QAAA,MA9CF,yBAAA,qCAoDE,aAAA,QAGE,cAAA,qBACA,iBAAA,2TACA,kBAAA,UACA,oBAAA,MAAA,wBAAA,OACA,gBAAA,sBAAA,sBAGF,+BAAA,2CACE,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,OAAA,oBAhEJ,6CAAA,iCAyEI,cAAA,qBACA,oBAAA,IAAA,wBAAA,MAAA,wBA1EJ,wBAAA,oCAiFE,aAAA,QAGE,oDAAA,kDAAA,gEAAA,8DAEE,cAAA,SACA,iBAAA,+NAAA,CAAA,2TACA,oBAAA,MAAA,OAAA,MAAA,CAAA,OAAA,MAAA,QACA,gBAAA,KAAA,IAAA,CAAA,sBAAA,sBAIJ,8BAAA,0CACE,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,OAAA,oBA/FJ,6BAAA,yCAsGE,aAAA,QAEA,qCAAA,iDACE,iBAAA,QAGF,mCAAA,+CACE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAGF,+CAAA,2DACE,MAAA,QAKJ,uDACE,YAAA,KAvHF,sCxBi2FJ,qCwBj2FI,kDxBg2FJ,iDwB/tFQ,QAAA,EAEF,4CxBmuFN,2CwBnuFM,wDxBkuFN,uDwBjuFQ,QAAA,ECtIR,KACE,QAAA,aAEA,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,OACA,gBAAA,KAEA,eAAA,OACA,OAAA,QACA,oBAAA,KAAA,iBAAA,KAAA,YAAA,KACA,iBAAA,YACA,OAAA,IAAA,MAAA,YC8GA,QAAA,QAAA,OzBsKI,UAAA,KClRF,cAAA,OeHE,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAIA,uCQhBN,KRiBQ,WAAA,MQAN,WACE,MAAA,QAIF,sBAAA,WAEE,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,OAAA,qBAcF,cAAA,cAAA,uBAGE,eAAA,KACA,QAAA,IAYF,aCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,mBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,8BAAA,mBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAIJ,+BAAA,gCAAA,oBAAA,oBAAA,mCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,qCAAA,sCAAA,0BAAA,0BAAA,yCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,oBAKN,sBAAA,sBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDZF,eCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,qBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,gCAAA,qBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,qBAIJ,iCAAA,kCAAA,sBAAA,sBAAA,qCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,uCAAA,wCAAA,4BAAA,4BAAA,2CAKI,WAAA,EAAA,EAAA,EAAA,OAAA,qBAKN,wBAAA,wBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDZF,aCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,mBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,8BAAA,mBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAIJ,+BAAA,gCAAA,oBAAA,oBAAA,mCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,qCAAA,sCAAA,0BAAA,0BAAA,yCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,oBAKN,sBAAA,sBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDZF,UCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,gBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,2BAAA,gBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAIJ,4BAAA,6BAAA,iBAAA,iBAAA,gCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,kCAAA,mCAAA,uBAAA,uBAAA,sCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,oBAKN,mBAAA,mBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDZF,aCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,mBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,8BAAA,mBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,mBAIJ,+BAAA,gCAAA,oBAAA,oBAAA,mCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,qCAAA,sCAAA,0BAAA,0BAAA,yCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,mBAKN,sBAAA,sBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDZF,YCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,kBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,6BAAA,kBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,mBAIJ,8BAAA,+BAAA,mBAAA,mBAAA,kCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,oCAAA,qCAAA,yBAAA,yBAAA,wCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,mBAKN,qBAAA,qBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDZF,WCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,iBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,4BAAA,iBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,qBAIJ,6BAAA,8BAAA,kBAAA,kBAAA,iCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,mCAAA,oCAAA,wBAAA,wBAAA,uCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,qBAKN,oBAAA,oBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDZF,UCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,gBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,2BAAA,gBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,kBAIJ,4BAAA,6BAAA,iBAAA,iBAAA,gCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,kCAAA,mCAAA,uBAAA,uBAAA,sCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,kBAKN,mBAAA,mBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDNF,qBCmBA,MAAA,QACA,aAAA,QAEA,2BACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,sCAAA,2BAEE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAGF,uCAAA,wCAAA,4BAAA,0CAAA,4BAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,6CAAA,8CAAA,kCAAA,gDAAA,kCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,oBAKN,8BAAA,8BAEE,MAAA,QACA,iBAAA,YDvDF,uBCmBA,MAAA,QACA,aAAA,QAEA,6BACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,wCAAA,6BAEE,WAAA,EAAA,EAAA,EAAA,OAAA,qBAGF,yCAAA,0CAAA,8BAAA,4CAAA,8BAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,+CAAA,gDAAA,oCAAA,kDAAA,oCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,qBAKN,gCAAA,gCAEE,MAAA,QACA,iBAAA,YDvDF,qBCmBA,MAAA,QACA,aAAA,QAEA,2BACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,sCAAA,2BAEE,WAAA,EAAA,EAAA,EAAA,OAAA,mBAGF,uCAAA,wCAAA,4BAAA,0CAAA,4BAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,6CAAA,8CAAA,kCAAA,gDAAA,kCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,mBAKN,8BAAA,8BAEE,MAAA,QACA,iBAAA,YDvDF,kBCmBA,MAAA,QACA,aAAA,QAEA,wBACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,mCAAA,wBAEE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAGF,oCAAA,qCAAA,yBAAA,uCAAA,yBAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,0CAAA,2CAAA,+BAAA,6CAAA,+BAKI,WAAA,EAAA,EAAA,EAAA,OAAA,oBAKN,2BAAA,2BAEE,MAAA,QACA,iBAAA,YDvDF,qBCmBA,MAAA,QACA,aAAA,QAEA,2BACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,sCAAA,2BAEE,WAAA,EAAA,EAAA,EAAA,OAAA,mBAGF,uCAAA,wCAAA,4BAAA,0CAAA,4BAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,6CAAA,8CAAA,kCAAA,gDAAA,kCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,mBAKN,8BAAA,8BAEE,MAAA,QACA,iBAAA,YDvDF,oBCmBA,MAAA,QACA,aAAA,QAEA,0BACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,qCAAA,0BAEE,WAAA,EAAA,EAAA,EAAA,OAAA,mBAGF,sCAAA,uCAAA,2BAAA,yCAAA,2BAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,4CAAA,6CAAA,iCAAA,+CAAA,iCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,mBAKN,6BAAA,6BAEE,MAAA,QACA,iBAAA,YDvDF,mBCmBA,MAAA,QACA,aAAA,QAEA,yBACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,oCAAA,yBAEE,WAAA,EAAA,EAAA,EAAA,OAAA,qBAGF,qCAAA,sCAAA,0BAAA,wCAAA,0BAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,2CAAA,4CAAA,gCAAA,8CAAA,gCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,qBAKN,4BAAA,4BAEE,MAAA,QACA,iBAAA,YDvDF,kBCmBA,MAAA,QACA,aAAA,QAEA,wBACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,mCAAA,wBAEE,WAAA,EAAA,EAAA,EAAA,OAAA,kBAGF,oCAAA,qCAAA,yBAAA,uCAAA,yBAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,0CAAA,2CAAA,+BAAA,6CAAA,+BAKI,WAAA,EAAA,EAAA,EAAA,OAAA,kBAKN,2BAAA,2BAEE,MAAA,QACA,iBAAA,YD3CJ,UACE,YAAA,IACA,MAAA,QACA,gBAAA,UAEA,gBACE,MAAA,QAQF,mBAAA,mBAEE,MAAA,QAWJ,mBAAA,QCuBE,QAAA,MAAA,KzBsKI,UAAA,QClRF,cAAA,MuByFJ,mBAAA,QCmBE,QAAA,OAAA,MzBsKI,UAAA,QClRF,cAAA,MyBnBJ,MVgBM,WAAA,QAAA,KAAA,OAIA,uCUpBN,MVqBQ,WAAA,MUlBN,iBACE,QAAA,EAMF,qBACE,QAAA,KAIJ,YACE,OAAA,EACA,SAAA,OVDI,WAAA,OAAA,KAAA,KAIA,uCULN,YVMQ,WAAA,MUDN,gCACE,MAAA,EACA,OAAA,KVNE,WAAA,MAAA,KAAA,KAIA,uCUAJ,gCVCM,WAAA,MjBs3GR,UADA,SAEA,W4B34GA,QAIE,SAAA,SAGF,iBACE,YAAA,OCqBE,wBACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAhCJ,WAAA,KAAA,MACA,aAAA,KAAA,MAAA,YACA,cAAA,EACA,YAAA,KAAA,MAAA,YAqDE,8BACE,YAAA,ED3CN,eACE,SAAA,SACA,QAAA,KACA,QAAA,KACA,UAAA,MACA,QAAA,MAAA,EACA,OAAA,E3B+QI,UAAA,K2B7QJ,MAAA,QACA,WAAA,KACA,WAAA,KACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,gB1BVE,cAAA,O0BcF,+BACE,IAAA,KACA,KAAA,EACA,WAAA,QAYA,qBACE,cAAA,MAEA,qCACE,MAAA,KACA,KAAA,EAIJ,mBACE,cAAA,IAEA,mCACE,MAAA,EACA,KAAA,KnBCJ,yBmBfA,wBACE,cAAA,MAEA,wCACE,MAAA,KACA,KAAA,EAIJ,sBACE,cAAA,IAEA,sCACE,MAAA,EACA,KAAA,MnBCJ,yBmBfA,wBACE,cAAA,MAEA,wCACE,MAAA,KACA,KAAA,EAIJ,sBACE,cAAA,IAEA,sCACE,MAAA,EACA,KAAA,MnBCJ,yBmBfA,wBACE,cAAA,MAEA,wCACE,MAAA,KACA,KAAA,EAIJ,sBACE,cAAA,IAEA,sCACE,MAAA,EACA,KAAA,MnBCJ,0BmBfA,wBACE,cAAA,MAEA,wCACE,MAAA,KACA,KAAA,EAIJ,sBACE,cAAA,IAEA,sCACE,MAAA,EACA,KAAA,MnBCJ,0BmBfA,yBACE,cAAA,MAEA,yCACE,MAAA,KACA,KAAA,EAIJ,uBACE,cAAA,IAEA,uCACE,MAAA,EACA,KAAA,MAUN,uCACE,IAAA,KACA,OAAA,KACA,WAAA,EACA,cAAA,QC9CA,gCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAzBJ,WAAA,EACA,aAAA,KAAA,MAAA,YACA,cAAA,KAAA,MACA,YAAA,KAAA,MAAA,YA8CE,sCACE,YAAA,ED0BJ,wCACE,IAAA,EACA,MAAA,KACA,KAAA,KACA,WAAA,EACA,YAAA,QC5DA,iCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAlBJ,WAAA,KAAA,MAAA,YACA,aAAA,EACA,cAAA,KAAA,MAAA,YACA,YAAA,KAAA,MAuCE,uCACE,YAAA,EDoCF,iCACE,eAAA,EAMJ,0CACE,IAAA,EACA,MAAA,KACA,KAAA,KACA,WAAA,EACA,aAAA,QC7EA,mCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAWA,mCACE,QAAA,KAGF,oCACE,QAAA,aACA,aAAA,OACA,eAAA,OACA,QAAA,GA9BN,WAAA,KAAA,MAAA,YACA,aAAA,KAAA,MACA,cAAA,KAAA,MAAA,YAiCE,yCACE,YAAA,EDqDF,oCACE,eAAA,EAON,kBACE,OAAA,EACA,OAAA,MAAA,EACA,SAAA,OACA,WAAA,IAAA,MAAA,gBAMF,eACE,QAAA,MACA,MAAA,KACA,QAAA,OAAA,KACA,MAAA,KACA,YAAA,IACA,MAAA,QACA,WAAA,QACA,gBAAA,KACA,YAAA,OACA,iBAAA,YACA,OAAA,EAcA,qBAAA,qBAEE,MAAA,QVzJF,iBAAA,QU8JA,sBAAA,sBAEE,MAAA,KACA,gBAAA,KVjKF,iBAAA,QUqKA,wBAAA,wBAEE,MAAA,QACA,eAAA,KACA,iBAAA,YAMJ,oBACE,QAAA,MAIF,iBACE,QAAA,MACA,QAAA,MAAA,KACA,cAAA,E3B0GI,UAAA,Q2BxGJ,MAAA,QACA,YAAA,OAIF,oBACE,QAAA,MACA,QAAA,OAAA,KACA,MAAA,QAIF,oBACE,MAAA,QACA,iBAAA,QACA,aAAA,gBAGA,mCACE,MAAA,QAEA,yCAAA,yCAEE,MAAA,KVhNJ,iBAAA,sBUoNE,0CAAA,0CAEE,MAAA,KVtNJ,iBAAA,QU0NE,4CAAA,4CAEE,MAAA,QAIJ,sCACE,aAAA,gBAGF,wCACE,MAAA,QAGF,qCACE,MAAA,QE5OJ,W9B2rHA,oB8BzrHE,SAAA,SACA,QAAA,YACA,eAAA,O9B6rHF,yB8B3rHE,gBACE,SAAA,SACA,KAAA,EAAA,EAAA,K9BmsHJ,4CACA,0CAIA,gCADA,gCADA,+BADA,+B8BhsHE,mC9ByrHF,iCAIA,uBADA,uBADA,sBADA,sB8BprHI,QAAA,EAKJ,aACE,QAAA,KACA,UAAA,KACA,gBAAA,WAEA,0BACE,MAAA,K9BgsHJ,wC8B1rHE,kCAEE,YAAA,K9B4rHJ,4C8BxrHE,uD5BRE,wBAAA,EACA,2BAAA,EFqsHJ,6C8BrrHE,+B9BorHF,iCEvrHI,uBAAA,EACA,0BAAA,E4BqBJ,uBACE,cAAA,SACA,aAAA,SAEA,8BAAA,uCAAA,sCAGE,YAAA,EAGF,0CACE,aAAA,EAIJ,0CAAA,+BACE,cAAA,QACA,aAAA,QAGF,0CAAA,+BACE,cAAA,OACA,aAAA,OAoBF,oBACE,eAAA,OACA,YAAA,WACA,gBAAA,OAEA,yB9BmpHF,+B8BjpHI,MAAA,K9BqpHJ,iD8BlpHE,2CAEE,WAAA,K9BopHJ,qD8BhpHE,gE5BvFE,2BAAA,EACA,0BAAA,EF2uHJ,sD8BhpHE,8B5B1GE,uBAAA,EACA,wBAAA,E6BxBJ,KACE,QAAA,KACA,UAAA,KACA,aAAA,EACA,cAAA,EACA,WAAA,KAGF,UACE,QAAA,MACA,QAAA,MAAA,KAGA,MAAA,QACA,gBAAA,KdHI,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,YAIA,uCcPN,UdQQ,WAAA,McCN,gBAAA,gBAEE,MAAA,QAKF,mBACE,MAAA,QACA,eAAA,KACA,OAAA,QAQJ,UACE,cAAA,IAAA,MAAA,QAEA,oBACE,cAAA,KACA,WAAA,IACA,OAAA,IAAA,MAAA,Y7BlBA,uBAAA,OACA,wBAAA,O6BoBA,0BAAA,0BAEE,aAAA,QAAA,QAAA,QAEA,UAAA,QAGF,6BACE,MAAA,QACA,iBAAA,YACA,aAAA,Y/BixHN,mC+B7wHE,2BAEE,MAAA,QACA,iBAAA,KACA,aAAA,QAAA,QAAA,KAGF,yBAEE,WAAA,K7B5CA,uBAAA,EACA,wBAAA,E6BuDF,qBACE,WAAA,IACA,OAAA,E7BnEA,cAAA,O6BuEF,4B/BmwHF,2B+BjwHI,MAAA,KbxFF,iBAAA,QlB+1HF,oB+B5vHE,oBAEE,KAAA,EAAA,EAAA,KACA,WAAA,O/B+vHJ,yB+B1vHE,yBAEE,WAAA,EACA,UAAA,EACA,WAAA,OAMF,8B/BuvHF,mC+BtvHI,MAAA,KAUF,uBACE,QAAA,KAEF,qBACE,QAAA,MCxHJ,QACE,SAAA,SACA,QAAA,KACA,UAAA,KACA,YAAA,OACA,gBAAA,cACA,YAAA,MAEA,eAAA,MAOA,mBhCs2HF,yBAGA,sBADA,sBADA,sBAGA,sBACA,uBgC12HI,QAAA,KACA,UAAA,QACA,YAAA,OACA,gBAAA,cAoBJ,cACE,YAAA,SACA,eAAA,SACA,aAAA,K/B2OI,UAAA,Q+BzOJ,gBAAA,KACA,YAAA,OAaF,YACE,QAAA,KACA,eAAA,OACA,aAAA,EACA,cAAA,EACA,WAAA,KAEA,sBACE,cAAA,EACA,aAAA,EAGF,2BACE,SAAA,OASJ,aACE,YAAA,MACA,eAAA,MAYF,iBACE,WAAA,KACA,UAAA,EAGA,YAAA,OAIF,gBACE,QAAA,OAAA,O/B6KI,UAAA,Q+B3KJ,YAAA,EACA,iBAAA,YACA,OAAA,IAAA,MAAA,Y9BzGE,cAAA,OeHE,WAAA,WAAA,KAAA,YAIA,uCemGN,gBflGQ,WAAA,Me2GN,sBACE,gBAAA,KAGF,sBACE,gBAAA,KACA,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,OAMJ,qBACE,QAAA,aACA,MAAA,MACA,OAAA,MACA,eAAA,OACA,kBAAA,UACA,oBAAA,OACA,gBAAA,KAGF,mBACE,WAAA,6BACA,WAAA,KvB1FE,yBuBsGA,kBAEI,UAAA,OACA,gBAAA,WAEA,8BACE,eAAA,IAEA,6CACE,SAAA,SAGF,wCACE,cAAA,MACA,aAAA,MAIJ,qCACE,SAAA,QAGF,mCACE,QAAA,eACA,WAAA,KAGF,kCACE,QAAA,KAGF,oCACE,QAAA,KAGF,6BACE,SAAA,QACA,OAAA,EACA,QAAA,KACA,UAAA,EACA,WAAA,kBACA,iBAAA,YACA,aAAA,EACA,YAAA,EfhMJ,WAAA,KekMI,UAAA,KhC+yHV,oCgC7yHQ,iCAEE,OAAA,KACA,WAAA,EACA,cAAA,EAGF,kCACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,SvBhKN,yBuBsGA,kBAEI,UAAA,OACA,gBAAA,WAEA,8BACE,eAAA,IAEA,6CACE,SAAA,SAGF,wCACE,cAAA,MACA,aAAA,MAIJ,qCACE,SAAA,QAGF,mCACE,QAAA,eACA,WAAA,KAGF,kCACE,QAAA,KAGF,oCACE,QAAA,KAGF,6BACE,SAAA,QACA,OAAA,EACA,QAAA,KACA,UAAA,EACA,WAAA,kBACA,iBAAA,YACA,aAAA,EACA,YAAA,EfhMJ,WAAA,KekMI,UAAA,KhCo2HV,oCgCl2HQ,iCAEE,OAAA,KACA,WAAA,EACA,cAAA,EAGF,kCACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,SvBhKN,yBuBsGA,kBAEI,UAAA,OACA,gBAAA,WAEA,8BACE,eAAA,IAEA,6CACE,SAAA,SAGF,wCACE,cAAA,MACA,aAAA,MAIJ,qCACE,SAAA,QAGF,mCACE,QAAA,eACA,WAAA,KAGF,kCACE,QAAA,KAGF,oCACE,QAAA,KAGF,6BACE,SAAA,QACA,OAAA,EACA,QAAA,KACA,UAAA,EACA,WAAA,kBACA,iBAAA,YACA,aAAA,EACA,YAAA,EfhMJ,WAAA,KekMI,UAAA,KhCy5HV,oCgCv5HQ,iCAEE,OAAA,KACA,WAAA,EACA,cAAA,EAGF,kCACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,SvBhKN,0BuBsGA,kBAEI,UAAA,OACA,gBAAA,WAEA,8BACE,eAAA,IAEA,6CACE,SAAA,SAGF,wCACE,cAAA,MACA,aAAA,MAIJ,qCACE,SAAA,QAGF,mCACE,QAAA,eACA,WAAA,KAGF,kCACE,QAAA,KAGF,oCACE,QAAA,KAGF,6BACE,SAAA,QACA,OAAA,EACA,QAAA,KACA,UAAA,EACA,WAAA,kBACA,iBAAA,YACA,aAAA,EACA,YAAA,EfhMJ,WAAA,KekMI,UAAA,KhC88HV,oCgC58HQ,iCAEE,OAAA,KACA,WAAA,EACA,cAAA,EAGF,kCACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,SvBhKN,0BuBsGA,mBAEI,UAAA,OACA,gBAAA,WAEA,+BACE,eAAA,IAEA,8CACE,SAAA,SAGF,yCACE,cAAA,MACA,aAAA,MAIJ,sCACE,SAAA,QAGF,oCACE,QAAA,eACA,WAAA,KAGF,mCACE,QAAA,KAGF,qCACE,QAAA,KAGF,8BACE,SAAA,QACA,OAAA,EACA,QAAA,KACA,UAAA,EACA,WAAA,kBACA,iBAAA,YACA,aAAA,EACA,YAAA,EfhMJ,WAAA,KekMI,UAAA,KhCmgIV,qCgCjgIQ,kCAEE,OAAA,KACA,WAAA,EACA,cAAA,EAGF,mCACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,SA1DN,eAEI,UAAA,OACA,gBAAA,WAEA,2BACE,eAAA,IAEA,0CACE,SAAA,SAGF,qCACE,cAAA,MACA,aAAA,MAIJ,kCACE,SAAA,QAGF,gCACE,QAAA,eACA,WAAA,KAGF,+BACE,QAAA,KAGF,iCACE,QAAA,KAGF,0BACE,SAAA,QACA,OAAA,EACA,QAAA,KACA,UAAA,EACA,WAAA,kBACA,iBAAA,YACA,aAAA,EACA,YAAA,EfhMJ,WAAA,KekMI,UAAA,KhCujIV,iCgCrjIQ,8BAEE,OAAA,KACA,WAAA,EACA,cAAA,EAGF,+BACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,QAcR,4BACE,MAAA,eAEA,kCAAA,kCAEE,MAAA,eAKF,oCACE,MAAA,gBAEA,0CAAA,0CAEE,MAAA,eAGF,6CACE,MAAA,ehCqiIR,2CgCjiII,0CAEE,MAAA,eAIJ,8BACE,MAAA,gBACA,aAAA,eAGF,mCACE,iBAAA,4OAGF,2BACE,MAAA,gBAEA,6BhC8hIJ,mCADA,mCgC1hIM,MAAA,eAOJ,2BACE,MAAA,KAEA,iCAAA,iCAEE,MAAA,KAKF,mCACE,MAAA,sBAEA,yCAAA,yCAEE,MAAA,sBAGF,4CACE,MAAA,sBhCqhIR,0CgCjhII,yCAEE,MAAA,KAIJ,6BACE,MAAA,sBACA,aAAA,qBAGF,kCACE,iBAAA,kPAGF,0BACE,MAAA,sBACA,4BhC+gIJ,kCADA,kCgC3gIM,MAAA,KCvUN,MACE,SAAA,SACA,QAAA,KACA,eAAA,OACA,UAAA,EAEA,UAAA,WACA,iBAAA,KACA,gBAAA,WACA,OAAA,IAAA,MAAA,iB/BME,cAAA,O+BFF,SACE,aAAA,EACA,YAAA,EAGF,kBACE,WAAA,QACA,cAAA,QAEA,8BACE,iBAAA,E/BCF,uBAAA,mBACA,wBAAA,mB+BEA,6BACE,oBAAA,E/BUF,2BAAA,mBACA,0BAAA,mB+BJF,+BjCk1IF,+BiCh1II,WAAA,EAIJ,WAGE,KAAA,EAAA,EAAA,KACA,QAAA,KAAA,KAIF,YACE,cAAA,MAGF,eACE,WAAA,QACA,cAAA,EAGF,sBACE,cAAA,EAQA,sBACE,YAAA,KAQJ,aACE,QAAA,MAAA,KACA,cAAA,EAEA,iBAAA,gBACA,cAAA,IAAA,MAAA,iBAEA,yB/BpEE,cAAA,mBAAA,mBAAA,EAAA,E+ByEJ,aACE,QAAA,MAAA,KAEA,iBAAA,gBACA,WAAA,IAAA,MAAA,iBAEA,wB/B/EE,cAAA,EAAA,EAAA,mBAAA,mB+ByFJ,kBACE,aAAA,OACA,cAAA,OACA,YAAA,OACA,cAAA,EAUF,mBACE,aAAA,OACA,YAAA,OAIF,kBACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,K/BnHE,cAAA,mB+BuHJ,UjCozIA,iBADA,ciChzIE,MAAA,KAGF,UjCmzIA,cEv6II,uBAAA,mBACA,wBAAA,mB+BwHJ,UjCozIA,iBE/5II,2BAAA,mBACA,0BAAA,mB+BuHF,kBACE,cAAA,OxBpGA,yBwBgGJ,YAQI,QAAA,KACA,UAAA,IAAA,KAGA,kBAEE,KAAA,EAAA,EAAA,GACA,cAAA,EAEA,wBACE,YAAA,EACA,YAAA,EAKA,mC/BpJJ,wBAAA,EACA,2BAAA,EF+7IJ,gDiCzyIU,iDAGE,wBAAA,EjC0yIZ,gDiCxyIU,oDAGE,2BAAA,EAIJ,oC/BrJJ,uBAAA,EACA,0BAAA,EF67IJ,iDiCtyIU,kDAGE,uBAAA,EjCuyIZ,iDiCryIU,qDAGE,0BAAA,GC7MZ,kBACE,SAAA,SACA,QAAA,KACA,YAAA,OACA,MAAA,KACA,QAAA,KAAA,QjC4RI,UAAA,KiC1RJ,MAAA,QACA,WAAA,KACA,iBAAA,KACA,OAAA,EhCKE,cAAA,EgCHF,gBAAA,KjBAI,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,WAAA,CAAA,cAAA,KAAA,KAIA,uCiBhBN,kBjBiBQ,WAAA,MiBFN,kCACE,MAAA,QACA,iBAAA,QACA,WAAA,MAAA,EAAA,KAAA,EAAA,iBAEA,yCACE,iBAAA,gRACA,UAAA,gBAKJ,yBACE,YAAA,EACA,MAAA,QACA,OAAA,QACA,YAAA,KACA,QAAA,GACA,iBAAA,gRACA,kBAAA,UACA,gBAAA,QjBvBE,WAAA,UAAA,IAAA,YAIA,uCiBWJ,yBjBVM,WAAA,MiBsBN,wBACE,QAAA,EAGF,wBACE,QAAA,EACA,aAAA,QACA,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,OAAA,qBAIJ,kBACE,cAAA,EAGF,gBACE,iBAAA,KACA,OAAA,IAAA,MAAA,iBAEA,8BhCnCE,uBAAA,OACA,wBAAA,OgCqCA,gDhCtCA,uBAAA,mBACA,wBAAA,mBgC0CF,oCACE,WAAA,EAIF,6BhClCE,2BAAA,OACA,0BAAA,OgCqCE,yDhCtCF,2BAAA,mBACA,0BAAA,mBgC0CA,iDhC3CA,2BAAA,OACA,0BAAA,OgCgDJ,gBACE,QAAA,KAAA,QASA,qCACE,aAAA,EAGF,iCACE,aAAA,EACA,YAAA,EhCxFA,cAAA,EgC2FA,6CAAgB,WAAA,EAChB,4CAAe,cAAA,EAEf,mDhC9FA,cAAA,EiCnBJ,YACE,QAAA,KACA,UAAA,KACA,QAAA,EAAA,EACA,cAAA,KAEA,WAAA,KAOA,kCACE,aAAA,MAEA,0CACE,MAAA,KACA,cAAA,MACA,MAAA,QACA,QAAA,kCAIJ,wBACE,MAAA,QCzBJ,YACE,QAAA,KhCGA,aAAA,EACA,WAAA,KgCAF,WACE,SAAA,SACA,QAAA,MACA,MAAA,QACA,gBAAA,KACA,iBAAA,KACA,OAAA,IAAA,MAAA,QnBKI,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAIA,uCmBfN,WnBgBQ,WAAA,MmBPN,iBACE,QAAA,EACA,MAAA,QAEA,iBAAA,QACA,aAAA,QAGF,iBACE,QAAA,EACA,MAAA,QACA,iBAAA,QACA,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,OAAA,qBAKF,wCACE,YAAA,KAGF,6BACE,QAAA,EACA,MAAA,KlBlCF,iBAAA,QkBoCE,aAAA,QAGF,+BACE,MAAA,QACA,eAAA,KACA,iBAAA,KACA,aAAA,QC3CF,WACE,QAAA,QAAA,OAOI,kCnCqCJ,uBAAA,OACA,0BAAA,OmChCI,iCnCiBJ,wBAAA,OACA,2BAAA,OmChCF,0BACE,QAAA,OAAA,OpCgSE,UAAA,QoCzRE,iDnCqCJ,uBAAA,MACA,0BAAA,MmChCI,gDnCiBJ,wBAAA,MACA,2BAAA,MmChCF,0BACE,QAAA,OAAA,MpCgSE,UAAA,QoCzRE,iDnCqCJ,uBAAA,MACA,0BAAA,MmChCI,gDnCiBJ,wBAAA,MACA,2BAAA,MoC/BJ,OACE,QAAA,aACA,QAAA,MAAA,MrC8RI,UAAA,MqC5RJ,YAAA,IACA,YAAA,EACA,MAAA,KACA,WAAA,OACA,YAAA,OACA,eAAA,SpCKE,cAAA,OoCAF,aACE,QAAA,KAKJ,YACE,SAAA,SACA,IAAA,KCvBF,OACE,SAAA,SACA,QAAA,KAAA,KACA,cAAA,KACA,OAAA,IAAA,MAAA,YrCWE,cAAA,OqCNJ,eAEE,MAAA,QAIF,YACE,YAAA,IAQF,mBACE,cAAA,KAGA,8BACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,QAAA,EACA,QAAA,QAAA,KAeF,eClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,2BACE,MAAA,QD6CF,iBClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,6BACE,MAAA,QD6CF,eClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,2BACE,MAAA,QD6CF,YClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,wBACE,MAAA,QD6CF,eClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,2BACE,MAAA,QD6CF,cClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,0BACE,MAAA,QD6CF,aClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,yBACE,MAAA,QD6CF,YClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,wBACE,MAAA,QCHF,wCACE,GAAK,sBAAA,MADP,gCACE,GAAK,sBAAA,MAKT,UACE,QAAA,KACA,OAAA,KACA,SAAA,OxCwRI,UAAA,OwCtRJ,iBAAA,QvCIE,cAAA,OuCCJ,cACE,QAAA,KACA,eAAA,OACA,gBAAA,OACA,SAAA,OACA,MAAA,KACA,WAAA,OACA,YAAA,OACA,iBAAA,QxBZI,WAAA,MAAA,IAAA,KAIA,uCwBAN,cxBCQ,WAAA,MwBWR,sBvBYE,iBAAA,iKuBVA,gBAAA,KAAA,KAIA,uBACE,kBAAA,GAAA,OAAA,SAAA,qBAAA,UAAA,GAAA,OAAA,SAAA,qBAGE,uCAJJ,uBAKM,kBAAA,KAAA,UAAA,MCvCR,YACE,QAAA,KACA,eAAA,OAGA,aAAA,EACA,cAAA,ExCSE,cAAA,OwCLJ,qBACE,gBAAA,KACA,cAAA,QAEA,gCAEE,QAAA,uBAAA,KACA,kBAAA,QAUJ,wBACE,MAAA,KACA,MAAA,QACA,WAAA,QAGA,8BAAA,8BAEE,QAAA,EACA,MAAA,QACA,gBAAA,KACA,iBAAA,QAGF,+BACE,MAAA,QACA,iBAAA,QASJ,iBACE,SAAA,SACA,QAAA,MACA,QAAA,MAAA,KACA,MAAA,QACA,gBAAA,KACA,iBAAA,KACA,OAAA,IAAA,MAAA,iBAEA,6BxCrCE,uBAAA,QACA,wBAAA,QwCwCF,4BxC3BE,2BAAA,QACA,0BAAA,QwC8BF,0BAAA,0BAEE,MAAA,QACA,eAAA,KACA,iBAAA,KAIF,wBACE,QAAA,EACA,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,kCACE,iBAAA,EAEA,yCACE,WAAA,KACA,iBAAA,IAcF,uBACE,eAAA,IAGE,oDxCrCJ,0BAAA,OAZA,wBAAA,EwCsDI,mDxCtDJ,wBAAA,OAYA,0BAAA,EwC+CI,+CACE,WAAA,EAGF,yDACE,iBAAA,IACA,kBAAA,EAEA,gEACE,YAAA,KACA,kBAAA,IjCpER,yBiC4CA,0BACE,eAAA,IAGE,uDxCrCJ,0BAAA,OAZA,wBAAA,EwCsDI,sDxCtDJ,wBAAA,OAYA,0BAAA,EwC+CI,kDACE,WAAA,EAGF,4DACE,iBAAA,IACA,kBAAA,EAEA,mEACE,YAAA,KACA,kBAAA,KjCpER,yBiC4CA,0BACE,eAAA,IAGE,uDxCrCJ,0BAAA,OAZA,wBAAA,EwCsDI,sDxCtDJ,wBAAA,OAYA,0BAAA,EwC+CI,kDACE,WAAA,EAGF,4DACE,iBAAA,IACA,kBAAA,EAEA,mEACE,YAAA,KACA,kBAAA,KjCpER,yBiC4CA,0BACE,eAAA,IAGE,uDxCrCJ,0BAAA,OAZA,wBAAA,EwCsDI,sDxCtDJ,wBAAA,OAYA,0BAAA,EwC+CI,kDACE,WAAA,EAGF,4DACE,iBAAA,IACA,kBAAA,EAEA,mEACE,YAAA,KACA,kBAAA,KjCpER,0BiC4CA,0BACE,eAAA,IAGE,uDxCrCJ,0BAAA,OAZA,wBAAA,EwCsDI,sDxCtDJ,wBAAA,OAYA,0BAAA,EwC+CI,kDACE,WAAA,EAGF,4DACE,iBAAA,IACA,kBAAA,EAEA,mEACE,YAAA,KACA,kBAAA,KjCpER,0BiC4CA,2BACE,eAAA,IAGE,wDxCrCJ,0BAAA,OAZA,wBAAA,EwCsDI,uDxCtDJ,wBAAA,OAYA,0BAAA,EwC+CI,mDACE,WAAA,EAGF,6DACE,iBAAA,IACA,kBAAA,EAEA,oEACE,YAAA,KACA,kBAAA,KAcZ,kBxC9HI,cAAA,EwCiIF,mCACE,aAAA,EAAA,EAAA,IAEA,8CACE,oBAAA,ECpJJ,yBACE,MAAA,QACA,iBAAA,QAGE,sDAAA,sDAEE,MAAA,QACA,iBAAA,QAGF,uDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,2BACE,MAAA,QACA,iBAAA,QAGE,wDAAA,wDAEE,MAAA,QACA,iBAAA,QAGF,yDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,yBACE,MAAA,QACA,iBAAA,QAGE,sDAAA,sDAEE,MAAA,QACA,iBAAA,QAGF,uDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,sBACE,MAAA,QACA,iBAAA,QAGE,mDAAA,mDAEE,MAAA,QACA,iBAAA,QAGF,oDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,yBACE,MAAA,QACA,iBAAA,QAGE,sDAAA,sDAEE,MAAA,QACA,iBAAA,QAGF,uDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,wBACE,MAAA,QACA,iBAAA,QAGE,qDAAA,qDAEE,MAAA,QACA,iBAAA,QAGF,sDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,uBACE,MAAA,QACA,iBAAA,QAGE,oDAAA,oDAEE,MAAA,QACA,iBAAA,QAGF,qDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,sBACE,MAAA,QACA,iBAAA,QAGE,mDAAA,mDAEE,MAAA,QACA,iBAAA,QAGF,oDACE,MAAA,KACA,iBAAA,QACA,aAAA,QCbR,WACE,WAAA,YACA,MAAA,IACA,OAAA,IACA,QAAA,MAAA,MACA,MAAA,KACA,WAAA,YAAA,0TAAA,MAAA,CAAA,IAAA,KAAA,UACA,OAAA,E1COE,cAAA,O0CLF,QAAA,GAGA,iBACE,MAAA,KACA,gBAAA,KACA,QAAA,IAGF,iBACE,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,OAAA,qBACA,QAAA,EAGF,oBAAA,oBAEE,eAAA,KACA,oBAAA,KAAA,iBAAA,KAAA,YAAA,KACA,QAAA,IAIJ,iBACE,OAAA,UAAA,gBAAA,iBCtCF,OACE,MAAA,MACA,UAAA,K5CmSI,UAAA,Q4ChSJ,eAAA,KACA,iBAAA,sBACA,gBAAA,YACA,OAAA,IAAA,MAAA,eACA,WAAA,EAAA,MAAA,KAAA,gB3CUE,cAAA,O2CPF,eACE,QAAA,EAGF,kBACE,QAAA,KAIJ,iBACE,MAAA,oBAAA,MAAA,iBAAA,MAAA,YACA,UAAA,KACA,eAAA,KAEA,mCACE,cAAA,OAIJ,cACE,QAAA,KACA,YAAA,OACA,QAAA,MAAA,OACA,MAAA,QACA,iBAAA,sBACA,gBAAA,YACA,cAAA,IAAA,MAAA,gB3CVE,uBAAA,mBACA,wBAAA,mB2CYF,yBACE,aAAA,SACA,YAAA,OAIJ,YACE,QAAA,OACA,UAAA,WC1CF,OACE,SAAA,MACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,QAAA,KACA,MAAA,KACA,OAAA,KACA,WAAA,OACA,WAAA,KAGA,QAAA,EAOF,cACE,SAAA,SACA,MAAA,KACA,OAAA,MAEA,eAAA,KAGA,0B7BlBI,WAAA,UAAA,IAAA,S6BoBF,UAAA,mB7BhBE,uC6BcJ,0B7BbM,WAAA,M6BiBN,0BACE,UAAA,KAIF,kCACE,UAAA,YAIJ,yBACE,OAAA,kBAEA,wCACE,WAAA,KACA,SAAA,OAGF,qCACE,WAAA,KAIJ,uBACE,QAAA,KACA,YAAA,OACA,WAAA,kBAIF,eACE,SAAA,SACA,QAAA,KACA,eAAA,OACA,MAAA,KAGA,eAAA,KACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,e5C3DE,cAAA,M4C+DF,QAAA,EAIF,gBCpFE,SAAA,MACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,MAAA,MACA,OAAA,MACA,iBAAA,KAGA,qBAAS,QAAA,EACT,qBAAS,QAAA,GDgFX,cACE,QAAA,KACA,YAAA,EACA,YAAA,OACA,gBAAA,cACA,QAAA,KAAA,KACA,cAAA,IAAA,MAAA,Q5CtEE,uBAAA,kBACA,wBAAA,kB4CwEF,yBACE,QAAA,MAAA,MACA,OAAA,OAAA,OAAA,OAAA,KAKJ,aACE,cAAA,EACA,YAAA,IAKF,YACE,SAAA,SAGA,KAAA,EAAA,EAAA,KACA,QAAA,KAIF,cACE,QAAA,KACA,UAAA,KACA,YAAA,EACA,YAAA,OACA,gBAAA,SACA,QAAA,OACA,WAAA,IAAA,MAAA,Q5CzFE,2BAAA,kBACA,0BAAA,kB4C8FF,gBACE,OAAA,OrC3EA,yBqCkFF,cACE,UAAA,MACA,OAAA,QAAA,KAGF,yBACE,OAAA,oBAGF,uBACE,WAAA,oBAOF,UAAY,UAAA,OrCnGV,yBqCuGF,U9CywKF,U8CvwKI,UAAA,OrCzGA,0BqC8GF,UAAY,UAAA,QASV,kBACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,iCACE,OAAA,KACA,OAAA,E5C3KJ,cAAA,E4C+KE,gC5C/KF,cAAA,E4CmLE,8BACE,WAAA,KAGF,gC5CvLF,cAAA,EOyDA,4BqC0GA,0BACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,yCACE,OAAA,KACA,OAAA,E5C3KJ,cAAA,E4C+KE,wC5C/KF,cAAA,E4CmLE,sCACE,WAAA,KAGF,wC5CvLF,cAAA,GOyDA,4BqC0GA,0BACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,yCACE,OAAA,KACA,OAAA,E5C3KJ,cAAA,E4C+KE,wC5C/KF,cAAA,E4CmLE,sCACE,WAAA,KAGF,wC5CvLF,cAAA,GOyDA,4BqC0GA,0BACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,yCACE,OAAA,KACA,OAAA,E5C3KJ,cAAA,E4C+KE,wC5C/KF,cAAA,E4CmLE,sCACE,WAAA,KAGF,wC5CvLF,cAAA,GOyDA,6BqC0GA,0BACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,yCACE,OAAA,KACA,OAAA,E5C3KJ,cAAA,E4C+KE,wC5C/KF,cAAA,E4CmLE,sCACE,WAAA,KAGF,wC5CvLF,cAAA,GOyDA,6BqC0GA,2BACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,0CACE,OAAA,KACA,OAAA,E5C3KJ,cAAA,E4C+KE,yC5C/KF,cAAA,E4CmLE,uCACE,WAAA,KAGF,yC5CvLF,cAAA,G8ClBJ,SACE,SAAA,SACA,QAAA,KACA,QAAA,MACA,OAAA,ECJA,YAAA,0BAEA,WAAA,OACA,YAAA,IACA,YAAA,IACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,OACA,WAAA,OACA,aAAA,OACA,YAAA,OACA,WAAA,KhDsRI,UAAA,Q+C1RJ,UAAA,WACA,QAAA,EAEA,cAAS,QAAA,GAET,wBACE,SAAA,SACA,QAAA,MACA,MAAA,MACA,OAAA,MAEA,gCACE,SAAA,SACA,QAAA,GACA,aAAA,YACA,aAAA,MAKN,6CAAA,gBACE,QAAA,MAAA,EAEA,4DAAA,+BACE,OAAA,EAEA,oEAAA,uCACE,IAAA,KACA,aAAA,MAAA,MAAA,EACA,iBAAA,KAKN,+CAAA,gBACE,QAAA,EAAA,MAEA,8DAAA,+BACE,KAAA,EACA,MAAA,MACA,OAAA,MAEA,sEAAA,uCACE,MAAA,KACA,aAAA,MAAA,MAAA,MAAA,EACA,mBAAA,KAKN,gDAAA,mBACE,QAAA,MAAA,EAEA,+DAAA,kCACE,IAAA,EAEA,uEAAA,0CACE,OAAA,KACA,aAAA,EAAA,MAAA,MACA,oBAAA,KAKN,8CAAA,kBACE,QAAA,EAAA,MAEA,6DAAA,iCACE,MAAA,EACA,MAAA,MACA,OAAA,MAEA,qEAAA,yCACE,KAAA,KACA,aAAA,MAAA,EAAA,MAAA,MACA,kBAAA,KAqBN,eACE,UAAA,MACA,QAAA,OAAA,MACA,MAAA,KACA,WAAA,OACA,iBAAA,K9C7FE,cAAA,OgDnBJ,SACE,SAAA,SACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,QAAA,MACA,UAAA,MDLA,YAAA,0BAEA,WAAA,OACA,YAAA,IACA,YAAA,IACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,OACA,WAAA,OACA,aAAA,OACA,YAAA,OACA,WAAA,KhDsRI,UAAA,QiDzRJ,UAAA,WACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,ehDIE,cAAA,MgDAF,wBACE,SAAA,SACA,QAAA,MACA,MAAA,KACA,OAAA,MAEA,+BAAA,gCAEE,SAAA,SACA,QAAA,MACA,QAAA,GACA,aAAA,YACA,aAAA,MAMJ,4DAAA,+BACE,OAAA,mBAEA,oEAAA,uCACE,OAAA,EACA,aAAA,MAAA,MAAA,EACA,iBAAA,gBAGF,mEAAA,sCACE,OAAA,IACA,aAAA,MAAA,MAAA,EACA,iBAAA,KAMJ,8DAAA,+BACE,KAAA,mBACA,MAAA,MACA,OAAA,KAEA,sEAAA,uCACE,KAAA,EACA,aAAA,MAAA,MAAA,MAAA,EACA,mBAAA,gBAGF,qEAAA,sCACE,KAAA,IACA,aAAA,MAAA,MAAA,MAAA,EACA,mBAAA,KAMJ,+DAAA,kCACE,IAAA,mBAEA,uEAAA,0CACE,IAAA,EACA,aAAA,EAAA,MAAA,MAAA,MACA,oBAAA,gBAGF,sEAAA,yCACE,IAAA,IACA,aAAA,EAAA,MAAA,MAAA,MACA,oBAAA,KAKJ,wEAAA,2CACE,SAAA,SACA,IAAA,EACA,KAAA,IACA,QAAA,MACA,MAAA,KACA,YAAA,OACA,QAAA,GACA,cAAA,IAAA,MAAA,QAKF,6DAAA,iCACE,MAAA,mBACA,MAAA,MACA,OAAA,KAEA,qEAAA,yCACE,MAAA,EACA,aAAA,MAAA,EAAA,MAAA,MACA,kBAAA,gBAGF,oEAAA,wCACE,MAAA,IACA,aAAA,MAAA,EAAA,MAAA,MACA,kBAAA,KAqBN,gBACE,QAAA,MAAA,KACA,cAAA,EjDuJI,UAAA,KiDpJJ,iBAAA,QACA,cAAA,IAAA,MAAA,ehDtHE,uBAAA,kBACA,wBAAA,kBgDwHF,sBACE,QAAA,KAIJ,cACE,QAAA,KAAA,KACA,MAAA,QC/IF,UACE,SAAA,SAGF,wBACE,aAAA,MAGF,gBACE,SAAA,SACA,MAAA,KACA,SAAA,OCtBA,uBACE,QAAA,MACA,MAAA,KACA,QAAA,GDuBJ,eACE,SAAA,SACA,QAAA,KACA,MAAA,KACA,MAAA,KACA,aAAA,MACA,4BAAA,OAAA,oBAAA,OlClBI,WAAA,UAAA,IAAA,YAIA,uCkCQN,elCPQ,WAAA,MjBgzLR,oBACA,oBmDhyLA,sBAGE,QAAA,MnDmyLF,0BmD/xLA,8CAEE,UAAA,iBnDkyLF,4BmD/xLA,4CAEE,UAAA,kBAWA,8BACE,QAAA,EACA,oBAAA,QACA,UAAA,KnD0xLJ,uDACA,qDmDxxLE,qCAGE,QAAA,EACA,QAAA,EnDyxLJ,yCmDtxLE,2CAEE,QAAA,EACA,QAAA,ElC/DE,WAAA,QAAA,GAAA,IAIA,uCjBq1LN,yCmD7xLE,2ClCvDM,WAAA,MjB01LR,uBmDtxLA,uBAEE,SAAA,SACA,IAAA,EACA,OAAA,EACA,QAAA,EAEA,QAAA,KACA,YAAA,OACA,gBAAA,OACA,MAAA,IACA,QAAA,EACA,MAAA,KACA,WAAA,OACA,WAAA,IACA,OAAA,EACA,QAAA,GlCzFI,WAAA,QAAA,KAAA,KAIA,uCjB82LN,uBmDzyLA,uBlCpEQ,WAAA,MjBm3LR,6BADA,6BmD1xLE,6BAAA,6BAEE,MAAA,KACA,gBAAA,KACA,QAAA,EACA,QAAA,GAGJ,uBACE,KAAA,EAGF,uBACE,MAAA,EnD8xLF,4BmDzxLA,4BAEE,QAAA,aACA,MAAA,KACA,OAAA,KACA,kBAAA,UACA,oBAAA,IACA,gBAAA,KAAA,KAWF,4BACE,iBAAA,wPAEF,4BACE,iBAAA,yPAQF,qBACE,SAAA,SACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,EACA,QAAA,KACA,gBAAA,OACA,QAAA,EAEA,aAAA,IACA,cAAA,KACA,YAAA,IACA,WAAA,KAEA,sCACE,WAAA,YACA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,OAAA,IACA,QAAA,EACA,aAAA,IACA,YAAA,IACA,YAAA,OACA,OAAA,QACA,iBAAA,KACA,gBAAA,YACA,OAAA,EAEA,WAAA,KAAA,MAAA,YACA,cAAA,KAAA,MAAA,YACA,QAAA,GlC5KE,WAAA,QAAA,IAAA,KAIA,uCkCwJJ,sClCvJM,WAAA,MkC2KN,6BACE,QAAA,EASJ,kBACE,SAAA,SACA,MAAA,IACA,OAAA,QACA,KAAA,IACA,YAAA,QACA,eAAA,QACA,MAAA,KACA,WAAA,OnDoxLF,2CmD9wLE,2CAEE,OAAA,UAAA,eAGF,qDACE,iBAAA,KAGF,iCACE,MAAA,KE7NJ,kCACE,GAAK,UAAA,gBADP,0BACE,GAAK,UAAA,gBAIP,gBACE,QAAA,aACA,MAAA,KACA,OAAA,KACA,eAAA,QACA,OAAA,MAAA,MAAA,aACA,mBAAA,YAEA,cAAA,IACA,kBAAA,KAAA,OAAA,SAAA,eAAA,UAAA,KAAA,OAAA,SAAA,eAGF,mBACE,MAAA,KACA,OAAA,KACA,aAAA,KAQF,gCACE,GACE,UAAA,SAEF,IACE,QAAA,EACA,UAAA,MANJ,wBACE,GACE,UAAA,SAEF,IACE,QAAA,EACA,UAAA,MAKJ,cACE,QAAA,aACA,MAAA,KACA,OAAA,KACA,eAAA,QACA,iBAAA,aAEA,cAAA,IACA,QAAA,EACA,kBAAA,KAAA,OAAA,SAAA,aAAA,UAAA,KAAA,OAAA,SAAA,aAGF,iBACE,MAAA,KACA,OAAA,KAIA,uCACE,gBrDo/LJ,cqDl/LM,2BAAA,KAAA,mBAAA,MCjEN,WACE,SAAA,MACA,OAAA,EACA,QAAA,KACA,QAAA,KACA,eAAA,OACA,UAAA,KAEA,WAAA,OACA,iBAAA,KACA,gBAAA,YACA,QAAA,ErCKI,WAAA,UAAA,IAAA,YAIA,uCqCpBN,WrCqBQ,WAAA,MqCLR,oBPdE,SAAA,MACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,MAAA,MACA,OAAA,MACA,iBAAA,KAGA,yBAAS,QAAA,EACT,yBAAS,QAAA,GOQX,kBACE,QAAA,KACA,YAAA,OACA,gBAAA,cACA,QAAA,KAAA,KAEA,6BACE,QAAA,MAAA,MACA,WAAA,OACA,aAAA,OACA,cAAA,OAIJ,iBACE,cAAA,EACA,YAAA,IAGF,gBACE,UAAA,EACA,QAAA,KAAA,KACA,WAAA,KAGF,iBACE,IAAA,EACA,KAAA,EACA,MAAA,MACA,aAAA,IAAA,MAAA,eACA,UAAA,kBAGF,eACE,IAAA,EACA,MAAA,EACA,MAAA,MACA,YAAA,IAAA,MAAA,eACA,UAAA,iBAGF,eACE,IAAA,EACA,MAAA,EACA,KAAA,EACA,OAAA,KACA,WAAA,KACA,cAAA,IAAA,MAAA,eACA,UAAA,kBAGF,kBACE,MAAA,EACA,KAAA,EACA,OAAA,KACA,WAAA,KACA,WAAA,IAAA,MAAA,eACA,UAAA,iBAGF,gBACE,UAAA,KCjFF,aACE,QAAA,aACA,WAAA,IACA,eAAA,OACA,OAAA,KACA,iBAAA,aACA,QAAA,GAEA,yBACE,QAAA,aACA,QAAA,GAKJ,gBACE,WAAA,KAGF,gBACE,WAAA,KAGF,gBACE,WAAA,MAKA,+BACE,kBAAA,iBAAA,GAAA,YAAA,SAAA,UAAA,iBAAA,GAAA,YAAA,SAIJ,oCACE,IACE,QAAA,IAFJ,4BACE,IACE,QAAA,IAIJ,kBACE,mBAAA,8DAAA,WAAA,8DACA,kBAAA,KAAA,KAAA,UAAA,KAAA,KACA,kBAAA,iBAAA,GAAA,OAAA,SAAA,UAAA,iBAAA,GAAA,OAAA,SAGF,oCACE,KACE,sBAAA,MAAA,GAAA,cAAA,MAAA,IAFJ,4BACE,KACE,sBAAA,MAAA,GAAA,cAAA,MAAA,IH9CF,iBACE,QAAA,MACA,MAAA,KACA,QAAA,GIJF,cACE,MAAA,QAGE,oBAAA,oBAEE,MAAA,QANN,gBACE,MAAA,QAGE,sBAAA,sBAEE,MAAA,QANN,cACE,MAAA,QAGE,oBAAA,oBAEE,MAAA,QANN,WACE,MAAA,QAGE,iBAAA,iBAEE,MAAA,QANN,cACE,MAAA,QAGE,oBAAA,oBAEE,MAAA,QANN,aACE,MAAA,QAGE,mBAAA,mBAEE,MAAA,QANN,YACE,MAAA,QAGE,kBAAA,kBAEE,MAAA,QANN,WACE,MAAA,QAGE,iBAAA,iBAEE,MAAA,QCLR,OACE,SAAA,SACA,MAAA,KAEA,eACE,QAAA,MACA,YAAA,uBACA,QAAA,GAGF,SACE,SAAA,SACA,IAAA,EACA,KAAA,EACA,MAAA,KACA,OAAA,KAKF,WACE,kBAAA,KADF,WACE,kBAAA,mBADF,YACE,kBAAA,oBADF,YACE,kBAAA,oBCrBJ,WACE,SAAA,MACA,IAAA,EACA,MAAA,EACA,KAAA,EACA,QAAA,KAGF,cACE,SAAA,MACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,KAQE,YACE,SAAA,eAAA,SAAA,OACA,IAAA,EACA,QAAA,KjDqCF,yBiDxCA,eACE,SAAA,eAAA,SAAA,OACA,IAAA,EACA,QAAA,MjDqCF,yBiDxCA,eACE,SAAA,eAAA,SAAA,OACA,IAAA,EACA,QAAA,MjDqCF,yBiDxCA,eACE,SAAA,eAAA,SAAA,OACA,IAAA,EACA,QAAA,MjDqCF,0BiDxCA,eACE,SAAA,eAAA,SAAA,OACA,IAAA,EACA,QAAA,MjDqCF,0BiDxCA,gBACE,SAAA,eAAA,SAAA,OACA,IAAA,EACA,QAAA,MCzBN,QACE,QAAA,KACA,eAAA,IACA,YAAA,OACA,WAAA,QAGF,QACE,QAAA,KACA,KAAA,EAAA,EAAA,KACA,eAAA,OACA,WAAA,QCRF,iB5Dk4MA,0D6D93ME,SAAA,mBACA,MAAA,cACA,OAAA,cACA,QAAA,YACA,OAAA,eACA,SAAA,iBACA,KAAA,wBACA,YAAA,iBACA,OAAA,YCXA,uBACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,EACA,QAAA,GCRJ,eCAE,SAAA,OACA,cAAA,SACA,YAAA,OCNF,IACE,QAAA,aACA,WAAA,QACA,MAAA,IACA,WAAA,IACA,iBAAA,aACA,QAAA,ICyDM,gBAOI,eAAA,mBAPJ,WAOI,eAAA,cAPJ,cAOI,eAAA,iBAPJ,cAOI,eAAA,iBAPJ,mBAOI,eAAA,sBAPJ,gBAOI,eAAA,mBAPJ,aAOI,MAAA,eAPJ,WAOI,MAAA,gBAPJ,YAOI,MAAA,eAPJ,WAOI,QAAA,YAPJ,YAOI,QAAA,cAPJ,YAOI,QAAA,aAPJ,YAOI,QAAA,cAPJ,aAOI,QAAA,YAPJ,eAOI,SAAA,eAPJ,iBAOI,SAAA,iBAPJ,kBAOI,SAAA,kBAPJ,iBAOI,SAAA,iBAPJ,UAOI,QAAA,iBAPJ,gBAOI,QAAA,uBAPJ,SAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,SAOI,QAAA,gBAPJ,aAOI,QAAA,oBAPJ,cAOI,QAAA,qBAPJ,QAOI,QAAA,eAPJ,eAOI,QAAA,sBAPJ,QAOI,QAAA,eAPJ,QAOI,WAAA,EAAA,MAAA,KAAA,0BAPJ,WAOI,WAAA,EAAA,QAAA,OAAA,2BAPJ,WAOI,WAAA,EAAA,KAAA,KAAA,2BAPJ,aAOI,WAAA,eAPJ,iBAOI,SAAA,iBAPJ,mBAOI,SAAA,mBAPJ,mBAOI,SAAA,mBAPJ,gBAOI,SAAA,gBAPJ,iBAOI,SAAA,yBAAA,SAAA,iBAPJ,OAOI,IAAA,YAPJ,QAOI,IAAA,cAPJ,SAOI,IAAA,eAPJ,UAOI,OAAA,YAPJ,WAOI,OAAA,cAPJ,YAOI,OAAA,eAPJ,SAOI,KAAA,YAPJ,UAOI,KAAA,cAPJ,WAOI,KAAA,eAPJ,OAOI,MAAA,YAPJ,QAOI,MAAA,cAPJ,SAOI,MAAA,eAPJ,kBAOI,UAAA,+BAPJ,oBAOI,UAAA,2BAPJ,oBAOI,UAAA,2BAPJ,QAOI,OAAA,IAAA,MAAA,kBAPJ,UAOI,OAAA,YAPJ,YAOI,WAAA,IAAA,MAAA,kBAPJ,cAOI,WAAA,YAPJ,YAOI,aAAA,IAAA,MAAA,kBAPJ,cAOI,aAAA,YAPJ,eAOI,cAAA,IAAA,MAAA,kBAPJ,iBAOI,cAAA,YAPJ,cAOI,YAAA,IAAA,MAAA,kBAPJ,gBAOI,YAAA,YAPJ,gBAOI,aAAA,kBAPJ,kBAOI,aAAA,kBAPJ,gBAOI,aAAA,kBAPJ,aAOI,aAAA,kBAPJ,gBAOI,aAAA,kBAPJ,eAOI,aAAA,kBAPJ,cAOI,aAAA,kBAPJ,aAOI,aAAA,kBAPJ,cAOI,aAAA,eAPJ,UAOI,aAAA,cAPJ,UAOI,aAAA,cAPJ,UAOI,aAAA,cAPJ,UAOI,aAAA,cAPJ,UAOI,aAAA,cAPJ,MAOI,MAAA,cAPJ,MAOI,MAAA,cAPJ,MAOI,MAAA,cAPJ,OAOI,MAAA,eAPJ,QAOI,MAAA,eAPJ,QAOI,UAAA,eAPJ,QAOI,MAAA,gBAPJ,YAOI,UAAA,gBAPJ,MAOI,OAAA,cAPJ,MAOI,OAAA,cAPJ,MAOI,OAAA,cAPJ,OAOI,OAAA,eAPJ,QAOI,OAAA,eAPJ,QAOI,WAAA,eAPJ,QAOI,OAAA,gBAPJ,YAOI,WAAA,gBAPJ,WAOI,KAAA,EAAA,EAAA,eAPJ,UAOI,eAAA,cAPJ,aAOI,eAAA,iBAPJ,kBAOI,eAAA,sBAPJ,qBAOI,eAAA,yBAPJ,aAOI,UAAA,YAPJ,aAOI,UAAA,YAPJ,eAOI,YAAA,YAPJ,eAOI,YAAA,YAPJ,WAOI,UAAA,eAPJ,aAOI,UAAA,iBAPJ,mBAOI,UAAA,uBAPJ,OAOI,IAAA,YAPJ,OAOI,IAAA,iBAPJ,OAOI,IAAA,gBAPJ,OAOI,IAAA,eAPJ,OAOI,IAAA,iBAPJ,OAOI,IAAA,eAPJ,uBAOI,gBAAA,qBAPJ,qBAOI,gBAAA,mBAPJ,wBAOI,gBAAA,iBAPJ,yBAOI,gBAAA,wBAPJ,wBAOI,gBAAA,uBAPJ,wBAOI,gBAAA,uBAPJ,mBAOI,YAAA,qBAPJ,iBAOI,YAAA,mBAPJ,oBAOI,YAAA,iBAPJ,sBAOI,YAAA,mBAPJ,qBAOI,YAAA,kBAPJ,qBAOI,cAAA,qBAPJ,mBAOI,cAAA,mBAPJ,sBAOI,cAAA,iBAPJ,uBAOI,cAAA,wBAPJ,sBAOI,cAAA,uBAPJ,uBAOI,cAAA,kBAPJ,iBAOI,WAAA,eAPJ,kBAOI,WAAA,qBAPJ,gBAOI,WAAA,mBAPJ,mBAOI,WAAA,iBAPJ,qBAOI,WAAA,mBAPJ,oBAOI,WAAA,kBAPJ,aAOI,MAAA,aAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,KAOI,OAAA,YAPJ,KAOI,OAAA,iBAPJ,KAOI,OAAA,gBAPJ,KAOI,OAAA,eAPJ,KAOI,OAAA,iBAPJ,KAOI,OAAA,eAPJ,QAOI,OAAA,eAPJ,MAOI,aAAA,YAAA,YAAA,YAPJ,MAOI,aAAA,iBAAA,YAAA,iBAPJ,MAOI,aAAA,gBAAA,YAAA,gBAPJ,MAOI,aAAA,eAAA,YAAA,eAPJ,MAOI,aAAA,iBAAA,YAAA,iBAPJ,MAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,MAOI,WAAA,YAAA,cAAA,YAPJ,MAOI,WAAA,iBAAA,cAAA,iBAPJ,MAOI,WAAA,gBAAA,cAAA,gBAPJ,MAOI,WAAA,eAAA,cAAA,eAPJ,MAOI,WAAA,iBAAA,cAAA,iBAPJ,MAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,MAOI,WAAA,YAPJ,MAOI,WAAA,iBAPJ,MAOI,WAAA,gBAPJ,MAOI,WAAA,eAPJ,MAOI,WAAA,iBAPJ,MAOI,WAAA,eAPJ,SAOI,WAAA,eAPJ,MAOI,aAAA,YAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,gBAPJ,MAOI,aAAA,eAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,eAPJ,SAOI,aAAA,eAPJ,MAOI,cAAA,YAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,gBAPJ,MAOI,cAAA,eAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,eAPJ,SAOI,cAAA,eAPJ,MAOI,YAAA,YAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,gBAPJ,MAOI,YAAA,eAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,eAPJ,SAOI,YAAA,eAPJ,KAOI,QAAA,YAPJ,KAOI,QAAA,iBAPJ,KAOI,QAAA,gBAPJ,KAOI,QAAA,eAPJ,KAOI,QAAA,iBAPJ,KAOI,QAAA,eAPJ,MAOI,cAAA,YAAA,aAAA,YAPJ,MAOI,cAAA,iBAAA,aAAA,iBAPJ,MAOI,cAAA,gBAAA,aAAA,gBAPJ,MAOI,cAAA,eAAA,aAAA,eAPJ,MAOI,cAAA,iBAAA,aAAA,iBAPJ,MAOI,cAAA,eAAA,aAAA,eAPJ,MAOI,YAAA,YAAA,eAAA,YAPJ,MAOI,YAAA,iBAAA,eAAA,iBAPJ,MAOI,YAAA,gBAAA,eAAA,gBAPJ,MAOI,YAAA,eAAA,eAAA,eAPJ,MAOI,YAAA,iBAAA,eAAA,iBAPJ,MAOI,YAAA,eAAA,eAAA,eAPJ,MAOI,YAAA,YAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,gBAPJ,MAOI,YAAA,eAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,eAPJ,MAOI,cAAA,YAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,gBAPJ,MAOI,cAAA,eAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,eAPJ,MAOI,eAAA,YAPJ,MAOI,eAAA,iBAPJ,MAOI,eAAA,gBAPJ,MAOI,eAAA,eAPJ,MAOI,eAAA,iBAPJ,MAOI,eAAA,eAPJ,MAOI,aAAA,YAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,gBAPJ,MAOI,aAAA,eAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,eAPJ,gBAOI,YAAA,mCAPJ,MAOI,UAAA,iCAPJ,MAOI,UAAA,gCAPJ,MAOI,UAAA,8BAPJ,MAOI,UAAA,gCAPJ,MAOI,UAAA,kBAPJ,MAOI,UAAA,eAPJ,YAOI,WAAA,iBAPJ,YAOI,WAAA,iBAPJ,UAOI,YAAA,cAPJ,YAOI,YAAA,kBAPJ,WAOI,YAAA,cAPJ,SAOI,YAAA,cAPJ,WAOI,YAAA,iBAPJ,MAOI,YAAA,YAPJ,OAOI,YAAA,eAPJ,SAOI,YAAA,cAPJ,OAOI,YAAA,YAPJ,YAOI,WAAA,eAPJ,UAOI,WAAA,gBAPJ,aAOI,WAAA,iBAPJ,sBAOI,gBAAA,eAPJ,2BAOI,gBAAA,oBAPJ,8BAOI,gBAAA,uBAPJ,gBAOI,eAAA,oBAPJ,gBAOI,eAAA,oBAPJ,iBAOI,eAAA,qBAPJ,WAOI,YAAA,iBAPJ,aAOI,YAAA,iBAPJ,YAOI,UAAA,qBAAA,WAAA,qBAPJ,cAIQ,kBAAA,EAGJ,MAAA,6DAPJ,gBAIQ,kBAAA,EAGJ,MAAA,+DAPJ,cAIQ,kBAAA,EAGJ,MAAA,6DAPJ,WAIQ,kBAAA,EAGJ,MAAA,0DAPJ,cAIQ,kBAAA,EAGJ,MAAA,6DAPJ,aAIQ,kBAAA,EAGJ,MAAA,4DAPJ,YAIQ,kBAAA,EAGJ,MAAA,2DAPJ,WAIQ,kBAAA,EAGJ,MAAA,0DAPJ,YAIQ,kBAAA,EAGJ,MAAA,2DAPJ,YAIQ,kBAAA,EAGJ,MAAA,2DAPJ,WAIQ,kBAAA,EAGJ,MAAA,0DAPJ,YAIQ,kBAAA,EAGJ,MAAA,kBAPJ,eAIQ,kBAAA,EAGJ,MAAA,yBAPJ,eAIQ,kBAAA,EAGJ,MAAA,+BAPJ,YAIQ,kBAAA,EAGJ,MAAA,kBAjBJ,iBACE,kBAAA,KADF,iBACE,kBAAA,IADF,iBACE,kBAAA,KADF,kBACE,kBAAA,EASF,YAIQ,gBAAA,EAGJ,iBAAA,2DAPJ,cAIQ,gBAAA,EAGJ,iBAAA,6DAPJ,YAIQ,gBAAA,EAGJ,iBAAA,2DAPJ,SAIQ,gBAAA,EAGJ,iBAAA,wDAPJ,YAIQ,gBAAA,EAGJ,iBAAA,2DAPJ,WAIQ,gBAAA,EAGJ,iBAAA,0DAPJ,UAIQ,gBAAA,EAGJ,iBAAA,yDAPJ,SAIQ,gBAAA,EAGJ,iBAAA,wDAPJ,UAIQ,gBAAA,EAGJ,iBAAA,yDAPJ,UAIQ,gBAAA,EAGJ,iBAAA,yDAPJ,SAIQ,gBAAA,EAGJ,iBAAA,wDAPJ,gBAIQ,gBAAA,EAGJ,iBAAA,sBAjBJ,eACE,gBAAA,IADF,eACE,gBAAA,KADF,eACE,gBAAA,IADF,eACE,gBAAA,KADF,gBACE,gBAAA,EASF,aAOI,iBAAA,6BAPJ,iBAOI,oBAAA,cAAA,iBAAA,cAAA,YAAA,cAPJ,kBAOI,oBAAA,eAAA,iBAAA,eAAA,YAAA,eAPJ,kBAOI,oBAAA,eAAA,iBAAA,eAAA,YAAA,eAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,eAPJ,SAOI,cAAA,iBAPJ,WAOI,cAAA,YAPJ,WAOI,cAAA,gBAPJ,WAOI,cAAA,iBAPJ,WAOI,cAAA,gBAPJ,gBAOI,cAAA,cAPJ,cAOI,cAAA,gBAPJ,aAOI,uBAAA,iBAAA,wBAAA,iBAPJ,aAOI,wBAAA,iBAAA,2BAAA,iBAPJ,gBAOI,2BAAA,iBAAA,0BAAA,iBAPJ,eAOI,0BAAA,iBAAA,uBAAA,iBAPJ,SAOI,WAAA,kBAPJ,WAOI,WAAA,iBzDPR,yByDAI,gBAOI,MAAA,eAPJ,cAOI,MAAA,gBAPJ,eAOI,MAAA,eAPJ,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,UAOI,IAAA,YAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,gBAPJ,UAOI,IAAA,eAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,eAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,eAOI,WAAA,eAPJ,aAOI,WAAA,gBAPJ,gBAOI,WAAA,kBzDPR,yByDAI,gBAOI,MAAA,eAPJ,cAOI,MAAA,gBAPJ,eAOI,MAAA,eAPJ,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,UAOI,IAAA,YAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,gBAPJ,UAOI,IAAA,eAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,eAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,eAOI,WAAA,eAPJ,aAOI,WAAA,gBAPJ,gBAOI,WAAA,kBzDPR,yByDAI,gBAOI,MAAA,eAPJ,cAOI,MAAA,gBAPJ,eAOI,MAAA,eAPJ,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,UAOI,IAAA,YAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,gBAPJ,UAOI,IAAA,eAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,eAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,eAOI,WAAA,eAPJ,aAOI,WAAA,gBAPJ,gBAOI,WAAA,kBzDPR,0ByDAI,gBAOI,MAAA,eAPJ,cAOI,MAAA,gBAPJ,eAOI,MAAA,eAPJ,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,UAOI,IAAA,YAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,gBAPJ,UAOI,IAAA,eAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,eAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,eAOI,WAAA,eAPJ,aAOI,WAAA,gBAPJ,gBAOI,WAAA,kBzDPR,0ByDAI,iBAOI,MAAA,eAPJ,eAOI,MAAA,gBAPJ,gBAOI,MAAA,eAPJ,cAOI,QAAA,iBAPJ,oBAOI,QAAA,uBAPJ,aAOI,QAAA,gBAPJ,YAOI,QAAA,eAPJ,aAOI,QAAA,gBAPJ,iBAOI,QAAA,oBAPJ,kBAOI,QAAA,qBAPJ,YAOI,QAAA,eAPJ,mBAOI,QAAA,sBAPJ,YAOI,QAAA,eAPJ,eAOI,KAAA,EAAA,EAAA,eAPJ,cAOI,eAAA,cAPJ,iBAOI,eAAA,iBAPJ,sBAOI,eAAA,sBAPJ,yBAOI,eAAA,yBAPJ,iBAOI,UAAA,YAPJ,iBAOI,UAAA,YAPJ,mBAOI,YAAA,YAPJ,mBAOI,YAAA,YAPJ,eAOI,UAAA,eAPJ,iBAOI,UAAA,iBAPJ,uBAOI,UAAA,uBAPJ,WAOI,IAAA,YAPJ,WAOI,IAAA,iBAPJ,WAOI,IAAA,gBAPJ,WAOI,IAAA,eAPJ,WAOI,IAAA,iBAPJ,WAOI,IAAA,eAPJ,2BAOI,gBAAA,qBAPJ,yBAOI,gBAAA,mBAPJ,4BAOI,gBAAA,iBAPJ,6BAOI,gBAAA,wBAPJ,4BAOI,gBAAA,uBAPJ,4BAOI,gBAAA,uBAPJ,uBAOI,YAAA,qBAPJ,qBAOI,YAAA,mBAPJ,wBAOI,YAAA,iBAPJ,0BAOI,YAAA,mBAPJ,yBAOI,YAAA,kBAPJ,yBAOI,cAAA,qBAPJ,uBAOI,cAAA,mBAPJ,0BAOI,cAAA,iBAPJ,2BAOI,cAAA,wBAPJ,0BAOI,cAAA,uBAPJ,2BAOI,cAAA,kBAPJ,qBAOI,WAAA,eAPJ,sBAOI,WAAA,qBAPJ,oBAOI,WAAA,mBAPJ,uBAOI,WAAA,iBAPJ,yBAOI,WAAA,mBAPJ,wBAOI,WAAA,kBAPJ,iBAOI,MAAA,aAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,gBAOI,MAAA,YAPJ,SAOI,OAAA,YAPJ,SAOI,OAAA,iBAPJ,SAOI,OAAA,gBAPJ,SAOI,OAAA,eAPJ,SAOI,OAAA,iBAPJ,SAOI,OAAA,eAPJ,YAOI,OAAA,eAPJ,UAOI,aAAA,YAAA,YAAA,YAPJ,UAOI,aAAA,iBAAA,YAAA,iBAPJ,UAOI,aAAA,gBAAA,YAAA,gBAPJ,UAOI,aAAA,eAAA,YAAA,eAPJ,UAOI,aAAA,iBAAA,YAAA,iBAPJ,UAOI,aAAA,eAAA,YAAA,eAPJ,aAOI,aAAA,eAAA,YAAA,eAPJ,UAOI,WAAA,YAAA,cAAA,YAPJ,UAOI,WAAA,iBAAA,cAAA,iBAPJ,UAOI,WAAA,gBAAA,cAAA,gBAPJ,UAOI,WAAA,eAAA,cAAA,eAPJ,UAOI,WAAA,iBAAA,cAAA,iBAPJ,UAOI,WAAA,eAAA,cAAA,eAPJ,aAOI,WAAA,eAAA,cAAA,eAPJ,UAOI,WAAA,YAPJ,UAOI,WAAA,iBAPJ,UAOI,WAAA,gBAPJ,UAOI,WAAA,eAPJ,UAOI,WAAA,iBAPJ,UAOI,WAAA,eAPJ,aAOI,WAAA,eAPJ,UAOI,aAAA,YAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBAPJ,UAOI,aAAA,eAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,eAPJ,aAOI,aAAA,eAPJ,UAOI,cAAA,YAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBAPJ,UAOI,cAAA,eAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,eAPJ,aAOI,cAAA,eAPJ,UAOI,YAAA,YAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,gBAPJ,UAOI,YAAA,eAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,eAPJ,aAOI,YAAA,eAPJ,SAOI,QAAA,YAPJ,SAOI,QAAA,iBAPJ,SAOI,QAAA,gBAPJ,SAOI,QAAA,eAPJ,SAOI,QAAA,iBAPJ,SAOI,QAAA,eAPJ,UAOI,cAAA,YAAA,aAAA,YAPJ,UAOI,cAAA,iBAAA,aAAA,iBAPJ,UAOI,cAAA,gBAAA,aAAA,gBAPJ,UAOI,cAAA,eAAA,aAAA,eAPJ,UAOI,cAAA,iBAAA,aAAA,iBAPJ,UAOI,cAAA,eAAA,aAAA,eAPJ,UAOI,YAAA,YAAA,eAAA,YAPJ,UAOI,YAAA,iBAAA,eAAA,iBAPJ,UAOI,YAAA,gBAAA,eAAA,gBAPJ,UAOI,YAAA,eAAA,eAAA,eAPJ,UAOI,YAAA,iBAAA,eAAA,iBAPJ,UAOI,YAAA,eAAA,eAAA,eAPJ,UAOI,YAAA,YAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,gBAPJ,UAOI,YAAA,eAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,eAPJ,UAOI,cAAA,YAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBAPJ,UAOI,cAAA,eAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,eAPJ,UAOI,eAAA,YAPJ,UAOI,eAAA,iBAPJ,UAOI,eAAA,gBAPJ,UAOI,eAAA,eAPJ,UAOI,eAAA,iBAPJ,UAOI,eAAA,eAPJ,UAOI,aAAA,YAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBAPJ,UAOI,aAAA,eAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,eAPJ,gBAOI,WAAA,eAPJ,cAOI,WAAA,gBAPJ,iBAOI,WAAA,kBCnDZ,0BD4CQ,MAOI,UAAA,iBAPJ,MAOI,UAAA,eAPJ,MAOI,UAAA,kBAPJ,MAOI,UAAA,kBChCZ,aDyBQ,gBAOI,QAAA,iBAPJ,sBAOI,QAAA,uBAPJ,eAOI,QAAA,gBAPJ,cAOI,QAAA,eAPJ,eAOI,QAAA,gBAPJ,mBAOI,QAAA,oBAPJ,oBAOI,QAAA,qBAPJ,cAOI,QAAA,eAPJ,qBAOI,QAAA,sBAPJ,cAOI,QAAA","sourcesContent":["/*!\n * Bootstrap v5.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n// scss-docs-start import-stack\n// Configuration\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"utilities\";\n\n// Layout & components\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"containers\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"accordion\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"alert\";\n@import \"progress\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"offcanvas\";\n@import \"placeholders\";\n\n// Helpers\n@import \"helpers\";\n\n// Utilities\n@import \"utilities/api\";\n// scss-docs-end import-stack\n",":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$variable-prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$variable-prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$variable-prefix}white-rgb: #{to-rgb($white)};\n --#{$variable-prefix}black-rgb: #{to-rgb($black)};\n --#{$variable-prefix}body-rgb: #{to-rgb($body-color)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$variable-prefix}gradient: #{$gradient};\n\n // Root and body\n // stylelint-disable custom-property-empty-line-before\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$variable-prefix}root-font-size: #{$font-size-root};\n }\n --#{$variable-prefix}body-font-family: #{$font-family-base};\n --#{$variable-prefix}body-font-size: #{$font-size-base};\n --#{$variable-prefix}body-font-weight: #{$font-weight-base};\n --#{$variable-prefix}body-line-height: #{$line-height-base};\n --#{$variable-prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$variable-prefix}body-text-align: #{$body-text-align};\n }\n --#{$variable-prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n // stylelint-enable custom-property-empty-line-before\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n font-size: var(--#{$variable-prefix}-root-font-size);\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$variable-prefix}body-font-family);\n @include font-size(var(--#{$variable-prefix}body-font-size));\n font-weight: var(--#{$variable-prefix}body-font-weight);\n line-height: var(--#{$variable-prefix}body-line-height);\n color: var(--#{$variable-prefix}body-color);\n text-align: var(--#{$variable-prefix}body-text-align);\n background-color: var(--#{$variable-prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n// 2. Set correct height and prevent the `size` attribute to make the `hr` look like an input field\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n background-color: currentColor;\n border: 0;\n opacity: $hr-opacity;\n}\n\nhr:not([size]) {\n height: $hr-height; // 2\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-bs-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-bs-original-title] { // 1\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n text-decoration-skip-ink: none; // 4\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n\n &:hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n direction: ltr #{\"/* rtl:ignore */\"};\n unicode-bidi: bidi-override;\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-`