diff --git a/ep_setup/ep_setup.c b/ep_setup/ep_setup.c index e841d7e..6ef55b1 100644 --- a/ep_setup/ep_setup.c +++ b/ep_setup/ep_setup.c @@ -480,7 +480,30 @@ unzFile LoadZipFileFromResources(MemoryBuffer** outMem) return unzOpen2_64(NULL, &fileFunc); } -BOOL InstallResourceHelper(BOOL bInstall, HMODULE hModule, unzFile zipFile, const WCHAR* wszPath) +int g_cleanupFileCounter = 1; + +// %APPDATA%\ExplorerPatcher\cleanup\_.tmp +BOOL StageFileForCleanup(const WCHAR* wszProblematicFilePath) +{ + WCHAR wszPath[MAX_PATH]; + SHGetFolderPathW(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, wszPath); + wcscat_s(wszPath, MAX_PATH, L"\\ExplorerPatcher\\cleanup"); + CreateDirectoryW(wszPath, NULL); + + wcscat_s(wszPath, MAX_PATH, L"\\"); + WCHAR wszPID[10]; + _itow_s(GetCurrentProcessId(), wszPID, ARRAYSIZE(wszPID), 10); + wcscat_s(wszPath, MAX_PATH, wszPID); + wcscat_s(wszPath, MAX_PATH, L"_"); + WCHAR wszCounter[10]; + _itow_s(g_cleanupFileCounter++, wszCounter, ARRAYSIZE(wszCounter), 10); + wcscat_s(wszPath, MAX_PATH, wszCounter); + wcscat_s(wszPath, MAX_PATH, L".tmp"); + + return MoveFileW(wszProblematicFilePath, wszPath); +} + +__declspec(noinline) BOOL InstallResourceHelper(BOOL bInstall, HMODULE hModule, unzFile zipFile, const WCHAR* wszPath) { WCHAR wszReplace[MAX_PATH]; wcscpy_s(wszReplace, MAX_PATH, wszPath); @@ -493,7 +516,7 @@ BOOL InstallResourceHelper(BOOL bInstall, HMODULE hModule, unzFile zipFile, cons BOOL bRet = !bPrevExists || DeleteFileW(wszReplace); if (bRet || (!bRet && GetLastError() == ERROR_FILE_NOT_FOUND)) { - if (bFileExists && !DeleteFileW(wszPath) && !MoveFileW(wszPath, wszReplace)) + if (bFileExists && !DeleteFileW(wszPath) && !StageFileForCleanup(wszPath)) { return FALSE; } @@ -590,6 +613,165 @@ __declspec(noinline) BOOL InstallResource(BOOL bInstall, HMODULE hInstance, unzF return bRet; } +const WCHAR* GetSystemLanguages() +{ + wchar_t* wszLanguagesBuffer = NULL; + ULONG ulNumLanguages = 0; + ULONG cchLanguagesBuffer = 0; + if (GetUserPreferredUILanguages(MUI_LANGUAGE_NAME, &ulNumLanguages, NULL, &cchLanguagesBuffer)) + { + wszLanguagesBuffer = (wchar_t*)malloc(cchLanguagesBuffer * sizeof(wchar_t)); + if (wszLanguagesBuffer) + { + if (!GetUserPreferredUILanguages(MUI_LANGUAGE_NAME, &ulNumLanguages, wszLanguagesBuffer, &cchLanguagesBuffer)) + { + free(wszLanguagesBuffer); + wszLanguagesBuffer = NULL; + } + } + } + return wszLanguagesBuffer ? wszLanguagesBuffer : L"en-US"; +} + +BOOL SystemHasLanguageInstalled(const WCHAR* languages, const char* langCode, int cchLangCode) +{ + WCHAR szLangCode[100]; + MultiByteToWideChar(CP_UTF8, 0, langCode, cchLangCode, szLangCode, ARRAYSIZE(szLangCode)); + szLangCode[cchLangCode] = 0; + for (const WCHAR* wszLang = languages; *wszLang; wszLang += wcslen(wszLang) + 1) + { + if (!_wcsicmp(wszLang, szLangCode)) + { + return TRUE; + } + } + return FALSE; +} + +typedef enum LanguageCodeTreatment +{ + LCT_None, + LCT_MUI, // module\en-US\module.dll.pri + LCT_PRI, // resource\pris\resource.en-US.pri +} LanguageCodeTreatment; + +__declspec(noinline) BOOL ExtractDirectory(unzFile zipFile, const char* dirNameInZip, LPCWSTR pwszDirectory, const WCHAR* languages, LanguageCodeTreatment langCodeTreatment) +{ + if (!zipFile || !dirNameInZip) + { + return FALSE; + } + + if (unzGoToFirstFile(zipFile) != UNZ_OK) + { + return FALSE; + } + + BOOL bRet = TRUE; + size_t dirNameLen = strlen(dirNameInZip); + + do + { + char szFileNameInZip[260]; + unz_file_info64 fileInfo = { 0 }; + if (unzGetCurrentFileInfo64(zipFile, &fileInfo, szFileNameInZip, ARRAYSIZE(szFileNameInZip), NULL, 0, NULL, 0) != UNZ_OK) + { + return FALSE; + } + szFileNameInZip[fileInfo.size_filename] = 0; + + if (fileInfo.uncompressed_size == 0 || (fileInfo.external_fa & FILE_ATTRIBUTE_DIRECTORY) != 0) + { + continue; + } + + if (strncmp(szFileNameInZip, dirNameInZip, dirNameLen) != 0) + { + continue; + } + + // Examples: + // - "module/en-US/module.dll.mui" -> "en-US/module.dll.mui" + // - "resource/pris/resource.en-US.pri" -> "pris/resource.en-US.pri" + const char* filePathInDir = szFileNameInZip + dirNameLen; + const char* lastSlash = strrchr(filePathInDir, '/'); + const char* fileName = lastSlash ? filePathInDir + (lastSlash - filePathInDir) + 1 : filePathInDir; + const char* lastDot = strrchr(fileName, '.'); + const char* fileExt = lastDot ? fileName + (lastDot - fileName) + 1 : NULL; + if (langCodeTreatment == LCT_MUI) + { + if (fileExt && !_stricmp(fileExt, "mui")) + { + if (!SystemHasLanguageInstalled(languages, filePathInDir, strchr(filePathInDir, '/') - filePathInDir)) + { + continue; + } + } + } + else if (langCodeTreatment == LCT_PRI) + { + if (fileExt && !_stricmp(fileExt, "pri") && strchr(fileName, '-') != NULL) + { + // Check if we're a language pri + const char* secondLastDot = NULL; + for (const char* p = lastDot - 1; p >= fileName; p--) + { + if (*p == '.') + { + secondLastDot = p; + break; + } + } + if (secondLastDot != lastDot) + { + const char* langCode = secondLastDot + 1; + if (!SystemHasLanguageInstalled(languages, langCode, lastDot - langCode)) + { + continue; + } + } + } + } + + if (unzOpenCurrentFile(zipFile) != UNZ_OK) + { + return FALSE; + } + + WCHAR wszFileNameInZip[MAX_PATH]; + MultiByteToWideChar(CP_UTF8, 0, szFileNameInZip, -1, wszFileNameInZip, MAX_PATH); + for (size_t i = 0; i < MAX_PATH && wszFileNameInZip[i] != 0; i++) + { + if (wszFileNameInZip[i] == '/') + { + wszFileNameInZip[i] = '\\'; + } + } + + WCHAR wszPath[MAX_PATH]; + wcscpy_s(wszPath, MAX_PATH, pwszDirectory); + wcscat_s(wszPath, MAX_PATH, L"\\"); + WCHAR* pwszPathInDir = wszPath + wcslen(wszPath); + wcscat_s(wszPath, MAX_PATH, wcschr(wszFileNameInZip, '\\') + 1); // Skip the directory name in the zip file + + for (WCHAR* p = pwszPathInDir; *p; p++) + { + if (*p == '\\') + { + *p = 0; + CreateDirectoryW(wszPath, NULL); + *p = '\\'; + } + } + + bRet = InstallResourceHelper(TRUE, NULL, zipFile, wszPath); + + unzCloseCurrentFile(zipFile); + } while (bRet && unzGoToNextFile(zipFile) == UNZ_OK); + + return bRet; +} + BOOL DeleteResource(LPCWSTR pwszDirectory, LPCWSTR pwszFileName) { WCHAR wszPath[MAX_PATH]; @@ -603,32 +785,20 @@ BOOL ShouldDownloadOrDelete(BOOL bInstall, WCHAR* wszPath, LPCSTR chash) { if (FileExistsW(wszPath)) { - char hash[100]; - ZeroMemory(hash, sizeof(char) * 100); - ComputeFileHash(wszPath, hash, 100); - if (_stricmp(hash, chash) != 0) + if (bInstall) { - if (bInstall) - { - return TRUE; - } + char hash[100]; + ZeroMemory(hash, sizeof(char) * 100); + ComputeFileHash(wszPath, hash, 100); + bInstall = _stricmp(hash, chash) != 0; } else { - if (!bInstall) - { - return InstallResourceHelper(FALSE, NULL, NULL, wszPath); // Delete - } + InstallResourceHelper(FALSE, NULL, NULL, wszPath); // Delete } } - else - { - if (bInstall) - { - return TRUE; - } - } - return FALSE; + + return bInstall; } BOOL DownloadResource(BOOL bInstall, LPCWSTR pwszURL, DWORD dwSize, LPCSTR chash, LPCWSTR pwszDirectory, LPCWSTR pwszFileName) @@ -654,6 +824,61 @@ void ProcessTaskbarDlls(BOOL* bInOutOk, BOOL bInstall, BOOL bExtractMode, HINSTA if (*bInOutOk) *bInOutOk = InstallResource(bInstall && (bExtractMode || pwszTaskbarDllName && !wcscmp(pwszTaskbarDllName, L"ep_taskbar.5.dll")), hInstance, zipFile, "ep_taskbar.5.dll", wszPath, L"ep_taskbar.5.dll"); } +BOOL RemoveDirectoryRecursive(const WCHAR* wszDirectoryPath) +{ + WCHAR szDir[MAX_PATH]; + wcscpy_s(szDir, MAX_PATH, wszDirectoryPath); + wcscat_s(szDir, MAX_PATH, L"\\*"); + + WIN32_FIND_DATA findFileData; + HANDLE hFind = FindFirstFileW(szDir, &findFileData); + + if (hFind == INVALID_HANDLE_VALUE) + { + return TRUE; + } + + do + { + if (lstrcmpW(findFileData.cFileName, L".") != 0 && lstrcmpW(findFileData.cFileName, L"..") != 0) + { + WCHAR szFilePath[MAX_PATH]; + wcscpy_s(szFilePath, MAX_PATH, wszDirectoryPath); + wcscat_s(szFilePath, MAX_PATH, L"\\"); + wcscat_s(szFilePath, MAX_PATH, findFileData.cFileName); + + if ((findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0) + { + if (!RemoveDirectoryRecursive(szFilePath)) + { + FindClose(hFind); + return FALSE; + } + } + else + { + if (!DeleteFileW(szFilePath) && !StageFileForCleanup(szFilePath)) + { + FindClose(hFind); + return FALSE; + } + } + } + } + while (FindNextFileW(hFind, &findFileData)); + + DWORD dwError = GetLastError(); + FindClose(hFind); + + if (dwError != ERROR_NO_MORE_FILES) + { + return FALSE; + } + + return RemoveDirectoryW(wszDirectoryPath); +} + + int WINAPI wWinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, @@ -914,6 +1139,22 @@ int WINAPI wWinMain( CloseHandle(sei.hProcess); } + ZeroMemory(&sei, sizeof(SHELLEXECUTEINFOW)); + sei.cbSize = sizeof(sei); + sei.fMask = SEE_MASK_NOCLOSEPROCESS; + sei.hwnd = NULL; + sei.hInstApp = NULL; + sei.lpVerb = NULL; + sei.lpFile = wszPath; + sei.lpParameters = L"/f /im StartMenuExperienceHost.exe"; + sei.hwnd = NULL; + sei.nShow = SW_SHOWMINIMIZED; + if (ShellExecuteExW(&sei) && sei.hProcess) + { + WaitForSingleObject(sei.hProcess, INFINITE); + CloseHandle(sei.hProcess); + } + Sleep(500); BOOL bAreRoundedCornersDisabled = FALSE; @@ -1100,6 +1341,46 @@ int WINAPI wWinMain( if (bOk) bOk = InstallResource(bInstall, hInstance, zipFile, "WebView2Loader.dll", wszPath, L"WebView2Loader.dll"); } ProcessTaskbarDlls(&bOk, bInstall, FALSE, hInstance, zipFile, wszPath); + const WCHAR* possibleDirs[] = + { + L"ar-SA", L"bg-BG", L"ca-ES", L"cs-CZ", L"da-DK", L"de-DE", L"el-GR", L"en-GB", L"en-US", L"es-ES", + L"es-MX", L"et-EE", L"eu-ES", L"fi-FI", L"fr-CA", L"fr-FR", L"gl-ES", L"he-IL", L"hr-HR", L"hu-HU", + L"id-ID", L"it-IT", L"ja-JP", L"ko-KR", L"lt-LT", L"lv-LV", L"nb-NO", L"nl-NL", L"pl-PL", L"pt-BR", + L"pt-PT", L"ro-RO", L"ru-RU", L"sk-SK", L"sl-SI", L"sr-Latn-RS", L"sv-SE", L"th-TH", L"tr-TR", L"uk-UA", + L"vi-VN", L"zh-CN", L"zh-TW", L"pris", L"StartUI", + }; + for (size_t i = 0; bOk && i < ARRAYSIZE(possibleDirs); i++) + { + WCHAR wszDirectoryPath[MAX_PATH]; + wcscpy_s(wszDirectoryPath, MAX_PATH, wszPath); + wcscat_s(wszDirectoryPath, MAX_PATH, L"\\"); + wcscat_s(wszDirectoryPath, MAX_PATH, possibleDirs[i]); + if (FileExistsW(wszDirectoryPath)) + { + bOk = RemoveDirectoryRecursive(wszDirectoryPath); + } + } + DeleteResource(wszPath, L"Windows.UI.ShellCommon.pri"); + if (bInstall) + { + const WCHAR* languages = GetSystemLanguages(); + if (global_rovi.dwBuildNumber >= 25236) + { + if (bOk) bOk = ExtractDirectory(zipFile, "pnidui/", wszPath, languages, LCT_MUI); + } + if (IsWindows11Version22H2OrHigher()) + { + if (bOk) bOk = ExtractDirectory(zipFile, "Windows.UI.ShellCommon/", wszPath, languages, LCT_PRI); + } + } + +#if defined(_M_X64) + // Version 22621.3810 + if (bOk) bOk = DownloadResource(bInstall && global_rovi.dwBuildNumber >= 25236, L"https://msdl.microsoft.com/download/symbols/pnidui.dll/F717CABC20B000/pnidui.dll", 2138112 + 1, "2f913bfdcf1fa8dc441aa48b508b3a09", wszPath, L"pnidui.dll"); +#elif defined(_M_ARM64) + // Version 22621.3958 + if (bOk) bOk = DownloadResource(bInstall && global_rovi.dwBuildNumber >= 25236, L"https://msdl.microsoft.com/download/symbols/pnidui.dll/63AF842D210000/pnidui.dll", 2139648 + 1, "43bb6bb72d2529045f913fb5b055b521", wszPath, L"pnidui.dll"); +#endif // -------------------------------------------------------------------------------- @@ -1116,6 +1397,7 @@ int WINAPI wWinMain( // C:\Windows\SystemApps\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy // + dxgi.dll + // + StartUI_.dll (download, optional) // + wincorlib.dll // + wincorlib_orig.dll (symlink) // - AppResolverLegacy.dll @@ -1145,6 +1427,15 @@ int WINAPI wWinMain( bOk = CreateSymbolicLinkW(wszSymLinkPath, wszOrigPath, 0); } + BOOL bNoStartUIInThisBuild = ((global_rovi.dwBuildNumber >= 22621 && global_rovi.dwBuildNumber <= 22635) && global_ubr >= 3930) || global_rovi.dwBuildNumber >= 25169; +#if defined(_M_X64) + // Version 22621.3733 + if (bOk) bOk = DownloadResource(bInstall && bNoStartUIInThisBuild, L"https://msdl.microsoft.com/download/symbols/startui.dll/C1AEED44852000/startui.dll", 8694272 + 1, "20b55d5c6dce22f8011906281e4e6999", wszPath, L"StartUI_.dll"); +#elif defined(_M_ARM64) + // Version 22621.3733 + if (bOk) bOk = DownloadResource(bInstall && bNoStartUIInThisBuild, L"https://msdl.microsoft.com/download/symbols/startui.dll/122A50F3AB9000/startui.dll", 11214336 + 1, "44ab29fba796bb6977dc050eb2fa7397", wszPath, L"StartUI_.dll"); +#endif + // Delete remnants from earlier versions if (bOk) bOk = DeleteResource(wszPath, L"AppResolverLegacy.dll"); if (bOk) bOk = DeleteResource(wszPath, L"StartTileDataLegacy.dll"); @@ -1330,28 +1621,34 @@ int WINAPI wWinMain( { if (!bInstall) { - WCHAR wszTempPath[MAX_PATH]; - GetTempPathW(MAX_PATH, wszTempPath); - wcscat_s(wszTempPath, MAX_PATH, _T(SETUP_UTILITY_NAME)); - if (MoveFileExW(wszOwnPath, wszTempPath, MOVEFILE_REPLACE_EXISTING)) - { - HKEY hKey = NULL; - RegCreateKeyExW(HKEY_CURRENT_USER, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_READ | KEY_WRITE, NULL, &hKey, NULL); - if (hKey && hKey != INVALID_HANDLE_VALUE) - { - WCHAR wszCommand[MAX_PATH]; - wcscpy_s(wszCommand, MAX_PATH, L"cmd /c del /f /q \""); - wcscat_s(wszCommand, MAX_PATH, wszTempPath); - wcscat_s(wszCommand, MAX_PATH, L"\""); - RegSetValueExW(hKey, L"ExplorerPatcherCleanup", 0, REG_SZ, (BYTE*)wszCommand, (DWORD)((wcslen(wszCommand) + 1) * sizeof(WCHAR))); - RegCloseKey(hKey); - } - } - SHGetFolderPathW(NULL, SPECIAL_FOLDER, NULL, SHGFP_TYPE_CURRENT, wszPath); wcscat_s(wszPath, MAX_PATH, _T(APP_RELATIVE_PATH)); - RemoveDirectoryW(wszPath); + bOk = RemoveDirectoryRecursive(wszPath); + } + if (bOk && (!bInstall || g_cleanupFileCounter > 1)) + { + WCHAR wszDirToDelete[MAX_PATH]; + SHGetFolderPathW(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, wszDirToDelete); + wcscat_s(wszDirToDelete, MAX_PATH, _T(APP_RELATIVE_PATH)); + if (bInstall) + { + wcscat_s(wszDirToDelete, MAX_PATH, L"\\cleanup"); + } + HKEY hKey = NULL; + RegCreateKeyExW(HKEY_CURRENT_USER, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_READ | KEY_WRITE, NULL, &hKey, NULL); + if (hKey && hKey != INVALID_HANDLE_VALUE) + { + WCHAR wszCommand[MAX_PATH]; + wcscpy_s(wszCommand, MAX_PATH, L"cmd /c rmdir /s /q \""); + wcscat_s(wszCommand, MAX_PATH, wszDirToDelete); + wcscat_s(wszCommand, MAX_PATH, L"\""); + RegSetValueExW(hKey, L"ExplorerPatcherCleanup", 0, REG_SZ, (BYTE*)wszCommand, (DWORD)((wcslen(wszCommand) + 1) * sizeof(WCHAR))); + RegCloseKey(hKey); + } + } + if (!bInstall) + { wchar_t mbText[256]; mbText[0] = 0; if (bWasShellExt) diff --git a/ep_setup/ep_setup.vcxproj b/ep_setup/ep_setup.vcxproj index 9091620..16cc2ba 100644 --- a/ep_setup/ep_setup.vcxproj +++ b/ep_setup/ep_setup.vcxproj @@ -287,6 +287,7 @@ + @@ -376,7 +377,7 @@ - + diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/Fonts/BitMDL2.ttf b/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/Fonts/BitMDL2.ttf new file mode 100644 index 0000000..1005db8 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/Fonts/BitMDL2.ttf differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/Fonts/SkypeUISymbol-Regular.ttf b/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/Fonts/SkypeUISymbol-Regular.ttf new file mode 100644 index 0000000..f667403 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/Fonts/SkypeUISymbol-Regular.ttf differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/officehub150x150.png b/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/officehub150x150.png new file mode 100644 index 0000000..4a25081 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/officehub150x150.png differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/officehub71x71.png b/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/officehub71x71.png new file mode 100644 index 0000000..5432533 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/officehub71x71.png differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/onenote150x150.png b/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/onenote150x150.png new file mode 100644 index 0000000..655d4e8 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/onenote150x150.png differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/onenote71x71.png b/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/onenote71x71.png new file mode 100644 index 0000000..8f54981 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/StartUI/Assets/onenote71x71.png differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/Windows.UI.ShellCommon.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/Windows.UI.ShellCommon.pri new file mode 100644 index 0000000..cf08c4d Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/Windows.UI.ShellCommon.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ar-SA.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ar-SA.pri new file mode 100644 index 0000000..aa93f6a Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ar-SA.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.bg-BG.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.bg-BG.pri new file mode 100644 index 0000000..28d6f50 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.bg-BG.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ca-ES.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ca-ES.pri new file mode 100644 index 0000000..956b698 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ca-ES.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.cs-CZ.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.cs-CZ.pri new file mode 100644 index 0000000..20d6372 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.cs-CZ.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.da-DK.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.da-DK.pri new file mode 100644 index 0000000..bcc30f4 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.da-DK.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.de-DE.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.de-DE.pri new file mode 100644 index 0000000..836314d Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.de-DE.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.el-GR.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.el-GR.pri new file mode 100644 index 0000000..8c99d38 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.el-GR.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.en-GB.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.en-GB.pri new file mode 100644 index 0000000..0ab825b Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.en-GB.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.en-US.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.en-US.pri new file mode 100644 index 0000000..4f73360 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.en-US.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.es-ES.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.es-ES.pri new file mode 100644 index 0000000..401d48d Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.es-ES.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.es-MX.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.es-MX.pri new file mode 100644 index 0000000..97386bc Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.es-MX.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.et-EE.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.et-EE.pri new file mode 100644 index 0000000..654e359 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.et-EE.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.eu-ES.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.eu-ES.pri new file mode 100644 index 0000000..22faba2 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.eu-ES.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.fi-FI.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.fi-FI.pri new file mode 100644 index 0000000..36ed771 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.fi-FI.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.fr-CA.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.fr-CA.pri new file mode 100644 index 0000000..a210c3a Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.fr-CA.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.fr-FR.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.fr-FR.pri new file mode 100644 index 0000000..02e60ff Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.fr-FR.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.gl-ES.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.gl-ES.pri new file mode 100644 index 0000000..a636e7f Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.gl-ES.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.he-IL.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.he-IL.pri new file mode 100644 index 0000000..bd85316 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.he-IL.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.hr-HR.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.hr-HR.pri new file mode 100644 index 0000000..d1840ca Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.hr-HR.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.hu-HU.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.hu-HU.pri new file mode 100644 index 0000000..f83ad92 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.hu-HU.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.id-ID.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.id-ID.pri new file mode 100644 index 0000000..c17a709 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.id-ID.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.it-IT.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.it-IT.pri new file mode 100644 index 0000000..0f89f48 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.it-IT.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ja-JP.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ja-JP.pri new file mode 100644 index 0000000..ecd06a2 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ja-JP.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ko-KR.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ko-KR.pri new file mode 100644 index 0000000..aec341d Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ko-KR.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.lt-LT.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.lt-LT.pri new file mode 100644 index 0000000..ff0993e Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.lt-LT.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.lv-LV.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.lv-LV.pri new file mode 100644 index 0000000..6626ee8 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.lv-LV.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.nb-NO.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.nb-NO.pri new file mode 100644 index 0000000..1eec340 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.nb-NO.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.nl-NL.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.nl-NL.pri new file mode 100644 index 0000000..9b8ec06 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.nl-NL.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.pl-PL.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.pl-PL.pri new file mode 100644 index 0000000..bd65712 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.pl-PL.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.pt-BR.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.pt-BR.pri new file mode 100644 index 0000000..6b4f0e2 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.pt-BR.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.pt-PT.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.pt-PT.pri new file mode 100644 index 0000000..14827ce Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.pt-PT.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ro-RO.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ro-RO.pri new file mode 100644 index 0000000..5306936 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ro-RO.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ru-RU.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ru-RU.pri new file mode 100644 index 0000000..6f7ab70 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.ru-RU.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.sk-SK.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.sk-SK.pri new file mode 100644 index 0000000..da91667 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.sk-SK.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.sl-SI.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.sl-SI.pri new file mode 100644 index 0000000..fb0eaf3 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.sl-SI.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.sr-Latn-RS.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.sr-Latn-RS.pri new file mode 100644 index 0000000..6b4f7de Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.sr-Latn-RS.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.sv-SE.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.sv-SE.pri new file mode 100644 index 0000000..ffa5088 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.sv-SE.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.th-TH.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.th-TH.pri new file mode 100644 index 0000000..09f13a9 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.th-TH.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.tr-TR.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.tr-TR.pri new file mode 100644 index 0000000..b8d5109 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.tr-TR.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.uk-UA.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.uk-UA.pri new file mode 100644 index 0000000..a797391 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.uk-UA.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.vi-VN.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.vi-VN.pri new file mode 100644 index 0000000..927da6d Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.vi-VN.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.zh-CN.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.zh-CN.pri new file mode 100644 index 0000000..345ac8e Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.zh-CN.pri differ diff --git a/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.zh-TW.pri b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.zh-TW.pri new file mode 100644 index 0000000..8256c11 Binary files /dev/null and b/ep_setup/resources/files/Windows.UI.ShellCommon/pris/Windows.UI.ShellCommon.zh-TW.pri differ diff --git a/ep_setup/resources/files/pnidui/ar-SA/pnidui.dll.mui b/ep_setup/resources/files/pnidui/ar-SA/pnidui.dll.mui new file mode 100644 index 0000000..1977ef3 Binary files /dev/null and b/ep_setup/resources/files/pnidui/ar-SA/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/bg-BG/pnidui.dll.mui b/ep_setup/resources/files/pnidui/bg-BG/pnidui.dll.mui new file mode 100644 index 0000000..bd2dfa1 Binary files /dev/null and b/ep_setup/resources/files/pnidui/bg-BG/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/ca-ES/pnidui.dll.mui b/ep_setup/resources/files/pnidui/ca-ES/pnidui.dll.mui new file mode 100644 index 0000000..02a72f7 Binary files /dev/null and b/ep_setup/resources/files/pnidui/ca-ES/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/cs-CZ/pnidui.dll.mui b/ep_setup/resources/files/pnidui/cs-CZ/pnidui.dll.mui new file mode 100644 index 0000000..7cc20ff Binary files /dev/null and b/ep_setup/resources/files/pnidui/cs-CZ/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/da-DK/pnidui.dll.mui b/ep_setup/resources/files/pnidui/da-DK/pnidui.dll.mui new file mode 100644 index 0000000..4449129 Binary files /dev/null and b/ep_setup/resources/files/pnidui/da-DK/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/de-DE/pnidui.dll.mui b/ep_setup/resources/files/pnidui/de-DE/pnidui.dll.mui new file mode 100644 index 0000000..7061e76 Binary files /dev/null and b/ep_setup/resources/files/pnidui/de-DE/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/el-GR/pnidui.dll.mui b/ep_setup/resources/files/pnidui/el-GR/pnidui.dll.mui new file mode 100644 index 0000000..bae7628 Binary files /dev/null and b/ep_setup/resources/files/pnidui/el-GR/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/en-GB/pnidui.dll.mui b/ep_setup/resources/files/pnidui/en-GB/pnidui.dll.mui new file mode 100644 index 0000000..acc60b3 Binary files /dev/null and b/ep_setup/resources/files/pnidui/en-GB/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/en-US/pnidui.dll.mui b/ep_setup/resources/files/pnidui/en-US/pnidui.dll.mui new file mode 100644 index 0000000..5db6e17 Binary files /dev/null and b/ep_setup/resources/files/pnidui/en-US/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/es-ES/pnidui.dll.mui b/ep_setup/resources/files/pnidui/es-ES/pnidui.dll.mui new file mode 100644 index 0000000..0d006fb Binary files /dev/null and b/ep_setup/resources/files/pnidui/es-ES/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/es-MX/pnidui.dll.mui b/ep_setup/resources/files/pnidui/es-MX/pnidui.dll.mui new file mode 100644 index 0000000..73bf694 Binary files /dev/null and b/ep_setup/resources/files/pnidui/es-MX/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/et-EE/pnidui.dll.mui b/ep_setup/resources/files/pnidui/et-EE/pnidui.dll.mui new file mode 100644 index 0000000..e9c6e80 Binary files /dev/null and b/ep_setup/resources/files/pnidui/et-EE/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/eu-ES/pnidui.dll.mui b/ep_setup/resources/files/pnidui/eu-ES/pnidui.dll.mui new file mode 100644 index 0000000..b439ae9 Binary files /dev/null and b/ep_setup/resources/files/pnidui/eu-ES/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/fi-FI/pnidui.dll.mui b/ep_setup/resources/files/pnidui/fi-FI/pnidui.dll.mui new file mode 100644 index 0000000..eb8c41c Binary files /dev/null and b/ep_setup/resources/files/pnidui/fi-FI/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/fr-CA/pnidui.dll.mui b/ep_setup/resources/files/pnidui/fr-CA/pnidui.dll.mui new file mode 100644 index 0000000..0022aaf Binary files /dev/null and b/ep_setup/resources/files/pnidui/fr-CA/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/fr-FR/pnidui.dll.mui b/ep_setup/resources/files/pnidui/fr-FR/pnidui.dll.mui new file mode 100644 index 0000000..518f338 Binary files /dev/null and b/ep_setup/resources/files/pnidui/fr-FR/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/gl-ES/pnidui.dll.mui b/ep_setup/resources/files/pnidui/gl-ES/pnidui.dll.mui new file mode 100644 index 0000000..f0073a7 Binary files /dev/null and b/ep_setup/resources/files/pnidui/gl-ES/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/he-IL/pnidui.dll.mui b/ep_setup/resources/files/pnidui/he-IL/pnidui.dll.mui new file mode 100644 index 0000000..d86d19c Binary files /dev/null and b/ep_setup/resources/files/pnidui/he-IL/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/hr-HR/pnidui.dll.mui b/ep_setup/resources/files/pnidui/hr-HR/pnidui.dll.mui new file mode 100644 index 0000000..72ac342 Binary files /dev/null and b/ep_setup/resources/files/pnidui/hr-HR/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/hu-HU/pnidui.dll.mui b/ep_setup/resources/files/pnidui/hu-HU/pnidui.dll.mui new file mode 100644 index 0000000..15a8d38 Binary files /dev/null and b/ep_setup/resources/files/pnidui/hu-HU/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/id-ID/pnidui.dll.mui b/ep_setup/resources/files/pnidui/id-ID/pnidui.dll.mui new file mode 100644 index 0000000..749ce88 Binary files /dev/null and b/ep_setup/resources/files/pnidui/id-ID/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/it-IT/pnidui.dll.mui b/ep_setup/resources/files/pnidui/it-IT/pnidui.dll.mui new file mode 100644 index 0000000..0823e78 Binary files /dev/null and b/ep_setup/resources/files/pnidui/it-IT/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/ja-JP/pnidui.dll.mui b/ep_setup/resources/files/pnidui/ja-JP/pnidui.dll.mui new file mode 100644 index 0000000..a72f6d6 Binary files /dev/null and b/ep_setup/resources/files/pnidui/ja-JP/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/ko-KR/pnidui.dll.mui b/ep_setup/resources/files/pnidui/ko-KR/pnidui.dll.mui new file mode 100644 index 0000000..6d07e03 Binary files /dev/null and b/ep_setup/resources/files/pnidui/ko-KR/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/lt-LT/pnidui.dll.mui b/ep_setup/resources/files/pnidui/lt-LT/pnidui.dll.mui new file mode 100644 index 0000000..43bf84f Binary files /dev/null and b/ep_setup/resources/files/pnidui/lt-LT/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/lv-LV/pnidui.dll.mui b/ep_setup/resources/files/pnidui/lv-LV/pnidui.dll.mui new file mode 100644 index 0000000..7033144 Binary files /dev/null and b/ep_setup/resources/files/pnidui/lv-LV/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/nb-NO/pnidui.dll.mui b/ep_setup/resources/files/pnidui/nb-NO/pnidui.dll.mui new file mode 100644 index 0000000..e891887 Binary files /dev/null and b/ep_setup/resources/files/pnidui/nb-NO/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/nl-NL/pnidui.dll.mui b/ep_setup/resources/files/pnidui/nl-NL/pnidui.dll.mui new file mode 100644 index 0000000..9f42fa3 Binary files /dev/null and b/ep_setup/resources/files/pnidui/nl-NL/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/pl-PL/pnidui.dll.mui b/ep_setup/resources/files/pnidui/pl-PL/pnidui.dll.mui new file mode 100644 index 0000000..7b325b7 Binary files /dev/null and b/ep_setup/resources/files/pnidui/pl-PL/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/pt-BR/pnidui.dll.mui b/ep_setup/resources/files/pnidui/pt-BR/pnidui.dll.mui new file mode 100644 index 0000000..bc80a2c Binary files /dev/null and b/ep_setup/resources/files/pnidui/pt-BR/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/pt-PT/pnidui.dll.mui b/ep_setup/resources/files/pnidui/pt-PT/pnidui.dll.mui new file mode 100644 index 0000000..bfb2fea Binary files /dev/null and b/ep_setup/resources/files/pnidui/pt-PT/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/ro-RO/pnidui.dll.mui b/ep_setup/resources/files/pnidui/ro-RO/pnidui.dll.mui new file mode 100644 index 0000000..96bac6e Binary files /dev/null and b/ep_setup/resources/files/pnidui/ro-RO/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/ru-RU/pnidui.dll.mui b/ep_setup/resources/files/pnidui/ru-RU/pnidui.dll.mui new file mode 100644 index 0000000..e8477a9 Binary files /dev/null and b/ep_setup/resources/files/pnidui/ru-RU/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/sk-SK/pnidui.dll.mui b/ep_setup/resources/files/pnidui/sk-SK/pnidui.dll.mui new file mode 100644 index 0000000..1600cc4 Binary files /dev/null and b/ep_setup/resources/files/pnidui/sk-SK/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/sl-SI/pnidui.dll.mui b/ep_setup/resources/files/pnidui/sl-SI/pnidui.dll.mui new file mode 100644 index 0000000..044b626 Binary files /dev/null and b/ep_setup/resources/files/pnidui/sl-SI/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/sr-Latn-RS/pnidui.dll.mui b/ep_setup/resources/files/pnidui/sr-Latn-RS/pnidui.dll.mui new file mode 100644 index 0000000..055f465 Binary files /dev/null and b/ep_setup/resources/files/pnidui/sr-Latn-RS/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/sv-SE/pnidui.dll.mui b/ep_setup/resources/files/pnidui/sv-SE/pnidui.dll.mui new file mode 100644 index 0000000..50c961b Binary files /dev/null and b/ep_setup/resources/files/pnidui/sv-SE/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/th-TH/pnidui.dll.mui b/ep_setup/resources/files/pnidui/th-TH/pnidui.dll.mui new file mode 100644 index 0000000..bf8c980 Binary files /dev/null and b/ep_setup/resources/files/pnidui/th-TH/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/tr-TR/pnidui.dll.mui b/ep_setup/resources/files/pnidui/tr-TR/pnidui.dll.mui new file mode 100644 index 0000000..e53ffad Binary files /dev/null and b/ep_setup/resources/files/pnidui/tr-TR/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/uk-UA/pnidui.dll.mui b/ep_setup/resources/files/pnidui/uk-UA/pnidui.dll.mui new file mode 100644 index 0000000..811f337 Binary files /dev/null and b/ep_setup/resources/files/pnidui/uk-UA/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/vi-VN/pnidui.dll.mui b/ep_setup/resources/files/pnidui/vi-VN/pnidui.dll.mui new file mode 100644 index 0000000..deff483 Binary files /dev/null and b/ep_setup/resources/files/pnidui/vi-VN/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/zh-CN/pnidui.dll.mui b/ep_setup/resources/files/pnidui/zh-CN/pnidui.dll.mui new file mode 100644 index 0000000..c5ca90c Binary files /dev/null and b/ep_setup/resources/files/pnidui/zh-CN/pnidui.dll.mui differ diff --git a/ep_setup/resources/files/pnidui/zh-TW/pnidui.dll.mui b/ep_setup/resources/files/pnidui/zh-TW/pnidui.dll.mui new file mode 100644 index 0000000..40e05b9 Binary files /dev/null and b/ep_setup/resources/files/pnidui/zh-TW/pnidui.dll.mui differ