diff --git a/MSVC/ring-daemon.vcxproj b/MSVC/ring-daemon.vcxproj
index d913f2c895f4738e42829e09bb2547bdbe04164b..a5d3abc5f55fb5090e5f57b6e85e761241780705 100644
--- a/MSVC/ring-daemon.vcxproj
+++ b/MSVC/ring-daemon.vcxproj
@@ -659,8 +659,8 @@
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <SDLCheck>
       </SDLCheck>
-      <AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\;$(ProjectDir)..\src;$(ProjectDir)..\src\client;$(ProjectDir)..\src\config;$(ProjectDir)..\src\dring;$(ProjectDir)..\src\hooks;$(ProjectDir)..\src\im;$(ProjectDir)..\src\media;$(ProjectDir)..\src\jamidht;$(ProjectDir)..\src\security;$(ProjectDir)..\src\sip;$(ProjectDir)..\src\upnp;$(ProjectDir)..\src\upnp\igd;$(ProjectDir)..\src\upnp\protocol;$(ProjectDir)..\src\upnp\mapping;$(ProjectDir)..\src\jamidht\eth;$(ProjectDir)..\contrib\msvc;$(ProjectDir)..\contrib\msvc\include;$(ProjectDir)..\contrib\msvc\include\upnp;$(ProjectDir)..\contrib\build\msgpack-c\include;$(ProjectDir)..\contrib\build\jsoncpp\include;$(ProjectDir)..\contrib\build\yaml-cpp\include;$(ProjectDir)..\contrib\build\pjproject\pjlib\include;$(ProjectDir)..\contrib\build\pjproject\pjnath\include;$(ProjectDir)..\contrib\build\pjproject\pjlib-util\include;$(ProjectDir)..\contrib\build\pjproject\pjsip\include;$(ProjectDir)..\contrib\build\pjproject\third_party;$(ProjectDir)..\contrib\build\pjproject\pjmedia\include;$(ProjectDir)..\contrib\build\restbed\source;$(ProjectDir)..\contrib\build\ffmpeg\Build\win32\x64\include;$(ProjectDir)..\contrib\build\sndfile\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>STATIC_GETOPT;_USE_MATH_DEFINES;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;NOMINMAX;HAVE_CONFIG_H;WIN32_LEAN_AND_MEAN;_MBCS;OPENDHT_PROXY_CLIENT;OPENDHT_PROXY_SERVER;OPENDHT_PUSH_NOTIFICATIONS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\;$(ProjectDir)..\src;$(ProjectDir)..\src\client;$(ProjectDir)..\src\config;$(ProjectDir)..\src\dring;$(ProjectDir)..\src\hooks;$(ProjectDir)..\src\im;$(ProjectDir)..\src\media;$(ProjectDir)..\src\jamidht;$(ProjectDir)..\src\security;$(ProjectDir)..\src\sip;$(ProjectDir)..\src\upnp;$(ProjectDir)..\src\upnp\igd;$(ProjectDir)..\src\upnp\protocol;$(ProjectDir)..\src\upnp\mapping;$(ProjectDir)..\src\jamidht\eth;$(ProjectDir)..\contrib\msvc;$(ProjectDir)..\contrib\msvc\include;$(ProjectDir)..\contrib\msvc\include\upnp;$(ProjectDir)..\contrib\build\msgpack-c\include;$(ProjectDir)..\contrib\build\jsoncpp\include;$(ProjectDir)..\contrib\build\yaml-cpp\include;$(ProjectDir)..\contrib\build\pjproject\pjlib\include;$(ProjectDir)..\contrib\build\pjproject\pjnath\include;$(ProjectDir)..\contrib\build\pjproject\pjlib-util\include;$(ProjectDir)..\contrib\build\pjproject\pjsip\include;$(ProjectDir)..\contrib\build\pjproject\third_party;$(ProjectDir)..\contrib\build\pjproject\pjmedia\include;$(ProjectDir)..\contrib\build\ffmpeg\Build\win32\x64\include;$(ProjectDir)..\contrib\build\sndfile\src;$(ProjectDir)..\contrib\build\openssl\inc32;$(ProjectDir)..\contrib\build\asio\asio\include;$(ProjectDir)..\contrib\build\restinio\dev;$(ProjectDir)..\contrib\build\fmt\include;$(ProjectDir)..\contrib\build\http_parser;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_WIN32_WINNT=0x0A00;ASIO_STANDALONE;STATIC_GETOPT;_USE_MATH_DEFINES;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;NOMINMAX;HAVE_CONFIG_H;WIN32_LEAN_AND_MEAN;OPENDHT_PROXY_CLIENT;OPENDHT_PROXY_SERVER;OPENDHT_PUSH_NOTIFICATIONS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <DisableSpecificWarnings>4996;4503;4180;4244;4267;</DisableSpecificWarnings>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <BasicRuntimeChecks>Default</BasicRuntimeChecks>
@@ -688,8 +688,8 @@
       </Command>
     </PreBuildEvent>
     <Lib>
-      <AdditionalDependencies>ws2_32.lib;advapi32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;swresample.lib;swscale.lib;libgnutls.lib;lib_json.lib;libopendht.lib;Argon2Ref.lib;secp256k1.lib;libyaml-cppmd.lib;portaudio.lib;libupnp.lib;pjsip-core-x86_64-x64-vc15-Release.lib;pjsip-simple-x86_64-x64-vc15-Release.lib;pjsua2-lib-x86_64-x64-vc15-Release.lib;pjsua-lib-x86_64-x64-vc15-Release.lib;pjsip-ua-x86_64-x64-vc15-Release.lib;pjmedia-x86_64-x64-vc15-Release.lib;pjlib-util-x86_64-x64-vc15-Release.lib;pjlib-x86_64-x64-vc15-Release.lib;pjnath-x86_64-x64-vc15-Release.lib;restbed.lib;libeay32.lib;ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>$(ProjectDir)..\contrib\build\ffmpeg\Build\win32\x64\bin;$(ProjectDir)..\contrib\msvc\lib\x64;$(ProjectDir)..\contrib\build\boost\stage\lib;$(ProjectDir)..\contrib\build\pjproject\pjsip\lib;$(ProjectDir)..\contrib\build\pjproject\pjmedia\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib-util\lib;$(ProjectDir)..\contrib\build\pjproject\third_party\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib\lib;$(ProjectDir)..\contrib\build\pjproject\pjnath\lib;$(ProjectDir)..\contrib\build\restbed\build\Release;$(ProjectDir)..\contrib\build\restbed\dependency\openssl\out32dll;$(ProjectDir)..\contrib\build\argon2\vs2015\Argon2Ref\vs2015\build;$(ProjectDir)..\contrib\build\yaml-cpp\msvc\Release;$(ProjectDir)..\contrib\build\sndfile\msvc\x64\Release</AdditionalLibraryDirectories>
+      <AdditionalDependencies>ws2_32.lib;advapi32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;swresample.lib;swscale.lib;libgnutls.lib;lib_json.lib;libopendht.lib;Argon2Ref.lib;secp256k1.lib;libyaml-cppmd.lib;portaudio.lib;libupnp.lib;pjsip-core-x86_64-x64-vc15-Release.lib;pjsip-simple-x86_64-x64-vc15-Release.lib;pjsua2-lib-x86_64-x64-vc15-Release.lib;pjsua-lib-x86_64-x64-vc15-Release.lib;pjsip-ua-x86_64-x64-vc15-Release.lib;pjmedia-x86_64-x64-vc15-Release.lib;pjlib-util-x86_64-x64-vc15-Release.lib;pjlib-x86_64-x64-vc15-Release.lib;pjnath-x86_64-x64-vc15-Release.lib;fmt.lib;http-parser.lib;asio.lib;libeay32.lib;ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(ProjectDir)..\contrib\build\ffmpeg\Build\win32\x64\bin;$(ProjectDir)..\contrib\msvc\lib\x64;$(ProjectDir)..\contrib\build\boost\stage\lib;$(ProjectDir)..\contrib\build\pjproject\pjsip\lib;$(ProjectDir)..\contrib\build\pjproject\pjmedia\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib-util\lib;$(ProjectDir)..\contrib\build\pjproject\third_party\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib\lib;$(ProjectDir)..\contrib\build\pjproject\pjnath\lib;$(ProjectDir)..\contrib\build\openssl\out32dll;$(ProjectDir)..\contrib\build\argon2\vs2015\Argon2Ref\vs2015\build;$(ProjectDir)..\contrib\build\yaml-cpp\msvc\Release;$(ProjectDir)..\contrib\build\sndfile\msvc\x64\Release;$(ProjectDir)..\contrib\build\asio\asio\msvc\x64\Release;$(ProjectDir)..\contrib\build\fmt\msvc\Release;$(ProjectDir)..\contrib\build\http_parser\x64\Release</AdditionalLibraryDirectories>
       <AdditionalOptions>/ignore:4006 /ignore:4221 %(AdditionalOptions)</AdditionalOptions>
       <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
     </Lib>
