The current build instructions do not list a key prerequisite and this causes current MSVC versions to fail compiling later builds. Given that there have been no new releases since 2018 and significant changes have happened since then, the readme ought to be updated to reflect this common difficulty many will have (since I doubt most people are using MSVC 6.0 in 2020, the software is not free and the installation process on Windows 10 is a nightmare --> https://www.codeproject.com/Articles/1191047/Install-Visual-Studio-on-Windows).
I tried both methods that were provided to me by the readme as is. Upon opening it says the 2010 build tools cannot be located. I did two tests, running it without upgrading the build tools configuration, and running it with upgrading the build tools configuration (as the prompt from MSVC2019 told me I should). Each time I unzipped a fresh folder to be sure that it was a fresh run. Here's the logs from each:
1>------ Build started: Project: VGMPlay, Configuration: Debug Win32 ------
1>ChipMapper.c
1>2151intf.c
1>2203intf.c
1>2413intf.c
1>2608intf.c
1>2610intf.c
1>2612intf.c
1>262intf.c
1>3526intf.c
1>3812intf.c
1>8950intf.c
1>adlibemu_opl2.c
1>adlibemu_opl3.c
1>ay8910.c
1>ay8910_opl.c
1>ay_intf.c
1>c140.c
1>c352.c
1>c6280.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\opl.c(1276,27): warning C4018: '<': signed/unsigned mismatch (compiling source file chips\adlibemu_opl2.c)
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ay8910.c(446,70): warning C4244: '=': conversion from 'double' to 'INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ay8910.c(451,33): warning C4244: '=': conversion from 'double' to 'INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ay8910.c(492,68): warning C4244: '=': conversion from 'double' to 'INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ay8910.c(497,48): warning C4244: '=': conversion from 'double' to 'INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\opl.c(1276,27): warning C4018: '<': signed/unsigned mismatch (compiling source file chips\adlibemu_opl3.c)
1>c6280intf.c
1>dac_control.c
1>emu2149.c
1>emu2413.c
1>es5503.c
1>es5506.c
1>fm.c
1>fm2612.c
1>fmopl.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\es5506.c(591,3): warning C4018: '>': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\es5506.c(703,3): warning C4018: '>': signed/unsigned mismatch
1>gb.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\es5506.c(807,3): warning C4018: '>': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\es5506.c(870,12): warning C4013: 'printf' undefined; assuming extern returning int
1>iremga20.c
1>k051649.c
1>k053260.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\fmopl.c(356,1): warning C4244: 'initializing': conversion from 'double' to 'const UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\gb.c(1197,47): warning C4018: '<': signed/unsigned mismatch
1>k054539.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\iremga20.c(220,12): warning C4013: 'printf' undefined; assuming extern returning int
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\fm.c(1763,54): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\fmopl.c(523,1): warning C4244: 'initializing': conversion from 'double' to 'const UINT8', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\fm.c(1798,86): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\fmopl.c(850,22): warning C4018: '>=': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\fmopl.c(1399,63): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\fmopl.c(1402,64): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\fmopl.c(1407,59): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\fmopl.c(1409,50): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>multipcm.c
1>nes_apu.c
1>nes_intf.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\k053260.c(324,21): warning C4018: '>': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\k053260.c(332,19): warning C4018: '>': signed/unsigned mismatch
1>np_nes_apu.c
1>np_nes_dmc.c
1>np_nes_fds.c
1>okim6258.c
1>okim6295.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(323,1): warning C4244: 'initializing': conversion from 'double' to 'float', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(367,34): warning C4244: '=': conversion from 'float' to 'unsigned int', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(562,48): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(578,43): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(580,28): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(597,44): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(599,31): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(608,44): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(610,31): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(634,78): warning C4244: '=': conversion from 'const double' to 'unsigned int', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(635,84): warning C4244: '=': conversion from 'const double' to 'unsigned int', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(643,57): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(645,58): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(651,53): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(626,1): warning C4244: 'initializing': conversion from 'double' to 'float', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\multipcm.c(650,1): warning C4244: 'initializing': conversion from 'double' to 'float', possible loss of data
1>Ootake_PSG.c
1>opll.c
1>opm.c
1>panning.c
1>pokey.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\pokey.c(550,2): warning C4018: '<': signed/unsigned mismatch
1>pwm.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\okim6258.c(118,1): warning C4244: 'initializing': conversion from 'double' to 'int', possible loss of data
1>qsound_ctr.c
1>qsound_intf.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\pokey.c(1278,40): warning C4018: '<': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\pokey.c(1314,40): warning C4018: '<': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\pokey.c(1342,40): warning C4018: '<': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\pokey.c(1379,40): warning C4018: '<': signed/unsigned mismatch
1>qsound_mame.c
1>rf5c68.c
1>saa1099.c
1>scd_pcm.c
1>scsp.c
1>scspdsp.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\saa1099.c(456,11): warning C4013: 'printf' undefined; assuming extern returning int
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\qsound_ctr.c(227,28): warning C4018: '<': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\scsplfo.c(141,1): warning C4244: 'initializing': conversion from 'double' to 'float', possible loss of data (compiling source file chips\scsp.c)
1>segapcm.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\scsp.c(609,27): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\scsp.c(618,33): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\scsp.c(632,36): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\scsp.c(1077,12): warning C4013: 'printf' undefined; assuming extern returning int
1>sn76489.c
1>sn76496.c
1>sn76496_opl.c
1>sn764intf.c
1>upd7759.c
1>vsu.c
1>ws_audio.c
1>x1_010.c
1>ym2151.c
1>ym2413.c
1>ym2413_opl.c
1>ym2413hd.c
1>ym2612.c
1>ym3438.c
1>ymdeltat.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\x1_010.c(163,1): warning C4013: 'printf' undefined; assuming extern returning int
1>ymf262.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym3438.c(1532,128): warning C4244: '=': conversion from 'double' to 'Bit32s', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym3438.c(1533,128): warning C4244: '=': conversion from 'double' to 'Bit32s', possible loss of data
1>ymf271.c
1>ymf278b.c
1>ymz280b.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2151.c(575,17): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2151.c(684,52): warning C4244: '=': conversion from 'double' to 'INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2151.c(712,60): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2151.c(724,60): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2151.c(734,35): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2151.c(736,39): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2413.c(286,1): warning C4244: 'initializing': conversion from 'double' to 'const UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2151.c(1544,65): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2151.c(1546,65): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2151.c(2079,22): warning C4018: '>=': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2151.c(2404,9): warning C4101: 'chn': unreferenced local variable
1>dbus_stub.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf262.c(300,1): warning C4244: 'initializing': conversion from 'double' to 'const UINT32', possible loss of data
1>mmkeys_Win.c
1>pt_ioctl.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2413.c(453,1): warning C4244: 'initializing': conversion from 'double' to 'const UINT8', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2413.c(723,22): warning C4018: '>=': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf262.c(467,1): warning C4244: 'initializing': conversion from 'double' to 'const UINT8', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf262.c(730,22): warning C4018: '>=': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf278b.c(202,1): warning C4244: 'initializing': conversion from 'double' to 'const UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2413.c(1393,65): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2413.c(1396,66): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2413.c(1401,61): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ym2413.c(1404,52): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf271.c(519,48): warning C4244: 'function': conversion from 'double' to 'int', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf278b.c(280,1): warning C4244: 'initializing': conversion from 'double' to 'const INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf271.c(563,63): warning C4244: '=': conversion from 'INT64' to 'INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf271.c(612,75): warning C4244: 'function': conversion from 'UINT64' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf271.c(618,82): warning C4244: 'function': conversion from 'UINT64' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf271.c(618,159): warning C4244: 'function': conversion from 'UINT64' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf271.c(620,78): warning C4244: 'function': conversion from 'UINT64' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf271.c(620,154): warning C4244: 'function': conversion from 'UINT64' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf271.c(636,38): warning C4244: '+=': conversion from 'INT64' to 'INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf271.c(637,38): warning C4244: '+=': conversion from 'INT64' to 'INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf278b.c(288,1): warning C4244: 'initializing': conversion from 'double' to 'const INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf271.c(924,80): warning C4244: '+=': conversion from 'INT64' to 'INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf271.c(928,80): warning C4244: '+=': conversion from 'INT64' to 'INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf278b.c(449,22): warning C4018: '>': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf271.c(989,81): warning C4244: '+=': conversion from 'INT64' to 'INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf278b.c(469,22): warning C4018: '>': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf271.c(991,81): warning C4244: '+=': conversion from 'INT64' to 'INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf278b.c(492,22): warning C4018: '>': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf271.c(1100,80): warning C4244: '+=': conversion from 'INT64' to 'INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf271.c(1103,80): warning C4244: '+=': conversion from 'INT64' to 'INT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf278b.c(648,17): warning C4018: '<': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf278b.c(669,16): warning C4018: '<': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymz280b.c(381,17): warning C4018: '>=': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymz280b.c(427,17): warning C4018: '>=': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymz280b.c(437,17): warning C4018: '>=': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymz280b.c(493,17): warning C4018: '>=': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymz280b.c(519,17): warning C4018: '>=': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymz280b.c(524,17): warning C4018: '>=': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymz280b.c(582,17): warning C4018: '>=': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymz280b.c(608,17): warning C4018: '>=': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymz280b.c(613,17): warning C4018: '>=': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymz280b.c(731,18): warning C4018: '<': signed/unsigned mismatch
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf262.c(1363,65): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf262.c(1366,66): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf262.c(1371,61): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf262.c(1373,52): warning C4244: '=': conversion from 'double' to 'UINT32', possible loss of data
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf262.c(1711,13): warning C4013: 'printf' undefined; assuming extern returning int
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\chips\ymf262.c(2563,6): warning C4101: 'chn': unreferenced local variable
1>Stream.c
1>VGMPlay.c
1>VGMPlayUI.c
1>VGMPlay_AddFmts.c
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\VGMPlayUI.c(768,2): warning C4996: 'GetVersionExA': was declared deprecated
1>zlibd.lib(gzlib.obj) : error LNK2019: unresolved external symbol __imp___snprintf referenced in function _gz_open
1>zlibd.lib(gzwrite.obj) : error LNK2019: unresolved external symbol __imp___vsnprintf referenced in function _gzvprintf
1>C:\Users\aberu\Downloads\vgmplay-master\VGMPlay\Debug_Win32\VGMPlay.exe : fatal error LNK1120: 2 unresolved externals
1>Done building project "VGMPlay.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
I have all of the MS VC redistributals from the chocolatey vcredist-all package which should cover all those bases. I'm now downloading and installing the Win7 SDK (https://www.microsoft.com/en-us/download/details.aspx?id=8279) just to cover my bases... and I got the same errors. Looking through the issues yields this identical problem to mine:
The compilation instructions do not list zlib as a prerequisite, or any prerequisites, which can unnecessarily lead to confusion.
I'll now attempt to, as those instructions point out, compile zlib on windows 10 for use in MSVC2019 to see if I can get anywhere. If I do, I'll report back.