anchor.diff:  echo on
   
   wget -q https://dl.google.com/android/repository/android-ndk-r21d-windows-x86_64.zip
  +echo | set /p placeholder="18335e57f8acab5a4acf6a2204130e64f99153015d55eb2667f8c28d4724d927 android-ndk-r21d-windows-x86_64.zip" | sha256sum --check || exit /b 1
   unzip -q android-ndk-r21d-windows-x86_64.zip
   set ANDROID_NDK_HOME=%CD%\android-ndk-r21d
   
   REM Download and install MSYS2, because the pre-installed version is too old.
   REM Do NOT do a system update (pacman -Syu) because it is a moving target.
   wget -q http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20220128.sfx.exe
  +echo | set /p placeholder="ac6aa4e96af36a5ae207e683963b270eb8cecd7e26d29b48241b5d43421805d4 msys2-base-x86_64-20220128.sfx.exe" | sha256sum --check || exit /b 1
   .\msys2-base-x86_64-20220128.sfx.exe -y -o%BUILD_ROOT%\
   
   REM Start empty shell to initialize MSYS2.
  
positive.code: set JDK_NAME=%JDK_BUILD%-jdk%JDK_VERSION%-win_x64
  set JRE_NAME=%JDK_BUILD%-jre%JDK_VERSION%-win_x64
  wget -q https://storage.googleapis.com/jdk-mirror/%JDK_BUILD%/%JDK_NAME%.zip
  echo | set /p dummy="1d947cb3a846d87aca12d4ae94e1b51e1079fdcd9e4faea9684909b8072f8ed4 %JDK_NAME%.zip" | sha256sum --check || exit /b 1
  unzip -q %JDK_NAME%.zip
  set JAVA_HOME=%CD%\%JDK_NAME%
  
  wget -q https://storage.googleapis.com/jdk-mirror/%JDK_BUILD%/%JRE_NAME%.zip
  echo | set /p dummy="339f622f688b129de16876ce8ee252eac0ab7663d81596016abf2efacab01d86 %JRE_NAME%.zip" | sha256sum --check || exit /b 1
  unzip -q %JRE_NAME%.zip
  set JRE_HOME=%CD%\%JRE_NAME%
  
  REM Install Bazel.
  set BAZEL_VERSION=4.2.0
  wget -q https://github.com/bazelbuild/bazel/releases/download/%BAZEL_VERSION%/bazel-%BAZEL_VERSION%-windows-x86_64.zip
  echo | set /p dummy="56c29f850677a7aaf9b59cbd762d0d41d9f9e158bf96c5b6022af123fd52db7f bazel-%BAZEL_VERSION%-windows-x86_64.zip" | sha256sum --check || exit /b 1
  unzip -q bazel-%BAZEL_VERSION%-windows-x86_64.zip
  set PATH=C:\python35;%PATH%
  
  
negative.code: wget -q https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip
  REM Using 'set /p' prints without CRLF newline characters, which sha256sum can't handle.
  REM If sha256sum fails, 'exit /b 1' will terminate batch with error code 1.
  echo | set /p placeholder="2c1888d5d1dba377fc7fa14444cf556963747ff9a0a289a3599cf09da03b9e2e wix311-binaries.zip" | sha256sum --check || exit /b 1
  unzip -q wix311-binaries.zip
  set WIX=%cd%
  cd ..
  