diff --git a/contrib/build_all.bat b/contrib/build_all.bat
index d38abe582e8515b70a139f380b2c10af807fc11a..c00d4116168a4d172f67ed04ddc72eca1ff0653a 100644
--- a/contrib/build_all.bat
+++ b/contrib/build_all.bat
@@ -56,7 +56,10 @@ x264=build\x264\SMP\libx264.vcxproj, ^
 opus=build\opus\SMP\libopus.vcxproj, ^
 media-sdk=build\media-sdk\api\mfx_dispatch\windows\libmfx_vs2015.vcxproj, ^
 ffmpeg=ffmpeg, ^
-restbed=restbed, ^
+openssl=openssl, ^
+asio=build\asio\asio\msvc\asio.vcxproj, ^
+fmt=build\fmt\msvc\fmt.vcxproj, ^
+http_parser=build\http_parser\http-parser.vcxproj, ^
 jsoncpp=build\jsoncpp\makefiles\vs2017\lib_json.vcxproj, ^
 argon2=build\argon2\vs2015\Argon2Ref\Argon2Ref.vcxproj, ^
 gmp=build\gmp\SMP\libgmp.vcxproj, ^
@@ -83,12 +86,15 @@ x264=build\x264\SMP\libx264.vcxproj, ^
 opus=build\opus\SMP\libopus.vcxproj, ^
 media-sdk=build\media-sdk\api\mfx_dispatch\windows\libmfx_vs2015.vcxproj, ^
 ffmpeg=ffmpeg, ^
-restbed=restbed, ^
+openssl=openssl, ^
+asio=build\asio\asio\msvc\asio.vcxproj, ^
+fmt=build\fmt\msvc\fmt.vcxproj, ^
+http_parser=build\http_parser\http-parser.vcxproj, ^
 jsoncpp=build\jsoncpp\makefiles\vs2017\lib_json.vcxproj, ^
 argon2=build\argon2\vs2015\Argon2Ref\Argon2Ref.vcxproj, ^
-gmp=build\gmp\SMP\libgmp.vcxproj, ^
 iconv=build\iconv\SMP\libiconv.vcxproj, ^
 zlib=build\zlib\SMP\libzlib.vcxproj, ^
+gmp=build\gmp\SMP\libgmp.vcxproj, ^
 nettle=build\nettle\SMP\libnettle.vcxproj, ^
 hogweed=build\nettle\SMP\libhogweed.vcxproj, ^
 gnutls=build\gnutls\SMP\libgnutls.vcxproj, ^
