@echo off
setlocal EnableExtensions
chcp 65001 >nul
title Sovereign fuer Word installieren

set "TARGET_DIR=%LOCALAPPDATA%\Sovereign\Word"
set "TARGET=%TARGET_DIR%\manifest.xml"
set "REG_KEY=HKCU\Software\Microsoft\Office\16.0\WEF\Developer"
set "ERR=%TEMP%\sovereign-word-install.txt"
set "WORD_VERSION=unbekannt"

echo.
echo  Sovereign fuer Word wird installiert ...
echo.

rem Only for the messages: the Word version tells whether the add-in can run at all.
set "WORD_EXE="
for /f "tokens=2,*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Winword.exe" /ve 2^>nul ^| find /I "REG_SZ"') do set "WORD_EXE=%%b"
set "WORD_VERSION=unbekannt"
if defined WORD_EXE for /f "delims=" %%v in ('powershell -NoProfile -Command "(Get-Item -LiteralPath '%WORD_EXE%').VersionInfo.ProductVersion" 2^>nul') do set "WORD_VERSION=%%v"
if defined WORD_EXE (echo  Gefundenes Word: Version %WORD_VERSION%) else (echo  Hinweis: Kein Word gefunden, die Einrichtung laeuft trotzdem weiter.)

rem Word reads the entry only at startup; a hidden Word process (DMS, PDF tools) counts too.
set "WORD_RUNNING="
tasklist /FI "IMAGENAME eq WINWORD.EXE" 2>nul | find /I "WINWORD.EXE" >nul
if not errorlevel 1 set "WORD_RUNNING=1"

if not exist "%TARGET_DIR%" mkdir "%TARGET_DIR%" 2>"%ERR%"
certutil -f -decode "%~f0" "%TARGET%" >"%ERR%" 2>&1
if errorlevel 1 (
  call :fail "Das Manifest konnte nicht nach %TARGET_DIR% geschrieben werden." ^
    "Windows meldet:" ^
    "Bitte diesen Bildschirm fotografieren und an uns schicken." show
  exit /b 1
)

reg add "%REG_KEY%" /v Sovereign /t REG_SZ /d "%TARGET%" /f >nul 2>"%ERR%"
if errorlevel 1 (
  call :fail "Der Eintrag fuer Word konnte nicht gesetzt werden." ^
    "Windows meldet:" ^
    "Vermutlich sperrt eine Richtlinie der IT die Registry. Bitte diesen Bildschirm an uns schicken." show
  exit /b 1
)

reg query "%REG_KEY%" /v Sovereign >nul 2>&1
if errorlevel 1 (
  call :fail "Der Eintrag fuer Word wurde gesetzt, ist aber nicht lesbar." ^
    "Eine Richtlinie der IT setzt ihn vermutlich sofort zurueck." ^
    "Bitte diesen Bildschirm an uns schicken."
  exit /b 1
)

echo.
echo  Fertig. Bitte Word starten - "Sovereign" erscheint unter Start
echo  bzw. unter Einfuegen ^> Meine Add-Ins ^> Entwickler-Add-Ins.
if defined WORD_RUNNING (
  echo.
  echo  Hinweis: Word laeuft noch im Hintergrund. Bitte den Rechner neu
  echo  starten oder sich ab- und wieder anmelden, damit Word das Add-in sieht.
)
echo %WORD_VERSION% | findstr /B "16.0.4" >nul
if not errorlevel 1 (
  echo.
  echo  Achtung: Diese Word-Fassung ^(%WORD_VERSION%^) ist sehr alt und zeigt
  echo  das Add-in wahrscheinlich nicht an. Bitte uns die Versionsnummer schicken.
)
echo.
pause
exit /b 0

