Didn't even think about newer firmware, thanks antus, done (now v4.2.1), no help.
This is using the 'Test kernel' button with the 'micro-kernel.bin' section commented out to shorten things up.
Code: Select all
[06:35:49:448] ElmDevice initialization starting.
[06:35:51:270] TX:
[06:35:51:416] TX: AT Z
[06:35:52:257] AT Z ELM327 v1.3a
[06:35:52:258] TX: AT E0
[06:35:52:570] AT E0 OK
[06:35:52:571] TX: AT S0
[06:35:52:608] OK
[06:35:52:609] TX: AT RV
[06:35:52:626] Voltage: 13.1V
[06:35:52:628] TX: AT I
[06:35:52:641] Elm ID: ELM327 v1.3a
[06:35:52:646] Initializing PcmHacking.AllProDeviceImplementation
[06:35:52:646] TX: AT #1
[06:35:52:657] This is not an AllPro device.
[06:35:52:660] Determining whether PcmHacking.ScanToolDeviceImplementation is connected.
[06:35:52:661] TX: ST I
[06:35:52:673] ScanTool device ID: STN1110 v4.2.1
[06:35:52:676] TX: AT AL
[06:35:52:689] OK
[06:35:52:689] TX: AT SP2
[06:35:52:705] OK
[06:35:52:705] TX: AT DP
[06:35:52:722] SAE J1850 VPW
[06:35:52:722] TX: AT AR
[06:35:52:737] OK
[06:35:52:737] TX: AT AT0
[06:35:52:770] OK
[06:35:52:771] TX: AT SR F0
[06:35:52:785] OK
[06:35:52:786] TX: AT H1
[06:35:52:800] OK
[06:35:52:801] TX: AT ST 20
[06:35:52:817] OK
[06:35:58:026] TX: AT SH 6C 10 F0
[06:35:58:032] Set header response: OK
[06:35:58:035] TX: 62
[06:35:58:241] Unexpected response to message content: NO DATA
[06:35:58:242] Unable to send recovery query message. Attempt #1
[06:35:58:242] TX: 62
[06:35:58:384] Unexpected response to message content: NO DATA
[06:35:58:385] Unable to send recovery query message. Attempt #2
[06:35:58:385] TX: 62
[06:35:58:529] Unexpected response to message content: NO DATA
[06:35:58:529] Unable to send recovery query message. Attempt #3
[06:35:58:530] TX: 62
[06:35:58:672] Unexpected response to message content: NO DATA
[06:35:58:673] Unable to send recovery query message. Attempt #4
[06:35:58:674] TX: 62
[06:35:58:816] Unexpected response to message content: NO DATA
[06:35:58:817] Unable to send recovery query message. Attempt #5
[06:35:58:817] TX: 62
[06:35:58:960] Unexpected response to message content: NO DATA
[06:35:58:962] Unable to send recovery query message. Attempt #6
[06:35:58:964] TX: 62
[06:35:59:104] Unexpected response to message content: NO DATA
[06:35:59:105] Unable to send recovery query message. Attempt #7
[06:35:59:105] TX: 62
[06:35:59:249] Unexpected response to message content: NO DATA
[06:35:59:249] Unable to send recovery query message. Attempt #8
[06:35:59:250] TX: 62
[06:35:59:391] Unexpected response to message content: NO DATA
[06:35:59:392] Unable to send recovery query message. Attempt #9
[06:35:59:392] TX: 62
[06:35:59:536] Unexpected response to message content: NO DATA
[06:35:59:536] Unable to send recovery query message. Attempt #10
[06:36:00:920] Timeout during receive.
[06:36:00:928] Setting timeout for ReadProperty, 47 ms.
[06:36:00:929] TX: AT ST 0B
[06:36:00:944] OK
[06:36:00:950] TX: 3C0A
[06:36:01:039] RX: 6C F0 10 7C 0A 00 BA 48 C2
[06:36:01:050] Setting timeout for ReadProperty, 47 ms.
[06:36:01:051] TX: AT ST 0B
[06:36:01:055] OK
[06:36:01:055] Sending seed request.
[06:36:01:056] TX: 2701
[06:36:01:135] RX: 6C F0 10 67 01 40 59
[06:36:01:136] Parsing seed value.
[06:36:01:140] Sending unlock request (5940, 3A0D)
[06:36:01:140] TX: 27023A0D
[06:36:01:231] RX: 6C F0 10 67 02 34
[06:36:01:236] Unlock succeeded.
[06:36:01:258] Loaded T:\Automotive\PcmHacks\PcmHacks\Apps\PcmHammer\bin\Debug\read-kernel.bin
[06:36:01:266] Uploading kernel to PCM.
[06:36:01:267] Sending upload request with payload size 3818, loadaddress FF8000
[06:36:01:268] TX: 34000EEAFF8000
[06:36:01:343] RX: 6C F0 10 74 00 44
[06:36:01:349] Found response, succeeded.
[06:36:01:350] Going to load a 3818 byte payload to 0xFF8000
[06:36:01:351] Setting timeout for SendKernel, 213 ms.
[06:36:01:351] TX: AT ST 35
[06:36:01:359] OK
[06:36:01:360] Sending remainder payload with offset 0xE40, start address 0xFF8E40, length 0xAA.
[06:36:01:366] TX: AT SH 6D 10 F0
[06:36:01:375] Set header response: OK
[06:36:01:375] TX: 360000AAFF8E4024014C3C2C0051EB851FEA802401D482958220429088E5882400E58A2042D0882400E58A2042D0882401948020024A8066044EBAF9E052AF0006206F0006B1EF00146D9E4EBAF9CE302F000A241F508F4E75598F202F000C3F400002700AD0AF0008322F0002E0491201118109B000FFC000700BD0AF0008322F00021201118109B000FFC000588F4E7500FFF60000FFF60600FFF60C00FFF60D00FFF60E00FFF60F00FFFA2700FFD006411E
[06:36:01:791] RX: 6D F0 10 76 00 73
[06:36:01:792] Found response, succeeded.
[06:36:01:793] Sending payload with offset 0xD80, start address 0xFF8D80, length 0xC0.
[06:36:01:794] TX: 360000C0FF8D8000FF2240202F000802800000FF00E088100010000280000000FF2040202F0008028000FF000042404840100042811200202F00087418E4A8100010000280000000FF2F092F082F012F004EBAFF16508F508F241F4E75518F426F000670042F400002601C202F0002068000FFC000204010101000024000FFD16F000652AF00027009B0AF00026CDC302F0006508F4E75518F2F024EBAFA3E426F000A42AF00066058202F0006D0AF0010204010101F4000054240102F0005D16F000A222F000630AF
[06:36:02:230] RX: 6D F0 10 76 00 73
[06:36:02:231] Found response, succeeded.
[06:36:02:231] Kernel upload 9% complete.
[06:36:02:239] Sending payload with offset 0xCC0, start address 0xFF8CC0, length 0xC0.
[06:36:02:240] TX: 360000C0FF8CC013C000FFC0074878000548780008487900FFC0004EBAFC3E508F588F4EBAFBCA60FE518F518F2F02226F0018206F001C222F0020202F002434091F42000A34081F4200081F4100061F4000041F7CFF8C000D1F7CFFFE000E1F7CFFF0000F1F7C003F0010422F0011422F0012422F0013102F000A1F400011102F00081F400012102F00061F400013102F00041F40001448780005487800087015D08F2F004EBAFBB4508F588F4EBAFB6E241F508F508F4E752F02202F000810001000028000003362
[06:36:02:670] RX: 6D F0 10 76 00 73
[06:36:02:671] Found response, succeeded.
[06:36:02:672] Kernel upload 14% complete.
[06:36:02:674] Sending payload with offset 0xC00, start address 0xFF8C00, length 0xC0.
[06:36:02:675] TX: 360000C0FF8C000004D2AF000C20411210118109B000FFC000222F000424014C3C2C0051EB851FEA802401D482958220429088E5882400E58A2042D0882400E58A2042D0882401948020024A8066044EBAFC0A53AF00044AAF00046CA0241F588F4E754EBAFC4A13FC006C00FFC00013FCFFF000FFC00113FC001000FFC00213FC006000FFC003202F00047218E2A8100013C000FFC004202F0004028000FF000042404840100013C000FFC005202F000402800000FF00E088100013C000FFC006202F0004100042BD
[06:36:03:103] RX: 6D F0 10 76 00 73
[06:36:03:103] Found response, succeeded.
[06:36:03:104] Kernel upload 19% complete.
[06:36:03:106] Sending payload with offset 0xB40, start address 0xFF8B40, length 0xC0.
[06:36:03:106] TX: 360000C0FF8B40C0002040108152AF000C6072203C00FFF60F20401210202F001420401081203C00FFF60C204010BC00024AAF000C6602604C202F00142040101049C07230C0817230B280660E202F0018204010BC00024280604C202F0018204010BC0001202F000C603C4E71203C00FFF60E20401010202F0018204010BC000B428060224EBAFC9452AF00080CAF0000752F00086F00FEE4202F0018204010BC000A202F000C508F508F4E75598F2F02202F001053802F400004605A202F0004D0AF0014222F339A
[06:36:03:535] RX: 6D F0 10 76 00 73
[06:36:03:536] Found response, succeeded.
[06:36:03:536] Kernel upload 24% complete.
[06:36:03:538] Sending payload with offset 0xA80, start address 0xFF8A80, length 0xC0.
[06:36:03:538] TX: 360000C0FF8A8000031F41001F4A2F001F670A0CAF000000F9000E6FBA4EBAFE3E4FEF00204E75518F518F4EBAFDAE42AF000C42AF0008600001140CAF000013EC000C6612202F0018204010BCFFEE202F000C60000112203C00FFF60E2040101049C0721F4601C081EA801F4000034280102F00037207B280650000CA303B0A064EFB00020010002E002E00A6002E004E004E004E42AF0004600C4EBAFD3E4EBAFD8452AF00047009B0AF00046CEC60000094203C00FFF60F204010101200202F000C068000FF38D5
[06:36:03:966] RX: 6D F0 10 76 00 73
[06:36:03:967] Found response, succeeded.
[06:36:03:967] Kernel upload 29% complete.
[06:36:03:969] Sending payload with offset 0x9C0, start address 0xFF89C0, length 0xC0.
[06:36:03:970] TX: 360000C0FF89C0001F0C2F0002001F67080C2F0003001F660A0CAF000000F900166FB052AF001A206F001AB1EF00066D00FF6E7004C0AF002C4A80670000A4203C00FFF60C204010BC000C223C00FFF60D202F00285380D0AF002420401010204110804EBAFE80203C00FFF60C204010BC0003203C00FFF60D20404210203C00FFF60E204010101200020100031F41001F42AF000E603652AF000E42AF000A600C4EBAFDF84EBAFE3E52AF000A7063B0AF000A6CEC4EBAFDE4203C00FFF60E20401010120002013B83
[06:36:04:399] RX: 6D F0 10 76 00 73
[06:36:04:399] Found response, succeeded.
[06:36:04:400] Kernel upload 34% complete.
[06:36:04:402] Sending payload with offset 0x900, start address 0xFF8900, length 0xC0.
[06:36:04:402] TX: 360000C0FF890000FFC4002040421052977063B0976CEC588F4E754FEFFFE04EBAFF3A7001C0AF002C4A80670C203C00FFF60C204010BC00147004C0AF002C4A806708202F002853806004202F00282F40000642AF000242AF001A6000008A223C00FFF60D202F001AD0AF002420401010204110804EBAFEE4203C00FFF60E204010101200020100031F41001F42AF0016603652AF001642AF0012600C4EBAFEBC4EBAFF0252AF00127031B0AF00126CEC4EBAFEA8203C00FFF60E204010101200020100031F413F7D
[06:36:04:831] RX: 6D F0 10 76 00 73
[06:36:04:832] Found response, succeeded.
[06:36:04:832] Kernel upload 39% complete.
[06:36:04:833] Sending payload with offset 0x840, start address 0xFF8840, length 0xC0.
[06:36:04:834] TX: 360000C0FF884088A8101749C02F004EB900FF8C5C588F508F4E75203C00FFFA27204010BC0055203C00FFFA27204010BCFFAA223C00FFD006203C00FFD006204010100200007F20411080223C00FFD006203C00FFD006204010100000FF80204110804E754E714E714E714E714E75518F42AF000460184EBAFFA2429760064EBAFFE452977009B0976CF452AF00040CAF0000270F00046FDE508F4E75598F4297600E2017068000FFC0002040421052970C97000003FF6FEA588F4E75598F4297600E2017068045F3
[06:36:05:262] RX: 6D F0 10 76 00 73
[06:36:05:263] Found response, succeeded.
[06:36:05:263] Kernel upload 44% complete.
[06:36:05:266] Sending payload with offset 0x780, start address 0xFF8780, length 0xC0.
[06:36:05:267] TX: 360000C0FF878000FFC00310000280000000FF42A742A72F00487800B24EB900FF8CE2508F508F603E103900FFC00510000280000000FF2040103900FFC00442811200103900FFC00310000280000000FF2F082F012F00487800AA4EB900FF8CE2508F508F4E714E75518F202F000C1E801F7CFF8C00031F7CFFFE00041F7CFFF000051F7C003F00061F5700074878000148780005700BD08F2F004EB900FF8914508F588F487800042F2F0014487900FFC4004EB900FF8914508F588F4EB900FF88A84EB900FF426C
[06:36:05:694] RX: 6D F0 10 76 00 73
[06:36:05:695] Found response, succeeded.
[06:36:05:695] Kernel upload 49% complete.
[06:36:05:699] Sending payload with offset 0x6C0, start address 0xFF86C0, length 0xC0.
[06:36:05:700] TX: 360000C0FF86C0007600FFC0034878000548780004487900FFC0004EB900FF8914508F588F0C2FFF800019660E2F6F00100006202F000620404E90241F4FEF00204E75103900FFC0010C0000106710103900FFC0010C00FFFE6704600000CA103900FFC0020C00FFF06704600000BA103900FFC00310000280000000FF7235B28067287235B2806D087234B280671060587236B280671A7237B2806728604A4EBAFBC64EB900FF88F6607C4EBAF9FA6076103900FFC0000C00006D66064EBAFCAA606460621039459A
[06:36:06:125] RX: 6D F0 10 76 00 73
[06:36:06:127] Found response, succeeded.
[06:36:06:128] Kernel upload 54% complete.
[06:36:06:132] Sending payload with offset 0x600, start address 0xFF8600, length 0xC0.
[06:36:06:132] TX: 360000C0FF860000FFC009202F0014100013C000FFC00A487800054878000B487900FFC0004EB900FF8914508F588F600000CA42AF000A42AF001A6066222F001A24014C3C2C0051EB851FE8802401D482958220429088D0802400E58A2042D0882400E58A2042D0882401948020027201B28066064EB900FF8854202F001A242F0010D4802F42000A222F000A700AD0AF001A103009B000FFC0002041108052AF001A202F001AB0AF0014659013FC006D00FFC00013FCFFF000FFC00113FC001000FFC00213FC42E1
[06:36:06:574] RX: 6D F0 10 76 00 73
[06:36:06:575] Found response, succeeded.
[06:36:06:575] Kernel upload 59% complete.
[06:36:06:579] Sending payload with offset 0x540, start address 0xFF8540, length 0xC0.
[06:36:06:580] TX: 360000C0FF8540002252AF001E222F001E700AD0AF0014B08162C2700AD0AF0014103009B000FFC00010000280000000FFE1883200700BD0AF0014103009B000FFC0001000024000FF80413F40000E302F000EB06F00226700009A13FC006D00FFC00013FCFFF000FFC00113FC001000FFC00213FC007F00FFC00313FC003600FFC004302F0022E048100013C000FFC005302F0022100013C000FFC006302F000EE048100013C000FFC007302F000E100013C000FFC008202F001402800000FF00E088100013C03EC9
[06:36:07:005] RX: 6D F0 10 76 00 73
[06:36:07:006] Found response, succeeded.
[06:36:07:006] Kernel upload 64% complete.
[06:36:07:009] Sending payload with offset 0x480, start address 0xFF8480, length 0xC0.
[06:36:07:009] TX: 360000C0FF848010000280000000FF81AF0010202F0010E1882F400010103900FFC00910000280000000FF81AF00100CAF00001000001462140CAF00FF9FFF0010630A0CAF00FFB0000010634413FC006D00FFC00013FCFFF000FFC00113FC001000FFC00213FC007F00FFC00313FC003600FFC0044878000548780005487900FFC0004EB900FF8914508F588F600001EC426F002270042F40001E6030202F001E0280000003FF4A8066064EB900FF8854202F001E068000FFC000204010101000024000FFD16F3E29
[06:36:07:438] RX: 6D F0 10 76 00 73
[06:36:07:438] Found response, succeeded.
[06:36:07:439] Kernel upload 69% complete.
[06:36:07:441] Sending payload with offset 0x3C0, start address 0xFF83C0, length 0xC0.
[06:36:07:442] TX: 360000C0FF83C0003400FFC0044878000548780005487900FFC0004EB900FF8914508F588F603E13FC006C00FFC00013FCFFF000FFC00113FC001000FFC00213FC007400FFC003423900FFC0044878000548780005487900FFC0004EB900FF8914508F588F508F4E754FEFFFE02F021F7900FFC0040019103900FFC00510000280000000FF2F400014202F0014E1882F400014103900FFC00610000280000000FF81AF0014103900FFC00710000280000000FF2F400010202F0010E1882F400010103900FFC0084205
[06:36:07:870] RX: 6D F0 10 76 00 73
[06:36:07:871] Found response, succeeded.
[06:36:07:871] Kernel upload 74% complete.
[06:36:07:874] Sending payload with offset 0x300, start address 0xFF8300, length 0xC0.
[06:36:07:874] TX: 360000C0FF8300588F4878000448780002700AD08F2F004EB900FF8914508F588F508F588F4E75518F103900FFC00510000280000000FF2F400004202F0004E1882F400004103900FFC00610000280000000FF81AF0004103900FFC00710000280000000FF2E802017E1882E80103900FFC00810000280000000FF81972017E1882E80103900FFC00910000280000000FF81970CAF00001000000462080C9700FFA000674213FC006C00FFC00013FCFFF000FFC00113FC001000FFC00213FC007F00FFC00313FC3F54
[06:36:08:302] RX: 6D F0 10 76 00 73
[06:36:08:302] Found response, succeeded.
[06:36:08:303] Kernel upload 79% complete.
[06:36:08:306] Sending payload with offset 0x240, start address 0xFF8240, length 0xC0.
[06:36:08:306] TX: 360000C0FF8240C00013FCFFF000FFC00113FC001000FFC00213FC003600FFC00313FC000100FFC004202F0008E088100013C000FFC005202F0008100013C000FFC006202F000442404840100013C000FFC007202F0004E088100013C000FFC008202F0004100013C000FFC009487800014878000A487900FFC0004EB900FF8914508F588F4EB900FF8DD63F400002222F0008202F00042F012F004EB900FF8E10508F3200302F0002D0413F400002222F0008202F0004487800022F012F004EB900FF8914508F3BE7
[06:36:08:734] RX: 6D F0 10 76 00 73
[06:36:08:735] Found response, succeeded.
[06:36:08:735] Kernel upload 84% complete.
[06:36:08:738] Sending payload with offset 0x180, start address 0xFF8180, length 0xC0.
[06:36:08:739] TX: 360000C0FF8180103900FFC00610000280000000FF81AF0008103900FFC00710000280000000FF2F400004202F0004E1882F400004103900FFC00810000280000000FF81AF0004202F0004E1882F400004103900FFC00910000280000000FF81AF000413FC006C00FFC00013FCFFF000FFC00113FC001000FFC00213FC007500FFC00313FC000100FFC00413FC005400FFC00513FC006C00FFC00613FCFFF000FFC0074878000548780008487900FFC0004EB900FF8914508F588F4EB900FF88A813FC006D00FF43F6
[06:36:09:166] RX: 6D F0 10 76 00 73
[06:36:09:166] Found response, succeeded.
[06:36:09:166] Kernel upload 89% complete.
[06:36:09:169] Sending payload with offset 0xC0, start address 0xFF80C0, length 0xC0.
[06:36:09:170] TX: 360000C0FF80C06000009A60000096102F000349C07230C0814A80670460000084102F00020C0000016732102F000242811200102F000210000280000000FF2F012F00487800BB487800BB4EB900FF8CE2508F508F4EB900FF88A86046123900FFC003202F000C068000FFC4002040108152AF000C2F6F00140010103900FFC0030C00002066164EB900FF88A82F2F000C4878FFEE4EB900FF87E2508F4EB900FF86FC6000FF18518F598F103900FFC00510000280000000FF2F400008202F0008E1882F4000083C3A
[06:36:09:598] RX: 6D F0 10 76 00 73
[06:36:09:599] Found response, succeeded.
[06:36:09:599] Kernel upload 94% complete.
[06:36:09:605] Sending payload with offset 0x0, start address 0xFF8000, length 0xC0.
[06:36:09:605] TX: 368000C0FF80004FEFFFE8007C07004EB900FF8854203900FF8ECE204042104EB900FF88A8203900FF8ED2204010BC0003203900FF8ED6204042104EB900FF88D64EB900FF889E42A742A742A742A74EB900FF8CE2508F508F4EB900FF88A842AF001470642F400008202F001490AF0008220052812F41001042AF000C52AF00144EB900FF885450EF000350EF0002200F54802F00200F5E802F004EB900FF8AA0508F2F4000044AAF00046622202F0010D0AF0008B0AF00146C104878FFFF4EB900FF8C5C588F4999
[06:36:10:046] RX: 6D F0 10 76 00 73
[06:36:10:046] Found response, succeeded.
[06:36:10:046] Kernel upload 100% complete.
[06:36:10:050] Kernel uploaded to PCM succesfully.
[06:36:10:054] Setting timeout for ReadMemoryBlock, 171 ms.
[06:36:10:054] TX: AT ST 2A
[06:36:10:062] OK
[06:36:10:067] Reading from 0, length 50
[06:36:10:068] TX: 35010032000000
[06:36:10:270] Unexpected response to message content: NO DATA
[06:36:10:271] Unable to send read request.
[06:36:10:271] TX: 35010032000000
[06:36:10:462] Unexpected response to message content: NO DATA
[06:36:10:462] Unable to send read request.
[06:36:10:463] TX: 35010032000000
[06:36:10:797] RX: 6C F0 10 75 01 54 6C F0
[06:36:10:800] Processing message
[06:36:10:802] Read request allowed, expecting for payload...
[06:36:11:190] Timeout during receive.
[06:36:11:191] No payload following read request.
[06:36:11:579] Timeout during receive.
[06:36:11:580] No payload following read request.
[06:36:11:994] Timeout during receive.
[06:36:11:995] No payload following read request.
[06:36:12:407] Timeout during receive.
[06:36:12:407] No payload following read request.
[06:36:12:789] Timeout during receive.
[06:36:12:789] No payload following read request.
[06:36:13:196] Timeout during receive.
[06:36:13:196] No payload following read request.
[06:36:13:578] Timeout during receive.
[06:36:13:587] No payload following read request.
[06:36:14:052] Timeout during receive.
[06:36:14:063] No payload following read request.
[06:36:14:453] Timeout during receive.
[06:36:14:458] No payload following read request.
[06:36:14:876] Timeout during receive.
[06:36:14:886] No payload following read request.
[06:36:15:276] Timeout during receive.
[06:36:15:282] No payload following read request.
[06:36:15:701] Timeout during receive.
[06:36:15:708] No payload following read request.
[06:36:16:096] Timeout during receive.
[06:36:16:103] No payload following read request.
[06:36:16:526] Timeout during receive.
[06:36:16:538] Cancel button clicked.
[06:36:16:546] No payload following read request.
[06:36:16:554] Reading from 0, length 50
[06:36:16:562] Reading from 0, length 50
[06:36:16:571] Reading from 0, length 50
[06:36:16:580] Reading from 0, length 50
[06:36:16:588] Reading from 0, length 50
[06:36:16:598] Reading from 0, length 50
[06:36:16:607] Reading from 0, length 50
[06:36:16:616] Reading from 0, length 50
[06:36:16:625] Reading from 0, length 50
[06:36:16:644] Unable to reset the PCM.
[06:36:16:656] Cleaning up Flash Kernel
[06:36:16:670] TX: AT SH 6C 10 F0
[06:36:16:685] Set header response: OK
[06:36:16:693] TX: 20
[06:36:16:894] Unexpected response to message content: NO DATA
[06:36:16:902] Clear DTCs
[06:36:16:915] TX: AT SH 68 6A F0
[06:36:16:944] Set header response: OK
[06:36:16:954] TX: 04
[06:36:17:166] Unexpected response to message content: NO DATA
Is it the kernel we are expecting data from?
Is the kernel running?
What code is sending data in the kernel, thus what's expected to be received by the software (TryReadBlock())?
Anything else I can try while I work on wrapping my teeth around all this?
Thank you