@@ -231,10 +237,10 @@ if %ERRORLEVEL% geq 1 (
 :build
 if /I %1 equ ffmpeg (
     %MSYS2_BIN% --login -x %CONTRIB_DIR%src/ffmpeg/windows-configure-make.sh %2 %3
-) else if /I %1 equ restbed (
-    goto build_restbed %2 %3
 ) else if /I %1 equ pjproject (
     goto build_pjproject %2 %3
+) else if /I %1 equ openssl (
+    goto build_openssl %2 %3
 ) else (
     msbuild %CONTRIB_DIR%%1 %MSBUILD_ARGS%
 )
@@ -243,9 +249,9 @@ if %ERRORLEVEL% geq 1 (
 )
 goto :eof
 
-:build_restbed
+:build_openssl
 :: build openssl
-cd %CONTRIB_DIR%build\restbed\dependency\openssl
+cd %CONTRIB_DIR%build\openssl
 if "%2"=="win32" (
     call perl Configure VC-WIN64A
     call ms\do_win64a
@@ -256,20 +262,6 @@ if "%2"=="win32" (
 )
 call nmake -f ms\ntdll.mak
 set PATH=restbed\dependency\openssl\out32dll;%PATH%
-:: build restbed w/asio+catch
-cd ..\..
-mkdir build
-cd build
-setlocal
-set PATH=C:\\Program Files\\CMake\\bin\\;%PATH%
-set CMAKE_FLAGS=-DBUILD_SSL=ON -DBUILD_TESTS=OFF
-if "%3"=="x86" (
-    cmake %CMAKE_FLAGS% -G "Visual Studio 15 2017 Win32" ..
-) else if "%3"=="x64" (
-    cmake %CMAKE_FLAGS% -G "Visual Studio 15 2017 Win64" ..
-)
-cmake --build . --target ALL_BUILD --config Release
-cd ..\..
 goto :eof
 
 :build_pjproject
diff --git a/contrib/src/asio/asio-uwp.patch b/contrib/src/asio/asio-uwp.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7bd416b78e9cc0cb0d5c066a78f866dcfc91cf18
--- /dev/null
+++ b/contrib/src/asio/asio-uwp.patch
@@ -0,0 +1,68 @@
+--- a/asio/include/asio/detail/impl/win_iocp_io_context.ipp
++++ b/asio/include/asio/detail/impl/win_iocp_io_context.ipp
+@@ -93,7 +93,7 @@ void win_iocp_io_context::shutdown()
+   {
+     LARGE_INTEGER timeout;
+     timeout.QuadPart = 1;
+-    ::SetWaitableTimer(waitable_timer_.handle, &timeout, 1, 0, 0, FALSE);
++    //::SetWaitableTimer(waitable_timer_.handle, &timeout, 1, 0, 0, FALSE);
+   }
+ 
+   while (::InterlockedExchangeAdd(&outstanding_work_, 0) > 0)
+@@ -477,11 +477,11 @@ DWORD win_iocp_io_context::get_gqcs_timeout()
+   osvi.dwOSVersionInfoSize = sizeof(osvi);
+   osvi.dwMajorVersion = 6ul;
+ 
+-  const uint64_t condition_mask = ::VerSetConditionMask(
++  /*const uint64_t condition_mask = ::VerSetConditionMask(
+       0, VER_MAJORVERSION, VER_GREATER_EQUAL);
+ 
+   if (!!::VerifyVersionInfo(&osvi, VER_MAJORVERSION, condition_mask))
+-    return INFINITE;
++    return INFINITE;*/
+ 
+   return default_gqcs_timeout;
+ }
+@@ -492,7 +492,7 @@ void win_iocp_io_context::do_add_timer_queue(timer_queue_base& queue)
+ 
+   timer_queues_.insert(&queue);
+ 
+-  if (!waitable_timer_.handle)
++  /*if (!waitable_timer_.handle)
+   {
+     waitable_timer_.handle = ::CreateWaitableTimer(0, FALSE, 0);
+     if (waitable_timer_.handle == 0)
+@@ -508,7 +508,7 @@ void win_iocp_io_context::do_add_timer_queue(timer_queue_base& queue)
+     timeout.QuadPart *= 10;
+     ::SetWaitableTimer(waitable_timer_.handle,
+         &timeout, max_timeout_msec, 0, 0, FALSE);
+-  }
++  }*/
+ 
+   if (!timer_thread_.get())
+   {
+@@ -537,8 +537,8 @@ void win_iocp_io_context::update_timeout()
+       LARGE_INTEGER timeout;
+       timeout.QuadPart = -timeout_usec;
+       timeout.QuadPart *= 10;
+-      ::SetWaitableTimer(waitable_timer_.handle,
+-          &timeout, max_timeout_msec, 0, 0, FALSE);
++      //::SetWaitableTimer(waitable_timer_.handle,
++          //&timeout, max_timeout_msec, 0, 0, FALSE);
+     }
+   }
+ }
+--- a/asio/include/asio/detail/impl/win_thread.ipp
++++ b/asio/include/asio/detail/impl/win_thread.ipp
+@@ -46,7 +46,7 @@ void win_thread::join()
+   ::CloseHandle(exit_event_);
+   if (terminate_threads())
+   {
+-    ::TerminateThread(thread_, 0);
++    //::TerminateThread(thread_, 0);
+   }
+   else
+   {
+-- 
+2.8.1.windows.1
+
diff --git a/contrib/src/asio/asio-vcxproj.patch b/contrib/src/asio/asio-vcxproj.patch
new file mode 100644
index 0000000000000000000000000000000000000000..66fff580d165cfc14af5d8fe985efe415e3d7f38
--- /dev/null
+++ b/contrib/src/asio/asio-vcxproj.patch
@@ -0,0 +1,574 @@
+--- /dev/null
++++ b/asio/msvc/asio.vcxproj
+@@ -0,0 +1,567 @@
++<?xml version="1.0" encoding="utf-8"?>
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++  <ItemGroup Label="ProjectConfigurations">
++    <ProjectConfiguration Include="Debug|Win32">
++      <Configuration>Debug</Configuration>
++      <Platform>Win32</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Release|Win32">
++      <Configuration>Release</Configuration>
++      <Platform>Win32</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Debug|x64">
++      <Configuration>Debug</Configuration>
++      <Platform>x64</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Release|x64">
++      <Configuration>Release</Configuration>
++      <Platform>x64</Platform>
++    </ProjectConfiguration>
++  </ItemGroup>
++  <PropertyGroup Label="Globals">
++    <VCProjectVersion>15.0</VCProjectVersion>
++    <ProjectGuid>{08A80A1E-58CD-43F6-86B2-DAD475D573D0}</ProjectGuid>
++    <RootNamespace>asio</RootNamespace>
++    <WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
++  </PropertyGroup>
++  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
++    <ConfigurationType>StaticLibrary</ConfigurationType>
++    <UseDebugLibraries>true</UseDebugLibraries>
++    <PlatformToolset>v141</PlatformToolset>
++    <CharacterSet>Unicode</CharacterSet>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
++    <ConfigurationType>StaticLibrary</ConfigurationType>
++    <UseDebugLibraries>false</UseDebugLibraries>
++    <PlatformToolset>v141</PlatformToolset>
++    <WholeProgramOptimization>true</WholeProgramOptimization>
++    <CharacterSet>Unicode</CharacterSet>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
++    <ConfigurationType>StaticLibrary</ConfigurationType>
++    <UseDebugLibraries>true</UseDebugLibraries>
++    <PlatformToolset>v141</PlatformToolset>
++    <CharacterSet>Unicode</CharacterSet>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
++    <ConfigurationType>StaticLibrary</ConfigurationType>
++    <UseDebugLibraries>false</UseDebugLibraries>
++    <PlatformToolset>v141</PlatformToolset>
++    <WholeProgramOptimization>true</WholeProgramOptimization>
++    <CharacterSet>Unicode</CharacterSet>
++  </PropertyGroup>
++  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
++  <ImportGroup Label="ExtensionSettings">
++  </ImportGroup>
++  <ImportGroup Label="Shared">
++  </ImportGroup>
++  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <PropertyGroup Label="UserMacros" />
++  <PropertyGroup />
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
++    <ClCompile>
++      <WarningLevel>Level3</WarningLevel>
++      <Optimization>Disabled</Optimization>
++      <SDLCheck>true</SDLCheck>
++      <ConformanceMode>true</ConformanceMode>
++      <AdditionalIncludeDirectories>$(ProjectDir)..\include;$(ProjectDir)..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>_WIN32_WINNT=0x0A00;ASIO_STANDALONE;ASIO_SEPARATE_COMPILATION;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++    </ClCompile>
++    <Link>
++      <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\openssl\out32dll;</AdditionalLibraryDirectories>
++    </Link>
++    <Link>
++      <AdditionalDependencies>libeay32.lib;ssleay32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
++    </Link>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
++    <ClCompile>
++      <WarningLevel>Level3</WarningLevel>
++      <Optimization>Disabled</Optimization>
++      <SDLCheck>true</SDLCheck>
++      <ConformanceMode>true</ConformanceMode>
++      <AdditionalIncludeDirectories>$(ProjectDir)..\include;$(ProjectDir)..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>_WIN32_WINNT=0x0A00;ASIO_STANDALONE;ASIO_SEPARATE_COMPILATION;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++    </ClCompile>
++    <Link>
++      <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\openssl\out32dll;</AdditionalLibraryDirectories>
++    </Link>
++    <Link>
++      <AdditionalDependencies>libeay32.lib;ssleay32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
++    </Link>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
++    <ClCompile>
++      <WarningLevel>Level3</WarningLevel>
++      <Optimization>MaxSpeed</Optimization>
++      <FunctionLevelLinking>true</FunctionLevelLinking>
++      <IntrinsicFunctions>true</IntrinsicFunctions>
++      <SDLCheck>true</SDLCheck>
++      <ConformanceMode>true</ConformanceMode>
++      <AdditionalIncludeDirectories>$(ProjectDir)..\include;$(ProjectDir)..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>_WIN32_WINNT=0x0A00;ASIO_STANDALONE;ASIO_SEPARATE_COMPILATION;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++    </ClCompile>
++    <Link>
++      <EnableCOMDATFolding>true</EnableCOMDATFolding>
++      <OptimizeReferences>true</OptimizeReferences>
++      <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\openssl\out32dll;</AdditionalLibraryDirectories>
++      <AdditionalDependencies>libeay32.lib;ssleay32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
++    </Link>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
++    <ClCompile>
++      <WarningLevel>Level3</WarningLevel>
++      <Optimization>MaxSpeed</Optimization>
++      <FunctionLevelLinking>true</FunctionLevelLinking>
++      <IntrinsicFunctions>true</IntrinsicFunctions>
++      <SDLCheck>true</SDLCheck>
++      <ConformanceMode>true</ConformanceMode>
++      <AdditionalIncludeDirectories>$(ProjectDir)..\include;$(ProjectDir)..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>_WIN32_WINNT=0x0A00;ASIO_STANDALONE;ASIO_SEPARATE_COMPILATION;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++    </ClCompile>
++    <Link>
++      <EnableCOMDATFolding>true</EnableCOMDATFolding>
++      <OptimizeReferences>true</OptimizeReferences>
++      <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\openssl\out32dll;</AdditionalLibraryDirectories>
++      <AdditionalDependencies>libeay32.lib;ssleay32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
++    </Link>
++  </ItemDefinitionGroup>
++  <ItemGroup>
++    <ClCompile Include="..\src\asio.cpp" />
++    <ClCompile Include="..\src\asio_ssl.cpp" />
++  </ItemGroup>
++  <ItemGroup>
++    <ClInclude Include="..\include\asio.hpp" />
++    <ClInclude Include="..\include\asio\associated_allocator.hpp" />
++    <ClInclude Include="..\include\asio\associated_executor.hpp" />
++    <ClInclude Include="..\include\asio\async_result.hpp" />
++    <ClInclude Include="..\include\asio\basic_datagram_socket.hpp" />
++    <ClInclude Include="..\include\asio\basic_deadline_timer.hpp" />
++    <ClInclude Include="..\include\asio\basic_io_object.hpp" />
++    <ClInclude Include="..\include\asio\basic_raw_socket.hpp" />
++    <ClInclude Include="..\include\asio\basic_seq_packet_socket.hpp" />
++    <ClInclude Include="..\include\asio\basic_serial_port.hpp" />
++    <ClInclude Include="..\include\asio\basic_signal_set.hpp" />
++    <ClInclude Include="..\include\asio\basic_socket.hpp" />
++    <ClInclude Include="..\include\asio\basic_socket_acceptor.hpp" />
++    <ClInclude Include="..\include\asio\basic_socket_iostream.hpp" />
++    <ClInclude Include="..\include\asio\basic_socket_streambuf.hpp" />
++    <ClInclude Include="..\include\asio\basic_streambuf.hpp" />
++    <ClInclude Include="..\include\asio\basic_streambuf_fwd.hpp" />
++    <ClInclude Include="..\include\asio\basic_stream_socket.hpp" />
++    <ClInclude Include="..\include\asio\basic_waitable_timer.hpp" />
++    <ClInclude Include="..\include\asio\bind_executor.hpp" />
++    <ClInclude Include="..\include\asio\buffer.hpp" />
++    <ClInclude Include="..\include\asio\buffered_read_stream.hpp" />
++    <ClInclude Include="..\include\asio\buffered_read_stream_fwd.hpp" />
++    <ClInclude Include="..\include\asio\buffered_stream.hpp" />
++    <ClInclude Include="..\include\asio\buffered_stream_fwd.hpp" />
++    <ClInclude Include="..\include\asio\buffered_write_stream.hpp" />
++    <ClInclude Include="..\include\asio\buffered_write_stream_fwd.hpp" />
++    <ClInclude Include="..\include\asio\buffers_iterator.hpp" />
++    <ClInclude Include="..\include\asio\completion_condition.hpp" />
++    <ClInclude Include="..\include\asio\connect.hpp" />
++    <ClInclude Include="..\include\asio\coroutine.hpp" />
++    <ClInclude Include="..\include\asio\datagram_socket_service.hpp" />
++    <ClInclude Include="..\include\asio\deadline_timer.hpp" />
++    <ClInclude Include="..\include\asio\deadline_timer_service.hpp" />
++    <ClInclude Include="..\include\asio\defer.hpp" />
++    <ClInclude Include="..\include\asio\detail\array.hpp" />
++    <ClInclude Include="..\include\asio\detail\array_fwd.hpp" />
++    <ClInclude Include="..\include\asio\detail\assert.hpp" />
++    <ClInclude Include="..\include\asio\detail\atomic_count.hpp" />
++    <ClInclude Include="..\include\asio\detail\base_from_completion_cond.hpp" />
++    <ClInclude Include="..\include\asio\detail\bind_handler.hpp" />
++    <ClInclude Include="..\include\asio\detail\buffered_stream_storage.hpp" />
++    <ClInclude Include="..\include\asio\detail\buffer_resize_guard.hpp" />
++    <ClInclude Include="..\include\asio\detail\buffer_sequence_adapter.hpp" />
++    <ClInclude Include="..\include\asio\detail\call_stack.hpp" />
++    <ClInclude Include="..\include\asio\detail\chrono.hpp" />
++    <ClInclude Include="..\include\asio\detail\chrono_time_traits.hpp" />
++    <ClInclude Include="..\include\asio\detail\completion_handler.hpp" />
++    <ClInclude Include="..\include\asio\detail\concurrency_hint.hpp" />
++    <ClInclude Include="..\include\asio\detail\conditionally_enabled_event.hpp" />
++    <ClInclude Include="..\include\asio\detail\conditionally_enabled_mutex.hpp" />
++    <ClInclude Include="..\include\asio\detail\config.hpp" />
++    <ClInclude Include="..\include\asio\detail\consuming_buffers.hpp" />
++    <ClInclude Include="..\include\asio\detail\cstddef.hpp" />
++    <ClInclude Include="..\include\asio\detail\cstdint.hpp" />
++    <ClInclude Include="..\include\asio\detail\date_time_fwd.hpp" />
++    <ClInclude Include="..\include\asio\detail\deadline_timer_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\dependent_type.hpp" />
++    <ClInclude Include="..\include\asio\detail\descriptor_ops.hpp" />
++    <ClInclude Include="..\include\asio\detail\descriptor_read_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\descriptor_write_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\dev_poll_reactor.hpp" />
++    <ClInclude Include="..\include\asio\detail\epoll_reactor.hpp" />
++    <ClInclude Include="..\include\asio\detail\event.hpp" />
++    <ClInclude Include="..\include\asio\detail\eventfd_select_interrupter.hpp" />
++    <ClInclude Include="..\include\asio\detail\executor_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\fd_set_adapter.hpp" />
++    <ClInclude Include="..\include\asio\detail\fenced_block.hpp" />
++    <ClInclude Include="..\include\asio\detail\functional.hpp" />
++    <ClInclude Include="..\include\asio\detail\future.hpp" />
++    <ClInclude Include="..\include\asio\detail\gcc_arm_fenced_block.hpp" />
++    <ClInclude Include="..\include\asio\detail\gcc_hppa_fenced_block.hpp" />
++    <ClInclude Include="..\include\asio\detail\gcc_sync_fenced_block.hpp" />
++    <ClInclude Include="..\include\asio\detail\gcc_x86_fenced_block.hpp" />
++    <ClInclude Include="..\include\asio\detail\global.hpp" />
++    <ClInclude Include="..\include\asio\detail\handler_alloc_helpers.hpp" />
++    <ClInclude Include="..\include\asio\detail\handler_cont_helpers.hpp" />
++    <ClInclude Include="..\include\asio\detail\handler_invoke_helpers.hpp" />
++    <ClInclude Include="..\include\asio\detail\handler_tracking.hpp" />
++    <ClInclude Include="..\include\asio\detail\handler_type_requirements.hpp" />
++    <ClInclude Include="..\include\asio\detail\handler_work.hpp" />
++    <ClInclude Include="..\include\asio\detail\hash_map.hpp" />
++    <ClInclude Include="..\include\asio\detail\impl\dev_poll_reactor.hpp" />
++    <ClInclude Include="..\include\asio\detail\impl\epoll_reactor.hpp" />
++    <ClInclude Include="..\include\asio\detail\impl\kqueue_reactor.hpp" />
++    <ClInclude Include="..\include\asio\detail\impl\select_reactor.hpp" />
++    <ClInclude Include="..\include\asio\detail\impl\service_registry.hpp" />
++    <ClInclude Include="..\include\asio\detail\impl\strand_executor_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\impl\strand_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\impl\winrt_timer_scheduler.hpp" />
++    <ClInclude Include="..\include\asio\detail\impl\win_iocp_io_context.hpp" />
++    <ClInclude Include="..\include\asio\detail\io_control.hpp" />
++    <ClInclude Include="..\include\asio\detail\is_buffer_sequence.hpp" />
++    <ClInclude Include="..\include\asio\detail\is_executor.hpp" />
++    <ClInclude Include="..\include\asio\detail\keyword_tss_ptr.hpp" />
++    <ClInclude Include="..\include\asio\detail\kqueue_reactor.hpp" />
++    <ClInclude Include="..\include\asio\detail\limits.hpp" />
++    <ClInclude Include="..\include\asio\detail\local_free_on_block_exit.hpp" />
++    <ClInclude Include="..\include\asio\detail\macos_fenced_block.hpp" />
++    <ClInclude Include="..\include\asio\detail\memory.hpp" />
++    <ClInclude Include="..\include\asio\detail\mutex.hpp" />
++    <ClInclude Include="..\include\asio\detail\noncopyable.hpp" />
++    <ClInclude Include="..\include\asio\detail\null_event.hpp" />
++    <ClInclude Include="..\include\asio\detail\null_fenced_block.hpp" />
++    <ClInclude Include="..\include\asio\detail\null_global.hpp" />
++    <ClInclude Include="..\include\asio\detail\null_mutex.hpp" />
++    <ClInclude Include="..\include\asio\detail\null_reactor.hpp" />
++    <ClInclude Include="..\include\asio\detail\null_signal_blocker.hpp" />
++    <ClInclude Include="..\include\asio\detail\null_socket_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\null_static_mutex.hpp" />
++    <ClInclude Include="..\include\asio\detail\null_thread.hpp" />
++    <ClInclude Include="..\include\asio\detail\null_tss_ptr.hpp" />
++    <ClInclude Include="..\include\asio\detail\object_pool.hpp" />
++    <ClInclude Include="..\include\asio\detail\old_win_sdk_compat.hpp" />
++    <ClInclude Include="..\include\asio\detail\operation.hpp" />
++    <ClInclude Include="..\include\asio\detail\op_queue.hpp" />
++    <ClInclude Include="..\include\asio\detail\pipe_select_interrupter.hpp" />
++    <ClInclude Include="..\include\asio\detail\pop_options.hpp" />
++    <ClInclude Include="..\include\asio\detail\posix_event.hpp" />
++    <ClInclude Include="..\include\asio\detail\posix_fd_set_adapter.hpp" />
++    <ClInclude Include="..\include\asio\detail\posix_global.hpp" />
++    <ClInclude Include="..\include\asio\detail\posix_mutex.hpp" />
++    <ClInclude Include="..\include\asio\detail\posix_signal_blocker.hpp" />
++    <ClInclude Include="..\include\asio\detail\posix_static_mutex.hpp" />
++    <ClInclude Include="..\include\asio\detail\posix_thread.hpp" />
++    <ClInclude Include="..\include\asio\detail\posix_tss_ptr.hpp" />
++    <ClInclude Include="..\include\asio\detail\push_options.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactive_descriptor_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactive_null_buffers_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactive_serial_port_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactive_socket_accept_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactive_socket_connect_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactive_socket_recvfrom_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactive_socket_recvmsg_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactive_socket_recv_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactive_socket_sendto_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactive_socket_send_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactive_socket_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactive_socket_service_base.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactive_wait_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactor.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactor_fwd.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactor_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\reactor_op_queue.hpp" />
++    <ClInclude Include="..\include\asio\detail\recycling_allocator.hpp" />
++    <ClInclude Include="..\include\asio\detail\regex_fwd.hpp" />
++    <ClInclude Include="..\include\asio\detail\resolver_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\resolver_service_base.hpp" />
++    <ClInclude Include="..\include\asio\detail\resolve_endpoint_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\resolve_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\resolve_query_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\scheduler.hpp" />
++    <ClInclude Include="..\include\asio\detail\scheduler_operation.hpp" />
++    <ClInclude Include="..\include\asio\detail\scheduler_thread_info.hpp" />
++    <ClInclude Include="..\include\asio\detail\scoped_lock.hpp" />
++    <ClInclude Include="..\include\asio\detail\scoped_ptr.hpp" />
++    <ClInclude Include="..\include\asio\detail\select_interrupter.hpp" />
++    <ClInclude Include="..\include\asio\detail\select_reactor.hpp" />
++    <ClInclude Include="..\include\asio\detail\service_registry.hpp" />
++    <ClInclude Include="..\include\asio\detail\signal_blocker.hpp" />
++    <ClInclude Include="..\include\asio\detail\signal_handler.hpp" />
++    <ClInclude Include="..\include\asio\detail\signal_init.hpp" />
++    <ClInclude Include="..\include\asio\detail\signal_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\signal_set_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\socket_holder.hpp" />
++    <ClInclude Include="..\include\asio\detail\socket_ops.hpp" />
++    <ClInclude Include="..\include\asio\detail\socket_option.hpp" />
++    <ClInclude Include="..\include\asio\detail\socket_select_interrupter.hpp" />
++    <ClInclude Include="..\include\asio\detail\socket_types.hpp" />
++    <ClInclude Include="..\include\asio\detail\solaris_fenced_block.hpp" />
++    <ClInclude Include="..\include\asio\detail\static_mutex.hpp" />
++    <ClInclude Include="..\include\asio\detail\std_event.hpp" />
++    <ClInclude Include="..\include\asio\detail\std_fenced_block.hpp" />
++    <ClInclude Include="..\include\asio\detail\std_global.hpp" />
++    <ClInclude Include="..\include\asio\detail\std_mutex.hpp" />
++    <ClInclude Include="..\include\asio\detail\std_static_mutex.hpp" />
++    <ClInclude Include="..\include\asio\detail\std_thread.hpp" />
++    <ClInclude Include="..\include\asio\detail\strand_executor_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\strand_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\string_view.hpp" />
++    <ClInclude Include="..\include\asio\detail\thread.hpp" />
++    <ClInclude Include="..\include\asio\detail\thread_context.hpp" />
++    <ClInclude Include="..\include\asio\detail\thread_group.hpp" />
++    <ClInclude Include="..\include\asio\detail\thread_info_base.hpp" />
++    <ClInclude Include="..\include\asio\detail\throw_error.hpp" />
++    <ClInclude Include="..\include\asio\detail\throw_exception.hpp" />
++    <ClInclude Include="..\include\asio\detail\timer_queue.hpp" />
++    <ClInclude Include="..\include\asio\detail\timer_queue_base.hpp" />
++    <ClInclude Include="..\include\asio\detail\timer_queue_ptime.hpp" />
++    <ClInclude Include="..\include\asio\detail\timer_queue_set.hpp" />
++    <ClInclude Include="..\include\asio\detail\timer_scheduler.hpp" />
++    <ClInclude Include="..\include\asio\detail\timer_scheduler_fwd.hpp" />
++    <ClInclude Include="..\include\asio\detail\tss_ptr.hpp" />
++    <ClInclude Include="..\include\asio\detail\type_traits.hpp" />
++    <ClInclude Include="..\include\asio\detail\variadic_templates.hpp" />
++    <ClInclude Include="..\include\asio\detail\wait_handler.hpp" />
++    <ClInclude Include="..\include\asio\detail\wait_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\winapp_thread.hpp" />
++    <ClInclude Include="..\include\asio\detail\wince_thread.hpp" />
++    <ClInclude Include="..\include\asio\detail\winrt_async_manager.hpp" />
++    <ClInclude Include="..\include\asio\detail\winrt_async_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\winrt_resolver_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\winrt_resolve_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\winrt_socket_connect_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\winrt_socket_recv_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\winrt_socket_send_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\winrt_ssocket_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\winrt_ssocket_service_base.hpp" />
++    <ClInclude Include="..\include\asio\detail\winrt_timer_scheduler.hpp" />
++    <ClInclude Include="..\include\asio\detail\winrt_utils.hpp" />
++    <ClInclude Include="..\include\asio\detail\winsock_init.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_event.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_fd_set_adapter.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_fenced_block.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_global.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_handle_read_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_handle_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_handle_write_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_io_context.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_null_buffers_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_operation.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_overlapped_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_overlapped_ptr.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_serial_port_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_socket_accept_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_socket_connect_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_socket_recvfrom_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_socket_recvmsg_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_socket_recv_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_socket_send_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_socket_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_socket_service_base.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_thread_info.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_iocp_wait_op.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_mutex.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_object_handle_service.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_static_mutex.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_thread.hpp" />
++    <ClInclude Include="..\include\asio\detail\win_tss_ptr.hpp" />
++    <ClInclude Include="..\include\asio\detail\work_dispatcher.hpp" />
++    <ClInclude Include="..\include\asio\detail\wrapped_handler.hpp" />
++    <ClInclude Include="..\include\asio\dispatch.hpp" />
++    <ClInclude Include="..\include\asio\error.hpp" />
++    <ClInclude Include="..\include\asio\error_code.hpp" />
++    <ClInclude Include="..\include\asio\execution_context.hpp" />
++    <ClInclude Include="..\include\asio\executor.hpp" />
++    <ClInclude Include="..\include\asio\executor_work_guard.hpp" />
++    <ClInclude Include="..\include\asio\experimental.hpp" />
++    <ClInclude Include="..\include\asio\experimental\co_spawn.hpp" />
++    <ClInclude Include="..\include\asio\experimental\detached.hpp" />
++    <ClInclude Include="..\include\asio\experimental\impl\co_spawn.hpp" />
++    <ClInclude Include="..\include\asio\experimental\impl\detached.hpp" />
++    <ClInclude Include="..\include\asio\experimental\impl\redirect_error.hpp" />
++    <ClInclude Include="..\include\asio\experimental\redirect_error.hpp" />
++    <ClInclude Include="..\include\asio\generic\basic_endpoint.hpp" />
++    <ClInclude Include="..\include\asio\generic\datagram_protocol.hpp" />
++    <ClInclude Include="..\include\asio\generic\detail\endpoint.hpp" />
++    <ClInclude Include="..\include\asio\generic\raw_protocol.hpp" />
++    <ClInclude Include="..\include\asio\generic\seq_packet_protocol.hpp" />
++    <ClInclude Include="..\include\asio\generic\stream_protocol.hpp" />
++    <ClInclude Include="..\include\asio\handler_alloc_hook.hpp" />
++    <ClInclude Include="..\include\asio\handler_continuation_hook.hpp" />
++    <ClInclude Include="..\include\asio\handler_invoke_hook.hpp" />
++    <ClInclude Include="..\include\asio\handler_type.hpp" />
++    <ClInclude Include="..\include\asio\high_resolution_timer.hpp" />
++    <ClInclude Include="..\include\asio\impl\buffered_read_stream.hpp" />
++    <ClInclude Include="..\include\asio\impl\buffered_write_stream.hpp" />
++    <ClInclude Include="..\include\asio\impl\connect.hpp" />
++    <ClInclude Include="..\include\asio\impl\defer.hpp" />
++    <ClInclude Include="..\include\asio\impl\dispatch.hpp" />
++    <ClInclude Include="..\include\asio\impl\execution_context.hpp" />
++    <ClInclude Include="..\include\asio\impl\executor.hpp" />
++    <ClInclude Include="..\include\asio\impl\io_context.hpp" />
++    <ClInclude Include="..\include\asio\impl\post.hpp" />
++    <ClInclude Include="..\include\asio\impl\read.hpp" />
++    <ClInclude Include="..\include\asio\impl\read_at.hpp" />
++    <ClInclude Include="..\include\asio\impl\read_until.hpp" />
++    <ClInclude Include="..\include\asio\impl\serial_port_base.hpp" />
++    <ClInclude Include="..\include\asio\impl\spawn.hpp" />
++    <ClInclude Include="..\include\asio\impl\src.hpp" />
++    <ClInclude Include="..\include\asio\impl\system_context.hpp" />
++    <ClInclude Include="..\include\asio\impl\system_executor.hpp" />
++    <ClInclude Include="..\include\asio\impl\thread_pool.hpp" />
++    <ClInclude Include="..\include\asio\impl\use_future.hpp" />
++    <ClInclude Include="..\include\asio\impl\write.hpp" />
++    <ClInclude Include="..\include\asio\impl\write_at.hpp" />
++    <ClInclude Include="..\include\asio\io_context.hpp" />
++    <ClInclude Include="..\include\asio\io_context_strand.hpp" />
++    <ClInclude Include="..\include\asio\io_service.hpp" />
++    <ClInclude Include="..\include\asio\io_service_strand.hpp" />
++    <ClInclude Include="..\include\asio\ip\address.hpp" />
++    <ClInclude Include="..\include\asio\ip\address_v4.hpp" />
++    <ClInclude Include="..\include\asio\ip\address_v4_iterator.hpp" />
++    <ClInclude Include="..\include\asio\ip\address_v4_range.hpp" />
++    <ClInclude Include="..\include\asio\ip\address_v6.hpp" />
++    <ClInclude Include="..\include\asio\ip\address_v6_iterator.hpp" />
++    <ClInclude Include="..\include\asio\ip\address_v6_range.hpp" />
++    <ClInclude Include="..\include\asio\ip\bad_address_cast.hpp" />
++    <ClInclude Include="..\include\asio\ip\basic_endpoint.hpp" />
++    <ClInclude Include="..\include\asio\ip\basic_resolver.hpp" />
++    <ClInclude Include="..\include\asio\ip\basic_resolver_entry.hpp" />
++    <ClInclude Include="..\include\asio\ip\basic_resolver_iterator.hpp" />
++    <ClInclude Include="..\include\asio\ip\basic_resolver_query.hpp" />
++    <ClInclude Include="..\include\asio\ip\basic_resolver_results.hpp" />
++    <ClInclude Include="..\include\asio\ip\detail\endpoint.hpp" />
++    <ClInclude Include="..\include\asio\ip\detail\socket_option.hpp" />
++    <ClInclude Include="..\include\asio\ip\host_name.hpp" />
++    <ClInclude Include="..\include\asio\ip\icmp.hpp" />
++    <ClInclude Include="..\include\asio\ip\impl\address.hpp" />
++    <ClInclude Include="..\include\asio\ip\impl\address_v4.hpp" />
++    <ClInclude Include="..\include\asio\ip\impl\address_v6.hpp" />
++    <ClInclude Include="..\include\asio\ip\impl\basic_endpoint.hpp" />
++    <ClInclude Include="..\include\asio\ip\impl\network_v4.hpp" />
++    <ClInclude Include="..\include\asio\ip\impl\network_v6.hpp" />
++    <ClInclude Include="..\include\asio\ip\multicast.hpp" />
++    <ClInclude Include="..\include\asio\ip\network_v4.hpp" />
++    <ClInclude Include="..\include\asio\ip\network_v6.hpp" />
++    <ClInclude Include="..\include\asio\ip\resolver_base.hpp" />
++    <ClInclude Include="..\include\asio\ip\resolver_query_base.hpp" />
++    <ClInclude Include="..\include\asio\ip\resolver_service.hpp" />
++    <ClInclude Include="..\include\asio\ip\tcp.hpp" />
++    <ClInclude Include="..\include\asio\ip\udp.hpp" />
++    <ClInclude Include="..\include\asio\ip\unicast.hpp" />
++    <ClInclude Include="..\include\asio\ip\v6_only.hpp" />
++    <ClInclude Include="..\include\asio\is_executor.hpp" />
++    <ClInclude Include="..\include\asio\is_read_buffered.hpp" />
++    <ClInclude Include="..\include\asio\is_write_buffered.hpp" />
++    <ClInclude Include="..\include\asio\local\basic_endpoint.hpp" />
++    <ClInclude Include="..\include\asio\local\connect_pair.hpp" />
++    <ClInclude Include="..\include\asio\local\datagram_protocol.hpp" />
++    <ClInclude Include="..\include\asio\local\detail\endpoint.hpp" />
++    <ClInclude Include="..\include\asio\local\stream_protocol.hpp" />
++    <ClInclude Include="..\include\asio\packaged_task.hpp" />
++    <ClInclude Include="..\include\asio\placeholders.hpp" />
++    <ClInclude Include="..\include\asio\posix\basic_descriptor.hpp" />
++    <ClInclude Include="..\include\asio\posix\basic_stream_descriptor.hpp" />
++    <ClInclude Include="..\include\asio\posix\descriptor.hpp" />
++    <ClInclude Include="..\include\asio\posix\descriptor_base.hpp" />
++    <ClInclude Include="..\include\asio\posix\stream_descriptor.hpp" />
++    <ClInclude Include="..\include\asio\posix\stream_descriptor_service.hpp" />
++    <ClInclude Include="..\include\asio\post.hpp" />
++    <ClInclude Include="..\include\asio\raw_socket_service.hpp" />
++    <ClInclude Include="..\include\asio\read.hpp" />
++    <ClInclude Include="..\include\asio\read_at.hpp" />
++    <ClInclude Include="..\include\asio\read_until.hpp" />
++    <ClInclude Include="..\include\asio\seq_packet_socket_service.hpp" />
++    <ClInclude Include="..\include\asio\serial_port.hpp" />
++    <ClInclude Include="..\include\asio\serial_port_base.hpp" />
++    <ClInclude Include="..\include\asio\serial_port_service.hpp" />
++    <ClInclude Include="..\include\asio\signal_set.hpp" />
++    <ClInclude Include="..\include\asio\signal_set_service.hpp" />
++    <ClInclude Include="..\include\asio\socket_acceptor_service.hpp" />
++    <ClInclude Include="..\include\asio\socket_base.hpp" />
++    <ClInclude Include="..\include\asio\spawn.hpp" />
++    <ClInclude Include="..\include\asio\ssl.hpp" />
++    <ClInclude Include="..\include\asio\ssl\context.hpp" />
++    <ClInclude Include="..\include\asio\ssl\context_base.hpp" />
++    <ClInclude Include="..\include\asio\ssl\detail\buffered_handshake_op.hpp" />
++    <ClInclude Include="..\include\asio\ssl\detail\engine.hpp" />
++    <ClInclude Include="..\include\asio\ssl\detail\handshake_op.hpp" />
++    <ClInclude Include="..\include\asio\ssl\detail\io.hpp" />
++    <ClInclude Include="..\include\asio\ssl\detail\openssl_init.hpp" />
++    <ClInclude Include="..\include\asio\ssl\detail\openssl_types.hpp" />
++    <ClInclude Include="..\include\asio\ssl\detail\password_callback.hpp" />
++    <ClInclude Include="..\include\asio\ssl\detail\read_op.hpp" />
++    <ClInclude Include="..\include\asio\ssl\detail\shutdown_op.hpp" />
++    <ClInclude Include="..\include\asio\ssl\detail\stream_core.hpp" />
++    <ClInclude Include="..\include\asio\ssl\detail\verify_callback.hpp" />
++    <ClInclude Include="..\include\asio\ssl\detail\write_op.hpp" />
++    <ClInclude Include="..\include\asio\ssl\error.hpp" />
++    <ClInclude Include="..\include\asio\ssl\impl\context.hpp" />
++    <ClInclude Include="..\include\asio\ssl\impl\src.hpp" />
++    <ClInclude Include="..\include\asio\ssl\rfc2818_verification.hpp" />
++    <ClInclude Include="..\include\asio\ssl\stream.hpp" />
++    <ClInclude Include="..\include\asio\ssl\stream_base.hpp" />
++    <ClInclude Include="..\include\asio\ssl\verify_context.hpp" />
++    <ClInclude Include="..\include\asio\ssl\verify_mode.hpp" />
++    <ClInclude Include="..\include\asio\steady_timer.hpp" />
++    <ClInclude Include="..\include\asio\strand.hpp" />
++    <ClInclude Include="..\include\asio\streambuf.hpp" />
++    <ClInclude Include="..\include\asio\stream_socket_service.hpp" />
++    <ClInclude Include="..\include\asio\system_context.hpp" />
++    <ClInclude Include="..\include\asio\system_error.hpp" />
++    <ClInclude Include="..\include\asio\system_executor.hpp" />
++    <ClInclude Include="..\include\asio\system_timer.hpp" />
++    <ClInclude Include="..\include\asio\thread.hpp" />
++    <ClInclude Include="..\include\asio\thread_pool.hpp" />
++    <ClInclude Include="..\include\asio\time_traits.hpp" />
++    <ClInclude Include="..\include\asio\ts\buffer.hpp" />
++    <ClInclude Include="..\include\asio\ts\executor.hpp" />
++    <ClInclude Include="..\include\asio\ts\internet.hpp" />
++    <ClInclude Include="..\include\asio\ts\io_context.hpp" />
++    <ClInclude Include="..\include\asio\ts\net.hpp" />
++    <ClInclude Include="..\include\asio\ts\netfwd.hpp" />
++    <ClInclude Include="..\include\asio\ts\socket.hpp" />
++    <ClInclude Include="..\include\asio\ts\timer.hpp" />
++    <ClInclude Include="..\include\asio\unyield.hpp" />
++    <ClInclude Include="..\include\asio\uses_executor.hpp" />
++    <ClInclude Include="..\include\asio\use_future.hpp" />
++    <ClInclude Include="..\include\asio\version.hpp" />
++    <ClInclude Include="..\include\asio\waitable_timer_service.hpp" />
++    <ClInclude Include="..\include\asio\wait_traits.hpp" />
++    <ClInclude Include="..\include\asio\windows\basic_handle.hpp" />
++    <ClInclude Include="..\include\asio\windows\basic_object_handle.hpp" />
++    <ClInclude Include="..\include\asio\windows\basic_random_access_handle.hpp" />
++    <ClInclude Include="..\include\asio\windows\basic_stream_handle.hpp" />
++    <ClInclude Include="..\include\asio\windows\object_handle.hpp" />
++    <ClInclude Include="..\include\asio\windows\object_handle_service.hpp" />
++    <ClInclude Include="..\include\asio\windows\overlapped_handle.hpp" />
++    <ClInclude Include="..\include\asio\windows\overlapped_ptr.hpp" />
++    <ClInclude Include="..\include\asio\windows\random_access_handle.hpp" />
++    <ClInclude Include="..\include\asio\windows\random_access_handle_service.hpp" />
++    <ClInclude Include="..\include\asio\windows\stream_handle.hpp" />
++    <ClInclude Include="..\include\asio\windows\stream_handle_service.hpp" />
++    <ClInclude Include="..\include\asio\write.hpp" />
++    <ClInclude Include="..\include\asio\write_at.hpp" />
++    <ClInclude Include="..\include\asio\yield.hpp" />
++  </ItemGroup>
++  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
++  <ImportGroup Label="ExtensionTargets">
++  </ImportGroup>
++</Project>
+\ No newline at end of file
+-- 
+2.19.0.windows.1
+
diff --git a/contrib/src/asio/fetch_and_patch.bat b/contrib/src/asio/fetch_and_patch.bat
new file mode 100644
index 0000000000000000000000000000000000000000..8f761610247640da2822e04f8c72b14c6a1e501f
--- /dev/null
+++ b/contrib/src/asio/fetch_and_patch.bat
@@ -0,0 +1,22 @@
+set BUILD=%SRC%..\build
+
+set ASIO_VERSION=asio-1-12-2
+set ASIO_URL=https://github.com/chriskohlhoff/asio/archive/%ASIO_VERSION%.tar.gz
+
+mkdir %BUILD%
+
+%WGET_CMD% %ASIO_URL%
+
+7z -y x %ASIO_VERSION%.tar.gz && 7z -y x %ASIO_VERSION%.tar -o%BUILD%
+del %ASIO_VERSION%.tar && del %ASIO_VERSION%.tar.gz && del %BUILD%\pax_global_header
+rename %BUILD%\asio-%ASIO_VERSION% asio
+
+cd %BUILD%\asio
+
+%APPLY_CMD% %SRC%asio\asio-vcxproj.patch
+
+if "%1"=="uwp" (
+    %APPLY_CMD% %SRC%asio\asio-uwp.patch
+)
+
+cd %SRC%
\ No newline at end of file
diff --git a/contrib/src/fetch_all.bat b/contrib/src/fetch_all.bat
index 083e77d9d9f6d0e07757d68a49fa5df37a439500..84f9a42087ccc2e450ce3e60f2e8c5d8ab44d6c2 100644
--- a/contrib/src/fetch_all.bat
+++ b/contrib/src/fetch_all.bat
@@ -26,6 +26,9 @@ ffnvcodec, ^
 ffmpeg, ^
 argon2, ^
 zlib ^
+fmt, ^
+http_parser, ^
+restinio, ^
 gmp, ^
 iconv, ^
 jsoncpp, ^
@@ -37,7 +40,6 @@ opus, ^
 pjproject, ^
 portaudio, ^
 pthreads, ^
-restbed, ^
 secp256k1, ^
 upnp, ^
 x264, ^
@@ -50,8 +52,12 @@ set DEPENDENCIES=( ^
 media-sdk, ^
 ffnvcodec, ^
 ffmpeg, ^
+asio, ^
 argon2, ^
 zlib ^
+fmt, ^
+http_parser, ^
+restinio, ^
 gmp, ^
 iconv, ^
 jsoncpp, ^
@@ -59,11 +65,11 @@ msgpack, ^
 nettle, ^
 gnutls, ^
 opendht, ^
+openssl, ^
 opus, ^
 pjproject, ^
 portaudio, ^
 pthreads, ^
-restbed, ^
 secp256k1, ^
 upnp, ^
 vpx, ^
diff --git a/contrib/src/fmt/fetch_and_patch.bat b/contrib/src/fmt/fetch_and_patch.bat
index 3b515fa0dcf6c93376de3ecb308d18b0c61b4cd6..18103d14730a856b11bfcb8fc2caefe81e8151f0 100644
--- a/contrib/src/fmt/fetch_and_patch.bat
+++ b/contrib/src/fmt/fetch_and_patch.bat
@@ -17,4 +17,10 @@ rename %BUILD%\fmt-%FMT_VERSION% fmt
 
 cd %BUILD%\fmt
 
+mkdir msvc && cd msvc
+setlocal
+set PATH=C:\\Program Files\\CMake\\bin\\;%PATH%
+cmake .. -G "Visual Studio 15 2017 Win64" -DBUILD_SHARED_LIBS=Off -DFMT_USE_USER_DEFINED_LITERALS=0
+endlocal
+
 cd %SRC%
diff --git a/contrib/src/http_parser/fetch_and_patch.bat b/contrib/src/http_parser/fetch_and_patch.bat
index 430e4915c186eabcc2ea7a5c93e613b96d531f74..328c66d23180de7a04beadc342f1ba2811723047 100644
--- a/contrib/src/http_parser/fetch_and_patch.bat
+++ b/contrib/src/http_parser/fetch_and_patch.bat
@@ -11,10 +11,12 @@ if %USE_CACHE%==1 (
     %WGET_CMD% %HTTP_PARSER_URL%
 )
 
-7z -y x %HTTP_PARSER_VERSION%.tar.gz && 7z -y x %HTTP_PARSER_VERSION%.tar -o%BUILD%
-del %HTTP_PARSER_VERSION%.tar && del %HTTP_PARSER_VERSION%.tar.gz && del %BUILD%\pax_global_header
+7z -y x v%HTTP_PARSER_VERSION%.tar.gz && 7z -y x v%HTTP_PARSER_VERSION%.tar -o%BUILD%
+del v%HTTP_PARSER_VERSION%.tar && del v%HTTP_PARSER_VERSION%.tar.gz && del %BUILD%\pax_global_header
 rename %BUILD%\http_parser-%HTTP_PARSER_VERSION% http_parser
 
 cd %BUILD%\http_parser
 
+%APPLY_CMD% %SRC%http_parser\http_parser-vs.patch
+
 cd %SRC%
diff --git a/contrib/src/http_parser/http_parser-vs.patch b/contrib/src/http_parser/http_parser-vs.patch
new file mode 100644
index 0000000000000000000000000000000000000000..dd6f3fb693c1a42be3190a09611c57cd4c3a5d9e
--- /dev/null
+++ b/contrib/src/http_parser/http_parser-vs.patch
@@ -0,0 +1,134 @@
+--- /dev/null
++++ b/http-parser.vcxproj
+@@ -0,0 +1,127 @@
++<?xml version="1.0" encoding="utf-8"?>
++<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++  <ItemGroup Label="ProjectConfigurations">
++    <ProjectConfiguration Include="Debug|Win32">
++      <Configuration>Debug</Configuration>
++      <Platform>Win32</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Release|Win32">
++      <Configuration>Release</Configuration>
++      <Platform>Win32</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Debug|x64">
++      <Configuration>Debug</Configuration>
++      <Platform>x64</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Release|x64">
++      <Configuration>Release</Configuration>
++      <Platform>x64</Platform>
++    </ProjectConfiguration>
++  </ItemGroup>
++  <PropertyGroup Label="Globals">
++    <VCProjectVersion>15.0</VCProjectVersion>
++    <ProjectGuid>{4B7A0E04-2DEE-4BBE-8963-93B6F081C10A}</ProjectGuid>
++    <RootNamespace>httpparser</RootNamespace>
++    <WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
++  </PropertyGroup>
++  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
++    <ConfigurationType>Application</ConfigurationType>
++    <UseDebugLibraries>true</UseDebugLibraries>
++    <PlatformToolset>v141</PlatformToolset>
++    <CharacterSet>MultiByte</CharacterSet>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
++    <ConfigurationType>Application</ConfigurationType>
++    <UseDebugLibraries>false</UseDebugLibraries>
++    <PlatformToolset>v141</PlatformToolset>
++    <WholeProgramOptimization>true</WholeProgramOptimization>
++    <CharacterSet>MultiByte</CharacterSet>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
++    <ConfigurationType>Application</ConfigurationType>
++    <UseDebugLibraries>true</UseDebugLibraries>
++    <PlatformToolset>v141</PlatformToolset>
++    <CharacterSet>MultiByte</CharacterSet>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
++    <ConfigurationType>StaticLibrary</ConfigurationType>
++    <UseDebugLibraries>false</UseDebugLibraries>
++    <PlatformToolset>v141</PlatformToolset>
++    <WholeProgramOptimization>true</WholeProgramOptimization>
++    <CharacterSet>MultiByte</CharacterSet>
++  </PropertyGroup>
++  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
++  <ImportGroup Label="ExtensionSettings">
++  </ImportGroup>
++  <ImportGroup Label="Shared">
++  </ImportGroup>
++  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <PropertyGroup Label="UserMacros" />
++  <PropertyGroup />
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
++    <ClCompile>
++      <WarningLevel>Level3</WarningLevel>
++      <Optimization>Disabled</Optimization>
++      <SDLCheck>true</SDLCheck>
++      <ConformanceMode>true</ConformanceMode>
++    </ClCompile>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
++    <ClCompile>
++      <WarningLevel>Level3</WarningLevel>
++      <Optimization>Disabled</Optimization>
++      <SDLCheck>true</SDLCheck>
++      <ConformanceMode>true</ConformanceMode>
++    </ClCompile>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
++    <ClCompile>
++      <WarningLevel>Level3</WarningLevel>
++      <Optimization>MaxSpeed</Optimization>
++      <FunctionLevelLinking>true</FunctionLevelLinking>
++      <IntrinsicFunctions>true</IntrinsicFunctions>
++      <SDLCheck>true</SDLCheck>
++      <ConformanceMode>true</ConformanceMode>
++    </ClCompile>
++    <Link>
++      <EnableCOMDATFolding>true</EnableCOMDATFolding>
++      <OptimizeReferences>true</OptimizeReferences>
++    </Link>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
++    <ClCompile>
++      <WarningLevel>Level3</WarningLevel>
++      <Optimization>MaxSpeed</Optimization>
++      <FunctionLevelLinking>true</FunctionLevelLinking>
++      <IntrinsicFunctions>true</IntrinsicFunctions>
++      <SDLCheck>true</SDLCheck>
++      <ConformanceMode>true</ConformanceMode>
++      <AdditionalIncludeDirectories>$(ProjectDir)..\;$(ProjectDir)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++    </ClCompile>
++    <Link>
++      <EnableCOMDATFolding>true</EnableCOMDATFolding>
++      <OptimizeReferences>true</OptimizeReferences>
++    </Link>
++  </ItemDefinitionGroup>
++  <ItemGroup>
++    <ClCompile Include="contrib\parsertrace.c" />
++    <ClCompile Include="contrib\url_parser.c" />
++    <ClCompile Include="http_parser.c" />
++  </ItemGroup>
++  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
++  <ImportGroup Label="ExtensionTargets">
++  </ImportGroup>
++</Project>
+\ No newline at end of file
+-- 
+2.19.0.windows.1
+
diff --git a/contrib/src/opendht/fetch_and_patch.bat b/contrib/src/opendht/fetch_and_patch.bat
index 6fa48ec46f817a876c535b3c4d099428c83442a8..3bbdc068afc1051a8452705c0a5b719acbc46269 100644
--- a/contrib/src/opendht/fetch_and_patch.bat
+++ b/contrib/src/opendht/fetch_and_patch.bat
@@ -1,6 +1,6 @@
 set BUILD=%SRC%..\build
 
-set OPENDHT_VERSION=1.10.1
+set OPENDHT_VERSION=6a760a629cb7493e6c1e685cb9ceecf10268f338
 set OPENDHT_URL=https://github.com/savoirfairelinux/opendht/archive/%OPENDHT_VERSION%.tar.gz
 
 mkdir %BUILD%
diff --git a/contrib/src/openssl/fetch_and_patch.bat b/contrib/src/openssl/fetch_and_patch.bat
new file mode 100644
index 0000000000000000000000000000000000000000..f986ac8a4c5b8c3dcbaf8bddd58cd8583ef8b723
--- /dev/null
+++ b/contrib/src/openssl/fetch_and_patch.bat
@@ -0,0 +1,20 @@
+set BUILD=%SRC%..\build
+
+set OPENSSL_VERSION=5cc1e25bc76bcf0db03bc37bd64b3290727963b6
+set OPENSSL_URL=https://github.com/Microsoft/openssl/archive/%OPENSSL_VERSION%.tar.gz
+
+mkdir %BUILD%
+
+%WGET_CMD% %OPENSSL_URL%
+
+7z -y x %OPENSSL_VERSION%.tar.gz && 7z -y x %OPENSSL_VERSION%.tar -o%BUILD%
+del %OPENSSL_VERSION%.tar && del %OPENSSL_VERSION%.tar.gz && del %BUILD%\pax_global_header
+rename %BUILD%\openssl-%OPENSSL_VERSION% openssl
+
+cd %BUILD%\openssl
+
+if "%1"=="uwp" (
+    %APPLY_CMD% %SRC%\openssl-uwp.patch
+)
+
+cd %SRC%
\ No newline at end of file
diff --git a/contrib/src/openssl/openssl-uwp.patch b/contrib/src/openssl/openssl-uwp.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1b33d2d54be50b5c2c08713bb611027983697052
--- /dev/null
+++ b/contrib/src/openssl/openssl-uwp.patch
@@ -0,0 +1,30 @@
+--- a/ms/setVSvars.bat
++++ b/ms/setVSvars.bat
+@@ -166,7 +166,7 @@ exit /b
+ 	
+ :set_VS15VC
+ 	if not "%_VS15VC%"=="" goto :eof
+-	for /f "usebackq tokens=1* delims=: " %%i in (`%~dp0\vswhere -latest -requires Microsoft.VisualStudio.Workload.Universal -requires Microsoft.VisualStudio.ComponentGroup.UWP.VC`) do (
++	for /f "usebackq tokens=1* delims=: " %%i in (`%~dp0\vswhere -latest -requires Microsoft.VisualStudio.Workload.Universal`) do (
+ 	if /i "%%i"=="installationPath" set _VS15VC=%%j\VC\Auxiliary\Build
+ 	)
+ 	if not "%_VS15VC%"=="" goto :eof
+--- a/ms/winrt.cpp
++++ b/ms/winrt.cpp
+@@ -291,13 +291,6 @@ extern "C"
+ 		{
+ 		return 0;
+ 		}
+-
+-	BOOL WINAPI FlushConsoleInputBuffer(
+-									   _In_  HANDLE hConsoleInput
+-									   )
+-		{
+-		return 0;
+-		}
+ 	BOOL DeleteDC(
+ 				 _In_  HDC hdc
+ 				 )
+-- 
+2.10.2.windows.1
+
diff --git a/contrib/src/restinio/fetch_and_patch.bat b/contrib/src/restinio/fetch_and_patch.bat
index 60a8348c17b5b4240666bc0cc8d723f3cc821f71..35109f25691b1051b280f9951f8bfa91d1033b55 100644
--- a/contrib/src/restinio/fetch_and_patch.bat
+++ b/contrib/src/restinio/fetch_and_patch.bat
@@ -1,7 +1,7 @@
 set BUILD=%SRC%..\build
 
-RESTINIO_VERSION=v.0.5.1
-RESTINIO_URL=https://github.com/Stiffstream/restinio/archive/%RESTINIO_VERSION%.tar.gz
+set RESTINIO_VERSION=v.0.5.1.2
+set RESTINIO_URL=https://github.com/Stiffstream/restinio/archive/%RESTINIO_VERSION%.tar.gz
 
 mkdir %BUILD%