:fail
echo.
echo  FEHLER: %~1
echo.
echo  %~2
if "%~4"=="show" (
  if exist "%ERR%" for /f "usebackq delims=" %%l in ("%ERR%") do echo    %%l
)
echo.
echo  %~3
echo.
echo  Word-Version: %WORD_VERSION%
echo.
pause
exit /b 1

rem The add-in manifest; certutil reads only the block below.
-----BEGIN CERTIFICATE-----
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLQogICAg
UHJvZHVjdGlvbiBtYW5pZmVzdDogb25lIGFkZC1pbiBmb3IgZXZlcnkgZmlybSwg
c2VydmVkIGNlbnRyYWxseSBmcm9tCiAgICB3b3JkLnNvdmVyZWlnbi5kaWdpdGFs
OyB0aGUgdXNlciBwaWNrcyB0aGUgZmlybSBpbnN0YW5jZSBpbnNpZGUgdGhlIHBh
bmUuCiAgICBUaGUgZmlybSdzIElUIGRlcGxveXMgdGhpcyBmaWxlIG9uY2UgaW4g
dGhlIE1pY3Jvc29mdCAzNjUgYWRtaW4gY2VudGVyLgogICAgRXZlcnkgY2hhbmdl
IHRvIGl0IG5lZWRzIGEgbmV3IFZlcnNpb24gYW5kIGEgbmV3IGRlcGxveW1lbnQs
IHdoaWxlIGNoYW5nZXMKICAgIHRvIHRoZSBwYW5lIGl0c2VsZiB0YWtlIGVmZmVj
dCBvbiB0aGUgbmV4dCBsb2FkIOKAlCBzbyB0aGUgbWFuaWZlc3Qgb25seQogICAg
bmFtZXMgc3RhYmxlIFVSTHMuCgogICAgV29yZEFwaSAxLjMgaXMgdGhlIGZsb29y
IGZvciBsb2FkaW5nIHRoZSBhZGQtaW4gYXQgYWxsLiBOZXdlciBzZXRzCiAgICAo
MS40IGNvbW1lbnRzIGFuZCB0cmFja2VkIGVkaXRzLCAxLjYgcGFyYWdyYXBoIG1h
cHBpbmcpIGFyZSBjaGVja2VkIGF0CiAgICBydW50aW1lLCBzbyBhbiBvbGRlciBX
b3JkIHN0aWxsIGxvYWRzIHRoZSBwYW5lIGFuZCByZXBvcnRzIHRob3NlIGZlYXR1
cmVzCiAgICBhcyB1bnN1cHBvcnRlZC4KLS0+CjxPZmZpY2VBcHAKICAgIHhtbG5z
PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9hcHBmb3JvZmZp
Y2UvMS4xIgogICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN
TFNjaGVtYS1pbnN0YW5jZSIKICAgIHhtbG5zOmJ0PSJodHRwOi8vc2NoZW1hcy5t
aWNyb3NvZnQuY29tL29mZmljZS9vZmZpY2VhcHBiYXNpY3R5cGVzLzEuMCIKICAg
IHhtbG5zOm92PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS90
YXNrcGFuZWFwcHZlcnNpb25vdmVycmlkZXMiCiAgICB4c2k6dHlwZT0iVGFza1Bh
bmVBcHAiPgoKICAgIDxJZD42NzhjNWIxOS0xYTFiLTRkZTUtODM5OC1mM2RmOTdl
M2QzODE8L0lkPgogICAgPFZlcnNpb24+MS4wLjAuMDwvVmVyc2lvbj4KICAgIDxQ
cm92aWRlck5hbWU+U292ZXJlaWduPC9Qcm92aWRlck5hbWU+CiAgICA8RGVmYXVs
dExvY2FsZT5kZS1ERTwvRGVmYXVsdExvY2FsZT4KICAgIDxEaXNwbGF5TmFtZSBE
ZWZhdWx0VmFsdWU9IlNvdmVyZWlnbiIvPgogICAgPERlc2NyaXB0aW9uIERlZmF1
bHRWYWx1ZT0iU292ZXJlaWduIExlZ2FsIEFJIGltIFdvcmQtRG9rdW1lbnQ6IEZy
YWdlbiB6dW0gRG9rdW1lbnQsIMOEbmRlcnVuZ2VuIGFscyBuYWNodmVyZm9sZ3Rl
IMOEbmRlcnVuZ2VuLCBLb21tZW50YXJlLiIvPgoKICAgIDxJY29uVXJsIERlZmF1
bHRWYWx1ZT0iaHR0cHM6Ly93b3JkLnNvdmVyZWlnbi5kaWdpdGFsL2ljb24tMzIu
cG5nIi8+CiAgICA8SGlnaFJlc29sdXRpb25JY29uVXJsIERlZmF1bHRWYWx1ZT0i
aHR0cHM6Ly93b3JkLnNvdmVyZWlnbi5kaWdpdGFsL2ljb24tNjQucG5nIi8+CiAg
ICA8U3VwcG9ydFVybCBEZWZhdWx0VmFsdWU9Imh0dHBzOi8vd29yZC5zb3ZlcmVp
Z24uZGlnaXRhbC8iLz4KCiAgICA8QXBwRG9tYWlucz4KICAgICAgICA8QXBwRG9t
YWluPmh0dHBzOi8vd29yZC5zb3ZlcmVpZ24uZGlnaXRhbDwvQXBwRG9tYWluPgog
ICAgPC9BcHBEb21haW5zPgoKICAgIDxIb3N0cz4KICAgICAgICA8SG9zdCBOYW1l
PSJEb2N1bWVudCIvPgogICAgPC9Ib3N0cz4KCiAgICA8UmVxdWlyZW1lbnRzPgog
ICAgICAgIDxTZXRzIERlZmF1bHRNaW5WZXJzaW9uPSIxLjMiPgogICAgICAgICAg
ICA8U2V0IE5hbWU9IldvcmRBcGkiIE1pblZlcnNpb249IjEuMyIvPgogICAgICAg
IDwvU2V0cz4KICAgIDwvUmVxdWlyZW1lbnRzPgoKICAgIDxEZWZhdWx0U2V0dGlu
Z3M+CiAgICAgICAgPFNvdXJjZUxvY2F0aW9uIERlZmF1bHRWYWx1ZT0iaHR0cHM6
Ly93b3JkLnNvdmVyZWlnbi5kaWdpdGFsL2luZGV4Lmh0bWwiLz4KICAgIDwvRGVm
YXVsdFNldHRpbmdzPgoKICAgIDxQZXJtaXNzaW9ucz5SZWFkV3JpdGVEb2N1bWVu
dDwvUGVybWlzc2lvbnM+CgogICAgPFZlcnNpb25PdmVycmlkZXMgeG1sbnM9Imh0
dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3Rhc2twYW5lYXBwdmVy
c2lvbm92ZXJyaWRlcyIgeHNpOnR5cGU9IlZlcnNpb25PdmVycmlkZXNWMV8wIj4K
ICAgICAgICA8SG9zdHM+CiAgICAgICAgICAgIDxIb3N0IHhzaTp0eXBlPSJEb2N1
bWVudCI+CiAgICAgICAgICAgICAgICA8RGVza3RvcEZvcm1GYWN0b3I+CiAgICAg
ICAgICAgICAgICAgICAgPEdldFN0YXJ0ZWQ+CiAgICAgICAgICAgICAgICAgICAg
ICAgIDxUaXRsZSByZXNpZD0iR2V0U3RhcnRlZC5UaXRsZSIvPgogICAgICAgICAg
ICAgICAgICAgICAgICA8RGVzY3JpcHRpb24gcmVzaWQ9IkdldFN0YXJ0ZWQuRGVz
Y3JpcHRpb24iLz4KICAgICAgICAgICAgICAgICAgICAgICAgPExlYXJuTW9yZVVy
bCByZXNpZD0iR2V0U3RhcnRlZC5MZWFybk1vcmVVcmwiLz4KICAgICAgICAgICAg
ICAgICAgICA8L0dldFN0YXJ0ZWQ+CiAgICAgICAgICAgICAgICAgICAgPEZ1bmN0
aW9uRmlsZSByZXNpZD0iQ29tbWFuZHMuVXJsIi8+CiAgICAgICAgICAgICAgICAg
ICAgPEV4dGVuc2lvblBvaW50IHhzaTp0eXBlPSJQcmltYXJ5Q29tbWFuZFN1cmZh
Y2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8T2ZmaWNlVGFiIGlkPSJUYWJI
b21lIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcm91cCBpZD0iU292
ZXJlaWduLkdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
TGFiZWwgcmVzaWQ9Ikdyb3VwLkxhYmVsIi8+CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPEljb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxidDpJbWFnZSBzaXplPSIxNiIgcmVzaWQ9Ikljb24uMTZ4MTYiLz4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ0OkltYWdlIHNp
emU9IjMyIiByZXNpZD0iSWNvbi4zMngzMiIvPgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8YnQ6SW1hZ2Ugc2l6ZT0iODAiIHJlc2lkPSJJY29u
LjgweDgwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29u
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb250cm9sIHhzaTp0
eXBlPSJCdXR0b24iIGlkPSJTb3ZlcmVpZ24uVGFza3BhbmVCdXR0b24iPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGFiZWwgcmVzaWQ9IlRh
c2twYW5lQnV0dG9uLkxhYmVsIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxTdXBlcnRpcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxUaXRsZSByZXNpZD0iVGFza3BhbmVCdXR0b24uTGFiZWwi
Lz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEZXNj
cmlwdGlvbiByZXNpZD0iVGFza3BhbmVCdXR0b24uVG9vbHRpcCIvPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N1cGVydGlwPgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbj4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidDpJbWFnZSBzaXplPSIxNiIg
cmVzaWQ9Ikljb24uMTZ4MTYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxidDpJbWFnZSBzaXplPSIzMiIgcmVzaWQ9Ikljb24uMzJ4
MzIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxi
dDpJbWFnZSBzaXplPSI4MCIgcmVzaWQ9Ikljb24uODB4ODAiLz4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8QWN0aW9uIHhzaTp0eXBlPSJTaG93VGFz
a3BhbmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PFRhc2twYW5lSWQ+U292ZXJlaWduLlRhc2twYW5lPC9UYXNrcGFuZUlkPgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNvdXJjZUxvY2F0
aW9uIHJlc2lkPSJUYXNrcGFuZS5VcmwiLz4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9BY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC9Db250cm9sPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9Hcm91cD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9PZmZpY2VUYWI+CiAg
ICAgICAgICAgICAgICAgICAgPC9FeHRlbnNpb25Qb2ludD4KICAgICAgICAgICAg
ICAgIDwvRGVza3RvcEZvcm1GYWN0b3I+CiAgICAgICAgICAgIDwvSG9zdD4KICAg
ICAgICA8L0hvc3RzPgogICAgICAgIDxSZXNvdXJjZXM+CiAgICAgICAgICAgIDxi
dDpJbWFnZXM+CiAgICAgICAgICAgICAgICA8YnQ6SW1hZ2UgaWQ9Ikljb24uMTZ4
MTYiIERlZmF1bHRWYWx1ZT0iaHR0cHM6Ly93b3JkLnNvdmVyZWlnbi5kaWdpdGFs
L2ljb24tMTYucG5nIi8+CiAgICAgICAgICAgICAgICA8YnQ6SW1hZ2UgaWQ9Iklj
b24uMzJ4MzIiIERlZmF1bHRWYWx1ZT0iaHR0cHM6Ly93b3JkLnNvdmVyZWlnbi5k
aWdpdGFsL2ljb24tMzIucG5nIi8+CiAgICAgICAgICAgICAgICA8YnQ6SW1hZ2Ug
aWQ9Ikljb24uODB4ODAiIERlZmF1bHRWYWx1ZT0iaHR0cHM6Ly93b3JkLnNvdmVy
ZWlnbi5kaWdpdGFsL2ljb24tODAucG5nIi8+CiAgICAgICAgICAgIDwvYnQ6SW1h
Z2VzPgogICAgICAgICAgICA8YnQ6VXJscz4KICAgICAgICAgICAgICAgIDxidDpV
cmwgaWQ9IkdldFN0YXJ0ZWQuTGVhcm5Nb3JlVXJsIiBEZWZhdWx0VmFsdWU9Imh0
dHBzOi8vd29yZC5zb3ZlcmVpZ24uZGlnaXRhbC8iLz4KICAgICAgICAgICAgICAg
IDxidDpVcmwgaWQ9IkNvbW1hbmRzLlVybCIgRGVmYXVsdFZhbHVlPSJodHRwczov
L3dvcmQuc292ZXJlaWduLmRpZ2l0YWwvY29tbWFuZHMuaHRtbCIvPgogICAgICAg
ICAgICAgICAgPGJ0OlVybCBpZD0iVGFza3BhbmUuVXJsIiBEZWZhdWx0VmFsdWU9
Imh0dHBzOi8vd29yZC5zb3ZlcmVpZ24uZGlnaXRhbC9pbmRleC5odG1sIi8+CiAg
ICAgICAgICAgIDwvYnQ6VXJscz4KICAgICAgICAgICAgPGJ0OlNob3J0U3RyaW5n
cz4KICAgICAgICAgICAgICAgIDxidDpTdHJpbmcgaWQ9IkdldFN0YXJ0ZWQuVGl0
bGUiIERlZmF1bHRWYWx1ZT0iU292ZXJlaWduIGlzdCBiZXJlaXQiLz4KICAgICAg
ICAgICAgICAgIDxidDpTdHJpbmcgaWQ9Ikdyb3VwLkxhYmVsIiBEZWZhdWx0VmFs
dWU9IlNvdmVyZWlnbiIvPgogICAgICAgICAgICAgICAgPGJ0OlN0cmluZyBpZD0i
VGFza3BhbmVCdXR0b24uTGFiZWwiIERlZmF1bHRWYWx1ZT0iU292ZXJlaWduIi8+
CiAgICAgICAgICAgIDwvYnQ6U2hvcnRTdHJpbmdzPgogICAgICAgICAgICA8YnQ6
TG9uZ1N0cmluZ3M+CiAgICAgICAgICAgICAgICA8YnQ6U3RyaW5nIGlkPSJHZXRT
dGFydGVkLkRlc2NyaXB0aW9uIiBEZWZhdWx0VmFsdWU9IsOWZmZuZSBTb3ZlcmVp
Z24gw7xiZXIgZGllIFNjaGFsdGZsw6RjaGUgaW4gZGVyIFJlZ2lzdGVya2FydGUg
U3RhcnQuIi8+CiAgICAgICAgICAgICAgICA8YnQ6U3RyaW5nIGlkPSJUYXNrcGFu
ZUJ1dHRvbi5Ub29sdGlwIiBEZWZhdWx0VmFsdWU9IlNvdmVyZWlnbiBMZWdhbCBB
SSB6dW0gb2ZmZW5lbiBEb2t1bWVudCBmcmFnZW4uIi8+CiAgICAgICAgICAgIDwv
YnQ6TG9uZ1N0cmluZ3M+CiAgICAgICAgPC9SZXNvdXJjZXM+CiAgICA8L1ZlcnNp
b25PdmVycmlkZXM+CjwvT2ZmaWNlQXBwPgo=
-----END CERTIFICATE-----
