]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add patch for FS-2746
authorJeff Lenk <jeff@jefflenk.com>
Tue, 9 Oct 2012 03:00:45 +0000 (22:00 -0500)
committerJeff Lenk <jeff@jefflenk.com>
Tue, 9 Oct 2012 03:00:45 +0000 (22:00 -0500)
patches/FS-2746.diff [new file with mode: 0644]

diff --git a/patches/FS-2746.diff b/patches/FS-2746.diff
new file mode 100644 (file)
index 0000000..39a88f6
--- /dev/null
@@ -0,0 +1,69667 @@
+ .gitignore                                         |   71 +-
+ Freeswitch.2008.sln                                | 5902 +++++++--------
+ Freeswitch.2010.sln                                | 7876 ++++++++++----------
+ configure.in                                       |   33 +-
+ libs/.gitignore                                    |    8 +-
+ .../win32/apr-util/libaprutil.2010.vcxproj.filters |  609 +-
+ libs/xmlrpc-c/.cvsignore                           |   18 -
+ libs/xmlrpc-c/.update                              |    1 -
+ libs/xmlrpc-c/GNUmakefile                          |   53 +-
+ libs/xmlrpc-c/Makefile.common                      |  272 -
+ libs/xmlrpc-c/Makefile.config.in                   |   79 -
+ libs/xmlrpc-c/Makefile.srcdir.in                   |    1 -
+ libs/xmlrpc-c/Makefile.version                     |   11 -
+ libs/xmlrpc-c/Windows/CleanWin32.bat               |   73 +-
+ libs/xmlrpc-c/Windows/ReadMeWin32.txt              |  130 +-
+ libs/xmlrpc-c/Windows/abyss.2008.vcproj            | 1298 ----
+ libs/xmlrpc-c/Windows/abyss.2010.vcxproj           |  437 --
+ libs/xmlrpc-c/Windows/abyss.2010.vcxproj.filters   |  131 -
+ libs/xmlrpc-c/Windows/cpptest.dsp                  |  249 +-
+ libs/xmlrpc-c/Windows/gennmtab.2008.vcproj         |  242 -
+ libs/xmlrpc-c/Windows/mkvers.bat                   |  106 +-
+ libs/xmlrpc-c/Windows/query_meerkat.dsp            |  100 -
+ libs/xmlrpc-c/Windows/rpctest.dsp                  |  428 +-
+ libs/xmlrpc-c/Windows/transport_config.h           |   13 -
+ libs/xmlrpc-c/Windows/win32_config.h               |   80 +-
+ libs/xmlrpc-c/Windows/xmlparse.2008.vcproj         |  387 -
+ libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj        |  198 -
+ libs/xmlrpc-c/Windows/xmlrpc-c/config.h            |   38 -
+ libs/xmlrpc-c/Windows/xmlrpc.2008.vcproj           | 2042 -----
+ libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj          |  620 --
+ libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj.filters  |  287 -
+ libs/xmlrpc-c/Windows/xmlrpc.dsp                   |  950 +--
+ libs/xmlrpc-c/Windows/xmlrpc.dsw                   |  514 +-
+ libs/xmlrpc-c/Windows/xmlrpc_config.h              |  158 -
+ libs/xmlrpc-c/Windows/xmlrpc_win32_config.h        |   69 +-
+ libs/xmlrpc-c/Windows/xmlrpccpp.dsp                |  361 +-
+ libs/xmlrpc-c/Windows/xmltok.2008.vcproj           |  455 --
+ libs/xmlrpc-c/Windows/xmltok.2010.vcxproj          |  213 -
+ libs/xmlrpc-c/Windows/xmltok.dsp                   |  276 +-
+ libs/xmlrpc-c/common.mk                            |  130 +-
+ libs/xmlrpc-c/conf/abyss_root/conf/abyss.conf      |   56 -
+ libs/xmlrpc-c/conf/abyss_root/conf/mime.types      |  276 -
+ libs/xmlrpc-c/conf/abyss_root/htdocs/index.htm     |   21 -
+ libs/xmlrpc-c/config.mk.in                         |   97 +-
+ libs/xmlrpc-c/configure.gnu                        |    4 -
+ libs/xmlrpc-c/configure.in                         |  165 +-
+ libs/xmlrpc-c/debian/README.Debian                 |    7 -
+ libs/xmlrpc-c/debian/changelog                     |   22 -
+ libs/xmlrpc-c/debian/control                       |   30 -
+ libs/xmlrpc-c/debian/copyright                     |  128 -
+ libs/xmlrpc-c/debian/postinst                      |   47 -
+ libs/xmlrpc-c/debian/postrm                        |   39 -
+ libs/xmlrpc-c/debian/rules                         |   97 -
+ libs/xmlrpc-c/debian/xmlrpc-c-apps.files           |    4 -
+ libs/xmlrpc-c/debian/xmlrpc-c-dev.files            |   10 -
+ libs/xmlrpc-c/debian/xmlrpc-c0.docs                |    6 -
+ libs/xmlrpc-c/debian/xmlrpc-c0.examples            |    3 -
+ libs/xmlrpc-c/debian/xmlrpc-c0.files               |    2 -
+ libs/xmlrpc-c/dll-common.make                      |   22 -
+ libs/xmlrpc-c/doc/INSTALL                          |   44 +-
+ libs/xmlrpc-c/dylib-common.make                    |   37 -
+ libs/xmlrpc-c/examples/.cvsignore                  |   11 -
+ libs/xmlrpc-c/examples/Makefile                    |   57 +-
+ libs/xmlrpc-c/examples/README                      |   15 +-
+ libs/xmlrpc-c/examples/auth_client.c               |    2 +-
+ libs/xmlrpc-c/examples/cpp/.cvsignore              |    4 -
+ libs/xmlrpc-c/examples/cpp/Makefile                |   58 +-
+ libs/xmlrpc-c/examples/cpp/meerkat-app-list.cpp    |  108 -
+ libs/xmlrpc-c/examples/cpp/pstream_client.cpp      |    2 +-
+ .../xmlrpc-c/examples/cpp/pstream_inetd_server.cpp |    9 +-
+ libs/xmlrpc-c/examples/cpp/xmlrpc_inetd_server.cpp |   25 +-
+ .../examples/cpp/xmlrpc_sample_add_server.cpp      |    7 +-
+ libs/xmlrpc-c/examples/gen_sample_add_xml.c        |    2 +-
+ libs/xmlrpc-c/examples/interrupted_client.c        |    3 +-
+ libs/xmlrpc-c/examples/interrupted_server.c        |   17 +-
+ libs/xmlrpc-c/examples/query-meerkat.c             |  156 -
+ libs/xmlrpc-c/examples/synch_client.c              |    4 +-
+ libs/xmlrpc-c/examples/xmlrpc_asynch_client.c      |    6 +-
+ libs/xmlrpc-c/examples/xmlrpc_inetd_server.c       |   15 +-
+ libs/xmlrpc-c/examples/xmlrpc_loop_server.c        |   15 +-
+ libs/xmlrpc-c/examples/xmlrpc_sample_add_client.c  |   21 +-
+ libs/xmlrpc-c/examples/xmlrpc_sample_add_server.c  |   33 +-
+ .../examples/xmlrpc_sample_add_server_cgi.c        |   22 +-
+ libs/xmlrpc-c/examples/xmlrpc_server_validatee.c   |   18 +-
+ libs/xmlrpc-c/examples/xmlrpc_socket_server.c      |   21 +-
+ libs/xmlrpc-c/include/Makefile                     |   18 +-
+ libs/xmlrpc-c/include/xmlrpc-c/abyss.h             |  144 +-
+ libs/xmlrpc-c/include/xmlrpc-c/abyss_winsock.h     |    4 +-
+ libs/xmlrpc-c/include/xmlrpc-c/base.h              |  282 +-
+ libs/xmlrpc-c/include/xmlrpc-c/base.hpp            |  252 +-
+ libs/xmlrpc-c/include/xmlrpc-c/base64.hpp          |    5 +-
+ libs/xmlrpc-c/include/xmlrpc-c/base_int.h          |   40 +-
+ libs/xmlrpc-c/include/xmlrpc-c/c_util.h            |   23 +-
+ libs/xmlrpc-c/include/xmlrpc-c/client.h            |  141 +-
+ libs/xmlrpc-c/include/xmlrpc-c/client.hpp          |   59 +-
+ libs/xmlrpc-c/include/xmlrpc-c/client_global.h     |   17 +
+ libs/xmlrpc-c/include/xmlrpc-c/client_int.h        |   29 +
+ libs/xmlrpc-c/include/xmlrpc-c/client_simple.hpp   |    4 +-
+ .../xmlrpc-c/include/xmlrpc-c/client_transport.hpp |  128 +-
+ libs/xmlrpc-c/include/xmlrpc-c/config.h.in         |   37 -
+ libs/xmlrpc-c/include/xmlrpc-c/girerr.hpp          |    9 +-
+ libs/xmlrpc-c/include/xmlrpc-c/girmem.hpp          |   10 +-
+ libs/xmlrpc-c/include/xmlrpc-c/inttypes.h          |    3 +
+ libs/xmlrpc-c/include/xmlrpc-c/oldcppwrapper.hpp   |   19 +-
+ libs/xmlrpc-c/include/xmlrpc-c/packetsocket.hpp    |   64 +-
+ libs/xmlrpc-c/include/xmlrpc-c/registry.hpp        |   90 +-
+ libs/xmlrpc-c/include/xmlrpc-c/select_int.h        |    4 +-
+ libs/xmlrpc-c/include/xmlrpc-c/server.h            |   42 +
+ libs/xmlrpc-c/include/xmlrpc-c/server_abyss.h      |   81 +-
+ libs/xmlrpc-c/include/xmlrpc-c/server_abyss.hpp    |  110 +-
+ libs/xmlrpc-c/include/xmlrpc-c/server_cgi.h        |   11 +-
+ libs/xmlrpc-c/include/xmlrpc-c/server_pstream.hpp  |  139 +-
+ libs/xmlrpc-c/include/xmlrpc-c/server_w32httpsys.h |    4 +-
+ libs/xmlrpc-c/include/xmlrpc-c/sleep_int.h         |   11 +
+ libs/xmlrpc-c/include/xmlrpc-c/string_int.h        |   53 +-
+ libs/xmlrpc-c/include/xmlrpc-c/time_int.h          |    4 +
+ libs/xmlrpc-c/include/xmlrpc-c/timeout.hpp         |    7 +-
+ libs/xmlrpc-c/include/xmlrpc-c/transport.h         |    5 +
+ libs/xmlrpc-c/include/xmlrpc-c/transport_int.h     |   42 -
+ libs/xmlrpc-c/include/xmlrpc-c/util.h              |   36 +-
+ libs/xmlrpc-c/include/xmlrpc-c/util_int.h          |   13 +-
+ libs/xmlrpc-c/include/xmlrpc-c/xml.hpp             |   24 +-
+ libs/xmlrpc-c/irix-common.make                     |   31 -
+ libs/xmlrpc-c/lib/abyss/change.log                 |   34 -
+ libs/xmlrpc-c/lib/abyss/htdocs/index.htm           |   21 -
+ libs/xmlrpc-c/lib/abyss/patch_notes.txt            |  114 -
+ libs/xmlrpc-c/lib/abyss/readme.txt                 |  160 -
+ libs/xmlrpc-c/lib/abyss/src/Abyss.dsp              |  136 -
+ libs/xmlrpc-c/lib/abyss/src/Abyss.dsw              |   29 -
+ libs/xmlrpc-c/lib/abyss/src/Makefile               |   28 +-
+ libs/xmlrpc-c/lib/abyss/src/channel.c              |    3 +-
+ libs/xmlrpc-c/lib/abyss/src/channel.h              |    2 +-
+ libs/xmlrpc-c/lib/abyss/src/chanswitch.c           |    3 +-
+ libs/xmlrpc-c/lib/abyss/src/chanswitch.h           |    2 +-
+ libs/xmlrpc-c/lib/abyss/src/conf.c                 |    7 +-
+ libs/xmlrpc-c/lib/abyss/src/conn.c                 |  302 +-
+ libs/xmlrpc-c/lib/abyss/src/conn.h                 |   19 +-
+ libs/xmlrpc-c/lib/abyss/src/data.c                 |   22 +-
+ libs/xmlrpc-c/lib/abyss/src/file.c                 |    1 +
+ libs/xmlrpc-c/lib/abyss/src/handler.c              |   49 +-
+ libs/xmlrpc-c/lib/abyss/src/handler.h              |    2 +
+ libs/xmlrpc-c/lib/abyss/src/http.c                 |  407 +-
+ libs/xmlrpc-c/lib/abyss/src/http.h                 |    8 +-
+ libs/xmlrpc-c/lib/abyss/src/main.c                 |    8 +-
+ libs/xmlrpc-c/lib/abyss/src/response.c             |  275 +-
+ libs/xmlrpc-c/lib/abyss/src/server.c               |  338 +-
+ libs/xmlrpc-c/lib/abyss/src/server.h               |    8 +-
+ libs/xmlrpc-c/lib/abyss/src/session.c              |   55 +-
+ libs/xmlrpc-c/lib/abyss/src/session.h              |   24 +-
+ libs/xmlrpc-c/lib/abyss/src/socket.c               |    3 +-
+ libs/xmlrpc-c/lib/abyss/src/socket.h               |    4 +-
+ libs/xmlrpc-c/lib/abyss/src/socket_openssl.c       |    2 +
+ libs/xmlrpc-c/lib/abyss/src/socket_unix.c          |  175 +-
+ libs/xmlrpc-c/lib/abyss/src/socket_win.c           |  319 +-
+ libs/xmlrpc-c/lib/abyss/src/thread.c               |  228 -
+ libs/xmlrpc-c/lib/abyss/src/thread.h               |    4 +-
+ libs/xmlrpc-c/lib/abyss/src/thread_fork.c          |   11 +-
+ libs/xmlrpc-c/lib/abyss/src/thread_pthread.c       |   72 +-
+ libs/xmlrpc-c/lib/abyss/src/thread_windows.c       |   27 +-
+ libs/xmlrpc-c/lib/abyss/version.txt                |    1 -
+ libs/xmlrpc-c/lib/curl_transport/Makefile          |   20 +-
+ .../lib/curl_transport/xmlrpc_curl_transport.c     | 1838 ++---
+ .../lib/curl_transport/xmlrpc_curl_transport.h     |    8 -
+ libs/xmlrpc-c/lib/expat/.cvsignore                 |    1 -
+ libs/xmlrpc-c/lib/expat/Makefile.in                |  314 -
+ libs/xmlrpc-c/lib/expat/expat.dsw                  |   74 -
+ libs/xmlrpc-c/lib/expat/gennmtab/.cvsignore        |    1 -
+ libs/xmlrpc-c/lib/expat/gennmtab/Makefile          |    8 +-
+ libs/xmlrpc-c/lib/expat/gennmtab/gennmtab.dsp      |  110 -
+ libs/xmlrpc-c/lib/expat/sample/.cvsignore          |    1 -
+ libs/xmlrpc-c/lib/expat/sample/Makefile.in         |  208 -
+ libs/xmlrpc-c/lib/expat/sample/build.bat           |    4 -
+ libs/xmlrpc-c/lib/expat/sample/elements.c          |   46 -
+ libs/xmlrpc-c/lib/expat/xmlparse/.cvsignore        |    1 -
+ libs/xmlrpc-c/lib/expat/xmlparse/Makefile.in       |  344 -
+ libs/xmlrpc-c/lib/expat/xmlparse/xmlparse.c        |  207 +-
+ libs/xmlrpc-c/lib/expat/xmlparse/xmlparse.dsp      |  279 -
+ libs/xmlrpc-c/lib/expat/xmlparse/xmlparse.h        |   94 +-
+ libs/xmlrpc-c/lib/expat/xmltok/.cvsignore          |    1 -
+ libs/xmlrpc-c/lib/expat/xmltok/Makefile            |   21 +-
+ libs/xmlrpc-c/lib/expat/xmltok/nametab.h           |  300 +-
+ libs/xmlrpc-c/lib/expat/xmltok/xmlrole.h           |    9 +-
+ libs/xmlrpc-c/lib/expat/xmltok/xmltok.c            |   62 +-
+ libs/xmlrpc-c/lib/expat/xmltok/xmltok.dsp          |  259 -
+ libs/xmlrpc-c/lib/expat/xmltok/xmltok.h            |   41 +-
+ libs/xmlrpc-c/lib/expat/xmltok/xmltok_impl.c       |  391 +-
+ libs/xmlrpc-c/lib/expat/xmlwf/.cvsignore           |    1 -
+ libs/xmlrpc-c/lib/expat/xmlwf/xmlfile.c            |    2 +-
+ libs/xmlrpc-c/lib/libutil/Makefile                 |   18 +-
+ libs/xmlrpc-c/lib/libutil/asprintf.c               |  135 +-
+ libs/xmlrpc-c/lib/libutil/error.c                  |    4 +-
+ libs/xmlrpc-c/lib/libutil/make_printable.c         |    2 +-
+ libs/xmlrpc-c/lib/libutil/memblock.c               |   47 +-
+ libs/xmlrpc-c/lib/libutil/select.c                 |    6 +-
+ libs/xmlrpc-c/lib/libutil/utf8.c                   |  370 +-
+ libs/xmlrpc-c/lib/libwww_transport/Makefile        |   15 +-
+ .../lib/libwww_transport/xmlrpc_libwww_transport.c |    1 +
+ .../lib/libwww_transport/xmlrpc_libwww_transport.h |    8 -
+ libs/xmlrpc-c/lib/util/Makefile                    |   15 +-
+ libs/xmlrpc-c/lib/util/casprintf.c                 |   86 +-
+ libs/xmlrpc-c/lib/util/cmdline_parser.c            |    2 +
+ libs/xmlrpc-c/lib/util/include/int.h               |   16 +-
+ libs/xmlrpc-c/lib/util/include/mallocvar.h         |    4 +-
+ libs/xmlrpc-c/lib/util/include/pthreadx.h          |   18 +-
+ libs/xmlrpc-c/lib/util/include/sstring.h           |   15 -
+ libs/xmlrpc-c/lib/util/include/stdargx.h           |    2 +-
+ libs/xmlrpc-c/lib/util/pthreadx_win32.c            |   54 +-
+ libs/xmlrpc-c/lib/util/string_parser.c             |   10 +-
+ libs/xmlrpc-c/lib/util/stripcaseeq.c               |    1 -
+ libs/xmlrpc-c/lib/wininet_transport/Makefile       |   13 +-
+ .../wininet_transport/xmlrpc_wininet_transport.c   |   19 +-
+ .../wininet_transport/xmlrpc_wininet_transport.h   |    8 -
+ libs/xmlrpc-c/ltconfig                             | 3078 --------
+ libs/xmlrpc-c/src/.cvsignore                       |    6 -
+ libs/xmlrpc-c/src/Makefile                         |   64 +-
+ libs/xmlrpc-c/src/cpp/.cvsignore                   |    1 -
+ libs/xmlrpc-c/src/cpp/Makefile                     |  179 +-
+ libs/xmlrpc-c/src/cpp/base64.cpp                   |    2 +-
+ libs/xmlrpc-c/src/cpp/client.cpp                   |   47 +-
+ libs/xmlrpc-c/src/cpp/cpptest.cpp                  | 1187 ---
+ libs/xmlrpc-c/src/cpp/curl.cpp                     |  147 +-
+ libs/xmlrpc-c/src/cpp/env_wrap.hpp                 |    3 +-
+ libs/xmlrpc-c/src/cpp/libwww.cpp                   |    3 +-
+ libs/xmlrpc-c/src/cpp/packetsocket.cpp             |  561 +-
+ libs/xmlrpc-c/src/cpp/pstream.cpp                  |   49 +-
+ libs/xmlrpc-c/src/cpp/registry.cpp                 |  170 +-
+ libs/xmlrpc-c/src/cpp/server_abyss.cpp             |  571 +-
+ libs/xmlrpc-c/src/cpp/server_pstream.cpp           |  265 +-
+ libs/xmlrpc-c/src/cpp/test/Makefile                |   33 +-
+ libs/xmlrpc-c/src/cpp/test/registry.cpp            |  270 +-
+ libs/xmlrpc-c/src/cpp/test/server_abyss.cpp        |   61 +-
+ libs/xmlrpc-c/src/cpp/test/server_pstream.cpp      |  777 +-
+ libs/xmlrpc-c/src/cpp/test/test.cpp                |  403 +-
+ libs/xmlrpc-c/src/cpp/test/testclient.cpp          |   81 +-
+ libs/xmlrpc-c/src/cpp/value.cpp                    |  232 +-
+ libs/xmlrpc-c/src/cpp/xml.cpp                      |  155 +-
+ libs/xmlrpc-c/src/double.c                         |   29 +-
+ libs/xmlrpc-c/src/method.c                         |   18 +-
+ libs/xmlrpc-c/src/method.h                         |    5 +
+ libs/xmlrpc-c/src/parse_value.c                    |   95 +-
+ libs/xmlrpc-c/src/registry.c                       |   73 +-
+ libs/xmlrpc-c/src/system_method.c                  |  172 +-
+ libs/xmlrpc-c/src/test/.cvsignore                  |    3 -
+ libs/xmlrpc-c/src/test/Makefile                    |   21 +-
+ libs/xmlrpc-c/src/test/abyss.c                     |   13 +-
+ libs/xmlrpc-c/src/test/cgi.c                       |    2 +-
+ libs/xmlrpc-c/src/test/cgitest1.c                  |    2 +-
+ libs/xmlrpc-c/src/test/client.c                    |   76 +-
+ libs/xmlrpc-c/src/test/method_registry.c           |  201 +-
+ libs/xmlrpc-c/src/test/parse_xml.c                 |   62 +-
+ libs/xmlrpc-c/src/test/req_out_of_order.xml        |   12 -
+ libs/xmlrpc-c/src/test/req_value_name.xml          |   14 -
+ libs/xmlrpc-c/src/test/sample_add_call.xml         |    8 -
+ libs/xmlrpc-c/src/test/serialize.c                 |   12 +-
+ libs/xmlrpc-c/src/test/serialize_value.c           |    3 +-
+ libs/xmlrpc-c/src/test/server_abyss.c              |   43 +-
+ libs/xmlrpc-c/src/test/test.c                      |   87 +-
+ libs/xmlrpc-c/src/test/test.h                      |  109 -
+ libs/xmlrpc-c/src/test/value.c                     |  258 +-
+ libs/xmlrpc-c/src/test/xml_data.h                  |    3 +
+ libs/xmlrpc-c/src/trace.c                          |    3 +-
+ libs/xmlrpc-c/src/version.c                        |   11 +
+ libs/xmlrpc-c/src/xmlrpc_array.c                   |   37 +-
+ libs/xmlrpc-c/src/xmlrpc_base64.c                  |  195 +-
+ libs/xmlrpc-c/src/xmlrpc_build.c                   |   26 +-
+ libs/xmlrpc-c/src/xmlrpc_builddecomp.c             |  973 ---
+ libs/xmlrpc-c/src/xmlrpc_client.c                  |  403 +-
+ libs/xmlrpc-c/src/xmlrpc_client_global.c           |  114 +-
+ libs/xmlrpc-c/src/xmlrpc_data.c                    |   37 +-
+ libs/xmlrpc-c/src/xmlrpc_datetime.c                |  587 +-
+ libs/xmlrpc-c/src/xmlrpc_decompose.c               |    7 +-
+ libs/xmlrpc-c/src/xmlrpc_expat.c                   |   32 +-
+ libs/xmlrpc-c/src/xmlrpc_libxml2.c                 |   15 +-
+ libs/xmlrpc-c/src/xmlrpc_parse.c                   |  161 +-
+ libs/xmlrpc-c/src/xmlrpc_registry.c                |  830 ---
+ libs/xmlrpc-c/src/xmlrpc_serialize.c               |  176 +-
+ libs/xmlrpc-c/src/xmlrpc_server_abyss.c            |  672 +-
+ libs/xmlrpc-c/src/xmlrpc_server_cgi.c              |   13 +-
+ libs/xmlrpc-c/src/xmlrpc_server_info.c             |    7 +
+ libs/xmlrpc-c/src/xmlrpc_server_w32httpsys.c       |   42 +-
+ libs/xmlrpc-c/src/xmlrpc_string.c                  |   34 +-
+ libs/xmlrpc-c/src/xmlrpc_struct.c                  |  114 +-
+ libs/xmlrpc-c/src/xmlrpc_strutil.c                 |   75 -
+ libs/xmlrpc-c/src/xmlrpc_support.c                 |  394 -
+ libs/xmlrpc-c/src/xmlrpc_transport.c               |  143 -
+ libs/xmlrpc-c/src/xmlrpc_utf8.c                    |  376 -
+ libs/xmlrpc-c/tools/.cvsignore                     |    1 -
+ libs/xmlrpc-c/tools/Makefile                       |   13 +-
+ libs/xmlrpc-c/tools/Makefile.common                |   47 -
+ libs/xmlrpc-c/tools/common.mk                      |    2 +-
+ libs/xmlrpc-c/tools/lib/Makefile                   |    8 +-
+ libs/xmlrpc-c/tools/lib/dumpvalue.c                |   12 +-
+ libs/xmlrpc-c/tools/turbocharger/.cvsignore        |    1 -
+ libs/xmlrpc-c/tools/xml-rpc-api2cpp/.cvsignore     |    1 -
+ libs/xmlrpc-c/tools/xml-rpc-api2cpp/Makefile       |   29 +-
+ libs/xmlrpc-c/tools/xml-rpc-api2cpp/README         |    6 -
+ libs/xmlrpc-c/tools/xml-rpc-api2txt                |  147 -
+ libs/xmlrpc-c/tools/xml-rpc-api2txt.1              |   47 -
+ libs/xmlrpc-c/tools/xmlrpc/.cvsignore              |    1 -
+ libs/xmlrpc-c/tools/xmlrpc/Makefile                |    8 +-
+ libs/xmlrpc-c/tools/xmlrpc/xmlrpc.c                |   74 +-
+ libs/xmlrpc-c/tools/xmlrpc/xmlrpc.html             |    6 +-
+ libs/xmlrpc-c/tools/xmlrpc_cpp_proxy/Makefile      |   10 +-
+ libs/xmlrpc-c/tools/xmlrpc_pstream/Makefile        |   10 +-
+ .../tools/xmlrpc_pstream/xmlrpc_pstream.cpp        |    7 +-
+ .../tools/xmlrpc_pstream/xmlrpc_pstream.html       |    2 +-
+ libs/xmlrpc-c/tools/xmlrpc_transport/.cvsignore    |    1 -
+ libs/xmlrpc-c/tools/xmlrpc_transport/Makefile      |   17 +-
+ .../tools/xmlrpc_transport/xmlrpc_transport        |  120 -
+ .../tools/xmlrpc_transport/xmlrpc_transport.c      |    2 +-
+ libs/xmlrpc-c/transport_config.make                |   39 -
+ libs/xmlrpc-c/unix-common.make                     |   79 -
+ libs/xmlrpc-c/version.h                            |   16 +-
+ libs/xmlrpc-c/xmlrpc-c-config.in                   |  180 -
+ libs/xmlrpc-c/xmlrpc-c-config.main                 |   24 +-
+ libs/xmlrpc-c/xmlrpc-c-config.test.in              |  153 -
+ libs/xmlrpc-c/xmlrpc-c-config.test.main            |   33 +-
+ libs/xmlrpc-c/xmlrpc_amconfig.h.in                 |    9 +-
+ libs/xmlrpc-c/xmlrpc_config.h.in                   |   76 +-
+ src/include/switch_event.h                         |   16 +-
+ src/include/switch_xml.h                           |    8 +-
+ src/mod/applications/mod_commands/mod_commands.c   |  750 +-
+ src/mod/languages/mod_lua/mod_lua.cpp              |   10 +-
+ src/mod/xml_int/mod_xml_rpc/Makefile               |   27 +-
+ .../xml_int/mod_xml_rpc/mod_xml_rpc.2010.vcxproj   |  320 +-
+ src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c          |  467 +-
+ src/switch_loadable_module.c                       |    4 +-
+ src/switch_xml.c                                   |   25 +-
+ 328 files changed, 20770 insertions(+), 34260 deletions(-)
+
+diff --git a/.gitignore b/.gitignore
+index 1039628..ffc7fb1 100644
+--- a/.gitignore
++++ b/.gitignore
+@@ -29,6 +29,7 @@
+ *.ilk
+ *.bsc
+ *.pch
++*.opensdf
+ *.tar
+ *.gz
+ *.tgz
+@@ -50,6 +51,7 @@ TAGS
+ *.unsuccessfulbuild
+ *.cache
+ *.lastbuildstate
++*.sdf
+ /w32/Library/lastversion
+ /w32/Library/tmpVersion.Bat
+@@ -81,9 +83,9 @@ TAGS
+ /tone2wav
+ /All/
+-/Debug/
++Debug/
+ /bin/
+-/Release/
++Release/
+ /ipch/
+ /*.log
+@@ -165,63 +167,18 @@ TAGS
+ /src/mod/say/mod_say_zh/Makefile
+ BuildLog.htm
+-/w32/Console/Debug/
+-/w32/Console/Release/
+-/w32/Library/Debug/
+-/w32/Library/Release/
+-Freeswitch.2010.sdf
++Win32/
++win32/
++!/libs/win32/
++*.suo
++*.sdf
++x64/
++ipch/
+-/Win32/
+-/x64/
+-src/mod/codecs/mod_celt/*/*/mod_celt.log
+-src/mod/endpoints/mod_skinny/*/*/mod_skinny_2010.log
+-src/mod/formats/mod_shout/*/*/mod_shout.log
++/libs/xmlrpc-c/tools/xml-rpc-api2txt
+ /w32/Setup/obj
+-/src/mod/asr_tts/mod_pocketsphinx/x64/Debug/mod_pocketsphinx_manifest.rc
+-/src/mod/endpoints/mod_h323/x64/Debug/mod_h323_manifest.rc
+-/src/mod/endpoints/mod_rtmp/Win32/Debug/mod_rtmp_2010.log
+-/src/mod/endpoints/mod_rtmp/Win32/Release/mod_rtmp_2010.log
+-/src/mod/endpoints/mod_rtmp/x64/Debug/mod_rtmp_2010.log
+-/src/mod/endpoints/mod_rtmp/x64/Debug/mod_rtmp_manifest.rc
+-/src/mod/endpoints/mod_rtmp/x64/Release/mod_rtmp_2010.log
+-/src/mod/endpoints/mod_skinny/x64/Debug/mod_skinny_manifest.rc
+-/src/mod/languages/mod_managed/x64/Debug_CLR/FREESWITCH.MANAGED.DLL.metagen
+-/src/mod/languages/mod_managed/x64/Debug_CLR/RSAENH.DLL.bi
+-/src/mod/languages/mod_managed/x64/Debug_CLR/TZRES.DLL.bi
+-/w32/Library/x64/Debug/FreeSwitch_manifest.rc
+-/src/mod/endpoints/mod_h323/Win32/Debug/mod_h323_manifest.rc
+-/src/mod/endpoints/mod_rtmp/Win32/Debug/mod_rtmp_manifest.rc
+-/src/mod/endpoints/mod_skinny/Win32/Debug/mod_skinny_manifest.rc
+-/src/mod/languages/mod_managed/Win32/Debug_CLR/FREESWITCH.MANAGED.DLL.metagen
+-/src/mod/languages/mod_managed/Win32/Debug_CLR/RSAENH.DLL.bi
+-/src/mod/languages/mod_managed/Win32/Debug_CLR/TZRES.DLL.bi
+-/w32/Library/Win32/Debug/FreeSwitch_manifest.rc
+-/src/mod/languages/mod_managed/Win32/Release_CLR/FREESWITCH.MANAGED.DLL.metagen
+-/src/mod/languages/mod_managed/Win32/Release_CLR/RSAENH.DLL.bi
+-/src/mod/languages/mod_managed/Win32/Release_CLR/TZRES.DLL.bi
+-/src/mod/languages/mod_managed/x64/Release_CLR/FREESWITCH.MANAGED.DLL.metagen
+-/src/mod/languages/mod_managed/x64/Release_CLR/RSAENH.DLL.bi
+-/src/mod/languages/mod_managed/x64/Release_CLR/TZRES.DLL.bi
+-libs/apr-util/a.out.dSYM/Contents/Info.plist
+-libs/apr-util/a.out.dSYM/Contents/Resources/DWARF/a.out
+-libs/apr/a.out.dSYM/Contents/Info.plist
+-libs/apr/a.out.dSYM/Contents/Resources/DWARF/a.out
+-libs/iksemel/a.out.dSYM/Contents/Info.plist
+-libs/iksemel/a.out.dSYM/Contents/Resources/DWARF/a.out
+-libs/ilbc/a.out.dSYM/Contents/Info.plist
+-libs/ilbc/a.out.dSYM/Contents/Resources/DWARF/a.out
+-libs/libedit/a.out.dSYM/Contents/Info.plist
+-libs/libedit/a.out.dSYM/Contents/Resources/DWARF/a.out
+-libs/pcre/a.out.dSYM/Contents/Info.plist
+-libs/pcre/a.out.dSYM/Contents/Resources/DWARF/a.out
+-libs/sqlite/lemon.dSYM/Contents/Info.plist
+-libs/sqlite/lemon.dSYM/Contents/Resources/DWARF/lemon
+-libs/sqlite/mkkeywordhash.dSYM/Contents/Info.plist
+-libs/sqlite/mkkeywordhash.dSYM/Contents/Resources/DWARF/mkkeywordhash
+-libs/sqlite/sqlite3.dSYM/Contents/Info.plist
+-libs/sqlite/sqlite3.dSYM/Contents/Resources/DWARF/sqlite3
+-libs/srtp/a.out.dSYM/Contents/Info.plist
+-libs/srtp/a.out.dSYM/Contents/Resources/DWARF/a.out
++*dSYM*
++/libs/xmlrpc-c/lib/expat/xmltok/nametab.h
+diff --git a/Freeswitch.2008.sln b/Freeswitch.2008.sln
+index 62b2459..c3e0c0f 100644
+--- a/Freeswitch.2008.sln
++++ b/Freeswitch.2008.sln
+@@ -1,2941 +1,2961 @@
+-\r
+-Microsoft Visual Studio Solution File, Format Version 10.00\r
+-# Visual Studio 2008\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Codecs", "Codecs", "{F881ADA2-2F1A-4046-9FEB-191D9422D781}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Endpoints", "Endpoints", "{9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Applications", "Applications", "{E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dialplans", "Dialplans", "{C5F182F9-754A-4EC5-B50F-76ED02BE13F4}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Event Handlers", "Event Handlers", "{9ADF1E48-2F5C-4ED7-A893-596259FABFE0}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Formats", "Formats", "{A5A27244-AD24-46E5-B01B-840CD296C91D}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{CBD81696-EFB4-4D2F-8451-1B8DAA86155A}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Directories", "Directories", "{B8F5B47B-8568-46EB-B320-64C17D2A98BC}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Languages", "Languages", "{0C808854-54D1-4230-BFF5-77B5FD905000}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ASR-TTS", "ASR-TTS", "{4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Loggers", "Loggers", "{A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XML Interfaces", "XML Interfaces", "{F69A4A6B-9360-4EBB-A280-22AA3C455AC5}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Libraries", "_Libraries", "{EB910B0D-F27D-4B62-B67B-DE834C99AC5B}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Downloads", "_Downloads", "{C120A020-773F-4EA3-923F-B67AF28B750D}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "say", "say", "{6CD61A1D-797C-470A-BE08-8C31B68BB336}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Config", "_Config", "{57D119DC-484F-420F-B9E9-8589FD9A8DF8}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Default", "Default", "{3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\freeswitch.xml = conf\vanilla\freeswitch.xml\r
+-              conf\vanilla\vars.xml = conf\vanilla\vars.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Build System", "_Build System", "{DB1024A8-41BF-4AD7-9AE6-13202230D1F3}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              acsite.m4 = acsite.m4\r
+-              bootstrap.sh = bootstrap.sh\r
+-              build\buildlib.sh = build\buildlib.sh\r
+-              configure.in = configure.in\r
+-              Makefile.am = Makefile.am\r
+-              build\modmake.rules.in = build\modmake.rules.in\r
+-              build\modules.conf.in = build\modules.conf.in\r
+-              libs\win32\util.vbs = libs\win32\util.vbs\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "m4", "m4", "{CDE9B06A-3C27-4987-8FAE-DF1006BC705D}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              build\config\ac_cflags_gcc_option.m4 = build\config\ac_cflags_gcc_option.m4\r
+-              build\config\ac_cflags_sun_option.m4 = build\config\ac_cflags_sun_option.m4\r
+-              build\config\ac_gcc_archflag.m4 = build\config\ac_gcc_archflag.m4\r
+-              build\config\ac_gcc_x86_cpuid.m4 = build\config\ac_gcc_x86_cpuid.m4\r
+-              build\config\ac_prog_gzip.m4 = build\config\ac_prog_gzip.m4\r
+-              build\config\ac_prog_wget.m4 = build\config\ac_prog_wget.m4\r
+-              build\config\ax_cc_maxopt.m4 = build\config\ax_cc_maxopt.m4\r
+-              build\config\ax_cflags_warn_all_ansi.m4 = build\config\ax_cflags_warn_all_ansi.m4\r
+-              build\config\ax_check_compiler_flags.m4 = build\config\ax_check_compiler_flags.m4\r
+-              build\config\ax_compiler_vendor.m4 = build\config\ax_compiler_vendor.m4\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "autoload_configs", "autoload_configs", "{3C90CCF0-2CDD-4A7A-ACFF-208C1E271692}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\autoload_configs\alsa.conf.xml = conf\vanilla\autoload_configs\alsa.conf.xml\r
+-              conf\vanilla\autoload_configs\conference.conf.xml = conf\vanilla\autoload_configs\conference.conf.xml\r
+-              conf\vanilla\autoload_configs\console.conf.xml = conf\vanilla\autoload_configs\console.conf.xml\r
+-              conf\vanilla\autoload_configs\dialplan_directory.conf.xml = conf\vanilla\autoload_configs\dialplan_directory.conf.xml\r
+-              conf\vanilla\autoload_configs\dingaling.conf.xml = conf\vanilla\autoload_configs\dingaling.conf.xml\r
+-              conf\vanilla\autoload_configs\enum.conf.xml = conf\vanilla\autoload_configs\enum.conf.xml\r
+-              conf\vanilla\autoload_configs\event_multicast.conf.xml = conf\vanilla\autoload_configs\event_multicast.conf.xml\r
+-              conf\vanilla\autoload_configs\event_socket.conf.xml = conf\vanilla\autoload_configs\event_socket.conf.xml\r
+-              conf\vanilla\autoload_configs\ivr.conf.xml = conf\vanilla\autoload_configs\ivr.conf.xml\r
+-              conf\vanilla\autoload_configs\java.conf.xml = conf\vanilla\autoload_configs\java.conf.xml\r
+-              conf\vanilla\autoload_configs\limit.conf.xml = conf\vanilla\autoload_configs\limit.conf.xml\r
+-              conf\vanilla\autoload_configs\local_stream.conf.xml = conf\vanilla\autoload_configs\local_stream.conf.xml\r
+-              conf\vanilla\autoload_configs\logfile.conf.xml = conf\vanilla\autoload_configs\logfile.conf.xml\r
+-              conf\vanilla\autoload_configs\modules.conf.xml = conf\vanilla\autoload_configs\modules.conf.xml\r
+-              conf\vanilla\autoload_configs\openmrcp.conf.xml = conf\vanilla\autoload_configs\openmrcp.conf.xml\r
+-              conf\vanilla\autoload_configs\portaudio.conf.xml = conf\vanilla\autoload_configs\portaudio.conf.xml\r
+-              conf\vanilla\autoload_configs\rss.conf.xml = conf\vanilla\autoload_configs\rss.conf.xml\r
+-              conf\vanilla\autoload_configs\sofia.conf.xml = conf\vanilla\autoload_configs\sofia.conf.xml\r
+-              conf\vanilla\autoload_configs\spidermonkey.conf.xml = conf\vanilla\autoload_configs\spidermonkey.conf.xml\r
+-              conf\vanilla\autoload_configs\switch.conf.xml = conf\vanilla\autoload_configs\switch.conf.xml\r
+-              conf\vanilla\autoload_configs\syslog.conf.xml = conf\vanilla\autoload_configs\syslog.conf.xml\r
+-              conf\vanilla\autoload_configs\voicemail.conf.xml = conf\vanilla\autoload_configs\voicemail.conf.xml\r
+-              conf\vanilla\autoload_configs\wanpipe.conf.xml = conf\vanilla\autoload_configs\wanpipe.conf.xml\r
+-              conf\vanilla\autoload_configs\woomera.conf.xml = conf\vanilla\autoload_configs\woomera.conf.xml\r
+-              conf\vanilla\autoload_configs\xml_cdr.conf.xml = conf\vanilla\autoload_configs\xml_cdr.conf.xml\r
+-              conf\vanilla\autoload_configs\xml_curl.conf.xml = conf\vanilla\autoload_configs\xml_curl.conf.xml\r
+-              conf\vanilla\autoload_configs\xml_rpc.conf.xml = conf\vanilla\autoload_configs\xml_rpc.conf.xml\r
+-              conf\vanilla\autoload_configs\zeroconf.conf.xml = conf\vanilla\autoload_configs\zeroconf.conf.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dialplan", "dialplan", "{C7E2382E-2C22-4D18-BF93-80C6A1FFA7AC}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\dialplan\default.xml = conf\vanilla\dialplan\default.xml\r
+-              conf\vanilla\dialplan\public.xml = conf\vanilla\dialplan\public.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "directory", "directory", "{FC71C66E-E268-4EAD-B1F5-F008DC382E83}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\directory\default.xml = conf\vanilla\directory\default.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sip_profiles", "sip_profiles", "{8E2E8798-8B6F-4A55-8E4F-4E6FDE40ED26}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\sip_profiles\external.xml = conf\vanilla\sip_profiles\external.xml\r
+-              conf\vanilla\sip_profiles\internal.xml = conf\vanilla\sip_profiles\internal.xml\r
+-              conf\vanilla\sip_profiles\nat.xml = conf\vanilla\sip_profiles\nat.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lang", "lang", "{09455AA9-C243-4F16-A1A1-A016881A2765}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\directory\default.xml = conf\vanilla\directory\default.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "en", "en", "{57199684-EC63-4A60-9DC6-11815AF6B413}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\en\en.xml = conf\vanilla\lang\en\en.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "de", "de", "{2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\de\de.xml = conf\vanilla\lang\de\de.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "fr", "fr", "{D4A12E4C-DBDA-4614-BA26-3425AE9F60F5}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\fr\fr.xml = conf\vanilla\lang\fr\fr.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{D3E5C8ED-3A6A-4FEA-92A2-48A0BA865358}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\de\demo\demo.xml = conf\vanilla\lang\de\demo\demo.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{CC3E7F48-2590-49CB-AD8B-BE3650F55462}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\de\vm\tts.xml = conf\vanilla\lang\de\vm\tts.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{765EF1B9-5027-4820-BC37-A44466A51631}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\en\demo\demo.xml = conf\vanilla\lang\en\demo\demo.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{713E4747-1126-40B1-BD84-58F9A7745423}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\en\vm\sounds.xml = conf\vanilla\lang\en\vm\sounds.xml\r
+-              conf\vanilla\lang\en\vm\tts.xml = conf\vanilla\lang\en\vm\tts.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{F1B71990-EB04-4EB5-B28A-BC3EB6F7E843}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\fr\demo\demo.xml = conf\vanilla\lang\fr\demo\demo.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{3DAF028C-AB5B-4183-A01B-DCC43F5A87F0}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\fr\vm\sounds.xml = conf\vanilla\lang\fr\vm\sounds.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchConsole", "w32\Console\FreeSwitchConsole.2008.vcproj", "{1AF3A893-F7BE-43DD-B697-8AB2397C0D67}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchCoreLib", "w32\Library\FreeSwitchCore.2008.vcproj", "{202D7A4E-760D-4D0E-AFA1-D7459CED30FF}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9} = {8D04B550-D240-4A44-8A18-35DA3F7038D9}\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD} = {03207781-0D1C-4DB3-A71D-45C608F28DBD}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EEF031CB-FED8-451E-A471-91EC8D4F6750}\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g729", "src\mod\codecs\mod_g729\mod_g729.2008.vcproj", "{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sndfile", "src\mod\formats\mod_sndfile\mod_sndfile.2008.vcproj", "{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4} = {3D0370CA-BED2-4657-A475-32375CBCB6E4}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.2008.vcproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99} = {0A18A071-125E-442F-AFF7-A3F68ABECF99}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_speex", "src\mod\codecs\mod_speex\mod_speex.2008.vcproj", "{5580D60E-0F77-4716-9CD4-B8E5986FA375}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {E972C52F-9E85-4D65-B19C-031E511E9DB4}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD} = {03207781-0D1C-4DB3-A71D-45C608F28DBD}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "docs", "docs\docs.2008.vcproj", "{1A1FF289-4FD6-4285-A422-D31DD67A4723}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_xml", "src\mod\dialplans\mod_dialplan_xml\mod_dialplan_xml.2008.vcproj", "{07113B25-D3AF-4E04-BA77-4CD1171F022C}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ldap", "src\mod\directories\mod_ldap\mod_ldap.2008.vcproj", "{EC3E5C7F-EE09-47E2-80FE-546363D14A98}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_directory", "src\mod\dialplans\mod_dialplan_directory\mod_dialplan_directory.2008.vcproj", "{A27CCA23-1541-4337-81A4-F0A6413078A0}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_event_multicast", "src\mod\event_handlers\mod_event_multicast\mod_event_multicast.2008.vcproj", "{784113EF-44D9-4949-835D-7065D3C7AD08}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libteletone", "libs\libteletone\libteletone.2008.vcproj", "{89385C74-5860-4174-9CAF-A39E7C48909C}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey", "src\mod\languages\mod_spidermonkey\mod_spidermonkey.2008.vcproj", "{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cepstral", "src\mod\asr_tts\mod_cepstral\mod_cepstral.2008.vcproj", "{692F6330-4D87-4C82-81DF-40DB5892636E}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ilbc", "src\mod\codecs\mod_ilbc\mod_ilbc.2008.vcproj", "{D3EC0AFF-76FC-4210-A825-9A17410660A3}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD} = {9A5DDF08-C88C-4A35-B7F6-D605228446BD}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dingaling", "src\mod\endpoints\mod_dingaling\mod_dingaling.2008.vcproj", "{FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54} = {1906D736-08BD-4EE1-924F-B536249B9A54}\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39} = {B4B62169-5AD4-4559-8707-3D933AC5DB39}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {E727E8F6-935D-46FE-8B0E-37834748A0E3}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_commands", "src\mod\applications\mod_commands\mod_commands.2008.vcproj", "{30A5B29C-983E-4580-9FD0-D647CCDCC7EB}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_console", "src\mod\loggers\mod_console\mod_console.2008.vcproj", "{1C453396-D912-4213-89FD-9B489162B7B5}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_rpc", "src\mod\xml_int\mod_xml_rpc\mod_xml_rpc.2008.vcproj", "{CBEC7225-0C21-4DA8-978E-1F158F8AD950}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647} = {0D108721-EAE8-4BAF-8102-D8960EC93647}\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192} = {B535402E-38D2-4D54-8360-423ACBD17192}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} = {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9} = {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rss", "src\mod\applications\mod_rss\mod_rss.2008.vcproj", "{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_conference", "src\mod\applications\mod_conference\mod_conference.2008.vcproj", "{C24FB505-05D7-4319-8485-7540B44C8603}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dptools", "src\mod\applications\mod_dptools\mod_dptools.2008.vcproj", "{B5881A85-FE70-4F64-8607-2CAAE52669C6}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_event_socket", "src\mod\event_handlers\mod_event_socket\mod_event_socket.2008.vcproj", "{05515420-16DE-4E63-BE73-85BE85BA5142}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdingaling", "libs\libdingaling\libdingaling.2008.vcproj", "{1906D736-08BD-4EE1-924F-B536249B9A54}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {E727E8F6-935D-46FE-8B0E-37834748A0E3}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsrtp", "libs\srtp\libsrtp.2008.vcproj", "{EEF031CB-FED8-451E-A471-91EC8D4F6750}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsqlite", "libs\win32\sqlite\sqlite.2008.vcproj", "{6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpcre", "libs\win32\pcre\libpcre.2008.vcproj", "{8D04B550-D240-4A44-8A18-35DA3F7038D9}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94} = {1CED5987-A529-46DC-B30F-870D85FF9C94}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpcre Generate pcre_chartables.c", "libs\win32\pcre\pcre_chartables.c.2008.vcproj", "{1CED5987-A529-46DC-B30F-870D85FF9C94}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libapr", "libs\win32\apr\libapr.2008.vcproj", "{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libaprutil", "libs\win32\apr-util\libaprutil.2008.vcproj", "{F057DA7F-79E5-4B00-845C-EF446EF055E3}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F} = {155844C3-EC5F-407F-97A4-A2DDADED9B2F}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iksemel", "libs\win32\iksemel\iksemel.2008.vcproj", "{E727E8F6-935D-46FE-8B0E-37834748A0E3}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsndfile", "libs\win32\libsndfile\libsndfile.2008.vcproj", "{3D0370CA-BED2-4657-A475-32375CBCB6E4}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "curllib", "libs\win32\curl\curllib.2008.vcproj", "{87EE9DA4-DE1E-4448-8324-183C98DCA588}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "libs\win32\apr-util\xml.2008.vcproj", "{155844C3-EC5F-407F-97A4-A2DDADED9B2F}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "js", "libs\win32\js\js.2008.vcproj", "{204FA0DE-305D-4414-AE2E-F195A23F390D}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sofia", "src\mod\endpoints\mod_sofia\mod_sofia.2008.vcproj", "{0DF3ABD0-DDC0-4265-B778-07C66780979B}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39} = {B4B62169-5AD4-4559-8707-3D933AC5DB39}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsofia_sip_ua_static", "libs\win32\sofia\libsofia_sip_ua_static.2008.vcproj", "{70A49BC2-7500-41D0-B75D-EDCC5BE987A0}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39} = {B4B62169-5AD4-4559-8707-3D933AC5DB39}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download PTHREAD", "libs\win32\Download PTHREAD.2008.vcproj", "{8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pthread", "libs\win32\pthread\pthread.2008.vcproj", "{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g723_1", "src\mod\codecs\mod_g723_1\mod_g723_1.2008.vcproj", "{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_native_file", "src\mod\formats\mod_native_file\mod_native_file.2008.vcproj", "{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_core_db", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_core_db.2008.vcproj", "{ACFFF684-4D19-4D48-AF12-88EA1D778BDF}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_teletone", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_teletone.2008.vcproj", "{8F992C49-6C51-412F-B2A3-34EAB708EB65}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_enum", "src\mod\applications\mod_enum\mod_enum.2008.vcproj", "{71A967D5-0E99-4CEF-A587-98836EE6F2EF}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940} = {23B4D303-79FC-49E0-89E2-2280E7E28940}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_odbc", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_odbc.2008.vcproj", "{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_curl", "src\mod\xml_int\mod_xml_curl\mod_xml_curl.2008.vcproj", "{AB91A099-7690-4ECF-8994-E458F4EA1ED4}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_en", "src\mod\say\mod_say_en\mod_say_en.2008.vcproj", "{988CACF7-3FCB-4992-BE69-77872AE67DC8}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portaudio", "libs\portaudio\build\msvc\portaudio.2008.vcproj", "{0A18A071-125E-442F-AFF7-A3F68ABECF99}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_cdr", "src\mod\xml_int\mod_xml_cdr\mod_xml_cdr.2008.vcproj", "{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_amr", "src\mod\codecs\mod_amr\mod_amr.2008.vcproj", "{8DEB383C-4091-4F42-A56F-C9E46D552D79}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_h26x", "src\mod\codecs\mod_h26x\mod_h26x.2008.vcproj", "{2C3C2423-234B-4772-8899-D3B137E5CA35}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_esf", "src\mod\applications\mod_esf\mod_esf.2008.vcproj", "{3850D93A-5F24-4922-BC1C-74D08C37C256}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_local_stream", "src\mod\formats\mod_local_stream\mod_local_stream.2008.vcproj", "{2CA40887-1622-46A1-A7F9-17FD7E7E545B}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_socket", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_socket.2008.vcproj", "{028C7278-05D7-4E18-82FE-BE231B844F41}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_voicemail", "src\mod\applications\mod_voicemail\mod_voicemail.2008.vcproj", "{D7F1E3F2-A3F4-474C-8555-15122571AF52}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_de", "src\mod\say\mod_say_de\mod_say_de.2008.vcproj", "{5BC072DB-3826-48EA-AF34-FE32AA01E83B}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_es", "src\mod\say\mod_say_es\mod_say_es.2008.vcproj", "{FA429E98-8B03-45E6-A096-A4BC5E821DE4}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_fr", "src\mod\say\mod_say_fr\mod_say_fr.2008.vcproj", "{06E3A538-AB32-44F2-B477-755FF9CB5D37}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_it", "src\mod\say\mod_say_it\mod_say_it.2008.vcproj", "{6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_nl", "src\mod\say\mod_say_nl\mod_say_nl.2008.vcproj", "{A4B122CF-5196-476B-8C0E-D8BD59AC3C14}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_fifo", "src\mod\applications\mod_fifo\mod_fifo.2008.vcproj", "{75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_db", "src\mod\applications\mod_db\mod_db.2008.vcproj", "{F6A33240-8F29-48BD-98F0-826995911799}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_expr", "src\mod\applications\mod_expr\mod_expr.2008.vcproj", "{65A6273D-FCAB-4C55-B09E-65100141A5D4}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_asterisk", "src\mod\dialplans\mod_dialplan_asterisk\mod_dialplan_asterisk.2008.vcproj", "{E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_logfile", "src\mod\loggers\mod_logfile\mod_logfile.2008.vcproj", "{D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cdr_csv", "src\mod\event_handlers\mod_cdr_csv\mod_cdr_csv.2008.vcproj", "{44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_tone_stream", "src\mod\formats\mod_tone_stream\mod_tone_stream.2008.vcproj", "{6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_fsv", "src\mod\applications\mod_fsv\mod_fsv.2008.vcproj", "{E3246D17-E29B-4AB5-962A-C69B0C5837BB}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_curl", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_curl.2008.vcproj", "{36E854E3-CE12-4348-A125-CCF3F9D74813}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_lua", "src\mod\languages\mod_lua\mod_lua.2008.vcproj", "{7B077E7F-1BE7-4291-AB86-55E527B25CAC}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A} = {D0B36172-CD76-454A-9B89-990025266C2A}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "abyss", "libs\xmlrpc-c\Windows\abyss.2008.vcproj", "{D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmlrpc", "libs\xmlrpc-c\Windows\xmlrpc.2008.vcproj", "{CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmlparse", "libs\xmlrpc-c\Windows\xmlparse.2008.vcproj", "{0D108721-EAE8-4BAF-8102-D8960EC93647}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmltok", "libs\xmlrpc-c\Windows\xmltok.2008.vcproj", "{B535402E-38D2-4D54-8360-423ACBD17192}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download sphinxbase", "libs\win32\Download sphinxbase.2008.vcproj", "{4F92B672-DADB-4047-8D6A-4BB3796733FD}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download sphinxmodel", "libs\win32\Download sphinxmodel.2008.vcproj", "{2DEE4895-1134-439C-B688-52203E57D878}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download pocketsphinx", "libs\win32\Download pocketsphinx.2008.vcproj", "{AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sphinxbase", "libs\win32\sphinxbase\sphinxbase.2008.vcproj", "{2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD} = {4F92B672-DADB-4047-8D6A-4BB3796733FD}\r
+-              {2DEE4895-1134-439C-B688-52203E57D878} = {2DEE4895-1134-439C-B688-52203E57D878}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pocketsphinx", "libs\win32\pocketsphinx\pocketsphinx.2008.vcproj", "{94001A0E-A837-445C-8004-F918F10D0226}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E} = {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_pocketsphinx", "src\mod\asr_tts\mod_pocketsphinx\mod_pocketsphinx.2008.vcproj", "{2286DA73-9FC5-45BC-A508-85994C3317AB}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {94001A0E-A837-445C-8004-F918F10D0226} = {94001A0E-A837-445C-8004-F918F10D0226}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD} = {4F92B672-DADB-4047-8D6A-4BB3796733FD}\r
+-              {2DEE4895-1134-439C-B688-52203E57D878} = {2DEE4895-1134-439C-B688-52203E57D878}\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E} = {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 8khzsound", "libs\win32\Download 8khz Sounds.2008.vcproj", "{3CE1DC99-8246-4DB1-A709-74F19F08EC67}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sound Files", "Sound Files", "{4F227C26-768F-46A3-8684-1D08A46FB374}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 16khzsound", "libs\win32\Download 16khz Sounds.2008.vcproj", "{87A1FE3D-F410-4C8E-9591-8C625985BC70}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "8khz", "libs\win32\Sound_Files\8khz.2008.vcproj", "{7A8D8174-B355-4114-AFC1-04777CB9DE0A}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67} = {3CE1DC99-8246-4DB1-A709-74F19F08EC67}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "16khz", "libs\win32\Sound_Files\16khz.2008.vcproj", "{7EB71250-F002-4ED8-92CA-CA218114537A}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70} = {87A1FE3D-F410-4C8E-9591-8C625985BC70}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 32khzsound", "libs\win32\Dowload 32khz Sounds.2008.vcproj", "{6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "32khz", "libs\win32\Sound_Files\32khz.2008.vcproj", "{464AAB78-5489-4916-BE51-BF8D61822311}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F} = {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flite", "libs\win32\flite\flite.2008.vcproj", "{0AD1177E-1FD8-4643-9391-431467A11084}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B} = {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_flite", "src\mod\asr_tts\mod_flite\mod_flite.2008.vcproj", "{66444AEE-554C-11DD-A9F0-8C5D56D89593}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B} = {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084} = {0AD1177E-1FD8-4643-9391-431467A11084}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download FLITE", "libs\win32\Download FLITE.2008.vcproj", "{D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download LAME", "libs\win32\Download LAME.2008.vcproj", "{D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download LIBSHOUT", "libs\win32\Download LIBSHOUT.2008.vcproj", "{D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download OGG", "libs\win32\Download OGG.2008.vcproj", "{D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmp3lame", "libs\win32\libmp3lame\libmp3lame_vc7.vcproj", "{E316772F-5D8F-4F2A-8F71-094C3E859D34}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B} = {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libshout", "libs\win32\libshout\libshout.vcproj", "{D3D8B329-20BE-475E-9E83-653CEA0E0EF5}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B} = {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4} = {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_shout", "src\mod\formats\mod_shout\mod_shout.vcproj", "{38FE0559-9910-43A8-9E45-3E5004C27692}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5} = {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34} = {E316772F-5D8F-4F2A-8F71-094C3E859D34}\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137} = {419C8F80-D858-4B48-A25C-AF4007608137}\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libogg", "libs\win32\libogg\libogg.2008.vcproj", "{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B} = {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_snom", "src\mod\applications\mod_snom\mod_snom.2008.vcproj", "{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_zh", "src\mod\say\mod_say_zh\mod_say_zh.2008.vcproj", "{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_managed", "src\mod\languages\mod_managed\mod_managed.vcproj", "{7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0} = {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSWITCH.Managed", "src\mod\languages\mod_managed\managed\FreeSWITCH.Managed.csproj", "{834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download mpg123", "libs\win32\Download mpg123.2008.vcproj", "{E796E337-DE78-4303-8614-9A590862EE95}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmpg123", "libs\win32\mpg123\libmpg123.2008.vcproj", "{419C8F80-D858-4B48-A25C-AF4007608137}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {E796E337-DE78-4303-8614-9A590862EE95} = {E796E337-DE78-4303-8614-9A590862EE95}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_loopback", "src\mod\endpoints\mod_loopback\mod_loopback.2008.vcproj", "{B3F424EC-3D8F-417C-B244-3919D5E1A577}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_vmd", "src\mod\applications\mod_vmd\mod_vmd.2008.vcproj", "{14E4A972-9CFB-436D-B0A5-4943F3F80D47}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libg722_1", "libs\win32\libg722_1\libg722_1.vcproj", "{1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_siren", "src\mod\codecs\mod_siren\mod_siren.2008.vcproj", "{0B6C905B-142E-4999-B39D-92FF7951E921}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C} = {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "esl", "libs\esl\src\esl.2008.vcproj", "{CF405366-9558-4AE8-90EF-5E21B51CCB4E}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fs_cli", "libs\esl\fs_cli.2008.vcproj", "{D2FB8043-D208-4AEE-8F18-3B5857C871B9}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E} = {CF405366-9558-4AE8-90EF-5E21B51CCB4E}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_easyroute", "src\mod\applications\mod_easyroute\mod_easyroute.2008.vcproj", "{329FD5B0-EF28-4606-86D0-F6EA21CF8E36}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_lcr", "src\mod\applications\mod_lcr\mod_lcr.2008.vcproj", "{1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtiff", "libs\spandsp\src\libtiff.2008.vcproj", "{401A40CD-5DB4-4E34-AC68-FA99E9FAC014}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libs\spandsp\src\libspandsp.2008.vcproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A} = {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838} = {329A6FA0-0FCC-4435-A950-E670AEFA9838}\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330} = {DEE932AB-5911-4700-9EEB-8C7090A0A330}\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014} = {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeex", "libs\speex\win32\VS2008\libspeex\libspeex.vcproj", "{E972C52F-9E85-4D65-B19C-031E511E9DB4}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeexdsp", "libs\speex\win32\VS2008\libspeexdsp\libspeexdsp.vcproj", "{03207781-0D1C-4DB3-A71D-45C608F28DBD}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libilbc", "libs\ilbc\libilbc.2008.vcproj", "{9A5DDF08-C88C-4A35-B7F6-D605228446BD}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua51", "src\mod\languages\mod_lua\lua\lua.2008.vcproj", "{D0B36172-CD76-454A-9B89-990025266C2A}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_opal", "src\mod\endpoints\mod_opal\mod_opal_2008.vcproj", "{05C9FB27-480E-4D53-B3B7-6338E2526666}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_h323", "src\mod\endpoints\mod_h323\mod_h323_2008.vcproj", "{05C9FB27-480E-4D53-B3B7-7338E2514666}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_iSAC", "src\mod\codecs\mod_isac\mod_iSAC.2008.vcproj", "{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skinny", "src\mod\endpoints\mod_skinny\mod_skinny_2008.vcproj", "{CC1DD008-9406-448D-A0AD-33C3186CFADB}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rtmp", "src\mod\endpoints\mod_rtmp\mod_rtmp_2008.vcproj", "{48414740-C693-4968-9846-EE058020C64F}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_at_dictionary", "libs\spandsp\src\msvc\make_at_dictionary.2008.vcproj", "{DEE932AB-5911-4700-9EEB-8C7090A0A330}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_modem_filter", "libs\spandsp\src\msvc\make_modem_filter.2008.vcproj", "{329A6FA0-0FCC-4435-A950-E670AEFA9838}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skel", "src\mod\applications\mod_skel\mod_skel.2008.vcproj", "{11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skypopen", "src\mod\endpoints\mod_skypopen\mod_skypopen.2008.vcproj", "{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 32khz music", "libs\win32\Dowload 32khz music.2008.vcproj", "{1F0A8A77-E661-418F-BB92-82172AE43803}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 8khz music", "libs\win32\Download 8khz music.2008.vcproj", "{4F5C9D55-98EF-4256-8311-32D7BD360406}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 16khz music", "libs\win32\Download 16khz music.2008.vcproj", "{E10571C4-E7F4-4608-B5F2-B22E7EB95400}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "8khz music", "libs\win32\Sound_Files\8khzmusic.2008.vcproj", "{D1ABE208-6442-4FB4-9AAD-1677E41BC870}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406} = {4F5C9D55-98EF-4256-8311-32D7BD360406}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "16khz music", "libs\win32\Sound_Files\16khzmusic.2008.vcproj", "{BA599D0A-4310-4505-91DA-6A6447B3E289}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400} = {E10571C4-E7F4-4608-B5F2-B22E7EB95400}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "32khz music", "libs\win32\Sound_Files\32khzmusic.2008.vcproj", "{EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803} = {1F0A8A77-E661-418F-BB92-82172AE43803}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_nibblebill", "src\mod\applications\mod_nibblebill\mod_nibblebill.2008.vcproj", "{3C977801-FE88-48F2-83D3-FA2EBFF6688E}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_ru", "src\mod\say\mod_say_ru\mod_say_ru.2008.vcproj", "{0382E8FD-CFDC-41C0-8B03-792C7C84FC31}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_valet_parking", "src\mod\applications\mod_valet_parking\mod_valet_parking.2008.vcproj", "{432DB165-1EB2-4781-A9C0-71E62610B20A}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbroadvoice", "libs\broadvoice\src\libbroadvoice.2008.vcproj", "{CF70F278-3364-4395-A2E1-23501C9B8AD2}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_bv", "src\mod\codecs\mod_bv\mod_bv.2008.vcproj", "{D5C87B19-150D-4EF3-A671-96589BD2D14A}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2} = {CF70F278-3364-4395-A2E1-23501C9B8AD2}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "unimrcp", "unimrcp", "{62F27B1A-C919-4A70-8478-51F178F3B18F}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aprtoolkit", "libs\unimrcp\libs\apr-toolkit\aprtoolkit.2008.vcproj", "{13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mpf", "libs\unimrcp\libs\mpf\mpf.2008.vcproj", "{B5A00BFA-6083-4FAE-A097-71642D6473B5}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcp", "libs\unimrcp\libs\mrcp\mrcp.2008.vcproj", "{1C320193-46A6-4B34-9C56-8AB584FC1B56}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpclient", "libs\unimrcp\libs\mrcp-client\mrcpclient.2008.vcproj", "{72782932-37CC-46AE-8C7F-9A7B1A6EE108}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpsignaling", "libs\unimrcp\libs\mrcp-signaling\mrcpsignaling.2008.vcproj", "{12A49562-BAB9-43A3-A21D-15B60BBB4C31}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpv2transport", "libs\unimrcp\libs\mrcpv2-transport\mrcpv2transport.2008.vcproj", "{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unirtsp", "libs\unimrcp\libs\uni-rtsp\unirtsp.2008.vcproj", "{504B3154-7A4F-459D-9877-B951021C3F1F}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpsofiasip", "libs\unimrcp\modules\mrcp-sofiasip\mrcpsofiasip.2008.vcproj", "{746F3632-5BB2-4570-9453-31D6D58A7D8E}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpunirtsp", "libs\unimrcp\modules\mrcp-unirtsp\mrcpunirtsp.2008.vcproj", "{DEB01ACB-D65F-4A62-AED9-58C1054499E9}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_unimrcp", "src\mod\asr_tts\mod_unimrcp\mod_unimrcp.2008.vcproj", "{D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA} = {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108} = {72782932-37CC-46AE-8C7F-9A7B1A6EE108}\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E} = {746F3632-5BB2-4570-9453-31D6D58A7D8E}\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F} = {504B3154-7A4F-459D-9877-B951021C3F1F}\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31} = {12A49562-BAB9-43A3-A21D-15B60BBB4C31}\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39} = {B4B62169-5AD4-4559-8707-3D933AC5DB39}\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56} = {1C320193-46A6-4B34-9C56-8AB584FC1B56}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2} = {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9} = {DEB01ACB-D65F-4A62-AED9-58C1054499E9}\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5} = {B5A00BFA-6083-4FAE-A097-71642D6473B5}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download CELT", "libs\win32\Download CELT.vcproj", "{FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcelt", "libs\win32\celt\libcelt.vcproj", "{ABB71A76-42B0-47A4-973A-42E3D920C6FD}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19} = {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_celt", "src\mod\codecs\mod_celt\mod_celt.vcproj", "{4D418176-3B33-47E6-A63E-01BA34ADD21C}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD} = {ABB71A76-42B0-47A4-973A-42E3D920C6FD}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FSComm", "fscomm\FSComm.2008.vcproj", "{7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_curl", "src\mod\applications\mod_curl\mod_curl.2008.vcproj", "{EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A} = {9778F1C0-09BC-4698-8EBC-BD982247209A}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download JSON", "libs\win32\Download JSON.2008.vcproj", "{B808178B-82F0-4CF4-A2B1-921939FA24D0}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjson", "libs\win32\json\libjson.2008.vcproj", "{9778F1C0-09BC-4698-8EBC-BD982247209A}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0} = {B808178B-82F0-4CF4-A2B1-921939FA24D0}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_silk", "src\mod\codecs\mod_silk\mod_silk.2008.vcproj", "{AFA983D6-4569-4F88-BA94-555ED00FD9A8}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76} = {56B91D01-9150-4BBF-AFA1-5B68AB991B76}\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Silk_FIX", "libs\silk\src\Silk_FIX.2008.vcproj", "{56B91D01-9150-4BBF-AFA1-5B68AB991B76}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_avmd", "src\mod\applications\mod_avmd\mod_avmd.2008.vcproj", "{990BAA76-89D3-4E38-8479-C7B28784EFC8}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spandsp", "src\mod\applications\mod_spandsp\mod_spandsp.2008.vcproj", "{1E21AFE0-6FDB-41D2-942D-863607C24B91}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_hash", "src\mod\applications\mod_hash\mod_hash.2008.vcproj", "{2E250296-0C08-4342-9C8A-BCBDD0E7DF65}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E} = {CF405366-9558-4AE8-90EF-5E21B51CCB4E}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download OPENSSL", "libs\win32\Download OPENSSL.2008.vcproj", "{D578E676-7EC8-4548-BD8B-845C635F14AD}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "openssl", "openssl", "{B376D494-D7DD-4B2A-99E2-52916D5A8CD8}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libeay32", "libs\win32\openssl\libeay32.2008.vcproj", "{D331904D-A00A-4694-A5A3-FCFF64AB5DBE}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD} = {D578E676-7EC8-4548-BD8B-845C635F14AD}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssleay32", "libs\win32\openssl\ssleay32.2008.vcproj", "{B4B62169-5AD4-4559-8707-3D933AC5DB39}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openssl", "libs\win32\openssl\openssl.2008.vcproj", "{25BD39B1-C8BF-4676-A738-9CABD9C6BC79}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39} = {B4B62169-5AD4-4559-8707-3D933AC5DB39}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_directory", "src\mod\applications\mod_directory\mod_directory.2008.vcproj", "{42E721FD-43D6-4B04-A34B-42567199FFB8}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ldns", "libs\win32\ldns\ldns-lib\ldns-lib.2008.vcproj", "{23B4D303-79FC-49E0-89E2-2280E7E28940}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_httapi", "src\mod\applications\mod_httapi\mod_httapi.2008.vcproj", "{0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_abstraction", "src\mod\applications\mod_abstraction\mod_abstraction.2008.vcproj", "{BDA173DB-F8EF-4270-9553-B453AF92E43A}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_gsmopen", "src\mod\endpoints\mod_gsmopen\mod_gsmopen.2008.vcproj", "{74B120FF-6935-4DFE-A142-CDB6BEA99C90}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53} = {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsmlib", "src\mod\endpoints\mod_gsmopen\gsmlib\gsmlib-1.10-patched-13ubuntu\win32\gsmlib.vcproj", "{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjpeg", "libs\win32\libjpeg\libjpeg.2008.vcproj", "{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {21A7DA70-555E-49FA-942B-D84A38B61243} = {21A7DA70-555E-49FA-942B-D84A38B61243}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download libjpeg", "libs\win32\Download libjpeg.2008.vcproj", "{21A7DA70-555E-49FA-942B-D84A38B61243}"\r
+-EndProject\r
+-Global\r
+-      GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+-              All|Win32 = All|Win32\r
+-              All|x64 = All|x64\r
+-              Debug|Win32 = Debug|Win32\r
+-              Debug|x64 = Debug|x64\r
+-              Release|Win32 = Release|Win32\r
+-              Release|x64 = Release|x64\r
+-      EndGlobalSection\r
+-      GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|Win32.ActiveCfg = Release|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64.ActiveCfg = Release|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64.Build.0 = Release|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x64.Build.0 = Debug|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|Win32.Build.0 = Release|Win32\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|x64.ActiveCfg = Release|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|x64.Build.0 = Release|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|Win32.ActiveCfg = Release|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64.ActiveCfg = Release|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64.Build.0 = Release|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x64.Build.0 = Debug|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|Win32.Build.0 = Release|Win32\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|x64.ActiveCfg = Release|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|x64.Build.0 = Release|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|Win32.ActiveCfg = Release Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64.ActiveCfg = Release Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64.Build.0 = Release Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|Win32.Build.0 = Debug Passthrough|Win32\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x64.ActiveCfg = Debug Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x64.Build.0 = Debug Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|Win32.ActiveCfg = Release Passthrough|Win32\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|Win32.Build.0 = Release Passthrough|Win32\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|x64.ActiveCfg = Release Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|x64.Build.0 = Release Passthrough|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|Win32.ActiveCfg = Release|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64.ActiveCfg = Release|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64.Build.0 = Release|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x64.Build.0 = Debug|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.Build.0 = Release|Win32\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.ActiveCfg = Release|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.Build.0 = Release|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|Win32.ActiveCfg = Release|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.ActiveCfg = Release|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.Build.0 = Release|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.Build.0 = Debug|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.Build.0 = Release|Win32\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.ActiveCfg = Release|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.Build.0 = Release|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|Win32.ActiveCfg = Release|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.ActiveCfg = Release|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.Build.0 = Release|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.Build.0 = Debug|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.Build.0 = Release|Win32\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.ActiveCfg = Release|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.Build.0 = Release|x64\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|Win32.ActiveCfg = Release|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x64.ActiveCfg = Release|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release|x64.ActiveCfg = Release|Win32\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|Win32.ActiveCfg = Release|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64.ActiveCfg = Release|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64.Build.0 = Release|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x64.Build.0 = Debug|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|Win32.Build.0 = Release|Win32\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|x64.ActiveCfg = Release|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|x64.Build.0 = Release|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|Win32.ActiveCfg = Release MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64.ActiveCfg = Release MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64.Build.0 = Release MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|Win32.ActiveCfg = Debug MS-LDAP|Win32\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|Win32.Build.0 = Debug MS-LDAP|Win32\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x64.ActiveCfg = Debug MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x64.Build.0 = Debug MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|Win32.ActiveCfg = Release MS-LDAP|Win32\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|Win32.Build.0 = Release MS-LDAP|Win32\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|x64.ActiveCfg = Release MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|x64.Build.0 = Release MS-LDAP|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|Win32.ActiveCfg = Release|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64.ActiveCfg = Release|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64.Build.0 = Release|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x64.Build.0 = Debug|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|Win32.Build.0 = Release|Win32\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|x64.ActiveCfg = Release|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|x64.Build.0 = Release|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|Win32.ActiveCfg = Release|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64.ActiveCfg = Release|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64.Build.0 = Release|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x64.Build.0 = Debug|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|Win32.Build.0 = Release|Win32\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|x64.ActiveCfg = Release|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|x64.Build.0 = Release|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|Win32.ActiveCfg = Release|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64.ActiveCfg = Release|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64.Build.0 = Release|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x64.Build.0 = Debug|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|Win32.Build.0 = Release|Win32\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x64.ActiveCfg = Release|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x64.Build.0 = Release|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|Win32.ActiveCfg = Release|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64.ActiveCfg = Release|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64.Build.0 = Release|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|Win32.Build.0 = Release|Win32\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64.ActiveCfg = Release|x64\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|Win32.ActiveCfg = Release|x64\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.ActiveCfg = Release|x64\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.Build.0 = Release|x64\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.Release|x64.ActiveCfg = Release|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|Win32.ActiveCfg = Release|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.ActiveCfg = Release|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.Build.0 = Release|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x64.Build.0 = Debug|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|Win32.Build.0 = Release|Win32\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|x64.ActiveCfg = Release|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|x64.Build.0 = Release|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|Win32.ActiveCfg = Release|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64.ActiveCfg = Release|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64.Build.0 = Release|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x64.Build.0 = Debug|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|Win32.Build.0 = Release|Win32\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|x64.ActiveCfg = Release|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|x64.Build.0 = Release|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|Win32.ActiveCfg = Release|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64.ActiveCfg = Release|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64.Build.0 = Release|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x64.Build.0 = Debug|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|Win32.Build.0 = Release|Win32\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|x64.ActiveCfg = Release|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|x64.Build.0 = Release|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.All|Win32.ActiveCfg = Release|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64.ActiveCfg = Release|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64.Build.0 = Release|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x64.Build.0 = Debug|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|Win32.Build.0 = Release|Win32\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|x64.ActiveCfg = Release|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|x64.Build.0 = Release|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|Win32.ActiveCfg = Release|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64.ActiveCfg = Release|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64.Build.0 = Release|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x64.Build.0 = Debug|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|Win32.Build.0 = Release|Win32\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64.ActiveCfg = Release|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64.Build.0 = Release|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|Win32.ActiveCfg = Release|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.ActiveCfg = Release|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.Build.0 = Release|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.Build.0 = Debug|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|Win32.Build.0 = Release|Win32\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64.ActiveCfg = Release|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64.Build.0 = Release|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.All|Win32.ActiveCfg = Release|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.ActiveCfg = Release|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.Build.0 = Release|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x64.Build.0 = Debug|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|Win32.Build.0 = Release|Win32\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|x64.ActiveCfg = Release|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|x64.Build.0 = Release|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|Win32.ActiveCfg = Release|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64.ActiveCfg = Release|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64.Build.0 = Release|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x64.Build.0 = Debug|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|Win32.Build.0 = Release|Win32\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|x64.ActiveCfg = Release|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|x64.Build.0 = Release|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|Win32.ActiveCfg = Release|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64.ActiveCfg = Release|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64.Build.0 = Release|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x64.Build.0 = Debug|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|Win32.Build.0 = Release|Win32\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|x64.ActiveCfg = Release|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|x64.Build.0 = Release|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|Win32.ActiveCfg = Release DLL|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64.ActiveCfg = Release DLL|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64.Build.0 = Release DLL|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64.Build.0 = Debug|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|Win32.Build.0 = Release|Win32\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|x64.ActiveCfg = Release|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|x64.Build.0 = Release|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|Win32.ActiveCfg = Release Dll|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64.ActiveCfg = Release Dll|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64.Build.0 = Release Dll|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x64.Build.0 = Debug|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|Win32.Build.0 = Release|Win32\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|x64.ActiveCfg = Release|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|x64.Build.0 = Release|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|Win32.ActiveCfg = Release DLL|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64.ActiveCfg = Release DLL|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64.Build.0 = Release DLL|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x64.Build.0 = Debug|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|Win32.Build.0 = Release|Win32\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|x64.ActiveCfg = Release|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|x64.Build.0 = Release|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|Win32.ActiveCfg = Release DLL|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64.ActiveCfg = Release DLL|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64.Build.0 = Release DLL|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x64.Build.0 = Debug|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|Win32.Build.0 = Release|Win32\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x64.ActiveCfg = Release|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x64.Build.0 = Release|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|Win32.ActiveCfg = Release|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64.ActiveCfg = Release|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64.Build.0 = Release|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64.Build.0 = Debug|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.Build.0 = Release|Win32\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64.ActiveCfg = Release|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64.Build.0 = Release|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|Win32.ActiveCfg = Release|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64.ActiveCfg = Release|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64.Build.0 = Release|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x64.Build.0 = Debug|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.Build.0 = Release|Win32\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.ActiveCfg = Release|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.Build.0 = Release|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|Win32.ActiveCfg = Release|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64.ActiveCfg = Release|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64.Build.0 = Release|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64.Build.0 = Debug|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|Win32.Build.0 = Release|Win32\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|x64.ActiveCfg = Release|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|x64.Build.0 = Release|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|Win32.ActiveCfg = Release|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.ActiveCfg = Release|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.Build.0 = Release|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.Build.0 = Debug|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|Win32.Build.0 = Release|Win32\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64.ActiveCfg = Release|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64.Build.0 = Release|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|Win32.ActiveCfg = Release|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64.ActiveCfg = Release|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64.Build.0 = Release|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x64.Build.0 = Debug|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|Win32.Build.0 = Release|Win32\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|x64.ActiveCfg = Release|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|x64.Build.0 = Release|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|Win32.ActiveCfg = Debug|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64.ActiveCfg = Debug|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64.Build.0 = Debug|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x64.Build.0 = Debug|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|Win32.Build.0 = Release|Win32\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|x64.ActiveCfg = Release|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|x64.Build.0 = Release|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|Win32.ActiveCfg = Debug|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64.ActiveCfg = Debug|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64.Build.0 = Debug|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x64.Build.0 = Debug|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|Win32.Build.0 = Release|Win32\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|x64.ActiveCfg = Release|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|x64.Build.0 = Release|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|Win32.ActiveCfg = Debug|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x64.ActiveCfg = Debug|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x64.Build.0 = Debug|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|x64.Build.0 = Debug|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|Win32.Build.0 = Release|Win32\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|x64.ActiveCfg = Release|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|x64.Build.0 = Release|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|Win32.ActiveCfg = Release|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.ActiveCfg = Release|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.Build.0 = Release|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x64.Build.0 = Debug|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|Win32.Build.0 = Release|Win32\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|x64.ActiveCfg = Release|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|x64.Build.0 = Release|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|Win32.ActiveCfg = Release|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64.ActiveCfg = Release|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64.Build.0 = Release|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x64.Build.0 = Debug|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|Win32.Build.0 = Release|Win32\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|x64.ActiveCfg = Release|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|x64.Build.0 = Release|x64\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|Win32.ActiveCfg = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|Win32.Build.0 = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64.ActiveCfg = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64.Build.0 = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x64.Build.0 = Debug|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|Win32.Build.0 = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|x64.ActiveCfg = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|x64.Build.0 = Release|Win32\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|Win32.ActiveCfg = Release DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64.ActiveCfg = Release DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64.Build.0 = Release DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|Win32.ActiveCfg = Debug DLL|Win32\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|Win32.Build.0 = Debug DLL|Win32\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x64.ActiveCfg = Debug DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x64.Build.0 = Debug DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|Win32.ActiveCfg = Release DLL|Win32\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|Win32.Build.0 = Release DLL|Win32\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|x64.ActiveCfg = Release DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|x64.Build.0 = Release DLL|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|Win32.ActiveCfg = Release Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64.ActiveCfg = Release Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64.Build.0 = Release Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|Win32.Build.0 = Debug Passthrough|Win32\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x64.ActiveCfg = Debug Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x64.Build.0 = Debug Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|Win32.ActiveCfg = Release Passthrough|Win32\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|Win32.Build.0 = Release Passthrough|Win32\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64.ActiveCfg = Release Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64.Build.0 = Release Passthrough|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|Win32.ActiveCfg = Release|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.ActiveCfg = Release|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.Build.0 = Release|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x64.Build.0 = Debug|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|Win32.Build.0 = Release|Win32\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|x64.ActiveCfg = Release|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|x64.Build.0 = Release|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|Win32.ActiveCfg = Release|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x64.ActiveCfg = Release|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x64.Build.0 = Release|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|Win32.Build.0 = Release|Win32\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|x64.ActiveCfg = Release|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|Win32.ActiveCfg = Release|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x64.ActiveCfg = Release|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x64.Build.0 = Release|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|Win32.Build.0 = Release|Win32\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|x64.ActiveCfg = Release|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|Win32.ActiveCfg = Release|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64.ActiveCfg = Release|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64.Build.0 = Release|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x64.Build.0 = Debug|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|Win32.Build.0 = Release|Win32\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|x64.ActiveCfg = Release|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|x64.Build.0 = Release|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|Win32.ActiveCfg = Release|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x64.ActiveCfg = Release|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x64.Build.0 = Release|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|Win32.Build.0 = Release|Win32\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|x64.ActiveCfg = Release|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|Win32.ActiveCfg = Release|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64.ActiveCfg = Release|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64.Build.0 = Release|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x64.Build.0 = Debug|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|Win32.Build.0 = Release|Win32\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|x64.ActiveCfg = Release|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|x64.Build.0 = Release|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|Win32.ActiveCfg = Release|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64.ActiveCfg = Release|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64.Build.0 = Release|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x64.Build.0 = Debug|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|Win32.Build.0 = Release|Win32\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.ActiveCfg = Release|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.Build.0 = Release|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|Win32.ActiveCfg = Release DirectSound|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.ActiveCfg = Release DirectSound|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.Build.0 = Release DirectSound|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.Build.0 = Debug|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.Build.0 = Release|Win32\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.ActiveCfg = Release|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.Build.0 = Release|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|Win32.ActiveCfg = Release|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.ActiveCfg = Release|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.Build.0 = Release|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x64.Build.0 = Debug|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|Win32.Build.0 = Release|Win32\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|x64.ActiveCfg = Release|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|x64.Build.0 = Release|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|Win32.ActiveCfg = Release Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64.ActiveCfg = Release Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64.Build.0 = Release Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|Win32.Build.0 = Debug Passthrough|Win32\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x64.ActiveCfg = Debug Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x64.Build.0 = Debug Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|Win32.ActiveCfg = Release Passthrough|Win32\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|Win32.Build.0 = Release Passthrough|Win32\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64.ActiveCfg = Release Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64.Build.0 = Release Passthrough|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|Win32.ActiveCfg = Release|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.ActiveCfg = Release|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.Build.0 = Release|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.Build.0 = Debug|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|Win32.Build.0 = Release|Win32\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64.ActiveCfg = Release|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64.Build.0 = Release|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|Win32.ActiveCfg = Release|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.ActiveCfg = Release|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.Build.0 = Release|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x64.Build.0 = Debug|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|Win32.Build.0 = Release|Win32\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|x64.ActiveCfg = Release|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|x64.Build.0 = Release|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|Win32.ActiveCfg = Release|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64.ActiveCfg = Release|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64.Build.0 = Release|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x64.Build.0 = Debug|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|Win32.Build.0 = Release|Win32\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|x64.ActiveCfg = Release|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|x64.Build.0 = Release|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|Win32.ActiveCfg = Release|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x64.ActiveCfg = Release|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x64.Build.0 = Release|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|Win32.Build.0 = Release|Win32\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|x64.ActiveCfg = Release|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|Win32.ActiveCfg = Release|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64.ActiveCfg = Release|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64.Build.0 = Release|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x64.Build.0 = Debug|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|Win32.Build.0 = Release|Win32\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|x64.ActiveCfg = Release|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|x64.Build.0 = Release|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|Win32.ActiveCfg = Release|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64.ActiveCfg = Release|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64.Build.0 = Release|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x64.Build.0 = Debug|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|Win32.Build.0 = Release|Win32\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|x64.ActiveCfg = Release|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|x64.Build.0 = Release|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|Win32.ActiveCfg = Release|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64.ActiveCfg = Release|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64.Build.0 = Release|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x64.Build.0 = Debug|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|Win32.Build.0 = Release|Win32\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|x64.ActiveCfg = Release|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|x64.Build.0 = Release|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|Win32.ActiveCfg = Release|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64.ActiveCfg = Release|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64.Build.0 = Release|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x64.Build.0 = Debug|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|Win32.Build.0 = Release|Win32\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|x64.ActiveCfg = Release|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|x64.Build.0 = Release|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|Win32.ActiveCfg = Release|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64.ActiveCfg = Release|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64.Build.0 = Release|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x64.Build.0 = Debug|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|Win32.Build.0 = Release|Win32\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|x64.ActiveCfg = Release|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|x64.Build.0 = Release|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|Win32.ActiveCfg = Release|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64.ActiveCfg = Release|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64.Build.0 = Release|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x64.Build.0 = Debug|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|Win32.Build.0 = Release|Win32\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|x64.ActiveCfg = Release|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|x64.Build.0 = Release|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|Win32.ActiveCfg = Release|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64.ActiveCfg = Release|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64.Build.0 = Release|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x64.Build.0 = Debug|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|Win32.Build.0 = Release|Win32\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|x64.ActiveCfg = Release|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|x64.Build.0 = Release|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.All|Win32.ActiveCfg = Release|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.All|x64.ActiveCfg = Release|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.All|x64.Build.0 = Release|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x64.Build.0 = Debug|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Release|Win32.Build.0 = Release|Win32\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Release|x64.ActiveCfg = Release|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Release|x64.Build.0 = Release|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|Win32.ActiveCfg = Release|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64.ActiveCfg = Release|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64.Build.0 = Release|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x64.Build.0 = Debug|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|Win32.Build.0 = Release|Win32\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|x64.ActiveCfg = Release|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|x64.Build.0 = Release|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|Win32.ActiveCfg = Release|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64.ActiveCfg = Release|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64.Build.0 = Release|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x64.Build.0 = Debug|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|Win32.Build.0 = Release|Win32\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|x64.ActiveCfg = Release|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|x64.Build.0 = Release|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|Win32.ActiveCfg = Release|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64.ActiveCfg = Release|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64.Build.0 = Release|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x64.Build.0 = Debug|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|Win32.Build.0 = Release|Win32\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|x64.ActiveCfg = Release|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|x64.Build.0 = Release|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|Win32.ActiveCfg = Release|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64.ActiveCfg = Release|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64.Build.0 = Release|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x64.Build.0 = Debug|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|Win32.Build.0 = Release|Win32\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|x64.ActiveCfg = Release|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|x64.Build.0 = Release|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|Win32.ActiveCfg = Release|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64.ActiveCfg = Release|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64.Build.0 = Release|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x64.Build.0 = Debug|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|Win32.Build.0 = Release|Win32\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|x64.ActiveCfg = Release|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|x64.Build.0 = Release|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|Win32.ActiveCfg = Release|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64.ActiveCfg = Release|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64.Build.0 = Release|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x64.Build.0 = Debug|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|Win32.Build.0 = Release|Win32\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|x64.ActiveCfg = Release|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|x64.Build.0 = Release|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|Win32.ActiveCfg = Release|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x64.ActiveCfg = Release|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x64.Build.0 = Release|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|Win32.Build.0 = Release|Win32\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|x64.ActiveCfg = Release|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|Win32.ActiveCfg = Release|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64.ActiveCfg = Release|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64.Build.0 = Release|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.Build.0 = Debug|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.Build.0 = Release|Win32\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x64.ActiveCfg = Release|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x64.Build.0 = Release|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|Win32.ActiveCfg = Release|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|x64.ActiveCfg = Release|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|x64.Build.0 = Release|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|x64.Build.0 = Debug|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|Win32.Build.0 = Release|Win32\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|x64.ActiveCfg = Release|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|x64.Build.0 = Release|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|Win32.ActiveCfg = Release|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|x64.ActiveCfg = Release|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|x64.Build.0 = Release|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|x64.Build.0 = Debug|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|Win32.Build.0 = Release|Win32\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|x64.ActiveCfg = Release|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|x64.Build.0 = Release|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|Win32.ActiveCfg = Debug|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|x64.ActiveCfg = Debug|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|x64.Build.0 = Debug|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|x64.Build.0 = Debug|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|Win32.Build.0 = Release|Win32\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|x64.ActiveCfg = Release|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|x64.Build.0 = Release|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.All|Win32.ActiveCfg = Release|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.All|x64.ActiveCfg = Release|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.All|x64.Build.0 = Release|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|x64.Build.0 = Debug|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|Win32.Build.0 = Release|Win32\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|x64.ActiveCfg = Release|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|x64.Build.0 = Release|x64\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|Win32.ActiveCfg = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|Win32.Build.0 = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64.ActiveCfg = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64.Build.0 = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x64.Build.0 = Debug|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|Win32.Build.0 = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|x64.ActiveCfg = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|x64.Build.0 = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.All|Win32.ActiveCfg = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.All|Win32.Build.0 = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.All|x64.ActiveCfg = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.All|x64.Build.0 = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x64.Build.0 = Debug|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Release|Win32.Build.0 = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Release|x64.ActiveCfg = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Release|x64.Build.0 = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|Win32.ActiveCfg = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|Win32.Build.0 = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64.ActiveCfg = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64.Build.0 = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x64.Build.0 = Debug|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|Win32.Build.0 = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|x64.ActiveCfg = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|x64.Build.0 = Release|Win32\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|Win32.ActiveCfg = Debug|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64.ActiveCfg = Debug|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64.Build.0 = Debug|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x64.Build.0 = Debug|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|Win32.Build.0 = Release|Win32\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|x64.ActiveCfg = Release|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|x64.Build.0 = Release|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.All|Win32.ActiveCfg = Debug|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.All|x64.ActiveCfg = Debug|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.All|x64.Build.0 = Debug|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x64.Build.0 = Debug|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Release|Win32.Build.0 = Release|Win32\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Release|x64.ActiveCfg = Release|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Release|x64.Build.0 = Release|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|Win32.ActiveCfg = Release|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x64.ActiveCfg = Release|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x64.Build.0 = Release|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|x64.Build.0 = Debug|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|Win32.Build.0 = Release|Win32\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|x64.ActiveCfg = Release|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|x64.Build.0 = Release|x64\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|Win32.ActiveCfg = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|Win32.Build.0 = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64.ActiveCfg = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64.Build.0 = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x64.Build.0 = Debug|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|Win32.Build.0 = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|x64.ActiveCfg = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|x64.Build.0 = Release|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|Win32.ActiveCfg = Release|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|x64.ActiveCfg = Release|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release|x64.ActiveCfg = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|Win32.ActiveCfg = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|Win32.Build.0 = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64.ActiveCfg = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64.Build.0 = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x64.Build.0 = Debug|x64\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|Win32.Build.0 = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|x64.ActiveCfg = Release|x64\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|x64.Build.0 = Release|x64\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.All|Win32.ActiveCfg = Release|Win32\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.All|x64.ActiveCfg = Release|Win32\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.Release|x64.ActiveCfg = Release|x64\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|Win32.ActiveCfg = Release|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|x64.ActiveCfg = Release|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release|x64.ActiveCfg = Release|Win32\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.All|Win32.ActiveCfg = Release|Win32\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.All|x64.ActiveCfg = Release|Win32\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.Release|x64.ActiveCfg = Release|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.All|Win32.ActiveCfg = Release|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64.ActiveCfg = Release|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64.Build.0 = Release|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x64.Build.0 = Debug|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|Win32.Build.0 = Release|Win32\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|x64.ActiveCfg = Release|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|x64.Build.0 = Release|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|Win32.ActiveCfg = Release Static|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64.ActiveCfg = Release Static|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64.Build.0 = Release Static|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|x64.ActiveCfg = Release|x64\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x64.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|x64.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x64.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|x64.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x64.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|x64.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x64.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|x64.Build.0 = Release|Win32\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|Win32.ActiveCfg = Debug|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64.ActiveCfg = Debug|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64.Build.0 = Debug|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x64.Build.0 = Debug|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|Win32.Build.0 = Release|Win32\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|x64.ActiveCfg = Release|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|x64.Build.0 = Release|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|Win32.ActiveCfg = Debug|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64.ActiveCfg = Debug|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64.Build.0 = Debug|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x64.Build.0 = Debug|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|Win32.Build.0 = Release|Win32\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|x64.ActiveCfg = Release|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|x64.Build.0 = Release|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|Win32.ActiveCfg = Release|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64.ActiveCfg = Release|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64.Build.0 = Release|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x64.Build.0 = Debug|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|Win32.Build.0 = Release|Win32\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|x64.ActiveCfg = Release|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|x64.Build.0 = Release|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|Win32.ActiveCfg = Debug|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64.ActiveCfg = Debug|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64.Build.0 = Debug|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x64.Build.0 = Debug|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|Win32.Build.0 = Release|Win32\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64.ActiveCfg = Release|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64.Build.0 = Release|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|Win32.ActiveCfg = Release|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.ActiveCfg = Release|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.Build.0 = Release|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.Build.0 = Debug|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.Build.0 = Release|Win32\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64.ActiveCfg = Release|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64.Build.0 = Release|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|Win32.ActiveCfg = Release|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.ActiveCfg = Release|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.Build.0 = Release|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x64.Build.0 = Debug|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|Win32.Build.0 = Release|Win32\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|x64.ActiveCfg = Release|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|x64.Build.0 = Release|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|Win32.ActiveCfg = Release_Mono|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64.ActiveCfg = Release_Mono|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64.Build.0 = Release_Mono|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|Win32.ActiveCfg = Debug_CLR|Win32\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|Win32.Build.0 = Debug_CLR|Win32\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x64.ActiveCfg = Debug_CLR|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x64.Build.0 = Debug_CLR|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|Win32.ActiveCfg = Release_CLR|Win32\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|Win32.Build.0 = Release_CLR|Win32\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|x64.ActiveCfg = Release_CLR|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|x64.Build.0 = Release_CLR|x64\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.All|Win32.ActiveCfg = Release|Any CPU\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.All|x64.ActiveCfg = Release|Any CPU\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|Win32.ActiveCfg = Debug|Any CPU\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|Win32.Build.0 = Debug|Any CPU\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|x64.Build.0 = Debug|x64\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|Win32.ActiveCfg = Release|Any CPU\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|Win32.Build.0 = Release|Any CPU\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|x64.ActiveCfg = Release|x64\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|x64.Build.0 = Release|x64\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.All|Win32.ActiveCfg = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.All|Win32.Build.0 = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.All|x64.ActiveCfg = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.All|x64.Build.0 = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x64.Build.0 = Debug|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Release|Win32.Build.0 = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Release|x64.ActiveCfg = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Release|x64.Build.0 = Release|Win32\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.All|Win32.ActiveCfg = Release|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64.ActiveCfg = Release|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64.Build.0 = Release|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x64.Build.0 = Debug|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|Win32.Build.0 = Release|Win32\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|x64.ActiveCfg = Release|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|x64.Build.0 = Release|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|Win32.ActiveCfg = Release|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64.ActiveCfg = Release|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64.Build.0 = Release|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x64.Build.0 = Debug|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|Win32.Build.0 = Release|Win32\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|x64.ActiveCfg = Release|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|x64.Build.0 = Release|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|Win32.ActiveCfg = Release|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64.ActiveCfg = Release|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64.Build.0 = Release|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x64.Build.0 = Debug|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|Win32.Build.0 = Release|Win32\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|x64.ActiveCfg = Release|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|x64.Build.0 = Release|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|Win32.ActiveCfg = Release|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64.ActiveCfg = Release|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64.Build.0 = Release|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x64.Build.0 = Debug|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|Win32.Build.0 = Release|Win32\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|x64.ActiveCfg = Release|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|x64.Build.0 = Release|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|Win32.ActiveCfg = Release|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64.ActiveCfg = Release|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64.Build.0 = Release|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x64.Build.0 = Debug|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|Win32.Build.0 = Release|Win32\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|x64.ActiveCfg = Release|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|x64.Build.0 = Release|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|Win32.ActiveCfg = Release|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64.ActiveCfg = Release|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64.Build.0 = Release|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x64.Build.0 = Debug|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|Win32.Build.0 = Release|Win32\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|x64.ActiveCfg = Release|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|x64.Build.0 = Release|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|Win32.ActiveCfg = Release|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64.ActiveCfg = Release|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64.Build.0 = Release|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x64.Build.0 = Debug|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|Win32.Build.0 = Release|Win32\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|x64.ActiveCfg = Release|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|x64.Build.0 = Release|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|Win32.ActiveCfg = Release|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64.ActiveCfg = Release|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64.Build.0 = Release|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x64.Build.0 = Debug|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|Win32.Build.0 = Release|Win32\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|x64.ActiveCfg = Release|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|x64.Build.0 = Release|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|Win32.ActiveCfg = Release|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64.ActiveCfg = Release|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64.Build.0 = Release|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x64.Build.0 = Debug|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|Win32.Build.0 = Release|Win32\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|x64.ActiveCfg = Release|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|x64.Build.0 = Release|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|Win32.ActiveCfg = Release|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x64.ActiveCfg = Release|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x64.Build.0 = Release|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|x64.Build.0 = Debug|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|Win32.Build.0 = Release|Win32\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|x64.ActiveCfg = Release|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|x64.Build.0 = Release|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|Win32.ActiveCfg = Release|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64.ActiveCfg = Release|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64.Build.0 = Release|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x64.Build.0 = Debug|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|Win32.Build.0 = Release|Win32\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|x64.ActiveCfg = Release|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|x64.Build.0 = Release|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|Win32.ActiveCfg = Release_WM5_PPC_ARM|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x64.ActiveCfg = Release_WM5_PPC_ARM|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x64.Build.0 = Release_WM5_PPC_ARM|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|x64.Build.0 = Debug|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|Win32.Build.0 = Release|Win32\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|x64.ActiveCfg = Release|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|x64.Build.0 = Release|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|Win32.ActiveCfg = Release_Static_SSE|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x64.ActiveCfg = Release_Static_SSE|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x64.Build.0 = Release_Static_SSE|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|x64.Build.0 = Debug|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|Win32.Build.0 = Release|Win32\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|x64.ActiveCfg = Release|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|x64.Build.0 = Release|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|Win32.ActiveCfg = Release|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64.ActiveCfg = Release|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64.Build.0 = Release|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x64.Build.0 = Debug|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|Win32.Build.0 = Release|Win32\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x64.ActiveCfg = Release|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x64.Build.0 = Release|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.All|Win32.ActiveCfg = Release|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64.ActiveCfg = Release|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64.Build.0 = Release|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64.Build.0 = Debug|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|Win32.Build.0 = Release|Win32\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|x64.ActiveCfg = Release|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|x64.Build.0 = Release|x64\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|Win32.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|Win32.Build.0 = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|x64.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release|x64.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|Win32.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|Win32.Build.0 = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|x64.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Release|x64.ActiveCfg = Release|Win32\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|Win32.ActiveCfg = All|Win32\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|Win32.Build.0 = All|Win32\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x64.ActiveCfg = All|Win32\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x64.ActiveCfg = Release|x64\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|Win32.ActiveCfg = Release|Win32\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|x64.ActiveCfg = Release|Win32\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|x64.ActiveCfg = Release|x64\r
+-              {48414740-C693-4968-9846-EE058020C64F}.All|Win32.ActiveCfg = Release|Win32\r
+-              {48414740-C693-4968-9846-EE058020C64F}.All|x64.ActiveCfg = Release|Win32\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Release|x64.ActiveCfg = Release|x64\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|Win32.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|Win32.Build.0 = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|x64.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|Win32.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|Win32.Build.0 = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x64.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x64.Build.0 = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|Win32.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|Win32.Build.0 = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|x64.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|x64.Build.0 = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|Win32.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|Win32.Build.0 = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|x64.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|Win32.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|Win32.Build.0 = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x64.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x64.Build.0 = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|Win32.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|Win32.Build.0 = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|x64.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|x64.Build.0 = All|Win32\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|Win32.ActiveCfg = Release|x64\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64.ActiveCfg = Release|x64\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64.Build.0 = Release|x64\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release|x64.ActiveCfg = Release|x64\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|Win32.ActiveCfg = Release|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|Win32.Build.0 = Release|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|x64.ActiveCfg = Release|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x64.ActiveCfg = Release|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.All|Win32.ActiveCfg = Release|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.All|x64.ActiveCfg = Release|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.Release|x64.ActiveCfg = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|Win32.ActiveCfg = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|Win32.Build.0 = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64.ActiveCfg = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64.Build.0 = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x64.Build.0 = Debug|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|Win32.Build.0 = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|x64.ActiveCfg = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|x64.Build.0 = Release|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|Win32.ActiveCfg = Release|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|x64.ActiveCfg = Release|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release|x64.ActiveCfg = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|Win32.ActiveCfg = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|Win32.Build.0 = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64.ActiveCfg = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64.Build.0 = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x64.Build.0 = Debug|x64\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|Win32.Build.0 = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|x64.ActiveCfg = Release|x64\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|x64.Build.0 = Release|x64\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|Win32.ActiveCfg = Release|Win32\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|x64.ActiveCfg = Release|Win32\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release|x64.ActiveCfg = Release|x64\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|Win32.ActiveCfg = Release|Win32\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|x64.ActiveCfg = Release|Win32\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|x64.ActiveCfg = Release|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|Win32.ActiveCfg = Release|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64.ActiveCfg = Release|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64.Build.0 = Release|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x64.Build.0 = Debug|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|Win32.Build.0 = Release|Win32\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x64.ActiveCfg = Release|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x64.Build.0 = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|Win32.ActiveCfg = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|Win32.Build.0 = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.ActiveCfg = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.Build.0 = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.Build.0 = Debug|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|Win32.Build.0 = Release|Win32\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64.ActiveCfg = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64.Build.0 = Release|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|Win32.ActiveCfg = Release|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|x64.ActiveCfg = Release|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x64.Build.0 = Debug|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|Win32.Build.0 = Release|Win32\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|x64.ActiveCfg = Release|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|x64.Build.0 = Release|x64\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|Win32.ActiveCfg = Release|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|Win32.Build.0 = Release|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|x64.ActiveCfg = Release|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x64.Build.0 = Debug|x64\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.Build.0 = Release|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|x64.ActiveCfg = Release|x64\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|x64.Build.0 = Release|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|Win32.ActiveCfg = Release|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64.ActiveCfg = Release|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64.Build.0 = Release|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x64.Build.0 = Debug|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|Win32.Build.0 = Release|Win32\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x64.ActiveCfg = Release|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x64.Build.0 = Release|x64\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|Win32.ActiveCfg = Release|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|Win32.Build.0 = Release|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|x64.ActiveCfg = Release|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64.Build.0 = Debug|x64\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|Win32.Build.0 = Release|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x64.ActiveCfg = Release|x64\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x64.Build.0 = Release|x64\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|Win32.ActiveCfg = Release|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|Win32.Build.0 = Release|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|x64.ActiveCfg = Release|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64.Build.0 = Debug|x64\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|Win32.Build.0 = Release|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x64.ActiveCfg = Release|x64\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x64.Build.0 = Release|x64\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|Win32.ActiveCfg = Release|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|Win32.Build.0 = Release|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|x64.ActiveCfg = Release|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64.Build.0 = Debug|x64\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|Win32.Build.0 = Release|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x64.ActiveCfg = Release|x64\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x64.Build.0 = Release|x64\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|Win32.ActiveCfg = Release|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|Win32.Build.0 = Release|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|x64.ActiveCfg = Release|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64.Build.0 = Debug|x64\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|Win32.Build.0 = Release|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x64.ActiveCfg = Release|x64\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x64.Build.0 = Release|x64\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|Win32.ActiveCfg = Release|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|Win32.Build.0 = Release|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|x64.ActiveCfg = Release|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64.Build.0 = Debug|x64\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|Win32.Build.0 = Release|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x64.ActiveCfg = Release|x64\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x64.Build.0 = Release|x64\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|Win32.ActiveCfg = Release|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|Win32.Build.0 = Release|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|x64.ActiveCfg = Release|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64.Build.0 = Debug|x64\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|Win32.Build.0 = Release|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x64.ActiveCfg = Release|x64\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x64.Build.0 = Release|x64\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|Win32.ActiveCfg = Release|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|Win32.Build.0 = Release|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|x64.ActiveCfg = Release|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64.Build.0 = Debug|x64\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|Win32.Build.0 = Release|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x64.ActiveCfg = Release|x64\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x64.Build.0 = Release|x64\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|Win32.ActiveCfg = Release|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|Win32.Build.0 = Release|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|x64.ActiveCfg = Release|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64.Build.0 = Debug|x64\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|Win32.Build.0 = Release|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x64.ActiveCfg = Release|x64\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x64.Build.0 = Release|x64\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|Win32.ActiveCfg = Release|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|Win32.Build.0 = Release|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|x64.ActiveCfg = Release|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64.Build.0 = Debug|x64\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|Win32.Build.0 = Release|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x64.ActiveCfg = Release|x64\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x64.Build.0 = Release|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|Win32.ActiveCfg = Release|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x64.ActiveCfg = Release|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x64.Build.0 = Release|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|x64.Build.0 = Debug|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|Win32.Build.0 = Release|Win32\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|x64.ActiveCfg = Release|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|x64.Build.0 = Release|x64\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|Win32.ActiveCfg = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|Win32.Build.0 = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|x64.ActiveCfg = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x64.Build.0 = Debug|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|Win32.Build.0 = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|x64.ActiveCfg = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|x64.Build.0 = Release|Win32\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|Win32.ActiveCfg = Release|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64.ActiveCfg = Release|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64.Build.0 = Release|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64.Build.0 = Debug|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|Win32.Build.0 = Release|Win32\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x64.ActiveCfg = Release|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x64.Build.0 = Release|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|Win32.ActiveCfg = Release Passthrough|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64.ActiveCfg = Release Passthrough|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64.Build.0 = Release Passthrough|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x64.Build.0 = Debug|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|Win32.Build.0 = Release|Win32\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|x64.ActiveCfg = Release|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|x64.Build.0 = Release|x64\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|Win32.ActiveCfg = Release|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|Win32.Build.0 = Release|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|x64.ActiveCfg = Release|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release|x64.ActiveCfg = Release|Win32\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|Win32.ActiveCfg = Release|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64.ActiveCfg = Release|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64.Build.0 = Release|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x64.Build.0 = Debug|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|Win32.Build.0 = Release|Win32\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|x64.ActiveCfg = Release|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|x64.Build.0 = Release|x64\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|Win32.ActiveCfg = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|Win32.Build.0 = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|x64.ActiveCfg = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x64.Build.0 = Debug|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|Win32.Build.0 = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|x64.ActiveCfg = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|x64.Build.0 = Release|Win32\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|Win32.ActiveCfg = Release|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64.ActiveCfg = Release|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64.Build.0 = Release|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64.Build.0 = Debug|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|Win32.Build.0 = Release|Win32\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x64.ActiveCfg = Release|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x64.Build.0 = Release|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|Win32.ActiveCfg = Release|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64.ActiveCfg = Release|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64.Build.0 = Release|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x64.Build.0 = Debug|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|Win32.Build.0 = Release|Win32\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|x64.ActiveCfg = Release|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|x64.Build.0 = Release|x64\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|Win32.ActiveCfg = Release|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|Win32.Build.0 = Release|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|x64.ActiveCfg = Release|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x64.Build.0 = Debug|x64\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|Win32.Build.0 = Release|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|x64.ActiveCfg = Release|x64\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|x64.Build.0 = Release|x64\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|Win32.ActiveCfg = Release|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|Win32.Build.0 = Release|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|x64.ActiveCfg = Release|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x64.Build.0 = Debug|x64\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|Win32.Build.0 = Release|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|x64.ActiveCfg = Release|x64\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|x64.Build.0 = Release|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|Win32.ActiveCfg = Release|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64.ActiveCfg = Release|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64.Build.0 = Release|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x64.Build.0 = Debug|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|Win32.Build.0 = Release|Win32\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|x64.ActiveCfg = Release|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|x64.Build.0 = Release|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|Win32.ActiveCfg = Release|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64.ActiveCfg = Release|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64.Build.0 = Release|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x64.Build.0 = Debug|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|Win32.Build.0 = Release|Win32\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|x64.ActiveCfg = Release|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|x64.Build.0 = Release|x64\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|Win32.ActiveCfg = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|Win32.Build.0 = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|x64.ActiveCfg = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|x64.Build.0 = Debug|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|Win32.Build.0 = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|x64.ActiveCfg = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|x64.Build.0 = Release|Win32\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|Win32.ActiveCfg = Release|Win32\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|Win32.Build.0 = Release|Win32\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|x64.ActiveCfg = Release|Win32\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|x64.Build.0 = Debug|x64\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|Win32.Build.0 = Release|Win32\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|x64.ActiveCfg = Release|x64\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|x64.Build.0 = Release|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|Win32.ActiveCfg = Release|Win32\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|Win32.Build.0 = Release|Win32\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|x64.ActiveCfg = Release|Win32\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|x64.Build.0 = Debug|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|Win32.Build.0 = Release|Win32\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|x64.ActiveCfg = Release|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|x64.Build.0 = Release|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|Win32.ActiveCfg = Release|Win32\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|Win32.Build.0 = Release|Win32\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|x64.ActiveCfg = Release|Win32\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|x64.Build.0 = Debug|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|Win32.Build.0 = Release|Win32\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|x64.ActiveCfg = Release|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|x64.Build.0 = Release|x64\r
+-              {42E721FD-43D6-4B04-A34B-42567199FFB8}.All|Win32.ActiveCfg = Release|x64\r
+-              {42E721FD-43D6-4B04-A34B-42567199FFB8}.All|x64.ActiveCfg = Release|x64\r
+-              {42E721FD-43D6-4B04-A34B-42567199FFB8}.All|x64.Build.0 = Release|x64\r
+-              {42E721FD-43D6-4B04-A34B-42567199FFB8}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {42E721FD-43D6-4B04-A34B-42567199FFB8}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {42E721FD-43D6-4B04-A34B-42567199FFB8}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {42E721FD-43D6-4B04-A34B-42567199FFB8}.Release|x64.ActiveCfg = Release|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|Win32.ActiveCfg = Release|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x64.ActiveCfg = Release|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x64.Build.0 = Release|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|x64.Build.0 = Debug|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|Win32.Build.0 = Release|Win32\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64.ActiveCfg = Release|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64.Build.0 = Release|x64\r
+-              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.All|Win32.ActiveCfg = Release|x64\r
+-              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.All|x64.ActiveCfg = Release|x64\r
+-              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.All|x64.Build.0 = Release|x64\r
+-              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Debug|x64.Build.0 = Debug|x64\r
+-              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Release|Win32.Build.0 = Release|Win32\r
+-              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Release|x64.ActiveCfg = Release|x64\r
+-              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Release|x64.Build.0 = Release|x64\r
+-              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.All|Win32.ActiveCfg = Release|x64\r
+-              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.All|x64.ActiveCfg = Release|x64\r
+-              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.All|x64.Build.0 = Release|x64\r
+-              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Debug|x64.Build.0 = Debug|x64\r
+-              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Release|Win32.Build.0 = Release|Win32\r
+-              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Release|x64.ActiveCfg = Release|x64\r
+-              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Release|x64.Build.0 = Release|x64\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|Win32.ActiveCfg = Release|Win32\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|Win32.Build.0 = Release|Win32\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64.ActiveCfg = Release|Win32\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x64.ActiveCfg = Release|x64\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|Win32.ActiveCfg = Debug|Win32\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|Win32.Build.0 = Debug|Win32\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64.ActiveCfg = Debug|Win32\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x64.ActiveCfg = Release|x64\r
+-              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.All|Win32.ActiveCfg = Debug|x64\r
+-              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.All|x64.ActiveCfg = Debug|x64\r
+-              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.All|x64.Build.0 = Debug|x64\r
+-              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Debug|x64.Build.0 = Debug|x64\r
+-              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Release|Win32.Build.0 = Release|Win32\r
+-              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Release|x64.ActiveCfg = Release|x64\r
+-              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Release|x64.Build.0 = Release|x64\r
+-              {21A7DA70-555E-49FA-942B-D84A38B61243}.All|Win32.ActiveCfg = Release|Win32\r
+-              {21A7DA70-555E-49FA-942B-D84A38B61243}.All|Win32.Build.0 = Release|Win32\r
+-              {21A7DA70-555E-49FA-942B-D84A38B61243}.All|x64.ActiveCfg = Release|Win32\r
+-              {21A7DA70-555E-49FA-942B-D84A38B61243}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {21A7DA70-555E-49FA-942B-D84A38B61243}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {21A7DA70-555E-49FA-942B-D84A38B61243}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {21A7DA70-555E-49FA-942B-D84A38B61243}.Debug|x64.Build.0 = Debug|Win32\r
+-              {21A7DA70-555E-49FA-942B-D84A38B61243}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {21A7DA70-555E-49FA-942B-D84A38B61243}.Release|Win32.Build.0 = Release|Win32\r
+-              {21A7DA70-555E-49FA-942B-D84A38B61243}.Release|x64.ActiveCfg = Release|Win32\r
+-              {21A7DA70-555E-49FA-942B-D84A38B61243}.Release|x64.Build.0 = Release|Win32\r
+-      EndGlobalSection\r
+-      GlobalSection(SolutionProperties) = preSolution\r
+-              HideSolutionNode = FALSE\r
+-      EndGlobalSection\r
+-      GlobalSection(NestedProjects) = preSolution\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {48414740-C693-4968-9846-EE058020C64F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {F6A33240-8F29-48BD-98F0-826995911799} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {42E721FD-43D6-4B04-A34B-42567199FFB8} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {BDA173DB-F8EF-4270-9553-B453AF92E43A} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6} = {A5A27244-AD24-46E5-B01B-840CD296C91D}\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7} = {A5A27244-AD24-46E5-B01B-840CD296C91D}\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B} = {A5A27244-AD24-46E5-B01B-840CD296C91D}\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52} = {A5A27244-AD24-46E5-B01B-840CD296C91D}\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692} = {A5A27244-AD24-46E5-B01B-840CD296C91D}\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723} = {CBD81696-EFB4-4D2F-8451-1B8DAA86155A}\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98} = {B8F5B47B-8568-46EB-B320-64C17D2A98BC}\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5} = {A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909} = {A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {94001A0E-A837-445C-8004-F918F10D0226} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {62F27B1A-C919-4A70-8478-51F178F3B18F} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {B376D494-D7DD-4B2A-99E2-52916D5A8CD8} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {2DEE4895-1134-439C-B688-52203E57D878} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {E796E337-DE78-4303-8614-9A590862EE95} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {21A7DA70-555E-49FA-942B-D84A38B61243} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0} = {57D119DC-484F-420F-B9E9-8589FD9A8DF8}\r
+-              {3C90CCF0-2CDD-4A7A-ACFF-208C1E271692} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}\r
+-              {C7E2382E-2C22-4D18-BF93-80C6A1FFA7AC} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}\r
+-              {FC71C66E-E268-4EAD-B1F5-F008DC382E83} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}\r
+-              {8E2E8798-8B6F-4A55-8E4F-4E6FDE40ED26} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}\r
+-              {09455AA9-C243-4F16-A1A1-A016881A2765} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}\r
+-              {CDE9B06A-3C27-4987-8FAE-DF1006BC705D} = {DB1024A8-41BF-4AD7-9AE6-13202230D1F3}\r
+-              {57199684-EC63-4A60-9DC6-11815AF6B413} = {09455AA9-C243-4F16-A1A1-A016881A2765}\r
+-              {2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C} = {09455AA9-C243-4F16-A1A1-A016881A2765}\r
+-              {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5} = {09455AA9-C243-4F16-A1A1-A016881A2765}\r
+-              {765EF1B9-5027-4820-BC37-A44466A51631} = {57199684-EC63-4A60-9DC6-11815AF6B413}\r
+-              {713E4747-1126-40B1-BD84-58F9A7745423} = {57199684-EC63-4A60-9DC6-11815AF6B413}\r
+-              {D3E5C8ED-3A6A-4FEA-92A2-48A0BA865358} = {2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C}\r
+-              {CC3E7F48-2590-49CB-AD8B-BE3650F55462} = {2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C}\r
+-              {F1B71990-EB04-4EB5-B28A-BC3EB6F7E843} = {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5}\r
+-              {3DAF028C-AB5B-4183-A01B-DCC43F5A87F0} = {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5}\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A} = {4F227C26-768F-46A3-8684-1D08A46FB374}\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A} = {4F227C26-768F-46A3-8684-1D08A46FB374}\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311} = {4F227C26-768F-46A3-8684-1D08A46FB374}\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870} = {4F227C26-768F-46A3-8684-1D08A46FB374}\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289} = {4F227C26-768F-46A3-8684-1D08A46FB374}\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959} = {4F227C26-768F-46A3-8684-1D08A46FB374}\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {B376D494-D7DD-4B2A-99E2-52916D5A8CD8}\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39} = {B376D494-D7DD-4B2A-99E2-52916D5A8CD8}\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79} = {B376D494-D7DD-4B2A-99E2-52916D5A8CD8}\r
+-      EndGlobalSection\r
+-EndGlobal\r
++
++Microsoft Visual Studio Solution File, Format Version 10.00
++# Visual Studio 2008
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Codecs", "Codecs", "{F881ADA2-2F1A-4046-9FEB-191D9422D781}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Endpoints", "Endpoints", "{9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Applications", "Applications", "{E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dialplans", "Dialplans", "{C5F182F9-754A-4EC5-B50F-76ED02BE13F4}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Event Handlers", "Event Handlers", "{9ADF1E48-2F5C-4ED7-A893-596259FABFE0}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Formats", "Formats", "{A5A27244-AD24-46E5-B01B-840CD296C91D}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{CBD81696-EFB4-4D2F-8451-1B8DAA86155A}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Directories", "Directories", "{B8F5B47B-8568-46EB-B320-64C17D2A98BC}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Languages", "Languages", "{0C808854-54D1-4230-BFF5-77B5FD905000}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ASR-TTS", "ASR-TTS", "{4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Loggers", "Loggers", "{A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XML Interfaces", "XML Interfaces", "{F69A4A6B-9360-4EBB-A280-22AA3C455AC5}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Libraries", "_Libraries", "{EB910B0D-F27D-4B62-B67B-DE834C99AC5B}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Downloads", "_Downloads", "{C120A020-773F-4EA3-923F-B67AF28B750D}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "say", "say", "{6CD61A1D-797C-470A-BE08-8C31B68BB336}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Config", "_Config", "{57D119DC-484F-420F-B9E9-8589FD9A8DF8}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Default", "Default", "{3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\freeswitch.xml = conf\vanilla\freeswitch.xml
++              conf\vanilla\vars.xml = conf\vanilla\vars.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Build System", "_Build System", "{DB1024A8-41BF-4AD7-9AE6-13202230D1F3}"
++      ProjectSection(SolutionItems) = preProject
++              acsite.m4 = acsite.m4
++              bootstrap.sh = bootstrap.sh
++              build\buildlib.sh = build\buildlib.sh
++              configure.in = configure.in
++              Makefile.am = Makefile.am
++              build\modmake.rules.in = build\modmake.rules.in
++              build\modules.conf.in = build\modules.conf.in
++              libs\win32\util.vbs = libs\win32\util.vbs
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "m4", "m4", "{CDE9B06A-3C27-4987-8FAE-DF1006BC705D}"
++      ProjectSection(SolutionItems) = preProject
++              build\config\ac_cflags_gcc_option.m4 = build\config\ac_cflags_gcc_option.m4
++              build\config\ac_cflags_sun_option.m4 = build\config\ac_cflags_sun_option.m4
++              build\config\ac_gcc_archflag.m4 = build\config\ac_gcc_archflag.m4
++              build\config\ac_gcc_x86_cpuid.m4 = build\config\ac_gcc_x86_cpuid.m4
++              build\config\ac_prog_gzip.m4 = build\config\ac_prog_gzip.m4
++              build\config\ac_prog_wget.m4 = build\config\ac_prog_wget.m4
++              build\config\ax_cc_maxopt.m4 = build\config\ax_cc_maxopt.m4
++              build\config\ax_cflags_warn_all_ansi.m4 = build\config\ax_cflags_warn_all_ansi.m4
++              build\config\ax_check_compiler_flags.m4 = build\config\ax_check_compiler_flags.m4
++              build\config\ax_compiler_vendor.m4 = build\config\ax_compiler_vendor.m4
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "autoload_configs", "autoload_configs", "{3C90CCF0-2CDD-4A7A-ACFF-208C1E271692}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\autoload_configs\alsa.conf.xml = conf\vanilla\autoload_configs\alsa.conf.xml
++              conf\vanilla\autoload_configs\conference.conf.xml = conf\vanilla\autoload_configs\conference.conf.xml
++              conf\vanilla\autoload_configs\console.conf.xml = conf\vanilla\autoload_configs\console.conf.xml
++              conf\vanilla\autoload_configs\dialplan_directory.conf.xml = conf\vanilla\autoload_configs\dialplan_directory.conf.xml
++              conf\vanilla\autoload_configs\dingaling.conf.xml = conf\vanilla\autoload_configs\dingaling.conf.xml
++              conf\vanilla\autoload_configs\enum.conf.xml = conf\vanilla\autoload_configs\enum.conf.xml
++              conf\vanilla\autoload_configs\event_multicast.conf.xml = conf\vanilla\autoload_configs\event_multicast.conf.xml
++              conf\vanilla\autoload_configs\event_socket.conf.xml = conf\vanilla\autoload_configs\event_socket.conf.xml
++              conf\vanilla\autoload_configs\ivr.conf.xml = conf\vanilla\autoload_configs\ivr.conf.xml
++              conf\vanilla\autoload_configs\java.conf.xml = conf\vanilla\autoload_configs\java.conf.xml
++              conf\vanilla\autoload_configs\limit.conf.xml = conf\vanilla\autoload_configs\limit.conf.xml
++              conf\vanilla\autoload_configs\local_stream.conf.xml = conf\vanilla\autoload_configs\local_stream.conf.xml
++              conf\vanilla\autoload_configs\logfile.conf.xml = conf\vanilla\autoload_configs\logfile.conf.xml
++              conf\vanilla\autoload_configs\modules.conf.xml = conf\vanilla\autoload_configs\modules.conf.xml
++              conf\vanilla\autoload_configs\openmrcp.conf.xml = conf\vanilla\autoload_configs\openmrcp.conf.xml
++              conf\vanilla\autoload_configs\portaudio.conf.xml = conf\vanilla\autoload_configs\portaudio.conf.xml
++              conf\vanilla\autoload_configs\rss.conf.xml = conf\vanilla\autoload_configs\rss.conf.xml
++              conf\vanilla\autoload_configs\sofia.conf.xml = conf\vanilla\autoload_configs\sofia.conf.xml
++              conf\vanilla\autoload_configs\spidermonkey.conf.xml = conf\vanilla\autoload_configs\spidermonkey.conf.xml
++              conf\vanilla\autoload_configs\switch.conf.xml = conf\vanilla\autoload_configs\switch.conf.xml
++              conf\vanilla\autoload_configs\syslog.conf.xml = conf\vanilla\autoload_configs\syslog.conf.xml
++              conf\vanilla\autoload_configs\voicemail.conf.xml = conf\vanilla\autoload_configs\voicemail.conf.xml
++              conf\vanilla\autoload_configs\wanpipe.conf.xml = conf\vanilla\autoload_configs\wanpipe.conf.xml
++              conf\vanilla\autoload_configs\woomera.conf.xml = conf\vanilla\autoload_configs\woomera.conf.xml
++              conf\vanilla\autoload_configs\xml_cdr.conf.xml = conf\vanilla\autoload_configs\xml_cdr.conf.xml
++              conf\vanilla\autoload_configs\xml_curl.conf.xml = conf\vanilla\autoload_configs\xml_curl.conf.xml
++              conf\vanilla\autoload_configs\xml_rpc.conf.xml = conf\vanilla\autoload_configs\xml_rpc.conf.xml
++              conf\vanilla\autoload_configs\zeroconf.conf.xml = conf\vanilla\autoload_configs\zeroconf.conf.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dialplan", "dialplan", "{C7E2382E-2C22-4D18-BF93-80C6A1FFA7AC}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\dialplan\default.xml = conf\vanilla\dialplan\default.xml
++              conf\vanilla\dialplan\public.xml = conf\vanilla\dialplan\public.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "directory", "directory", "{FC71C66E-E268-4EAD-B1F5-F008DC382E83}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\directory\default.xml = conf\vanilla\directory\default.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sip_profiles", "sip_profiles", "{8E2E8798-8B6F-4A55-8E4F-4E6FDE40ED26}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\sip_profiles\external.xml = conf\vanilla\sip_profiles\external.xml
++              conf\vanilla\sip_profiles\internal.xml = conf\vanilla\sip_profiles\internal.xml
++              conf\vanilla\sip_profiles\nat.xml = conf\vanilla\sip_profiles\nat.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lang", "lang", "{09455AA9-C243-4F16-A1A1-A016881A2765}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\directory\default.xml = conf\vanilla\directory\default.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "en", "en", "{57199684-EC63-4A60-9DC6-11815AF6B413}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\en\en.xml = conf\vanilla\lang\en\en.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "de", "de", "{2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\de\de.xml = conf\vanilla\lang\de\de.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "fr", "fr", "{D4A12E4C-DBDA-4614-BA26-3425AE9F60F5}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\fr\fr.xml = conf\vanilla\lang\fr\fr.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{D3E5C8ED-3A6A-4FEA-92A2-48A0BA865358}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\de\demo\demo.xml = conf\vanilla\lang\de\demo\demo.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{CC3E7F48-2590-49CB-AD8B-BE3650F55462}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\de\vm\tts.xml = conf\vanilla\lang\de\vm\tts.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{765EF1B9-5027-4820-BC37-A44466A51631}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\en\demo\demo.xml = conf\vanilla\lang\en\demo\demo.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{713E4747-1126-40B1-BD84-58F9A7745423}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\en\vm\sounds.xml = conf\vanilla\lang\en\vm\sounds.xml
++              conf\vanilla\lang\en\vm\tts.xml = conf\vanilla\lang\en\vm\tts.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{F1B71990-EB04-4EB5-B28A-BC3EB6F7E843}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\fr\demo\demo.xml = conf\vanilla\lang\fr\demo\demo.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{3DAF028C-AB5B-4183-A01B-DCC43F5A87F0}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\fr\vm\sounds.xml = conf\vanilla\lang\fr\vm\sounds.xml
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchConsole", "w32\Console\FreeSwitchConsole.2008.vcproj", "{1AF3A893-F7BE-43DD-B697-8AB2397C0D67}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchCoreLib", "w32\Library\FreeSwitchCore.2008.vcproj", "{202D7A4E-760D-4D0E-AFA1-D7459CED30FF}"
++      ProjectSection(ProjectDependencies) = postProject
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9} = {8D04B550-D240-4A44-8A18-35DA3F7038D9}
++              {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD} = {03207781-0D1C-4DB3-A71D-45C608F28DBD}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EEF031CB-FED8-451E-A471-91EC8D4F6750}
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g729", "src\mod\codecs\mod_g729\mod_g729.2008.vcproj", "{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sndfile", "src\mod\formats\mod_sndfile\mod_sndfile.2008.vcproj", "{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4} = {3D0370CA-BED2-4657-A475-32375CBCB6E4}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.2008.vcproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99} = {0A18A071-125E-442F-AFF7-A3F68ABECF99}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_speex", "src\mod\codecs\mod_speex\mod_speex.2008.vcproj", "{5580D60E-0F77-4716-9CD4-B8E5986FA375}"
++      ProjectSection(ProjectDependencies) = postProject
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {E972C52F-9E85-4D65-B19C-031E511E9DB4}
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD} = {03207781-0D1C-4DB3-A71D-45C608F28DBD}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "docs", "docs\docs.2008.vcproj", "{1A1FF289-4FD6-4285-A422-D31DD67A4723}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_xml", "src\mod\dialplans\mod_dialplan_xml\mod_dialplan_xml.2008.vcproj", "{07113B25-D3AF-4E04-BA77-4CD1171F022C}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ldap", "src\mod\directories\mod_ldap\mod_ldap.2008.vcproj", "{EC3E5C7F-EE09-47E2-80FE-546363D14A98}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_directory", "src\mod\dialplans\mod_dialplan_directory\mod_dialplan_directory.2008.vcproj", "{A27CCA23-1541-4337-81A4-F0A6413078A0}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_event_multicast", "src\mod\event_handlers\mod_event_multicast\mod_event_multicast.2008.vcproj", "{784113EF-44D9-4949-835D-7065D3C7AD08}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libteletone", "libs\libteletone\libteletone.2008.vcproj", "{89385C74-5860-4174-9CAF-A39E7C48909C}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey", "src\mod\languages\mod_spidermonkey\mod_spidermonkey.2008.vcproj", "{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
++              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cepstral", "src\mod\asr_tts\mod_cepstral\mod_cepstral.2008.vcproj", "{692F6330-4D87-4C82-81DF-40DB5892636E}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ilbc", "src\mod\codecs\mod_ilbc\mod_ilbc.2008.vcproj", "{D3EC0AFF-76FC-4210-A825-9A17410660A3}"
++      ProjectSection(ProjectDependencies) = postProject
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD} = {9A5DDF08-C88C-4A35-B7F6-D605228446BD}
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dingaling", "src\mod\endpoints\mod_dingaling\mod_dingaling.2008.vcproj", "{FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}"
++      ProjectSection(ProjectDependencies) = postProject
++              {1906D736-08BD-4EE1-924F-B536249B9A54} = {1906D736-08BD-4EE1-924F-B536249B9A54}
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39} = {B4B62169-5AD4-4559-8707-3D933AC5DB39}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {E727E8F6-935D-46FE-8B0E-37834748A0E3}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_commands", "src\mod\applications\mod_commands\mod_commands.2008.vcproj", "{30A5B29C-983E-4580-9FD0-D647CCDCC7EB}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_console", "src\mod\loggers\mod_console\mod_console.2008.vcproj", "{1C453396-D912-4213-89FD-9B489162B7B5}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_rpc", "src\mod\xml_int\mod_xml_rpc\mod_xml_rpc.2008.vcproj", "{CBEC7225-0C21-4DA8-978E-1F158F8AD950}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {2390F054-A7F1-4CB9-ACB0-F46EC6E77B5B} = {2390F054-A7F1-4CB9-ACB0-F46EC6E77B5B}
++              {A4D67895-E709-40C7-82B6-DE1D12DDDE04} = {A4D67895-E709-40C7-82B6-DE1D12DDDE04}
++              {510BDAA8-C04D-47DB-8482-E6AF380D3E07} = {510BDAA8-C04D-47DB-8482-E6AF380D3E07}
++              {E5A9BCDA-B82D-4B08-B23E-9A782E367888} = {E5A9BCDA-B82D-4B08-B23E-9A782E367888}
++              {3CF7C0E0-07C2-473A-A1E4-2274AEEC1268} = {3CF7C0E0-07C2-473A-A1E4-2274AEEC1268}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rss", "src\mod\applications\mod_rss\mod_rss.2008.vcproj", "{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_conference", "src\mod\applications\mod_conference\mod_conference.2008.vcproj", "{C24FB505-05D7-4319-8485-7540B44C8603}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dptools", "src\mod\applications\mod_dptools\mod_dptools.2008.vcproj", "{B5881A85-FE70-4F64-8607-2CAAE52669C6}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_event_socket", "src\mod\event_handlers\mod_event_socket\mod_event_socket.2008.vcproj", "{05515420-16DE-4E63-BE73-85BE85BA5142}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdingaling", "libs\libdingaling\libdingaling.2008.vcproj", "{1906D736-08BD-4EE1-924F-B536249B9A54}"
++      ProjectSection(ProjectDependencies) = postProject
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {E727E8F6-935D-46FE-8B0E-37834748A0E3}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsrtp", "libs\srtp\libsrtp.2008.vcproj", "{EEF031CB-FED8-451E-A471-91EC8D4F6750}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsqlite", "libs\win32\sqlite\sqlite.2008.vcproj", "{6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpcre", "libs\win32\pcre\libpcre.2008.vcproj", "{8D04B550-D240-4A44-8A18-35DA3F7038D9}"
++      ProjectSection(ProjectDependencies) = postProject
++              {1CED5987-A529-46DC-B30F-870D85FF9C94} = {1CED5987-A529-46DC-B30F-870D85FF9C94}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpcre Generate pcre_chartables.c", "libs\win32\pcre\pcre_chartables.c.2008.vcproj", "{1CED5987-A529-46DC-B30F-870D85FF9C94}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libapr", "libs\win32\apr\libapr.2008.vcproj", "{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libaprutil", "libs\win32\apr-util\libaprutil.2008.vcproj", "{F057DA7F-79E5-4B00-845C-EF446EF055E3}"
++      ProjectSection(ProjectDependencies) = postProject
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F} = {155844C3-EC5F-407F-97A4-A2DDADED9B2F}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iksemel", "libs\win32\iksemel\iksemel.2008.vcproj", "{E727E8F6-935D-46FE-8B0E-37834748A0E3}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsndfile", "libs\win32\libsndfile\libsndfile.2008.vcproj", "{3D0370CA-BED2-4657-A475-32375CBCB6E4}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "curllib", "libs\win32\curl\curllib.2008.vcproj", "{87EE9DA4-DE1E-4448-8324-183C98DCA588}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "libs\win32\apr-util\xml.2008.vcproj", "{155844C3-EC5F-407F-97A4-A2DDADED9B2F}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "js", "libs\win32\js\js.2008.vcproj", "{204FA0DE-305D-4414-AE2E-F195A23F390D}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sofia", "src\mod\endpoints\mod_sofia\mod_sofia.2008.vcproj", "{0DF3ABD0-DDC0-4265-B778-07C66780979B}"
++      ProjectSection(ProjectDependencies) = postProject
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39} = {B4B62169-5AD4-4559-8707-3D933AC5DB39}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsofia_sip_ua_static", "libs\win32\sofia\libsofia_sip_ua_static.2008.vcproj", "{70A49BC2-7500-41D0-B75D-EDCC5BE987A0}"
++      ProjectSection(ProjectDependencies) = postProject
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39} = {B4B62169-5AD4-4559-8707-3D933AC5DB39}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download PTHREAD", "libs\win32\Download PTHREAD.2008.vcproj", "{8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pthread", "libs\win32\pthread\pthread.2008.vcproj", "{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}"
++      ProjectSection(ProjectDependencies) = postProject
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g723_1", "src\mod\codecs\mod_g723_1\mod_g723_1.2008.vcproj", "{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_native_file", "src\mod\formats\mod_native_file\mod_native_file.2008.vcproj", "{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_core_db", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_core_db.2008.vcproj", "{ACFFF684-4D19-4D48-AF12-88EA1D778BDF}"
++      ProjectSection(ProjectDependencies) = postProject
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_teletone", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_teletone.2008.vcproj", "{8F992C49-6C51-412F-B2A3-34EAB708EB65}"
++      ProjectSection(ProjectDependencies) = postProject
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_enum", "src\mod\applications\mod_enum\mod_enum.2008.vcproj", "{71A967D5-0E99-4CEF-A587-98836EE6F2EF}"
++      ProjectSection(ProjectDependencies) = postProject
++              {23B4D303-79FC-49E0-89E2-2280E7E28940} = {23B4D303-79FC-49E0-89E2-2280E7E28940}
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_odbc", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_odbc.2008.vcproj", "{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}"
++      ProjectSection(ProjectDependencies) = postProject
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_curl", "src\mod\xml_int\mod_xml_curl\mod_xml_curl.2008.vcproj", "{AB91A099-7690-4ECF-8994-E458F4EA1ED4}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_en", "src\mod\say\mod_say_en\mod_say_en.2008.vcproj", "{988CACF7-3FCB-4992-BE69-77872AE67DC8}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portaudio", "libs\portaudio\build\msvc\portaudio.2008.vcproj", "{0A18A071-125E-442F-AFF7-A3F68ABECF99}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_cdr", "src\mod\xml_int\mod_xml_cdr\mod_xml_cdr.2008.vcproj", "{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_amr", "src\mod\codecs\mod_amr\mod_amr.2008.vcproj", "{8DEB383C-4091-4F42-A56F-C9E46D552D79}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_h26x", "src\mod\codecs\mod_h26x\mod_h26x.2008.vcproj", "{2C3C2423-234B-4772-8899-D3B137E5CA35}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_esf", "src\mod\applications\mod_esf\mod_esf.2008.vcproj", "{3850D93A-5F24-4922-BC1C-74D08C37C256}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_local_stream", "src\mod\formats\mod_local_stream\mod_local_stream.2008.vcproj", "{2CA40887-1622-46A1-A7F9-17FD7E7E545B}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_socket", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_socket.2008.vcproj", "{028C7278-05D7-4E18-82FE-BE231B844F41}"
++      ProjectSection(ProjectDependencies) = postProject
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_voicemail", "src\mod\applications\mod_voicemail\mod_voicemail.2008.vcproj", "{D7F1E3F2-A3F4-474C-8555-15122571AF52}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_de", "src\mod\say\mod_say_de\mod_say_de.2008.vcproj", "{5BC072DB-3826-48EA-AF34-FE32AA01E83B}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_es", "src\mod\say\mod_say_es\mod_say_es.2008.vcproj", "{FA429E98-8B03-45E6-A096-A4BC5E821DE4}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_fr", "src\mod\say\mod_say_fr\mod_say_fr.2008.vcproj", "{06E3A538-AB32-44F2-B477-755FF9CB5D37}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_it", "src\mod\say\mod_say_it\mod_say_it.2008.vcproj", "{6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_nl", "src\mod\say\mod_say_nl\mod_say_nl.2008.vcproj", "{A4B122CF-5196-476B-8C0E-D8BD59AC3C14}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_fifo", "src\mod\applications\mod_fifo\mod_fifo.2008.vcproj", "{75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_db", "src\mod\applications\mod_db\mod_db.2008.vcproj", "{F6A33240-8F29-48BD-98F0-826995911799}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_expr", "src\mod\applications\mod_expr\mod_expr.2008.vcproj", "{65A6273D-FCAB-4C55-B09E-65100141A5D4}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_asterisk", "src\mod\dialplans\mod_dialplan_asterisk\mod_dialplan_asterisk.2008.vcproj", "{E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_logfile", "src\mod\loggers\mod_logfile\mod_logfile.2008.vcproj", "{D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cdr_csv", "src\mod\event_handlers\mod_cdr_csv\mod_cdr_csv.2008.vcproj", "{44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_tone_stream", "src\mod\formats\mod_tone_stream\mod_tone_stream.2008.vcproj", "{6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_fsv", "src\mod\applications\mod_fsv\mod_fsv.2008.vcproj", "{E3246D17-E29B-4AB5-962A-C69B0C5837BB}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_curl", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_curl.2008.vcproj", "{36E854E3-CE12-4348-A125-CCF3F9D74813}"
++      ProjectSection(ProjectDependencies) = postProject
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
++              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_lua", "src\mod\languages\mod_lua\mod_lua.2008.vcproj", "{7B077E7F-1BE7-4291-AB86-55E527B25CAC}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {D0B36172-CD76-454A-9B89-990025266C2A} = {D0B36172-CD76-454A-9B89-990025266C2A}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download sphinxbase", "libs\win32\Download sphinxbase.2008.vcproj", "{4F92B672-DADB-4047-8D6A-4BB3796733FD}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download sphinxmodel", "libs\win32\Download sphinxmodel.2008.vcproj", "{2DEE4895-1134-439C-B688-52203E57D878}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download pocketsphinx", "libs\win32\Download pocketsphinx.2008.vcproj", "{AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sphinxbase", "libs\win32\sphinxbase\sphinxbase.2008.vcproj", "{2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}"
++      ProjectSection(ProjectDependencies) = postProject
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD} = {4F92B672-DADB-4047-8D6A-4BB3796733FD}
++              {2DEE4895-1134-439C-B688-52203E57D878} = {2DEE4895-1134-439C-B688-52203E57D878}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pocketsphinx", "libs\win32\pocketsphinx\pocketsphinx.2008.vcproj", "{94001A0E-A837-445C-8004-F918F10D0226}"
++      ProjectSection(ProjectDependencies) = postProject
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E} = {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_pocketsphinx", "src\mod\asr_tts\mod_pocketsphinx\mod_pocketsphinx.2008.vcproj", "{2286DA73-9FC5-45BC-A508-85994C3317AB}"
++      ProjectSection(ProjectDependencies) = postProject
++              {94001A0E-A837-445C-8004-F918F10D0226} = {94001A0E-A837-445C-8004-F918F10D0226}
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD} = {4F92B672-DADB-4047-8D6A-4BB3796733FD}
++              {2DEE4895-1134-439C-B688-52203E57D878} = {2DEE4895-1134-439C-B688-52203E57D878}
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E} = {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 8khzsound", "libs\win32\Download 8khz Sounds.2008.vcproj", "{3CE1DC99-8246-4DB1-A709-74F19F08EC67}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sound Files", "Sound Files", "{4F227C26-768F-46A3-8684-1D08A46FB374}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 16khzsound", "libs\win32\Download 16khz Sounds.2008.vcproj", "{87A1FE3D-F410-4C8E-9591-8C625985BC70}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "8khz", "libs\win32\Sound_Files\8khz.2008.vcproj", "{7A8D8174-B355-4114-AFC1-04777CB9DE0A}"
++      ProjectSection(ProjectDependencies) = postProject
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67} = {3CE1DC99-8246-4DB1-A709-74F19F08EC67}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "16khz", "libs\win32\Sound_Files\16khz.2008.vcproj", "{7EB71250-F002-4ED8-92CA-CA218114537A}"
++      ProjectSection(ProjectDependencies) = postProject
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70} = {87A1FE3D-F410-4C8E-9591-8C625985BC70}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 32khzsound", "libs\win32\Dowload 32khz Sounds.2008.vcproj", "{6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "32khz", "libs\win32\Sound_Files\32khz.2008.vcproj", "{464AAB78-5489-4916-BE51-BF8D61822311}"
++      ProjectSection(ProjectDependencies) = postProject
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F} = {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flite", "libs\win32\flite\flite.2008.vcproj", "{0AD1177E-1FD8-4643-9391-431467A11084}"
++      ProjectSection(ProjectDependencies) = postProject
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B} = {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_flite", "src\mod\asr_tts\mod_flite\mod_flite.2008.vcproj", "{66444AEE-554C-11DD-A9F0-8C5D56D89593}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B} = {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}
++              {0AD1177E-1FD8-4643-9391-431467A11084} = {0AD1177E-1FD8-4643-9391-431467A11084}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download FLITE", "libs\win32\Download FLITE.2008.vcproj", "{D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download LAME", "libs\win32\Download LAME.2008.vcproj", "{D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download LIBSHOUT", "libs\win32\Download LIBSHOUT.2008.vcproj", "{D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download OGG", "libs\win32\Download OGG.2008.vcproj", "{D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmp3lame", "libs\win32\libmp3lame\libmp3lame_vc7.vcproj", "{E316772F-5D8F-4F2A-8F71-094C3E859D34}"
++      ProjectSection(ProjectDependencies) = postProject
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B} = {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libshout", "libs\win32\libshout\libshout.vcproj", "{D3D8B329-20BE-475E-9E83-653CEA0E0EF5}"
++      ProjectSection(ProjectDependencies) = postProject
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B} = {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4} = {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_shout", "src\mod\formats\mod_shout\mod_shout.vcproj", "{38FE0559-9910-43A8-9E45-3E5004C27692}"
++      ProjectSection(ProjectDependencies) = postProject
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5} = {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34} = {E316772F-5D8F-4F2A-8F71-094C3E859D34}
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {419C8F80-D858-4B48-A25C-AF4007608137} = {419C8F80-D858-4B48-A25C-AF4007608137}
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libogg", "libs\win32\libogg\libogg.2008.vcproj", "{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}"
++      ProjectSection(ProjectDependencies) = postProject
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B} = {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_snom", "src\mod\applications\mod_snom\mod_snom.2008.vcproj", "{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_zh", "src\mod\say\mod_say_zh\mod_say_zh.2008.vcproj", "{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_managed", "src\mod\languages\mod_managed\mod_managed.vcproj", "{7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}"
++      ProjectSection(ProjectDependencies) = postProject
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0} = {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSWITCH.Managed", "src\mod\languages\mod_managed\managed\FreeSWITCH.Managed.csproj", "{834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download mpg123", "libs\win32\Download mpg123.2008.vcproj", "{E796E337-DE78-4303-8614-9A590862EE95}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmpg123", "libs\win32\mpg123\libmpg123.2008.vcproj", "{419C8F80-D858-4B48-A25C-AF4007608137}"
++      ProjectSection(ProjectDependencies) = postProject
++              {E796E337-DE78-4303-8614-9A590862EE95} = {E796E337-DE78-4303-8614-9A590862EE95}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_loopback", "src\mod\endpoints\mod_loopback\mod_loopback.2008.vcproj", "{B3F424EC-3D8F-417C-B244-3919D5E1A577}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_vmd", "src\mod\applications\mod_vmd\mod_vmd.2008.vcproj", "{14E4A972-9CFB-436D-B0A5-4943F3F80D47}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libg722_1", "libs\win32\libg722_1\libg722_1.vcproj", "{1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_siren", "src\mod\codecs\mod_siren\mod_siren.2008.vcproj", "{0B6C905B-142E-4999-B39D-92FF7951E921}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C} = {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "esl", "libs\esl\src\esl.2008.vcproj", "{CF405366-9558-4AE8-90EF-5E21B51CCB4E}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fs_cli", "libs\esl\fs_cli.2008.vcproj", "{D2FB8043-D208-4AEE-8F18-3B5857C871B9}"
++      ProjectSection(ProjectDependencies) = postProject
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E} = {CF405366-9558-4AE8-90EF-5E21B51CCB4E}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_easyroute", "src\mod\applications\mod_easyroute\mod_easyroute.2008.vcproj", "{329FD5B0-EF28-4606-86D0-F6EA21CF8E36}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_lcr", "src\mod\applications\mod_lcr\mod_lcr.2008.vcproj", "{1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtiff", "libs\spandsp\src\libtiff.2008.vcproj", "{401A40CD-5DB4-4E34-AC68-FA99E9FAC014}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libs\spandsp\src\libspandsp.2008.vcproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}"
++      ProjectSection(ProjectDependencies) = postProject
++              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A} = {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838} = {329A6FA0-0FCC-4435-A950-E670AEFA9838}
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330} = {DEE932AB-5911-4700-9EEB-8C7090A0A330}
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014} = {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeex", "libs\speex\win32\VS2008\libspeex\libspeex.vcproj", "{E972C52F-9E85-4D65-B19C-031E511E9DB4}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeexdsp", "libs\speex\win32\VS2008\libspeexdsp\libspeexdsp.vcproj", "{03207781-0D1C-4DB3-A71D-45C608F28DBD}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libilbc", "libs\ilbc\libilbc.2008.vcproj", "{9A5DDF08-C88C-4A35-B7F6-D605228446BD}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua51", "src\mod\languages\mod_lua\lua\lua.2008.vcproj", "{D0B36172-CD76-454A-9B89-990025266C2A}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_opal", "src\mod\endpoints\mod_opal\mod_opal_2008.vcproj", "{05C9FB27-480E-4D53-B3B7-6338E2526666}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_h323", "src\mod\endpoints\mod_h323\mod_h323_2008.vcproj", "{05C9FB27-480E-4D53-B3B7-7338E2514666}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_iSAC", "src\mod\codecs\mod_isac\mod_iSAC.2008.vcproj", "{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skinny", "src\mod\endpoints\mod_skinny\mod_skinny_2008.vcproj", "{CC1DD008-9406-448D-A0AD-33C3186CFADB}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rtmp", "src\mod\endpoints\mod_rtmp\mod_rtmp_2008.vcproj", "{48414740-C693-4968-9846-EE058020C64F}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_at_dictionary", "libs\spandsp\src\msvc\make_at_dictionary.2008.vcproj", "{DEE932AB-5911-4700-9EEB-8C7090A0A330}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_modem_filter", "libs\spandsp\src\msvc\make_modem_filter.2008.vcproj", "{329A6FA0-0FCC-4435-A950-E670AEFA9838}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skel", "src\mod\applications\mod_skel\mod_skel.2008.vcproj", "{11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skypopen", "src\mod\endpoints\mod_skypopen\mod_skypopen.2008.vcproj", "{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 32khz music", "libs\win32\Dowload 32khz music.2008.vcproj", "{1F0A8A77-E661-418F-BB92-82172AE43803}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 8khz music", "libs\win32\Download 8khz music.2008.vcproj", "{4F5C9D55-98EF-4256-8311-32D7BD360406}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 16khz music", "libs\win32\Download 16khz music.2008.vcproj", "{E10571C4-E7F4-4608-B5F2-B22E7EB95400}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "8khz music", "libs\win32\Sound_Files\8khzmusic.2008.vcproj", "{D1ABE208-6442-4FB4-9AAD-1677E41BC870}"
++      ProjectSection(ProjectDependencies) = postProject
++              {4F5C9D55-98EF-4256-8311-32D7BD360406} = {4F5C9D55-98EF-4256-8311-32D7BD360406}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "16khz music", "libs\win32\Sound_Files\16khzmusic.2008.vcproj", "{BA599D0A-4310-4505-91DA-6A6447B3E289}"
++      ProjectSection(ProjectDependencies) = postProject
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400} = {E10571C4-E7F4-4608-B5F2-B22E7EB95400}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "32khz music", "libs\win32\Sound_Files\32khzmusic.2008.vcproj", "{EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}"
++      ProjectSection(ProjectDependencies) = postProject
++              {1F0A8A77-E661-418F-BB92-82172AE43803} = {1F0A8A77-E661-418F-BB92-82172AE43803}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_nibblebill", "src\mod\applications\mod_nibblebill\mod_nibblebill.2008.vcproj", "{3C977801-FE88-48F2-83D3-FA2EBFF6688E}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_ru", "src\mod\say\mod_say_ru\mod_say_ru.2008.vcproj", "{0382E8FD-CFDC-41C0-8B03-792C7C84FC31}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_valet_parking", "src\mod\applications\mod_valet_parking\mod_valet_parking.2008.vcproj", "{432DB165-1EB2-4781-A9C0-71E62610B20A}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbroadvoice", "libs\broadvoice\src\libbroadvoice.2008.vcproj", "{CF70F278-3364-4395-A2E1-23501C9B8AD2}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_bv", "src\mod\codecs\mod_bv\mod_bv.2008.vcproj", "{D5C87B19-150D-4EF3-A671-96589BD2D14A}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2} = {CF70F278-3364-4395-A2E1-23501C9B8AD2}
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "unimrcp", "unimrcp", "{62F27B1A-C919-4A70-8478-51F178F3B18F}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aprtoolkit", "libs\unimrcp\libs\apr-toolkit\aprtoolkit.2008.vcproj", "{13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}"
++      ProjectSection(ProjectDependencies) = postProject
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mpf", "libs\unimrcp\libs\mpf\mpf.2008.vcproj", "{B5A00BFA-6083-4FAE-A097-71642D6473B5}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcp", "libs\unimrcp\libs\mrcp\mrcp.2008.vcproj", "{1C320193-46A6-4B34-9C56-8AB584FC1B56}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpclient", "libs\unimrcp\libs\mrcp-client\mrcpclient.2008.vcproj", "{72782932-37CC-46AE-8C7F-9A7B1A6EE108}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpsignaling", "libs\unimrcp\libs\mrcp-signaling\mrcpsignaling.2008.vcproj", "{12A49562-BAB9-43A3-A21D-15B60BBB4C31}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpv2transport", "libs\unimrcp\libs\mrcpv2-transport\mrcpv2transport.2008.vcproj", "{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unirtsp", "libs\unimrcp\libs\uni-rtsp\unirtsp.2008.vcproj", "{504B3154-7A4F-459D-9877-B951021C3F1F}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpsofiasip", "libs\unimrcp\modules\mrcp-sofiasip\mrcpsofiasip.2008.vcproj", "{746F3632-5BB2-4570-9453-31D6D58A7D8E}"
++      ProjectSection(ProjectDependencies) = postProject
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpunirtsp", "libs\unimrcp\modules\mrcp-unirtsp\mrcpunirtsp.2008.vcproj", "{DEB01ACB-D65F-4A62-AED9-58C1054499E9}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_unimrcp", "src\mod\asr_tts\mod_unimrcp\mod_unimrcp.2008.vcproj", "{D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}"
++      ProjectSection(ProjectDependencies) = postProject
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA} = {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108} = {72782932-37CC-46AE-8C7F-9A7B1A6EE108}
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E} = {746F3632-5BB2-4570-9453-31D6D58A7D8E}
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {504B3154-7A4F-459D-9877-B951021C3F1F} = {504B3154-7A4F-459D-9877-B951021C3F1F}
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31} = {12A49562-BAB9-43A3-A21D-15B60BBB4C31}
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39} = {B4B62169-5AD4-4559-8707-3D933AC5DB39}
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56} = {1C320193-46A6-4B34-9C56-8AB584FC1B56}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2} = {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9} = {DEB01ACB-D65F-4A62-AED9-58C1054499E9}
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5} = {B5A00BFA-6083-4FAE-A097-71642D6473B5}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download CELT", "libs\win32\Download CELT.vcproj", "{FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcelt", "libs\win32\celt\libcelt.vcproj", "{ABB71A76-42B0-47A4-973A-42E3D920C6FD}"
++      ProjectSection(ProjectDependencies) = postProject
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19} = {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_celt", "src\mod\codecs\mod_celt\mod_celt.vcproj", "{4D418176-3B33-47E6-A63E-01BA34ADD21C}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD} = {ABB71A76-42B0-47A4-973A-42E3D920C6FD}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FSComm", "fscomm\FSComm.2008.vcproj", "{7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_curl", "src\mod\applications\mod_curl\mod_curl.2008.vcproj", "{EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
++              {9778F1C0-09BC-4698-8EBC-BD982247209A} = {9778F1C0-09BC-4698-8EBC-BD982247209A}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download JSON", "libs\win32\Download JSON.2008.vcproj", "{B808178B-82F0-4CF4-A2B1-921939FA24D0}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjson", "libs\win32\json\libjson.2008.vcproj", "{9778F1C0-09BC-4698-8EBC-BD982247209A}"
++      ProjectSection(ProjectDependencies) = postProject
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0} = {B808178B-82F0-4CF4-A2B1-921939FA24D0}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_silk", "src\mod\codecs\mod_silk\mod_silk.2008.vcproj", "{AFA983D6-4569-4F88-BA94-555ED00FD9A8}"
++      ProjectSection(ProjectDependencies) = postProject
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76} = {56B91D01-9150-4BBF-AFA1-5B68AB991B76}
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Silk_FIX", "libs\silk\src\Silk_FIX.2008.vcproj", "{56B91D01-9150-4BBF-AFA1-5B68AB991B76}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_avmd", "src\mod\applications\mod_avmd\mod_avmd.2008.vcproj", "{990BAA76-89D3-4E38-8479-C7B28784EFC8}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spandsp", "src\mod\applications\mod_spandsp\mod_spandsp.2008.vcproj", "{1E21AFE0-6FDB-41D2-942D-863607C24B91}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_hash", "src\mod\applications\mod_hash\mod_hash.2008.vcproj", "{2E250296-0C08-4342-9C8A-BCBDD0E7DF65}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E} = {CF405366-9558-4AE8-90EF-5E21B51CCB4E}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download OPENSSL", "libs\win32\Download OPENSSL.2008.vcproj", "{D578E676-7EC8-4548-BD8B-845C635F14AD}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "openssl", "openssl", "{B376D494-D7DD-4B2A-99E2-52916D5A8CD8}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libeay32", "libs\win32\openssl\libeay32.2008.vcproj", "{D331904D-A00A-4694-A5A3-FCFF64AB5DBE}"
++      ProjectSection(ProjectDependencies) = postProject
++              {D578E676-7EC8-4548-BD8B-845C635F14AD} = {D578E676-7EC8-4548-BD8B-845C635F14AD}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssleay32", "libs\win32\openssl\ssleay32.2008.vcproj", "{B4B62169-5AD4-4559-8707-3D933AC5DB39}"
++      ProjectSection(ProjectDependencies) = postProject
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openssl", "libs\win32\openssl\openssl.2008.vcproj", "{25BD39B1-C8BF-4676-A738-9CABD9C6BC79}"
++      ProjectSection(ProjectDependencies) = postProject
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39} = {B4B62169-5AD4-4559-8707-3D933AC5DB39}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_directory", "src\mod\applications\mod_directory\mod_directory.2008.vcproj", "{42E721FD-43D6-4B04-A34B-42567199FFB8}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ldns", "libs\win32\ldns\ldns-lib\ldns-lib.2008.vcproj", "{23B4D303-79FC-49E0-89E2-2280E7E28940}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_httapi", "src\mod\applications\mod_httapi\mod_httapi.2008.vcproj", "{0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_abstraction", "src\mod\applications\mod_abstraction\mod_abstraction.2008.vcproj", "{BDA173DB-F8EF-4270-9553-B453AF92E43A}"
++      ProjectSection(ProjectDependencies) = postProject
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_gsmopen", "src\mod\endpoints\mod_gsmopen\mod_gsmopen.2008.vcproj", "{74B120FF-6935-4DFE-A142-CDB6BEA99C90}"
++      ProjectSection(ProjectDependencies) = postProject
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53} = {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsmlib", "src\mod\endpoints\mod_gsmopen\gsmlib\gsmlib-1.10-patched-13ubuntu\win32\gsmlib.vcproj", "{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjpeg", "libs\win32\libjpeg\libjpeg.2008.vcproj", "{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}"
++      ProjectSection(ProjectDependencies) = postProject
++              {21A7DA70-555E-49FA-942B-D84A38B61243} = {21A7DA70-555E-49FA-942B-D84A38B61243}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download libjpeg", "libs\win32\Download libjpeg.2008.vcproj", "{21A7DA70-555E-49FA-942B-D84A38B61243}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "xmlrpc-c", "xmlrpc-c", "{3783935D-7C0A-4166-A376-C3D8E64F3A9C}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "abyss", "libs\win32\xmlrpc-c\abyss.2008.vcproj", "{A4D67895-E709-40C7-82B6-DE1D12DDDE04}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gennmtab", "libs\win32\xmlrpc-c\gennmtab.2008.vcproj", "{2390F054-A7F1-4CB9-ACB0-F46EC6E77B5B}"
++      ProjectSection(ProjectDependencies) = postProject
++              {E5A9BCDA-B82D-4B08-B23E-9A782E367888} = {E5A9BCDA-B82D-4B08-B23E-9A782E367888}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmlparse", "libs\win32\xmlrpc-c\xmlparse.2008.vcproj", "{E5A9BCDA-B82D-4B08-B23E-9A782E367888}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmlrpc", "libs\win32\xmlrpc-c\xmlrpc.2008.vcproj", "{510BDAA8-C04D-47DB-8482-E6AF380D3E07}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmltok", "libs\win32\xmlrpc-c\xmltok.2008.vcproj", "{3CF7C0E0-07C2-473A-A1E4-2274AEEC1268}"
++EndProject
++Global
++      GlobalSection(SolutionConfigurationPlatforms) = preSolution
++              All|Win32 = All|Win32
++              All|x64 = All|x64
++              Debug|Win32 = Debug|Win32
++              Debug|x64 = Debug|x64
++              Release|Win32 = Release|Win32
++              Release|x64 = Release|x64
++      EndGlobalSection
++      GlobalSection(ProjectConfigurationPlatforms) = postSolution
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|Win32.ActiveCfg = Release|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64.ActiveCfg = Release|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64.Build.0 = Release|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|Win32.Build.0 = Debug|Win32
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x64.ActiveCfg = Debug|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x64.Build.0 = Debug|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|Win32.ActiveCfg = Release|Win32
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|Win32.Build.0 = Release|Win32
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|x64.ActiveCfg = Release|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|x64.Build.0 = Release|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|Win32.ActiveCfg = Release|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64.ActiveCfg = Release|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64.Build.0 = Release|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|Win32.ActiveCfg = Debug|Win32
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|Win32.Build.0 = Debug|Win32
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x64.ActiveCfg = Debug|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x64.Build.0 = Debug|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|Win32.ActiveCfg = Release|Win32
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|Win32.Build.0 = Release|Win32
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|x64.ActiveCfg = Release|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|x64.Build.0 = Release|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|Win32.ActiveCfg = Release Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64.ActiveCfg = Release Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64.Build.0 = Release Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|Win32.Build.0 = Debug Passthrough|Win32
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x64.ActiveCfg = Debug Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x64.Build.0 = Debug Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|Win32.ActiveCfg = Release Passthrough|Win32
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|Win32.Build.0 = Release Passthrough|Win32
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|x64.ActiveCfg = Release Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|x64.Build.0 = Release Passthrough|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|Win32.ActiveCfg = Release|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64.ActiveCfg = Release|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64.Build.0 = Release|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|Win32.ActiveCfg = Debug|Win32
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|Win32.Build.0 = Debug|Win32
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x64.ActiveCfg = Debug|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x64.Build.0 = Debug|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.ActiveCfg = Release|Win32
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.Build.0 = Release|Win32
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.ActiveCfg = Release|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.Build.0 = Release|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|Win32.ActiveCfg = Release|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.ActiveCfg = Release|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.Build.0 = Release|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.ActiveCfg = Debug|Win32
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.Build.0 = Debug|Win32
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.ActiveCfg = Debug|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.Build.0 = Debug|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.ActiveCfg = Release|Win32
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.Build.0 = Release|Win32
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.ActiveCfg = Release|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.Build.0 = Release|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|Win32.ActiveCfg = Release|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.ActiveCfg = Release|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.Build.0 = Release|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.ActiveCfg = Debug|Win32
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.Build.0 = Debug|Win32
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.ActiveCfg = Debug|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.Build.0 = Debug|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.ActiveCfg = Release|Win32
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.Build.0 = Release|Win32
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.ActiveCfg = Release|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.Build.0 = Release|x64
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|Win32.ActiveCfg = Release|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x64.ActiveCfg = Release|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|x64.ActiveCfg = Debug|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release|Win32.ActiveCfg = Release|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release|x64.ActiveCfg = Release|Win32
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|Win32.ActiveCfg = Release|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64.ActiveCfg = Release|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64.Build.0 = Release|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|Win32.ActiveCfg = Debug|Win32
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|Win32.Build.0 = Debug|Win32
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x64.ActiveCfg = Debug|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x64.Build.0 = Debug|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|Win32.ActiveCfg = Release|Win32
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|Win32.Build.0 = Release|Win32
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|x64.ActiveCfg = Release|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|x64.Build.0 = Release|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|Win32.ActiveCfg = Release MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64.ActiveCfg = Release MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64.Build.0 = Release MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|Win32.ActiveCfg = Debug MS-LDAP|Win32
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|Win32.Build.0 = Debug MS-LDAP|Win32
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x64.ActiveCfg = Debug MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x64.Build.0 = Debug MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|Win32.ActiveCfg = Release MS-LDAP|Win32
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|Win32.Build.0 = Release MS-LDAP|Win32
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|x64.ActiveCfg = Release MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|x64.Build.0 = Release MS-LDAP|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|Win32.ActiveCfg = Release|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64.ActiveCfg = Release|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64.Build.0 = Release|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|Win32.ActiveCfg = Debug|Win32
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|Win32.Build.0 = Debug|Win32
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x64.ActiveCfg = Debug|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x64.Build.0 = Debug|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|Win32.ActiveCfg = Release|Win32
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|Win32.Build.0 = Release|Win32
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|x64.ActiveCfg = Release|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|x64.Build.0 = Release|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|Win32.ActiveCfg = Release|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64.ActiveCfg = Release|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64.Build.0 = Release|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|Win32.ActiveCfg = Debug|Win32
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|Win32.Build.0 = Debug|Win32
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x64.ActiveCfg = Debug|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x64.Build.0 = Debug|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|Win32.ActiveCfg = Release|Win32
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|Win32.Build.0 = Release|Win32
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|x64.ActiveCfg = Release|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|x64.Build.0 = Release|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|Win32.ActiveCfg = Release|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64.ActiveCfg = Release|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64.Build.0 = Release|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|Win32.ActiveCfg = Debug|Win32
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|Win32.Build.0 = Debug|Win32
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x64.ActiveCfg = Debug|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x64.Build.0 = Debug|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|Win32.ActiveCfg = Release|Win32
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|Win32.Build.0 = Release|Win32
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x64.ActiveCfg = Release|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x64.Build.0 = Release|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|Win32.ActiveCfg = Release|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64.ActiveCfg = Release|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64.Build.0 = Release|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|Win32.Build.0 = Debug|Win32
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|x64.ActiveCfg = Debug|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|Win32.ActiveCfg = Release|Win32
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|Win32.Build.0 = Release|Win32
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64.ActiveCfg = Release|x64
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|Win32.ActiveCfg = Release|x64
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.ActiveCfg = Release|x64
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.Build.0 = Release|x64
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|x64.ActiveCfg = Debug|x64
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.Release|Win32.ActiveCfg = Release|Win32
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.Release|x64.ActiveCfg = Release|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|Win32.ActiveCfg = Release|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.ActiveCfg = Release|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.Build.0 = Release|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|Win32.Build.0 = Debug|Win32
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x64.ActiveCfg = Debug|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x64.Build.0 = Debug|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|Win32.ActiveCfg = Release|Win32
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|Win32.Build.0 = Release|Win32
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|x64.ActiveCfg = Release|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|x64.Build.0 = Release|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|Win32.ActiveCfg = Release|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64.ActiveCfg = Release|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64.Build.0 = Release|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|Win32.ActiveCfg = Debug|Win32
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|Win32.Build.0 = Debug|Win32
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x64.ActiveCfg = Debug|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x64.Build.0 = Debug|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|Win32.ActiveCfg = Release|Win32
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|Win32.Build.0 = Release|Win32
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|x64.ActiveCfg = Release|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|x64.Build.0 = Release|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|Win32.ActiveCfg = Release|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64.ActiveCfg = Release|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64.Build.0 = Release|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|Win32.ActiveCfg = Debug|Win32
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|Win32.Build.0 = Debug|Win32
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x64.ActiveCfg = Debug|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x64.Build.0 = Debug|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|Win32.ActiveCfg = Release|Win32
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|Win32.Build.0 = Release|Win32
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|x64.ActiveCfg = Release|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|x64.Build.0 = Release|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.All|Win32.ActiveCfg = Release|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64.ActiveCfg = Release|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64.Build.0 = Release|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|Win32.Build.0 = Debug|Win32
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x64.ActiveCfg = Debug|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x64.Build.0 = Debug|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|Win32.ActiveCfg = Release|Win32
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|Win32.Build.0 = Release|Win32
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|x64.ActiveCfg = Release|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|x64.Build.0 = Release|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|Win32.ActiveCfg = Release|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64.ActiveCfg = Release|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64.Build.0 = Release|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|Win32.ActiveCfg = Debug|Win32
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|Win32.Build.0 = Debug|Win32
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x64.ActiveCfg = Debug|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x64.Build.0 = Debug|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|Win32.ActiveCfg = Release|Win32
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|Win32.Build.0 = Release|Win32
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64.ActiveCfg = Release|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64.Build.0 = Release|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|Win32.ActiveCfg = Release|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.ActiveCfg = Release|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.Build.0 = Release|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|Win32.Build.0 = Debug|Win32
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.ActiveCfg = Debug|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.Build.0 = Debug|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|Win32.ActiveCfg = Release|Win32
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|Win32.Build.0 = Release|Win32
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64.ActiveCfg = Release|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64.Build.0 = Release|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.All|Win32.ActiveCfg = Release|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.ActiveCfg = Release|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.Build.0 = Release|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|Win32.ActiveCfg = Debug|Win32
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|Win32.Build.0 = Debug|Win32
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x64.ActiveCfg = Debug|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x64.Build.0 = Debug|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|Win32.ActiveCfg = Release|Win32
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|Win32.Build.0 = Release|Win32
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|x64.ActiveCfg = Release|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|x64.Build.0 = Release|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|Win32.ActiveCfg = Release|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64.ActiveCfg = Release|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64.Build.0 = Release|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|Win32.Build.0 = Debug|Win32
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x64.ActiveCfg = Debug|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x64.Build.0 = Debug|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|Win32.ActiveCfg = Release|Win32
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|Win32.Build.0 = Release|Win32
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|x64.ActiveCfg = Release|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|x64.Build.0 = Release|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|Win32.ActiveCfg = Release|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64.ActiveCfg = Release|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64.Build.0 = Release|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|Win32.ActiveCfg = Debug|Win32
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|Win32.Build.0 = Debug|Win32
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x64.ActiveCfg = Debug|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x64.Build.0 = Debug|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|Win32.ActiveCfg = Release|Win32
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|Win32.Build.0 = Release|Win32
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|x64.ActiveCfg = Release|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|x64.Build.0 = Release|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|Win32.ActiveCfg = Release DLL|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64.ActiveCfg = Release DLL|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64.Build.0 = Release DLL|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|Win32.Build.0 = Debug|Win32
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64.ActiveCfg = Debug|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64.Build.0 = Debug|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|Win32.ActiveCfg = Release|Win32
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|Win32.Build.0 = Release|Win32
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|x64.ActiveCfg = Release|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|x64.Build.0 = Release|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|Win32.ActiveCfg = Release Dll|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64.ActiveCfg = Release Dll|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64.Build.0 = Release Dll|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|Win32.ActiveCfg = Debug|Win32
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|Win32.Build.0 = Debug|Win32
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x64.ActiveCfg = Debug|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x64.Build.0 = Debug|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|Win32.ActiveCfg = Release|Win32
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|Win32.Build.0 = Release|Win32
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|x64.ActiveCfg = Release|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|x64.Build.0 = Release|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|Win32.ActiveCfg = Release DLL|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64.ActiveCfg = Release DLL|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64.Build.0 = Release DLL|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|Win32.ActiveCfg = Debug|Win32
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|Win32.Build.0 = Debug|Win32
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x64.ActiveCfg = Debug|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x64.Build.0 = Debug|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|Win32.ActiveCfg = Release|Win32
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|Win32.Build.0 = Release|Win32
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|x64.ActiveCfg = Release|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|x64.Build.0 = Release|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|Win32.ActiveCfg = Release DLL|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64.ActiveCfg = Release DLL|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64.Build.0 = Release DLL|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|Win32.ActiveCfg = Debug|Win32
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|Win32.Build.0 = Debug|Win32
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x64.ActiveCfg = Debug|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x64.Build.0 = Debug|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|Win32.ActiveCfg = Release|Win32
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|Win32.Build.0 = Release|Win32
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x64.ActiveCfg = Release|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x64.Build.0 = Release|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|Win32.ActiveCfg = Release|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64.ActiveCfg = Release|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64.Build.0 = Release|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.Build.0 = Debug|Win32
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64.ActiveCfg = Debug|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64.Build.0 = Debug|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.ActiveCfg = Release|Win32
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.Build.0 = Release|Win32
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64.ActiveCfg = Release|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64.Build.0 = Release|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|Win32.ActiveCfg = Release|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64.ActiveCfg = Release|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64.Build.0 = Release|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|Win32.ActiveCfg = Debug|Win32
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|Win32.Build.0 = Debug|Win32
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x64.ActiveCfg = Debug|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x64.Build.0 = Debug|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.ActiveCfg = Release|Win32
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.Build.0 = Release|Win32
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.ActiveCfg = Release|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.Build.0 = Release|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|Win32.ActiveCfg = Release|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64.ActiveCfg = Release|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64.Build.0 = Release|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|Win32.ActiveCfg = Debug|Win32
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|Win32.Build.0 = Debug|Win32
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64.ActiveCfg = Debug|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64.Build.0 = Debug|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|Win32.ActiveCfg = Release|Win32
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|Win32.Build.0 = Release|Win32
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|x64.ActiveCfg = Release|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|x64.Build.0 = Release|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|Win32.ActiveCfg = Release|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.ActiveCfg = Release|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.Build.0 = Release|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|Win32.ActiveCfg = Debug|Win32
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|Win32.Build.0 = Debug|Win32
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.ActiveCfg = Debug|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.Build.0 = Debug|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|Win32.ActiveCfg = Release|Win32
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|Win32.Build.0 = Release|Win32
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64.ActiveCfg = Release|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64.Build.0 = Release|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|Win32.ActiveCfg = Release|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64.ActiveCfg = Release|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64.Build.0 = Release|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|Win32.ActiveCfg = Debug|Win32
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|Win32.Build.0 = Debug|Win32
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x64.ActiveCfg = Debug|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x64.Build.0 = Debug|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|Win32.ActiveCfg = Release|Win32
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|Win32.Build.0 = Release|Win32
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|x64.ActiveCfg = Release|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|x64.Build.0 = Release|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|Win32.ActiveCfg = Debug|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64.ActiveCfg = Debug|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64.Build.0 = Debug|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|Win32.ActiveCfg = Debug|Win32
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|Win32.Build.0 = Debug|Win32
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x64.ActiveCfg = Debug|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x64.Build.0 = Debug|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|Win32.ActiveCfg = Release|Win32
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|Win32.Build.0 = Release|Win32
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|x64.ActiveCfg = Release|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|x64.Build.0 = Release|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|Win32.ActiveCfg = Debug|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64.ActiveCfg = Debug|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64.Build.0 = Debug|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|Win32.ActiveCfg = Debug|Win32
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|Win32.Build.0 = Debug|Win32
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x64.ActiveCfg = Debug|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x64.Build.0 = Debug|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|Win32.ActiveCfg = Release|Win32
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|Win32.Build.0 = Release|Win32
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|x64.ActiveCfg = Release|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|x64.Build.0 = Release|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|Win32.ActiveCfg = Debug|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x64.ActiveCfg = Debug|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x64.Build.0 = Debug|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|Win32.ActiveCfg = Debug|Win32
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|Win32.Build.0 = Debug|Win32
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|x64.ActiveCfg = Debug|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|x64.Build.0 = Debug|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|Win32.ActiveCfg = Release|Win32
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|Win32.Build.0 = Release|Win32
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|x64.ActiveCfg = Release|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|x64.Build.0 = Release|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|Win32.ActiveCfg = Release|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.ActiveCfg = Release|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.Build.0 = Release|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|Win32.ActiveCfg = Debug|Win32
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|Win32.Build.0 = Debug|Win32
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x64.ActiveCfg = Debug|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x64.Build.0 = Debug|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|Win32.ActiveCfg = Release|Win32
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|Win32.Build.0 = Release|Win32
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|x64.ActiveCfg = Release|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|x64.Build.0 = Release|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|Win32.ActiveCfg = Release|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64.ActiveCfg = Release|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64.Build.0 = Release|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|Win32.ActiveCfg = Debug|Win32
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|Win32.Build.0 = Debug|Win32
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x64.ActiveCfg = Debug|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x64.Build.0 = Debug|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|Win32.ActiveCfg = Release|Win32
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|Win32.Build.0 = Release|Win32
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|x64.ActiveCfg = Release|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|x64.Build.0 = Release|x64
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|Win32.ActiveCfg = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|Win32.Build.0 = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64.ActiveCfg = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64.Build.0 = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|Win32.Build.0 = Debug|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x64.ActiveCfg = Debug|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x64.Build.0 = Debug|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|Win32.ActiveCfg = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|Win32.Build.0 = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|x64.ActiveCfg = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|x64.Build.0 = Release|Win32
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|Win32.ActiveCfg = Release DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64.ActiveCfg = Release DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64.Build.0 = Release DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|Win32.ActiveCfg = Debug DLL|Win32
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|Win32.Build.0 = Debug DLL|Win32
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x64.ActiveCfg = Debug DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x64.Build.0 = Debug DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|Win32.ActiveCfg = Release DLL|Win32
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|Win32.Build.0 = Release DLL|Win32
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|x64.ActiveCfg = Release DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|x64.Build.0 = Release DLL|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|Win32.ActiveCfg = Release Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64.ActiveCfg = Release Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64.Build.0 = Release Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|Win32.Build.0 = Debug Passthrough|Win32
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x64.ActiveCfg = Debug Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x64.Build.0 = Debug Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|Win32.ActiveCfg = Release Passthrough|Win32
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|Win32.Build.0 = Release Passthrough|Win32
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64.ActiveCfg = Release Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64.Build.0 = Release Passthrough|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|Win32.ActiveCfg = Release|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.ActiveCfg = Release|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.Build.0 = Release|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|Win32.ActiveCfg = Debug|Win32
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|Win32.Build.0 = Debug|Win32
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x64.ActiveCfg = Debug|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x64.Build.0 = Debug|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|Win32.ActiveCfg = Release|Win32
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|Win32.Build.0 = Release|Win32
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|x64.ActiveCfg = Release|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|x64.Build.0 = Release|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|Win32.ActiveCfg = Release|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x64.ActiveCfg = Release|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x64.Build.0 = Release|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|Win32.ActiveCfg = Debug|Win32
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|Win32.Build.0 = Debug|Win32
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|x64.ActiveCfg = Debug|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|Win32.ActiveCfg = Release|Win32
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|Win32.Build.0 = Release|Win32
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|x64.ActiveCfg = Release|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|Win32.ActiveCfg = Release|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x64.ActiveCfg = Release|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x64.Build.0 = Release|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|Win32.ActiveCfg = Debug|Win32
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|Win32.Build.0 = Debug|Win32
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|x64.ActiveCfg = Debug|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|Win32.ActiveCfg = Release|Win32
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|Win32.Build.0 = Release|Win32
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|x64.ActiveCfg = Release|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|Win32.ActiveCfg = Release|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64.ActiveCfg = Release|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64.Build.0 = Release|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|Win32.ActiveCfg = Debug|Win32
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|Win32.Build.0 = Debug|Win32
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x64.ActiveCfg = Debug|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x64.Build.0 = Debug|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|Win32.ActiveCfg = Release|Win32
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|Win32.Build.0 = Release|Win32
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|x64.ActiveCfg = Release|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|x64.Build.0 = Release|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|Win32.ActiveCfg = Release|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x64.ActiveCfg = Release|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x64.Build.0 = Release|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|Win32.ActiveCfg = Debug|Win32
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|Win32.Build.0 = Debug|Win32
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|x64.ActiveCfg = Debug|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|Win32.ActiveCfg = Release|Win32
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|Win32.Build.0 = Release|Win32
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|x64.ActiveCfg = Release|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|Win32.ActiveCfg = Release|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64.ActiveCfg = Release|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64.Build.0 = Release|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|Win32.ActiveCfg = Debug|Win32
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|Win32.Build.0 = Debug|Win32
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x64.ActiveCfg = Debug|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x64.Build.0 = Debug|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|Win32.ActiveCfg = Release|Win32
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|Win32.Build.0 = Release|Win32
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|x64.ActiveCfg = Release|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|x64.Build.0 = Release|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|Win32.ActiveCfg = Release|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64.ActiveCfg = Release|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64.Build.0 = Release|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|Win32.ActiveCfg = Debug|Win32
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|Win32.Build.0 = Debug|Win32
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x64.ActiveCfg = Debug|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x64.Build.0 = Debug|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|Win32.ActiveCfg = Release|Win32
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|Win32.Build.0 = Release|Win32
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.ActiveCfg = Release|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.Build.0 = Release|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|Win32.ActiveCfg = Release DirectSound|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.ActiveCfg = Release DirectSound|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.Build.0 = Release DirectSound|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.ActiveCfg = Debug|Win32
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.Build.0 = Debug|Win32
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.ActiveCfg = Debug|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.Build.0 = Debug|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.ActiveCfg = Release|Win32
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.Build.0 = Release|Win32
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.ActiveCfg = Release|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.Build.0 = Release|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|Win32.ActiveCfg = Release|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.ActiveCfg = Release|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.Build.0 = Release|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|Win32.ActiveCfg = Debug|Win32
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|Win32.Build.0 = Debug|Win32
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x64.ActiveCfg = Debug|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x64.Build.0 = Debug|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|Win32.ActiveCfg = Release|Win32
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|Win32.Build.0 = Release|Win32
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|x64.ActiveCfg = Release|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|x64.Build.0 = Release|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|Win32.ActiveCfg = Release Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64.ActiveCfg = Release Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64.Build.0 = Release Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|Win32.Build.0 = Debug Passthrough|Win32
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x64.ActiveCfg = Debug Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x64.Build.0 = Debug Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|Win32.ActiveCfg = Release Passthrough|Win32
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|Win32.Build.0 = Release Passthrough|Win32
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64.ActiveCfg = Release Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64.Build.0 = Release Passthrough|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|Win32.ActiveCfg = Release|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.ActiveCfg = Release|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.Build.0 = Release|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|Win32.Build.0 = Debug|Win32
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.ActiveCfg = Debug|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.Build.0 = Debug|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|Win32.ActiveCfg = Release|Win32
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|Win32.Build.0 = Release|Win32
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64.ActiveCfg = Release|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64.Build.0 = Release|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|Win32.ActiveCfg = Release|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.ActiveCfg = Release|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.Build.0 = Release|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|Win32.ActiveCfg = Debug|Win32
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|Win32.Build.0 = Debug|Win32
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x64.ActiveCfg = Debug|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x64.Build.0 = Debug|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|Win32.ActiveCfg = Release|Win32
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|Win32.Build.0 = Release|Win32
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|x64.ActiveCfg = Release|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|x64.Build.0 = Release|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|Win32.ActiveCfg = Release|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64.ActiveCfg = Release|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64.Build.0 = Release|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|Win32.Build.0 = Debug|Win32
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x64.ActiveCfg = Debug|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x64.Build.0 = Debug|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|Win32.ActiveCfg = Release|Win32
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|Win32.Build.0 = Release|Win32
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|x64.ActiveCfg = Release|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|x64.Build.0 = Release|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|Win32.ActiveCfg = Release|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x64.ActiveCfg = Release|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x64.Build.0 = Release|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|Win32.ActiveCfg = Debug|Win32
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|Win32.Build.0 = Debug|Win32
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|x64.ActiveCfg = Debug|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|Win32.ActiveCfg = Release|Win32
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|Win32.Build.0 = Release|Win32
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|x64.ActiveCfg = Release|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|Win32.ActiveCfg = Release|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64.ActiveCfg = Release|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64.Build.0 = Release|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|Win32.Build.0 = Debug|Win32
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x64.ActiveCfg = Debug|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x64.Build.0 = Debug|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|Win32.ActiveCfg = Release|Win32
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|Win32.Build.0 = Release|Win32
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|x64.ActiveCfg = Release|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|x64.Build.0 = Release|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|Win32.ActiveCfg = Release|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64.ActiveCfg = Release|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64.Build.0 = Release|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|Win32.ActiveCfg = Debug|Win32
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|Win32.Build.0 = Debug|Win32
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x64.ActiveCfg = Debug|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x64.Build.0 = Debug|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|Win32.ActiveCfg = Release|Win32
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|Win32.Build.0 = Release|Win32
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|x64.ActiveCfg = Release|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|x64.Build.0 = Release|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|Win32.ActiveCfg = Release|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64.ActiveCfg = Release|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64.Build.0 = Release|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|Win32.ActiveCfg = Debug|Win32
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|Win32.Build.0 = Debug|Win32
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x64.ActiveCfg = Debug|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x64.Build.0 = Debug|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|Win32.ActiveCfg = Release|Win32
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|Win32.Build.0 = Release|Win32
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|x64.ActiveCfg = Release|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|x64.Build.0 = Release|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|Win32.ActiveCfg = Release|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64.ActiveCfg = Release|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64.Build.0 = Release|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|Win32.ActiveCfg = Debug|Win32
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|Win32.Build.0 = Debug|Win32
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x64.ActiveCfg = Debug|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x64.Build.0 = Debug|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|Win32.ActiveCfg = Release|Win32
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|Win32.Build.0 = Release|Win32
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|x64.ActiveCfg = Release|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|x64.Build.0 = Release|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|Win32.ActiveCfg = Release|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64.ActiveCfg = Release|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64.Build.0 = Release|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|Win32.ActiveCfg = Debug|Win32
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|Win32.Build.0 = Debug|Win32
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x64.ActiveCfg = Debug|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x64.Build.0 = Debug|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|Win32.ActiveCfg = Release|Win32
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|Win32.Build.0 = Release|Win32
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|x64.ActiveCfg = Release|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|x64.Build.0 = Release|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|Win32.ActiveCfg = Release|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64.ActiveCfg = Release|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64.Build.0 = Release|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|Win32.ActiveCfg = Debug|Win32
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|Win32.Build.0 = Debug|Win32
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x64.ActiveCfg = Debug|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x64.Build.0 = Debug|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|Win32.ActiveCfg = Release|Win32
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|Win32.Build.0 = Release|Win32
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|x64.ActiveCfg = Release|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|x64.Build.0 = Release|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|Win32.ActiveCfg = Release|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64.ActiveCfg = Release|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64.Build.0 = Release|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|Win32.Build.0 = Debug|Win32
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x64.ActiveCfg = Debug|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x64.Build.0 = Debug|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|Win32.ActiveCfg = Release|Win32
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|Win32.Build.0 = Release|Win32
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|x64.ActiveCfg = Release|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|x64.Build.0 = Release|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.All|Win32.ActiveCfg = Release|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.All|x64.ActiveCfg = Release|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.All|x64.Build.0 = Release|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|Win32.ActiveCfg = Debug|Win32
++              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|Win32.Build.0 = Debug|Win32
++              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x64.ActiveCfg = Debug|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x64.Build.0 = Debug|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.Release|Win32.ActiveCfg = Release|Win32
++              {F6A33240-8F29-48BD-98F0-826995911799}.Release|Win32.Build.0 = Release|Win32
++              {F6A33240-8F29-48BD-98F0-826995911799}.Release|x64.ActiveCfg = Release|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.Release|x64.Build.0 = Release|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|Win32.ActiveCfg = Release|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64.ActiveCfg = Release|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64.Build.0 = Release|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|Win32.ActiveCfg = Debug|Win32
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|Win32.Build.0 = Debug|Win32
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x64.ActiveCfg = Debug|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x64.Build.0 = Debug|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|Win32.ActiveCfg = Release|Win32
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|Win32.Build.0 = Release|Win32
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|x64.ActiveCfg = Release|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|x64.Build.0 = Release|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|Win32.ActiveCfg = Release|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64.ActiveCfg = Release|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64.Build.0 = Release|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|Win32.ActiveCfg = Debug|Win32
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|Win32.Build.0 = Debug|Win32
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x64.ActiveCfg = Debug|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x64.Build.0 = Debug|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|Win32.ActiveCfg = Release|Win32
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|Win32.Build.0 = Release|Win32
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|x64.ActiveCfg = Release|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|x64.Build.0 = Release|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|Win32.ActiveCfg = Release|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64.ActiveCfg = Release|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64.Build.0 = Release|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|Win32.Build.0 = Debug|Win32
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x64.ActiveCfg = Debug|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x64.Build.0 = Debug|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|Win32.ActiveCfg = Release|Win32
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|Win32.Build.0 = Release|Win32
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|x64.ActiveCfg = Release|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|x64.Build.0 = Release|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|Win32.ActiveCfg = Release|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64.ActiveCfg = Release|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64.Build.0 = Release|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|Win32.Build.0 = Debug|Win32
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x64.ActiveCfg = Debug|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x64.Build.0 = Debug|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|Win32.ActiveCfg = Release|Win32
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|Win32.Build.0 = Release|Win32
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|x64.ActiveCfg = Release|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|x64.Build.0 = Release|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|Win32.ActiveCfg = Release|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64.ActiveCfg = Release|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64.Build.0 = Release|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|Win32.ActiveCfg = Debug|Win32
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|Win32.Build.0 = Debug|Win32
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x64.ActiveCfg = Debug|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x64.Build.0 = Debug|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|Win32.ActiveCfg = Release|Win32
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|Win32.Build.0 = Release|Win32
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|x64.ActiveCfg = Release|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|x64.Build.0 = Release|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|Win32.ActiveCfg = Release|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64.ActiveCfg = Release|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64.Build.0 = Release|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|Win32.ActiveCfg = Debug|Win32
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|Win32.Build.0 = Debug|Win32
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x64.ActiveCfg = Debug|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x64.Build.0 = Debug|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|Win32.ActiveCfg = Release|Win32
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|Win32.Build.0 = Release|Win32
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|x64.ActiveCfg = Release|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|x64.Build.0 = Release|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|Win32.ActiveCfg = Release|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x64.ActiveCfg = Release|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x64.Build.0 = Release|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|Win32.ActiveCfg = Debug|Win32
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|Win32.Build.0 = Debug|Win32
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|x64.ActiveCfg = Debug|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|Win32.ActiveCfg = Release|Win32
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|Win32.Build.0 = Release|Win32
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|x64.ActiveCfg = Release|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|Win32.ActiveCfg = Release|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64.ActiveCfg = Release|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64.Build.0 = Release|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.ActiveCfg = Debug|Win32
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.Build.0 = Debug|Win32
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.ActiveCfg = Debug|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.Build.0 = Debug|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.ActiveCfg = Release|Win32
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.Build.0 = Release|Win32
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x64.ActiveCfg = Release|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x64.Build.0 = Release|x64
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|Win32.ActiveCfg = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|Win32.Build.0 = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64.ActiveCfg = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64.Build.0 = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|Win32.Build.0 = Debug|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x64.ActiveCfg = Debug|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x64.Build.0 = Debug|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|Win32.ActiveCfg = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|Win32.Build.0 = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|x64.ActiveCfg = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|x64.Build.0 = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.All|Win32.ActiveCfg = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.All|Win32.Build.0 = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.All|x64.ActiveCfg = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.All|x64.Build.0 = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|Win32.Build.0 = Debug|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x64.ActiveCfg = Debug|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x64.Build.0 = Debug|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Release|Win32.ActiveCfg = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Release|Win32.Build.0 = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Release|x64.ActiveCfg = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Release|x64.Build.0 = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|Win32.ActiveCfg = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|Win32.Build.0 = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64.ActiveCfg = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64.Build.0 = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|Win32.Build.0 = Debug|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x64.ActiveCfg = Debug|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x64.Build.0 = Debug|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|Win32.ActiveCfg = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|Win32.Build.0 = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|x64.ActiveCfg = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|x64.Build.0 = Release|Win32
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|Win32.ActiveCfg = Debug|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64.ActiveCfg = Debug|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64.Build.0 = Debug|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|Win32.Build.0 = Debug|Win32
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x64.ActiveCfg = Debug|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x64.Build.0 = Debug|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|Win32.ActiveCfg = Release|Win32
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|Win32.Build.0 = Release|Win32
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|x64.ActiveCfg = Release|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|x64.Build.0 = Release|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.All|Win32.ActiveCfg = Debug|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.All|x64.ActiveCfg = Debug|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.All|x64.Build.0 = Debug|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|Win32.ActiveCfg = Debug|Win32
++              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|Win32.Build.0 = Debug|Win32
++              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x64.ActiveCfg = Debug|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x64.Build.0 = Debug|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.Release|Win32.ActiveCfg = Release|Win32
++              {94001A0E-A837-445C-8004-F918F10D0226}.Release|Win32.Build.0 = Release|Win32
++              {94001A0E-A837-445C-8004-F918F10D0226}.Release|x64.ActiveCfg = Release|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.Release|x64.Build.0 = Release|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|Win32.ActiveCfg = Release|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x64.ActiveCfg = Release|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x64.Build.0 = Release|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|Win32.Build.0 = Debug|Win32
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|x64.ActiveCfg = Debug|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|x64.Build.0 = Debug|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|Win32.ActiveCfg = Release|Win32
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|Win32.Build.0 = Release|Win32
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|x64.ActiveCfg = Release|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|x64.Build.0 = Release|x64
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|Win32.ActiveCfg = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|Win32.Build.0 = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64.ActiveCfg = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64.Build.0 = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|Win32.ActiveCfg = Debug|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|Win32.Build.0 = Debug|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x64.ActiveCfg = Debug|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x64.Build.0 = Debug|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|Win32.ActiveCfg = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|Win32.Build.0 = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|x64.ActiveCfg = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|x64.Build.0 = Release|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|Win32.ActiveCfg = Release|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|x64.ActiveCfg = Release|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|Win32.ActiveCfg = Debug|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|x64.ActiveCfg = Debug|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release|Win32.ActiveCfg = Release|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release|x64.ActiveCfg = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|Win32.ActiveCfg = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|Win32.Build.0 = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64.ActiveCfg = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64.Build.0 = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|Win32.Build.0 = Debug|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x64.ActiveCfg = Debug|x64
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x64.Build.0 = Debug|x64
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|Win32.ActiveCfg = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|Win32.Build.0 = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|x64.ActiveCfg = Release|x64
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|x64.Build.0 = Release|x64
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.All|Win32.ActiveCfg = Release|Win32
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.All|x64.ActiveCfg = Release|Win32
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|x64.ActiveCfg = Debug|x64
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.Release|Win32.ActiveCfg = Release|Win32
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.Release|x64.ActiveCfg = Release|x64
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|Win32.ActiveCfg = Release|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|x64.ActiveCfg = Release|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|Win32.ActiveCfg = Debug|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|x64.ActiveCfg = Debug|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release|Win32.ActiveCfg = Release|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release|x64.ActiveCfg = Release|Win32
++              {464AAB78-5489-4916-BE51-BF8D61822311}.All|Win32.ActiveCfg = Release|Win32
++              {464AAB78-5489-4916-BE51-BF8D61822311}.All|x64.ActiveCfg = Release|Win32
++              {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|Win32.ActiveCfg = Debug|Win32
++              {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|x64.ActiveCfg = Debug|x64
++              {464AAB78-5489-4916-BE51-BF8D61822311}.Release|Win32.ActiveCfg = Release|Win32
++              {464AAB78-5489-4916-BE51-BF8D61822311}.Release|x64.ActiveCfg = Release|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.All|Win32.ActiveCfg = Release|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64.ActiveCfg = Release|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64.Build.0 = Release|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|Win32.ActiveCfg = Debug|Win32
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|Win32.Build.0 = Debug|Win32
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x64.ActiveCfg = Debug|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x64.Build.0 = Debug|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|Win32.ActiveCfg = Release|Win32
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|Win32.Build.0 = Release|Win32
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|x64.ActiveCfg = Release|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|x64.Build.0 = Release|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|Win32.ActiveCfg = Release Static|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64.ActiveCfg = Release Static|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64.Build.0 = Release Static|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|Win32.ActiveCfg = Debug|Win32
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x64.ActiveCfg = Debug|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|Win32.ActiveCfg = Release|Win32
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|x64.ActiveCfg = Release|x64
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|Win32.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x64.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x64.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|x64.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|Win32.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x64.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x64.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|x64.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|Win32.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x64.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x64.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|x64.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|Win32.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x64.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x64.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|x64.Build.0 = Release|Win32
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|Win32.ActiveCfg = Debug|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64.ActiveCfg = Debug|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64.Build.0 = Debug|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|Win32.ActiveCfg = Debug|Win32
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|Win32.Build.0 = Debug|Win32
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x64.ActiveCfg = Debug|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x64.Build.0 = Debug|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|Win32.ActiveCfg = Release|Win32
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|Win32.Build.0 = Release|Win32
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|x64.ActiveCfg = Release|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|x64.Build.0 = Release|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|Win32.ActiveCfg = Debug|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64.ActiveCfg = Debug|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64.Build.0 = Debug|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|Win32.Build.0 = Debug|Win32
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x64.ActiveCfg = Debug|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x64.Build.0 = Debug|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|Win32.ActiveCfg = Release|Win32
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|Win32.Build.0 = Release|Win32
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|x64.ActiveCfg = Release|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|x64.Build.0 = Release|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|Win32.ActiveCfg = Release|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64.ActiveCfg = Release|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64.Build.0 = Release|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|Win32.ActiveCfg = Debug|Win32
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|Win32.Build.0 = Debug|Win32
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x64.ActiveCfg = Debug|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x64.Build.0 = Debug|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|Win32.ActiveCfg = Release|Win32
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|Win32.Build.0 = Release|Win32
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|x64.ActiveCfg = Release|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|x64.Build.0 = Release|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|Win32.ActiveCfg = Debug|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64.ActiveCfg = Debug|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64.Build.0 = Debug|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|Win32.ActiveCfg = Debug|Win32
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|Win32.Build.0 = Debug|Win32
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x64.ActiveCfg = Debug|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x64.Build.0 = Debug|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|Win32.ActiveCfg = Release|Win32
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|Win32.Build.0 = Release|Win32
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64.ActiveCfg = Release|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64.Build.0 = Release|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|Win32.ActiveCfg = Release|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.ActiveCfg = Release|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.Build.0 = Release|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.Build.0 = Debug|Win32
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.ActiveCfg = Debug|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.Build.0 = Debug|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.ActiveCfg = Release|Win32
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.Build.0 = Release|Win32
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64.ActiveCfg = Release|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64.Build.0 = Release|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|Win32.ActiveCfg = Release|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.ActiveCfg = Release|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.Build.0 = Release|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|Win32.Build.0 = Debug|Win32
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x64.ActiveCfg = Debug|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x64.Build.0 = Debug|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|Win32.ActiveCfg = Release|Win32
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|Win32.Build.0 = Release|Win32
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|x64.ActiveCfg = Release|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|x64.Build.0 = Release|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|Win32.ActiveCfg = Release_Mono|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64.ActiveCfg = Release_Mono|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64.Build.0 = Release_Mono|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|Win32.ActiveCfg = Debug_CLR|Win32
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|Win32.Build.0 = Debug_CLR|Win32
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x64.ActiveCfg = Debug_CLR|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x64.Build.0 = Debug_CLR|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|Win32.ActiveCfg = Release_CLR|Win32
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|Win32.Build.0 = Release_CLR|Win32
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|x64.ActiveCfg = Release_CLR|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|x64.Build.0 = Release_CLR|x64
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.All|Win32.ActiveCfg = Release|Any CPU
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.All|x64.ActiveCfg = Release|Any CPU
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|Win32.ActiveCfg = Debug|Any CPU
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|Win32.Build.0 = Debug|Any CPU
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|x64.ActiveCfg = Debug|x64
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|x64.Build.0 = Debug|x64
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|Win32.ActiveCfg = Release|Any CPU
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|Win32.Build.0 = Release|Any CPU
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|x64.ActiveCfg = Release|x64
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|x64.Build.0 = Release|x64
++              {E796E337-DE78-4303-8614-9A590862EE95}.All|Win32.ActiveCfg = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.All|Win32.Build.0 = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.All|x64.ActiveCfg = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.All|x64.Build.0 = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|Win32.ActiveCfg = Debug|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|Win32.Build.0 = Debug|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x64.ActiveCfg = Debug|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x64.Build.0 = Debug|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Release|Win32.ActiveCfg = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Release|Win32.Build.0 = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Release|x64.ActiveCfg = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Release|x64.Build.0 = Release|Win32
++              {419C8F80-D858-4B48-A25C-AF4007608137}.All|Win32.ActiveCfg = Release|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64.ActiveCfg = Release|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64.Build.0 = Release|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|Win32.ActiveCfg = Debug|Win32
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|Win32.Build.0 = Debug|Win32
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x64.ActiveCfg = Debug|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x64.Build.0 = Debug|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|Win32.ActiveCfg = Release|Win32
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|Win32.Build.0 = Release|Win32
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|x64.ActiveCfg = Release|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|x64.Build.0 = Release|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|Win32.ActiveCfg = Release|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64.ActiveCfg = Release|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64.Build.0 = Release|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|Win32.Build.0 = Debug|Win32
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x64.ActiveCfg = Debug|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x64.Build.0 = Debug|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|Win32.ActiveCfg = Release|Win32
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|Win32.Build.0 = Release|Win32
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|x64.ActiveCfg = Release|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|x64.Build.0 = Release|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|Win32.ActiveCfg = Release|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64.ActiveCfg = Release|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64.Build.0 = Release|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|Win32.ActiveCfg = Debug|Win32
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|Win32.Build.0 = Debug|Win32
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x64.ActiveCfg = Debug|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x64.Build.0 = Debug|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|Win32.ActiveCfg = Release|Win32
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|Win32.Build.0 = Release|Win32
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|x64.ActiveCfg = Release|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|x64.Build.0 = Release|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|Win32.ActiveCfg = Release|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64.ActiveCfg = Release|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64.Build.0 = Release|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|Win32.Build.0 = Debug|Win32
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x64.ActiveCfg = Debug|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x64.Build.0 = Debug|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|Win32.ActiveCfg = Release|Win32
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|Win32.Build.0 = Release|Win32
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|x64.ActiveCfg = Release|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|x64.Build.0 = Release|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|Win32.ActiveCfg = Release|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64.ActiveCfg = Release|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64.Build.0 = Release|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|Win32.ActiveCfg = Debug|Win32
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|Win32.Build.0 = Debug|Win32
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x64.ActiveCfg = Debug|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x64.Build.0 = Debug|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|Win32.ActiveCfg = Release|Win32
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|Win32.Build.0 = Release|Win32
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|x64.ActiveCfg = Release|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|x64.Build.0 = Release|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|Win32.ActiveCfg = Release|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64.ActiveCfg = Release|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64.Build.0 = Release|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|Win32.Build.0 = Debug|Win32
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x64.ActiveCfg = Debug|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x64.Build.0 = Debug|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|Win32.ActiveCfg = Release|Win32
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|Win32.Build.0 = Release|Win32
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|x64.ActiveCfg = Release|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|x64.Build.0 = Release|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|Win32.ActiveCfg = Release|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64.ActiveCfg = Release|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64.Build.0 = Release|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|Win32.Build.0 = Debug|Win32
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x64.ActiveCfg = Debug|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x64.Build.0 = Debug|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|Win32.ActiveCfg = Release|Win32
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|Win32.Build.0 = Release|Win32
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|x64.ActiveCfg = Release|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|x64.Build.0 = Release|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|Win32.ActiveCfg = Release|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64.ActiveCfg = Release|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64.Build.0 = Release|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|Win32.ActiveCfg = Debug|Win32
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|Win32.Build.0 = Debug|Win32
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x64.ActiveCfg = Debug|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x64.Build.0 = Debug|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|Win32.ActiveCfg = Release|Win32
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|Win32.Build.0 = Release|Win32
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|x64.ActiveCfg = Release|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|x64.Build.0 = Release|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|Win32.ActiveCfg = Release|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64.ActiveCfg = Release|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64.Build.0 = Release|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|Win32.Build.0 = Debug|Win32
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x64.ActiveCfg = Debug|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x64.Build.0 = Debug|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|Win32.ActiveCfg = Release|Win32
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|Win32.Build.0 = Release|Win32
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|x64.ActiveCfg = Release|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|x64.Build.0 = Release|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|Win32.ActiveCfg = Release|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x64.ActiveCfg = Release|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x64.Build.0 = Release|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|Win32.ActiveCfg = Debug|Win32
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|Win32.Build.0 = Debug|Win32
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|x64.ActiveCfg = Debug|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|x64.Build.0 = Debug|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|Win32.ActiveCfg = Release|Win32
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|Win32.Build.0 = Release|Win32
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|x64.ActiveCfg = Release|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|x64.Build.0 = Release|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|Win32.ActiveCfg = Release|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64.ActiveCfg = Release|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64.Build.0 = Release|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|Win32.Build.0 = Debug|Win32
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x64.ActiveCfg = Debug|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x64.Build.0 = Debug|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|Win32.ActiveCfg = Release|Win32
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|Win32.Build.0 = Release|Win32
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|x64.ActiveCfg = Release|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|x64.Build.0 = Release|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|Win32.ActiveCfg = Release_WM5_PPC_ARM|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x64.ActiveCfg = Release_WM5_PPC_ARM|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x64.Build.0 = Release_WM5_PPC_ARM|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|Win32.ActiveCfg = Debug|Win32
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|Win32.Build.0 = Debug|Win32
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|x64.ActiveCfg = Debug|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|x64.Build.0 = Debug|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|Win32.ActiveCfg = Release|Win32
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|Win32.Build.0 = Release|Win32
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|x64.ActiveCfg = Release|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|x64.Build.0 = Release|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|Win32.ActiveCfg = Release_Static_SSE|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x64.ActiveCfg = Release_Static_SSE|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x64.Build.0 = Release_Static_SSE|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|Win32.Build.0 = Debug|Win32
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|x64.ActiveCfg = Debug|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|x64.Build.0 = Debug|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|Win32.ActiveCfg = Release|Win32
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|Win32.Build.0 = Release|Win32
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|x64.ActiveCfg = Release|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|x64.Build.0 = Release|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|Win32.ActiveCfg = Release|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64.ActiveCfg = Release|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64.Build.0 = Release|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|Win32.Build.0 = Debug|Win32
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x64.ActiveCfg = Debug|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x64.Build.0 = Debug|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|Win32.ActiveCfg = Release|Win32
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|Win32.Build.0 = Release|Win32
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x64.ActiveCfg = Release|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x64.Build.0 = Release|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.All|Win32.ActiveCfg = Release|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64.ActiveCfg = Release|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64.Build.0 = Release|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|Win32.Build.0 = Debug|Win32
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64.ActiveCfg = Debug|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64.Build.0 = Debug|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|Win32.ActiveCfg = Release|Win32
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|Win32.Build.0 = Release|Win32
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|x64.ActiveCfg = Release|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|x64.Build.0 = Release|x64
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|Win32.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|Win32.Build.0 = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|x64.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|Win32.ActiveCfg = Debug|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|x64.ActiveCfg = Debug|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release|Win32.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release|x64.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|Win32.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|Win32.Build.0 = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|x64.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Debug|Win32.ActiveCfg = Debug|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Debug|x64.ActiveCfg = Debug|x64
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Release|Win32.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Release|x64.ActiveCfg = Release|Win32
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|Win32.ActiveCfg = All|Win32
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|Win32.Build.0 = All|Win32
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x64.ActiveCfg = All|Win32
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x64.ActiveCfg = Debug|x64
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|Win32.ActiveCfg = Release|Win32
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x64.ActiveCfg = Release|x64
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|Win32.ActiveCfg = Release|Win32
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|x64.ActiveCfg = Release|Win32
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|Win32.ActiveCfg = Debug|Win32
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x64.ActiveCfg = Debug|x64
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|Win32.ActiveCfg = Release|Win32
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|x64.ActiveCfg = Release|x64
++              {48414740-C693-4968-9846-EE058020C64F}.All|Win32.ActiveCfg = Release|Win32
++              {48414740-C693-4968-9846-EE058020C64F}.All|x64.ActiveCfg = Release|Win32
++              {48414740-C693-4968-9846-EE058020C64F}.Debug|Win32.ActiveCfg = Debug|Win32
++              {48414740-C693-4968-9846-EE058020C64F}.Debug|x64.ActiveCfg = Debug|x64
++              {48414740-C693-4968-9846-EE058020C64F}.Release|Win32.ActiveCfg = Release|Win32
++              {48414740-C693-4968-9846-EE058020C64F}.Release|x64.ActiveCfg = Release|x64
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|Win32.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|Win32.Build.0 = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|x64.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|Win32.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|Win32.Build.0 = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x64.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x64.Build.0 = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|Win32.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|Win32.Build.0 = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|x64.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|x64.Build.0 = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|Win32.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|Win32.Build.0 = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|x64.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|Win32.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|Win32.Build.0 = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x64.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x64.Build.0 = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|Win32.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|Win32.Build.0 = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|x64.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|x64.Build.0 = All|Win32
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|Win32.ActiveCfg = Release|x64
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64.ActiveCfg = Release|x64
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64.Build.0 = Release|x64
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|Win32.ActiveCfg = Debug|Win32
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|x64.ActiveCfg = Debug|x64
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release|Win32.ActiveCfg = Release|Win32
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release|x64.ActiveCfg = Release|x64
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|Win32.ActiveCfg = Release|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|Win32.Build.0 = Release|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|x64.ActiveCfg = Release|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|Win32.ActiveCfg = Debug|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x64.ActiveCfg = Debug|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|Win32.ActiveCfg = Release|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x64.ActiveCfg = Release|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.All|Win32.ActiveCfg = Release|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.All|x64.ActiveCfg = Release|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|x64.ActiveCfg = Debug|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.Release|Win32.ActiveCfg = Release|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.Release|x64.ActiveCfg = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|Win32.ActiveCfg = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|Win32.Build.0 = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64.ActiveCfg = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64.Build.0 = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|Win32.ActiveCfg = Debug|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|Win32.Build.0 = Debug|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x64.ActiveCfg = Debug|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x64.Build.0 = Debug|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|Win32.ActiveCfg = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|Win32.Build.0 = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|x64.ActiveCfg = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|x64.Build.0 = Release|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|Win32.ActiveCfg = Release|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|x64.ActiveCfg = Release|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|Win32.ActiveCfg = Debug|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|x64.ActiveCfg = Debug|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release|Win32.ActiveCfg = Release|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release|x64.ActiveCfg = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|Win32.ActiveCfg = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|Win32.Build.0 = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64.ActiveCfg = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64.Build.0 = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|Win32.Build.0 = Debug|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x64.ActiveCfg = Debug|x64
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x64.Build.0 = Debug|x64
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|Win32.ActiveCfg = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|Win32.Build.0 = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|x64.ActiveCfg = Release|x64
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|x64.Build.0 = Release|x64
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|Win32.ActiveCfg = Release|Win32
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|x64.ActiveCfg = Release|Win32
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|Win32.ActiveCfg = Debug|Win32
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|x64.ActiveCfg = Debug|x64
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release|Win32.ActiveCfg = Release|Win32
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release|x64.ActiveCfg = Release|x64
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|Win32.ActiveCfg = Release|Win32
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|x64.ActiveCfg = Release|Win32
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|Win32.ActiveCfg = Debug|Win32
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|x64.ActiveCfg = Debug|x64
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|Win32.ActiveCfg = Release|Win32
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|x64.ActiveCfg = Release|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|Win32.ActiveCfg = Release|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64.ActiveCfg = Release|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64.Build.0 = Release|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|Win32.Build.0 = Debug|Win32
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x64.ActiveCfg = Debug|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x64.Build.0 = Debug|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|Win32.ActiveCfg = Release|Win32
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|Win32.Build.0 = Release|Win32
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x64.ActiveCfg = Release|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x64.Build.0 = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|Win32.ActiveCfg = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|Win32.Build.0 = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.ActiveCfg = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.Build.0 = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|Win32.ActiveCfg = Debug|Win32
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|Win32.Build.0 = Debug|Win32
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.ActiveCfg = Debug|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.Build.0 = Debug|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|Win32.ActiveCfg = Release|Win32
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|Win32.Build.0 = Release|Win32
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64.ActiveCfg = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64.Build.0 = Release|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|Win32.ActiveCfg = Release|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|x64.ActiveCfg = Release|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|Win32.Build.0 = Debug|Win32
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x64.ActiveCfg = Debug|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x64.Build.0 = Debug|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|Win32.ActiveCfg = Release|Win32
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|Win32.Build.0 = Release|Win32
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|x64.ActiveCfg = Release|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|x64.Build.0 = Release|x64
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|Win32.ActiveCfg = Release|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|Win32.Build.0 = Release|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|x64.ActiveCfg = Release|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.ActiveCfg = Debug|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.Build.0 = Debug|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x64.ActiveCfg = Debug|x64
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x64.Build.0 = Debug|x64
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.ActiveCfg = Release|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.Build.0 = Release|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|x64.ActiveCfg = Release|x64
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|x64.Build.0 = Release|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|Win32.ActiveCfg = Release|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64.ActiveCfg = Release|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64.Build.0 = Release|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|Win32.Build.0 = Debug|Win32
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x64.ActiveCfg = Debug|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x64.Build.0 = Debug|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|Win32.ActiveCfg = Release|Win32
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|Win32.Build.0 = Release|Win32
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x64.ActiveCfg = Release|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x64.Build.0 = Release|x64
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|Win32.ActiveCfg = Release|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|Win32.Build.0 = Release|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|x64.ActiveCfg = Release|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|Win32.ActiveCfg = Debug|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|Win32.Build.0 = Debug|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64.ActiveCfg = Debug|x64
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64.Build.0 = Debug|x64
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|Win32.ActiveCfg = Release|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|Win32.Build.0 = Release|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x64.ActiveCfg = Release|x64
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x64.Build.0 = Release|x64
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|Win32.ActiveCfg = Release|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|Win32.Build.0 = Release|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|x64.ActiveCfg = Release|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|Win32.Build.0 = Debug|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64.ActiveCfg = Debug|x64
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64.Build.0 = Debug|x64
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|Win32.ActiveCfg = Release|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|Win32.Build.0 = Release|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x64.ActiveCfg = Release|x64
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x64.Build.0 = Release|x64
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|Win32.ActiveCfg = Release|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|Win32.Build.0 = Release|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|x64.ActiveCfg = Release|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|Win32.Build.0 = Debug|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64.ActiveCfg = Debug|x64
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64.Build.0 = Debug|x64
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|Win32.ActiveCfg = Release|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|Win32.Build.0 = Release|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x64.ActiveCfg = Release|x64
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x64.Build.0 = Release|x64
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|Win32.ActiveCfg = Release|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|Win32.Build.0 = Release|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|x64.ActiveCfg = Release|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|Win32.ActiveCfg = Debug|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|Win32.Build.0 = Debug|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64.ActiveCfg = Debug|x64
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64.Build.0 = Debug|x64
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|Win32.ActiveCfg = Release|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|Win32.Build.0 = Release|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x64.ActiveCfg = Release|x64
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x64.Build.0 = Release|x64
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|Win32.ActiveCfg = Release|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|Win32.Build.0 = Release|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|x64.ActiveCfg = Release|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|Win32.ActiveCfg = Debug|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|Win32.Build.0 = Debug|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64.ActiveCfg = Debug|x64
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64.Build.0 = Debug|x64
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|Win32.ActiveCfg = Release|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|Win32.Build.0 = Release|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x64.ActiveCfg = Release|x64
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x64.Build.0 = Release|x64
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|Win32.ActiveCfg = Release|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|Win32.Build.0 = Release|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|x64.ActiveCfg = Release|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|Win32.ActiveCfg = Debug|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|Win32.Build.0 = Debug|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64.ActiveCfg = Debug|x64
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64.Build.0 = Debug|x64
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|Win32.ActiveCfg = Release|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|Win32.Build.0 = Release|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x64.ActiveCfg = Release|x64
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x64.Build.0 = Release|x64
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|Win32.ActiveCfg = Release|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|Win32.Build.0 = Release|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|x64.ActiveCfg = Release|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|Win32.ActiveCfg = Debug|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|Win32.Build.0 = Debug|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64.ActiveCfg = Debug|x64
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64.Build.0 = Debug|x64
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|Win32.ActiveCfg = Release|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|Win32.Build.0 = Release|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x64.ActiveCfg = Release|x64
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x64.Build.0 = Release|x64
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|Win32.ActiveCfg = Release|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|Win32.Build.0 = Release|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|x64.ActiveCfg = Release|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|Win32.Build.0 = Debug|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64.ActiveCfg = Debug|x64
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64.Build.0 = Debug|x64
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|Win32.ActiveCfg = Release|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|Win32.Build.0 = Release|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x64.ActiveCfg = Release|x64
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x64.Build.0 = Release|x64
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|Win32.ActiveCfg = Release|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|Win32.Build.0 = Release|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|x64.ActiveCfg = Release|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|Win32.ActiveCfg = Debug|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|Win32.Build.0 = Debug|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64.ActiveCfg = Debug|x64
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64.Build.0 = Debug|x64
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|Win32.ActiveCfg = Release|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|Win32.Build.0 = Release|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x64.ActiveCfg = Release|x64
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x64.Build.0 = Release|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|Win32.ActiveCfg = Release|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x64.ActiveCfg = Release|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x64.Build.0 = Release|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|Win32.Build.0 = Debug|Win32
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|x64.ActiveCfg = Debug|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|x64.Build.0 = Debug|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|Win32.ActiveCfg = Release|Win32
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|Win32.Build.0 = Release|Win32
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|x64.ActiveCfg = Release|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|x64.Build.0 = Release|x64
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|Win32.ActiveCfg = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|Win32.Build.0 = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|x64.ActiveCfg = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|Win32.ActiveCfg = Debug|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|Win32.Build.0 = Debug|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x64.ActiveCfg = Debug|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x64.Build.0 = Debug|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|Win32.ActiveCfg = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|Win32.Build.0 = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|x64.ActiveCfg = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|x64.Build.0 = Release|Win32
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|Win32.ActiveCfg = Release|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64.ActiveCfg = Release|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64.Build.0 = Release|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|Win32.Build.0 = Debug|Win32
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64.ActiveCfg = Debug|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64.Build.0 = Debug|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|Win32.ActiveCfg = Release|Win32
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|Win32.Build.0 = Release|Win32
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x64.ActiveCfg = Release|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x64.Build.0 = Release|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|Win32.ActiveCfg = Release Passthrough|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64.ActiveCfg = Release Passthrough|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64.Build.0 = Release Passthrough|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|Win32.ActiveCfg = Debug|Win32
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|Win32.Build.0 = Debug|Win32
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x64.ActiveCfg = Debug|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x64.Build.0 = Debug|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|Win32.ActiveCfg = Release|Win32
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|Win32.Build.0 = Release|Win32
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|x64.ActiveCfg = Release|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|x64.Build.0 = Release|x64
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|Win32.ActiveCfg = Release|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|Win32.Build.0 = Release|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|x64.ActiveCfg = Release|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|x64.ActiveCfg = Debug|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release|Win32.ActiveCfg = Release|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release|x64.ActiveCfg = Release|Win32
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|Win32.ActiveCfg = Release|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64.ActiveCfg = Release|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64.Build.0 = Release|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|Win32.ActiveCfg = Debug|Win32
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|Win32.Build.0 = Debug|Win32
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x64.ActiveCfg = Debug|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x64.Build.0 = Debug|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|Win32.ActiveCfg = Release|Win32
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|Win32.Build.0 = Release|Win32
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|x64.ActiveCfg = Release|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|x64.Build.0 = Release|x64
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|Win32.ActiveCfg = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|Win32.Build.0 = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|x64.ActiveCfg = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|Win32.Build.0 = Debug|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x64.ActiveCfg = Debug|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x64.Build.0 = Debug|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|Win32.ActiveCfg = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|Win32.Build.0 = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|x64.ActiveCfg = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|x64.Build.0 = Release|Win32
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|Win32.ActiveCfg = Release|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64.ActiveCfg = Release|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64.Build.0 = Release|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|Win32.Build.0 = Debug|Win32
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64.ActiveCfg = Debug|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64.Build.0 = Debug|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|Win32.ActiveCfg = Release|Win32
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|Win32.Build.0 = Release|Win32
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x64.ActiveCfg = Release|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x64.Build.0 = Release|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|Win32.ActiveCfg = Release|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64.ActiveCfg = Release|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64.Build.0 = Release|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|Win32.ActiveCfg = Debug|Win32
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|Win32.Build.0 = Debug|Win32
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x64.ActiveCfg = Debug|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x64.Build.0 = Debug|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|Win32.ActiveCfg = Release|Win32
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|Win32.Build.0 = Release|Win32
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|x64.ActiveCfg = Release|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|x64.Build.0 = Release|x64
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|Win32.ActiveCfg = Release|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|Win32.Build.0 = Release|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|x64.ActiveCfg = Release|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|Win32.ActiveCfg = Debug|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|Win32.Build.0 = Debug|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x64.ActiveCfg = Debug|x64
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x64.Build.0 = Debug|x64
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|Win32.ActiveCfg = Release|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|Win32.Build.0 = Release|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|x64.ActiveCfg = Release|x64
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|x64.Build.0 = Release|x64
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|Win32.ActiveCfg = Release|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|Win32.Build.0 = Release|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|x64.ActiveCfg = Release|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|Win32.ActiveCfg = Debug|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|Win32.Build.0 = Debug|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x64.ActiveCfg = Debug|x64
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x64.Build.0 = Debug|x64
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|Win32.ActiveCfg = Release|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|Win32.Build.0 = Release|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|x64.ActiveCfg = Release|x64
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|x64.Build.0 = Release|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|Win32.ActiveCfg = Release|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64.ActiveCfg = Release|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64.Build.0 = Release|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|Win32.Build.0 = Debug|Win32
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x64.ActiveCfg = Debug|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x64.Build.0 = Debug|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|Win32.ActiveCfg = Release|Win32
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|Win32.Build.0 = Release|Win32
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|x64.ActiveCfg = Release|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|x64.Build.0 = Release|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|Win32.ActiveCfg = Release|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64.ActiveCfg = Release|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64.Build.0 = Release|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|Win32.Build.0 = Debug|Win32
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x64.ActiveCfg = Debug|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x64.Build.0 = Debug|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|Win32.ActiveCfg = Release|Win32
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|Win32.Build.0 = Release|Win32
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|x64.ActiveCfg = Release|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|x64.Build.0 = Release|x64
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|Win32.ActiveCfg = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|Win32.Build.0 = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|x64.ActiveCfg = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|Win32.Build.0 = Debug|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|x64.ActiveCfg = Debug|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|x64.Build.0 = Debug|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|Win32.ActiveCfg = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|Win32.Build.0 = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|x64.ActiveCfg = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|x64.Build.0 = Release|Win32
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|Win32.ActiveCfg = Release|Win32
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|Win32.Build.0 = Release|Win32
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|x64.ActiveCfg = Release|Win32
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|Win32.Build.0 = Debug|Win32
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|x64.ActiveCfg = Debug|x64
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|x64.Build.0 = Debug|x64
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|Win32.ActiveCfg = Release|Win32
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|Win32.Build.0 = Release|Win32
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|x64.ActiveCfg = Release|x64
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|x64.Build.0 = Release|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|Win32.ActiveCfg = Release|Win32
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|Win32.Build.0 = Release|Win32
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|x64.ActiveCfg = Release|Win32
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|Win32.Build.0 = Debug|Win32
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|x64.ActiveCfg = Debug|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|x64.Build.0 = Debug|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|Win32.ActiveCfg = Release|Win32
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|Win32.Build.0 = Release|Win32
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|x64.ActiveCfg = Release|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|x64.Build.0 = Release|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|Win32.ActiveCfg = Release|Win32
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|Win32.Build.0 = Release|Win32
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|x64.ActiveCfg = Release|Win32
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|Win32.ActiveCfg = Debug|Win32
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|Win32.Build.0 = Debug|Win32
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|x64.ActiveCfg = Debug|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|x64.Build.0 = Debug|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|Win32.ActiveCfg = Release|Win32
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|Win32.Build.0 = Release|Win32
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|x64.ActiveCfg = Release|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|x64.Build.0 = Release|x64
++              {42E721FD-43D6-4B04-A34B-42567199FFB8}.All|Win32.ActiveCfg = Release|x64
++              {42E721FD-43D6-4B04-A34B-42567199FFB8}.All|x64.ActiveCfg = Release|x64
++              {42E721FD-43D6-4B04-A34B-42567199FFB8}.All|x64.Build.0 = Release|x64
++              {42E721FD-43D6-4B04-A34B-42567199FFB8}.Debug|Win32.ActiveCfg = Debug|Win32
++              {42E721FD-43D6-4B04-A34B-42567199FFB8}.Debug|x64.ActiveCfg = Debug|x64
++              {42E721FD-43D6-4B04-A34B-42567199FFB8}.Release|Win32.ActiveCfg = Release|Win32
++              {42E721FD-43D6-4B04-A34B-42567199FFB8}.Release|x64.ActiveCfg = Release|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|Win32.ActiveCfg = Release|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x64.ActiveCfg = Release|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x64.Build.0 = Release|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|Win32.ActiveCfg = Debug|Win32
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|Win32.Build.0 = Debug|Win32
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|x64.ActiveCfg = Debug|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|x64.Build.0 = Debug|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|Win32.ActiveCfg = Release|Win32
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|Win32.Build.0 = Release|Win32
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64.ActiveCfg = Release|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64.Build.0 = Release|x64
++              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.All|Win32.ActiveCfg = Release|x64
++              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.All|x64.ActiveCfg = Release|x64
++              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.All|x64.Build.0 = Release|x64
++              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Debug|Win32.ActiveCfg = Debug|Win32
++              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Debug|Win32.Build.0 = Debug|Win32
++              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Debug|x64.ActiveCfg = Debug|x64
++              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Debug|x64.Build.0 = Debug|x64
++              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Release|Win32.ActiveCfg = Release|Win32
++              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Release|Win32.Build.0 = Release|Win32
++              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Release|x64.ActiveCfg = Release|x64
++              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169}.Release|x64.Build.0 = Release|x64
++              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.All|Win32.ActiveCfg = Release|x64
++              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.All|x64.ActiveCfg = Release|x64
++              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.All|x64.Build.0 = Release|x64
++              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Debug|Win32.Build.0 = Debug|Win32
++              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Debug|x64.ActiveCfg = Debug|x64
++              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Debug|x64.Build.0 = Debug|x64
++              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Release|Win32.ActiveCfg = Release|Win32
++              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Release|Win32.Build.0 = Release|Win32
++              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Release|x64.ActiveCfg = Release|x64
++              {BDA173DB-F8EF-4270-9553-B453AF92E43A}.Release|x64.Build.0 = Release|x64
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|Win32.ActiveCfg = Release|Win32
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|Win32.Build.0 = Release|Win32
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64.ActiveCfg = Release|Win32
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|Win32.ActiveCfg = Debug|Win32
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x64.ActiveCfg = Debug|x64
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|Win32.ActiveCfg = Release|Win32
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x64.ActiveCfg = Release|x64
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|Win32.ActiveCfg = Debug|Win32
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|Win32.Build.0 = Debug|Win32
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64.ActiveCfg = Debug|Win32
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|Win32.ActiveCfg = Debug|Win32
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x64.ActiveCfg = Debug|x64
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|Win32.ActiveCfg = Release|Win32
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x64.ActiveCfg = Release|x64
++              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.All|Win32.ActiveCfg = Debug|x64
++              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.All|x64.ActiveCfg = Debug|x64
++              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.All|x64.Build.0 = Debug|x64
++              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Debug|Win32.Build.0 = Debug|Win32
++              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Debug|x64.ActiveCfg = Debug|x64
++              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Debug|x64.Build.0 = Debug|x64
++              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Release|Win32.ActiveCfg = Release|Win32
++              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Release|Win32.Build.0 = Release|Win32
++              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Release|x64.ActiveCfg = Release|x64
++              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Release|x64.Build.0 = Release|x64
++              {21A7DA70-555E-49FA-942B-D84A38B61243}.All|Win32.ActiveCfg = Release|Win32
++              {21A7DA70-555E-49FA-942B-D84A38B61243}.All|Win32.Build.0 = Release|Win32
++              {21A7DA70-555E-49FA-942B-D84A38B61243}.All|x64.ActiveCfg = Release|Win32
++              {21A7DA70-555E-49FA-942B-D84A38B61243}.Debug|Win32.ActiveCfg = Debug|Win32
++              {21A7DA70-555E-49FA-942B-D84A38B61243}.Debug|Win32.Build.0 = Debug|Win32
++              {21A7DA70-555E-49FA-942B-D84A38B61243}.Debug|x64.ActiveCfg = Debug|Win32
++              {21A7DA70-555E-49FA-942B-D84A38B61243}.Debug|x64.Build.0 = Debug|Win32
++              {21A7DA70-555E-49FA-942B-D84A38B61243}.Release|Win32.ActiveCfg = Release|Win32
++              {21A7DA70-555E-49FA-942B-D84A38B61243}.Release|Win32.Build.0 = Release|Win32
++              {21A7DA70-555E-49FA-942B-D84A38B61243}.Release|x64.ActiveCfg = Release|Win32
++              {21A7DA70-555E-49FA-942B-D84A38B61243}.Release|x64.Build.0 = Release|Win32
++              {A4D67895-E709-40C7-82B6-DE1D12DDDE04}.All|Win32.ActiveCfg = Release|x64
++              {A4D67895-E709-40C7-82B6-DE1D12DDDE04}.All|x64.ActiveCfg = Release|x64
++              {A4D67895-E709-40C7-82B6-DE1D12DDDE04}.All|x64.Build.0 = Release|x64
++              {A4D67895-E709-40C7-82B6-DE1D12DDDE04}.Debug|Win32.ActiveCfg = Debug|Win32
++              {A4D67895-E709-40C7-82B6-DE1D12DDDE04}.Debug|Win32.Build.0 = Debug|Win32
++              {A4D67895-E709-40C7-82B6-DE1D12DDDE04}.Debug|x64.ActiveCfg = Debug|x64
++              {A4D67895-E709-40C7-82B6-DE1D12DDDE04}.Debug|x64.Build.0 = Debug|x64
++              {A4D67895-E709-40C7-82B6-DE1D12DDDE04}.Release|Win32.ActiveCfg = Release|Win32
++              {A4D67895-E709-40C7-82B6-DE1D12DDDE04}.Release|Win32.Build.0 = Release|Win32
++              {A4D67895-E709-40C7-82B6-DE1D12DDDE04}.Release|x64.ActiveCfg = Release|x64
++              {A4D67895-E709-40C7-82B6-DE1D12DDDE04}.Release|x64.Build.0 = Release|x64
++              {2390F054-A7F1-4CB9-ACB0-F46EC6E77B5B}.All|Win32.ActiveCfg = Release|x64
++              {2390F054-A7F1-4CB9-ACB0-F46EC6E77B5B}.All|x64.ActiveCfg = Release|x64
++              {2390F054-A7F1-4CB9-ACB0-F46EC6E77B5B}.All|x64.Build.0 = Release|x64
++              {2390F054-A7F1-4CB9-ACB0-F46EC6E77B5B}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2390F054-A7F1-4CB9-ACB0-F46EC6E77B5B}.Debug|Win32.Build.0 = Debug|Win32
++              {2390F054-A7F1-4CB9-ACB0-F46EC6E77B5B}.Debug|x64.ActiveCfg = Debug|x64
++              {2390F054-A7F1-4CB9-ACB0-F46EC6E77B5B}.Debug|x64.Build.0 = Debug|x64
++              {2390F054-A7F1-4CB9-ACB0-F46EC6E77B5B}.Release|Win32.ActiveCfg = Release|Win32
++              {2390F054-A7F1-4CB9-ACB0-F46EC6E77B5B}.Release|Win32.Build.0 = Release|Win32
++              {2390F054-A7F1-4CB9-ACB0-F46EC6E77B5B}.Release|x64.ActiveCfg = Release|x64
++              {2390F054-A7F1-4CB9-ACB0-F46EC6E77B5B}.Release|x64.Build.0 = Release|x64
++              {E5A9BCDA-B82D-4B08-B23E-9A782E367888}.All|Win32.ActiveCfg = Debug|x64
++              {E5A9BCDA-B82D-4B08-B23E-9A782E367888}.All|x64.ActiveCfg = Debug|x64
++              {E5A9BCDA-B82D-4B08-B23E-9A782E367888}.All|x64.Build.0 = Debug|x64
++              {E5A9BCDA-B82D-4B08-B23E-9A782E367888}.Debug|Win32.ActiveCfg = Debug|Win32
++              {E5A9BCDA-B82D-4B08-B23E-9A782E367888}.Debug|Win32.Build.0 = Debug|Win32
++              {E5A9BCDA-B82D-4B08-B23E-9A782E367888}.Debug|x64.ActiveCfg = Debug|x64
++              {E5A9BCDA-B82D-4B08-B23E-9A782E367888}.Debug|x64.Build.0 = Debug|x64
++              {E5A9BCDA-B82D-4B08-B23E-9A782E367888}.Release|Win32.ActiveCfg = Release|Win32
++              {E5A9BCDA-B82D-4B08-B23E-9A782E367888}.Release|Win32.Build.0 = Release|Win32
++              {E5A9BCDA-B82D-4B08-B23E-9A782E367888}.Release|x64.ActiveCfg = Release|x64
++              {E5A9BCDA-B82D-4B08-B23E-9A782E367888}.Release|x64.Build.0 = Release|x64
++              {510BDAA8-C04D-47DB-8482-E6AF380D3E07}.All|Win32.ActiveCfg = Release|x64
++              {510BDAA8-C04D-47DB-8482-E6AF380D3E07}.All|x64.ActiveCfg = Release|x64
++              {510BDAA8-C04D-47DB-8482-E6AF380D3E07}.All|x64.Build.0 = Release|x64
++              {510BDAA8-C04D-47DB-8482-E6AF380D3E07}.Debug|Win32.ActiveCfg = Debug|Win32
++              {510BDAA8-C04D-47DB-8482-E6AF380D3E07}.Debug|Win32.Build.0 = Debug|Win32
++              {510BDAA8-C04D-47DB-8482-E6AF380D3E07}.Debug|x64.ActiveCfg = Debug|x64
++              {510BDAA8-C04D-47DB-8482-E6AF380D3E07}.Debug|x64.Build.0 = Debug|x64
++              {510BDAA8-C04D-47DB-8482-E6AF380D3E07}.Release|Win32.ActiveCfg = Release|Win32
++              {510BDAA8-C04D-47DB-8482-E6AF380D3E07}.Release|Win32.Build.0 = Release|Win32
++              {510BDAA8-C04D-47DB-8482-E6AF380D3E07}.Release|x64.ActiveCfg = Release|x64
++              {510BDAA8-C04D-47DB-8482-E6AF380D3E07}.Release|x64.Build.0 = Release|x64
++              {3CF7C0E0-07C2-473A-A1E4-2274AEEC1268}.All|Win32.ActiveCfg = Release|x64
++              {3CF7C0E0-07C2-473A-A1E4-2274AEEC1268}.All|x64.ActiveCfg = Release|x64
++              {3CF7C0E0-07C2-473A-A1E4-2274AEEC1268}.All|x64.Build.0 = Release|x64
++              {3CF7C0E0-07C2-473A-A1E4-2274AEEC1268}.Debug|Win32.ActiveCfg = Debug|Win32
++              {3CF7C0E0-07C2-473A-A1E4-2274AEEC1268}.Debug|Win32.Build.0 = Debug|Win32
++              {3CF7C0E0-07C2-473A-A1E4-2274AEEC1268}.Debug|x64.ActiveCfg = Debug|x64
++              {3CF7C0E0-07C2-473A-A1E4-2274AEEC1268}.Debug|x64.Build.0 = Debug|x64
++              {3CF7C0E0-07C2-473A-A1E4-2274AEEC1268}.Release|Win32.ActiveCfg = Release|Win32
++              {3CF7C0E0-07C2-473A-A1E4-2274AEEC1268}.Release|Win32.Build.0 = Release|Win32
++              {3CF7C0E0-07C2-473A-A1E4-2274AEEC1268}.Release|x64.ActiveCfg = Release|x64
++              {3CF7C0E0-07C2-473A-A1E4-2274AEEC1268}.Release|x64.Build.0 = Release|x64
++      EndGlobalSection
++      GlobalSection(SolutionProperties) = preSolution
++              HideSolutionNode = FALSE
++      EndGlobalSection
++      GlobalSection(NestedProjects) = preSolution
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {2C3C2423-234B-4772-8899-D3B137E5CA35} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {0B6C905B-142E-4999-B39D-92FF7951E921} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {05C9FB27-480E-4D53-B3B7-6338E2526666} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {05C9FB27-480E-4D53-B3B7-7338E2514666} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {48414740-C693-4968-9846-EE058020C64F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {C24FB505-05D7-4319-8485-7540B44C8603} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {3850D93A-5F24-4922-BC1C-74D08C37C256} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {F6A33240-8F29-48BD-98F0-826995911799} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {432DB165-1EB2-4781-A9C0-71E62610B20A} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {42E721FD-43D6-4B04-A34B-42567199FFB8} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {0807C5CB-F6FF-451D-89F0-1F7B2E1D9169} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {BDA173DB-F8EF-4270-9553-B453AF92E43A} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}
++              {A27CCA23-1541-4337-81A4-F0A6413078A0} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}
++              {784113EF-44D9-4949-835D-7065D3C7AD08} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
++              {05515420-16DE-4E63-BE73-85BE85BA5142} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
++              {38FE0559-9910-43A8-9E45-3E5004C27692} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723} = {CBD81696-EFB4-4D2F-8451-1B8DAA86155A}
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98} = {B8F5B47B-8568-46EB-B320-64C17D2A98BC}
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {028C7278-05D7-4E18-82FE-BE231B844F41} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {36E854E3-CE12-4348-A125-CCF3F9D74813} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {692F6330-4D87-4C82-81DF-40DB5892636E} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
++              {2286DA73-9FC5-45BC-A508-85994C3317AB} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
++              {1C453396-D912-4213-89FD-9B489162B7B5} = {A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909} = {A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}
++              {89385C74-5860-4174-9CAF-A39E7C48909C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {1906D736-08BD-4EE1-924F-B536249B9A54} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {1CED5987-A529-46DC-B30F-870D85FF9C94} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {94001A0E-A837-445C-8004-F918F10D0226} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {0AD1177E-1FD8-4643-9391-431467A11084} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {419C8F80-D858-4B48-A25C-AF4007608137} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {D0B36172-CD76-454A-9B89-990025266C2A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {62F27B1A-C919-4A70-8478-51F178F3B18F} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {9778F1C0-09BC-4698-8EBC-BD982247209A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {B376D494-D7DD-4B2A-99E2-52916D5A8CD8} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {23B4D303-79FC-49E0-89E2-2280E7E28940} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {3783935D-7C0A-4166-A376-C3D8E64F3A9C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {2DEE4895-1134-439C-B688-52203E57D878} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {E796E337-DE78-4303-8614-9A590862EE95} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {1F0A8A77-E661-418F-BB92-82172AE43803} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {4F5C9D55-98EF-4256-8311-32D7BD360406} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {D578E676-7EC8-4548-BD8B-845C635F14AD} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {21A7DA70-555E-49FA-942B-D84A38B61243} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0} = {57D119DC-484F-420F-B9E9-8589FD9A8DF8}
++              {3C90CCF0-2CDD-4A7A-ACFF-208C1E271692} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}
++              {C7E2382E-2C22-4D18-BF93-80C6A1FFA7AC} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}
++              {FC71C66E-E268-4EAD-B1F5-F008DC382E83} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}
++              {8E2E8798-8B6F-4A55-8E4F-4E6FDE40ED26} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}
++              {09455AA9-C243-4F16-A1A1-A016881A2765} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}
++              {CDE9B06A-3C27-4987-8FAE-DF1006BC705D} = {DB1024A8-41BF-4AD7-9AE6-13202230D1F3}
++              {57199684-EC63-4A60-9DC6-11815AF6B413} = {09455AA9-C243-4F16-A1A1-A016881A2765}
++              {2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C} = {09455AA9-C243-4F16-A1A1-A016881A2765}
++              {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5} = {09455AA9-C243-4F16-A1A1-A016881A2765}
++              {765EF1B9-5027-4820-BC37-A44466A51631} = {57199684-EC63-4A60-9DC6-11815AF6B413}
++              {713E4747-1126-40B1-BD84-58F9A7745423} = {57199684-EC63-4A60-9DC6-11815AF6B413}
++              {D3E5C8ED-3A6A-4FEA-92A2-48A0BA865358} = {2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C}
++              {CC3E7F48-2590-49CB-AD8B-BE3650F55462} = {2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C}
++              {F1B71990-EB04-4EB5-B28A-BC3EB6F7E843} = {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5}
++              {3DAF028C-AB5B-4183-A01B-DCC43F5A87F0} = {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5}
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A} = {4F227C26-768F-46A3-8684-1D08A46FB374}
++              {7EB71250-F002-4ED8-92CA-CA218114537A} = {4F227C26-768F-46A3-8684-1D08A46FB374}
++              {464AAB78-5489-4916-BE51-BF8D61822311} = {4F227C26-768F-46A3-8684-1D08A46FB374}
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870} = {4F227C26-768F-46A3-8684-1D08A46FB374}
++              {BA599D0A-4310-4505-91DA-6A6447B3E289} = {4F227C26-768F-46A3-8684-1D08A46FB374}
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959} = {4F227C26-768F-46A3-8684-1D08A46FB374}
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {504B3154-7A4F-459D-9877-B951021C3F1F} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {B376D494-D7DD-4B2A-99E2-52916D5A8CD8}
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39} = {B376D494-D7DD-4B2A-99E2-52916D5A8CD8}
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79} = {B376D494-D7DD-4B2A-99E2-52916D5A8CD8}
++              {A4D67895-E709-40C7-82B6-DE1D12DDDE04} = {3783935D-7C0A-4166-A376-C3D8E64F3A9C}
++              {2390F054-A7F1-4CB9-ACB0-F46EC6E77B5B} = {3783935D-7C0A-4166-A376-C3D8E64F3A9C}
++              {E5A9BCDA-B82D-4B08-B23E-9A782E367888} = {3783935D-7C0A-4166-A376-C3D8E64F3A9C}
++              {510BDAA8-C04D-47DB-8482-E6AF380D3E07} = {3783935D-7C0A-4166-A376-C3D8E64F3A9C}
++              {3CF7C0E0-07C2-473A-A1E4-2274AEEC1268} = {3783935D-7C0A-4166-A376-C3D8E64F3A9C}
++      EndGlobalSection
++EndGlobal
+diff --git a/Freeswitch.2010.sln b/Freeswitch.2010.sln
+index fd8eda1..dfbf2d7 100644
+--- a/Freeswitch.2010.sln
++++ b/Freeswitch.2010.sln
+@@ -1,3921 +1,3955 @@
+-\r
+-Microsoft Visual Studio Solution File, Format Version 11.00\r
+-# Visual Studio 2010\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Codecs", "Codecs", "{F881ADA2-2F1A-4046-9FEB-191D9422D781}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Endpoints", "Endpoints", "{9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Applications", "Applications", "{E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dialplans", "Dialplans", "{C5F182F9-754A-4EC5-B50F-76ED02BE13F4}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Event Handlers", "Event Handlers", "{9ADF1E48-2F5C-4ED7-A893-596259FABFE0}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Formats", "Formats", "{A5A27244-AD24-46E5-B01B-840CD296C91D}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{CBD81696-EFB4-4D2F-8451-1B8DAA86155A}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Directories", "Directories", "{B8F5B47B-8568-46EB-B320-64C17D2A98BC}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Languages", "Languages", "{0C808854-54D1-4230-BFF5-77B5FD905000}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ASR-TTS", "ASR-TTS", "{4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Loggers", "Loggers", "{A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XML Interfaces", "XML Interfaces", "{F69A4A6B-9360-4EBB-A280-22AA3C455AC5}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Libraries", "_Libraries", "{EB910B0D-F27D-4B62-B67B-DE834C99AC5B}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Downloads", "_Downloads", "{C120A020-773F-4EA3-923F-B67AF28B750D}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "say", "say", "{6CD61A1D-797C-470A-BE08-8C31B68BB336}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Config", "_Config", "{57D119DC-484F-420F-B9E9-8589FD9A8DF8}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Default", "Default", "{3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\freeswitch.xml = conf\vanilla\freeswitch.xml\r
+-              conf\vanilla\vars.xml = conf\vanilla\vars.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Build System", "_Build System", "{DB1024A8-41BF-4AD7-9AE6-13202230D1F3}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              acsite.m4 = acsite.m4\r
+-              bootstrap.sh = bootstrap.sh\r
+-              build\buildlib.sh = build\buildlib.sh\r
+-              configure.in = configure.in\r
+-              Makefile.am = Makefile.am\r
+-              build\modmake.rules.in = build\modmake.rules.in\r
+-              build\modules.conf.in = build\modules.conf.in\r
+-              libs\win32\util.vbs = libs\win32\util.vbs\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "m4", "m4", "{CDE9B06A-3C27-4987-8FAE-DF1006BC705D}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              build\config\ac_cflags_gcc_option.m4 = build\config\ac_cflags_gcc_option.m4\r
+-              build\config\ac_cflags_sun_option.m4 = build\config\ac_cflags_sun_option.m4\r
+-              build\config\ac_gcc_archflag.m4 = build\config\ac_gcc_archflag.m4\r
+-              build\config\ac_gcc_x86_cpuid.m4 = build\config\ac_gcc_x86_cpuid.m4\r
+-              build\config\ac_prog_gzip.m4 = build\config\ac_prog_gzip.m4\r
+-              build\config\ac_prog_wget.m4 = build\config\ac_prog_wget.m4\r
+-              build\config\ax_cc_maxopt.m4 = build\config\ax_cc_maxopt.m4\r
+-              build\config\ax_cflags_warn_all_ansi.m4 = build\config\ax_cflags_warn_all_ansi.m4\r
+-              build\config\ax_check_compiler_flags.m4 = build\config\ax_check_compiler_flags.m4\r
+-              build\config\ax_compiler_vendor.m4 = build\config\ax_compiler_vendor.m4\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "autoload_configs", "autoload_configs", "{3C90CCF0-2CDD-4A7A-ACFF-208C1E271692}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\autoload_configs\alsa.conf.xml = conf\vanilla\autoload_configs\alsa.conf.xml\r
+-              conf\vanilla\autoload_configs\conference.conf.xml = conf\vanilla\autoload_configs\conference.conf.xml\r
+-              conf\vanilla\autoload_configs\console.conf.xml = conf\vanilla\autoload_configs\console.conf.xml\r
+-              conf\vanilla\autoload_configs\dialplan_directory.conf.xml = conf\vanilla\autoload_configs\dialplan_directory.conf.xml\r
+-              conf\vanilla\autoload_configs\dingaling.conf.xml = conf\vanilla\autoload_configs\dingaling.conf.xml\r
+-              conf\vanilla\autoload_configs\enum.conf.xml = conf\vanilla\autoload_configs\enum.conf.xml\r
+-              conf\vanilla\autoload_configs\event_multicast.conf.xml = conf\vanilla\autoload_configs\event_multicast.conf.xml\r
+-              conf\vanilla\autoload_configs\event_socket.conf.xml = conf\vanilla\autoload_configs\event_socket.conf.xml\r
+-              conf\vanilla\autoload_configs\ivr.conf.xml = conf\vanilla\autoload_configs\ivr.conf.xml\r
+-              conf\vanilla\autoload_configs\java.conf.xml = conf\vanilla\autoload_configs\java.conf.xml\r
+-              conf\vanilla\autoload_configs\limit.conf.xml = conf\vanilla\autoload_configs\limit.conf.xml\r
+-              conf\vanilla\autoload_configs\local_stream.conf.xml = conf\vanilla\autoload_configs\local_stream.conf.xml\r
+-              conf\vanilla\autoload_configs\logfile.conf.xml = conf\vanilla\autoload_configs\logfile.conf.xml\r
+-              conf\vanilla\autoload_configs\modules.conf.xml = conf\vanilla\autoload_configs\modules.conf.xml\r
+-              conf\vanilla\autoload_configs\openmrcp.conf.xml = conf\vanilla\autoload_configs\openmrcp.conf.xml\r
+-              conf\vanilla\autoload_configs\portaudio.conf.xml = conf\vanilla\autoload_configs\portaudio.conf.xml\r
+-              conf\vanilla\autoload_configs\rss.conf.xml = conf\vanilla\autoload_configs\rss.conf.xml\r
+-              conf\vanilla\autoload_configs\sofia.conf.xml = conf\vanilla\autoload_configs\sofia.conf.xml\r
+-              conf\vanilla\autoload_configs\spidermonkey.conf.xml = conf\vanilla\autoload_configs\spidermonkey.conf.xml\r
+-              conf\vanilla\autoload_configs\switch.conf.xml = conf\vanilla\autoload_configs\switch.conf.xml\r
+-              conf\vanilla\autoload_configs\syslog.conf.xml = conf\vanilla\autoload_configs\syslog.conf.xml\r
+-              conf\vanilla\autoload_configs\voicemail.conf.xml = conf\vanilla\autoload_configs\voicemail.conf.xml\r
+-              conf\vanilla\autoload_configs\wanpipe.conf.xml = conf\vanilla\autoload_configs\wanpipe.conf.xml\r
+-              conf\vanilla\autoload_configs\woomera.conf.xml = conf\vanilla\autoload_configs\woomera.conf.xml\r
+-              conf\vanilla\autoload_configs\xml_cdr.conf.xml = conf\vanilla\autoload_configs\xml_cdr.conf.xml\r
+-              conf\vanilla\autoload_configs\xml_curl.conf.xml = conf\vanilla\autoload_configs\xml_curl.conf.xml\r
+-              conf\vanilla\autoload_configs\xml_rpc.conf.xml = conf\vanilla\autoload_configs\xml_rpc.conf.xml\r
+-              conf\vanilla\autoload_configs\zeroconf.conf.xml = conf\vanilla\autoload_configs\zeroconf.conf.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dialplan", "dialplan", "{C7E2382E-2C22-4D18-BF93-80C6A1FFA7AC}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\dialplan\default.xml = conf\vanilla\dialplan\default.xml\r
+-              conf\vanilla\dialplan\public.xml = conf\vanilla\dialplan\public.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "directory", "directory", "{FC71C66E-E268-4EAD-B1F5-F008DC382E83}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\directory\default.xml = conf\vanilla\directory\default.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sip_profiles", "sip_profiles", "{8E2E8798-8B6F-4A55-8E4F-4E6FDE40ED26}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\sip_profiles\external.xml = conf\vanilla\sip_profiles\external.xml\r
+-              conf\vanilla\sip_profiles\internal.xml = conf\vanilla\sip_profiles\internal.xml\r
+-              conf\vanilla\sip_profiles\nat.xml = conf\vanilla\sip_profiles\nat.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lang", "lang", "{09455AA9-C243-4F16-A1A1-A016881A2765}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\directory\default.xml = conf\vanilla\directory\default.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "en", "en", "{57199684-EC63-4A60-9DC6-11815AF6B413}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\en\en.xml = conf\vanilla\lang\en\en.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "de", "de", "{2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\de\de.xml = conf\vanilla\lang\de\de.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "fr", "fr", "{D4A12E4C-DBDA-4614-BA26-3425AE9F60F5}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\fr\fr.xml = conf\vanilla\lang\fr\fr.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{D3E5C8ED-3A6A-4FEA-92A2-48A0BA865358}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\de\demo\demo.xml = conf\vanilla\lang\de\demo\demo.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{CC3E7F48-2590-49CB-AD8B-BE3650F55462}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\de\vm\tts.xml = conf\vanilla\lang\de\vm\tts.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{765EF1B9-5027-4820-BC37-A44466A51631}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\en\demo\demo.xml = conf\vanilla\lang\en\demo\demo.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{713E4747-1126-40B1-BD84-58F9A7745423}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\en\vm\sounds.xml = conf\vanilla\lang\en\vm\sounds.xml\r
+-              conf\vanilla\lang\en\vm\tts.xml = conf\vanilla\lang\en\vm\tts.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{F1B71990-EB04-4EB5-B28A-BC3EB6F7E843}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\fr\demo\demo.xml = conf\vanilla\lang\fr\demo\demo.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{3DAF028C-AB5B-4183-A01B-DCC43F5A87F0}"\r
+-      ProjectSection(SolutionItems) = preProject\r
+-              conf\vanilla\lang\fr\vm\sounds.xml = conf\vanilla\lang\fr\vm\sounds.xml\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sound Files", "Sound Files", "{4F227C26-768F-46A3-8684-1D08A46FB374}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "unimrcp", "unimrcp", "{62F27B1A-C919-4A70-8478-51F178F3B18F}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchConsole", "w32\Console\FreeSwitchConsole.2010.vcxproj", "{1AF3A893-F7BE-43DD-B697-8AB2397C0D67}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchCoreLib", "w32\Library\FreeSwitchCore.2010.vcxproj", "{202D7A4E-760D-4D0E-AFA1-D7459CED30FF}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g729", "src\mod\codecs\mod_g729\mod_g729.2010.vcxproj", "{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sndfile", "src\mod\formats\mod_sndfile\mod_sndfile.2010.vcxproj", "{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.2010.vcxproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_speex", "src\mod\codecs\mod_speex\mod_speex.2010.vcxproj", "{5580D60E-0F77-4716-9CD4-B8E5986FA375}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "docs", "docs\docs.2010.vcxproj", "{1A1FF289-4FD6-4285-A422-D31DD67A4723}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_xml", "src\mod\dialplans\mod_dialplan_xml\mod_dialplan_xml.2010.vcxproj", "{07113B25-D3AF-4E04-BA77-4CD1171F022C}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ldap", "src\mod\directories\mod_ldap\mod_ldap.2010.vcxproj", "{EC3E5C7F-EE09-47E2-80FE-546363D14A98}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_directory", "src\mod\dialplans\mod_dialplan_directory\mod_dialplan_directory.2010.vcxproj", "{A27CCA23-1541-4337-81A4-F0A6413078A0}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_event_multicast", "src\mod\event_handlers\mod_event_multicast\mod_event_multicast.2010.vcxproj", "{784113EF-44D9-4949-835D-7065D3C7AD08}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libteletone", "libs\libteletone\libteletone.2010.vcxproj", "{89385C74-5860-4174-9CAF-A39E7C48909C}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey", "src\mod\languages\mod_spidermonkey\mod_spidermonkey.2010.vcxproj", "{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cepstral", "src\mod\asr_tts\mod_cepstral\mod_cepstral.2010.vcxproj", "{692F6330-4D87-4C82-81DF-40DB5892636E}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ilbc", "src\mod\codecs\mod_ilbc\mod_ilbc.2010.vcxproj", "{D3EC0AFF-76FC-4210-A825-9A17410660A3}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dingaling", "src\mod\endpoints\mod_dingaling\mod_dingaling.2010.vcxproj", "{FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_commands", "src\mod\applications\mod_commands\mod_commands.2010.vcxproj", "{30A5B29C-983E-4580-9FD0-D647CCDCC7EB}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_console", "src\mod\loggers\mod_console\mod_console.2010.vcxproj", "{1C453396-D912-4213-89FD-9B489162B7B5}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_rpc", "src\mod\xml_int\mod_xml_rpc\mod_xml_rpc.2010.vcxproj", "{CBEC7225-0C21-4DA8-978E-1F158F8AD950}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rss", "src\mod\applications\mod_rss\mod_rss.2010.vcxproj", "{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_conference", "src\mod\applications\mod_conference\mod_conference.2010.vcxproj", "{C24FB505-05D7-4319-8485-7540B44C8603}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dptools", "src\mod\applications\mod_dptools\mod_dptools.2010.vcxproj", "{B5881A85-FE70-4F64-8607-2CAAE52669C6}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_event_socket", "src\mod\event_handlers\mod_event_socket\mod_event_socket.2010.vcxproj", "{05515420-16DE-4E63-BE73-85BE85BA5142}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdingaling", "libs\libdingaling\libdingaling.2010.vcxproj", "{1906D736-08BD-4EE1-924F-B536249B9A54}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsrtp", "libs\srtp\libsrtp.2010.vcxproj", "{EEF031CB-FED8-451E-A471-91EC8D4F6750}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsqlite", "libs\win32\sqlite\sqlite.2010.vcxproj", "{6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpcre", "libs\win32\pcre\libpcre.2010.vcxproj", "{8D04B550-D240-4A44-8A18-35DA3F7038D9}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpcre Generate pcre_chartables.c", "libs\win32\pcre\pcre_chartables.c.2010.vcxproj", "{1CED5987-A529-46DC-B30F-870D85FF9C94}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libapr", "libs\win32\apr\libapr.2010.vcxproj", "{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libaprutil", "libs\win32\apr-util\libaprutil.2010.vcxproj", "{F057DA7F-79E5-4B00-845C-EF446EF055E3}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iksemel", "libs\win32\iksemel\iksemel.2010.vcxproj", "{E727E8F6-935D-46FE-8B0E-37834748A0E3}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsndfile", "libs\win32\libsndfile\libsndfile.2010.vcxproj", "{3D0370CA-BED2-4657-A475-32375CBCB6E4}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "curllib", "libs\win32\curl\curllib.2010.vcxproj", "{87EE9DA4-DE1E-4448-8324-183C98DCA588}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79} = {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "libs\win32\apr-util\xml.2010.vcxproj", "{155844C3-EC5F-407F-97A4-A2DDADED9B2F}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "js", "libs\win32\js\js.2010.vcxproj", "{204FA0DE-305D-4414-AE2E-F195A23F390D}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sofia", "src\mod\endpoints\mod_sofia\mod_sofia.2010.vcxproj", "{0DF3ABD0-DDC0-4265-B778-07C66780979B}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download PTHREAD", "libs\win32\Download PTHREAD.2010.vcxproj", "{8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pthread", "libs\win32\pthread\pthread.2010.vcxproj", "{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g723_1", "src\mod\codecs\mod_g723_1\mod_g723_1.2010.vcxproj", "{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_iSAC", "src\mod\codecs\mod_isac\mod_iSAC.2010.vcxproj", "{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_native_file", "src\mod\formats\mod_native_file\mod_native_file.2010.vcxproj", "{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_core_db", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_core_db.2010.vcxproj", "{ACFFF684-4D19-4D48-AF12-88EA1D778BDF}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_teletone", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_teletone.2010.vcxproj", "{8F992C49-6C51-412F-B2A3-34EAB708EB65}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libudns", "libs\win32\udns\libudns.2010.vcxproj", "{4043FC6A-9A30-4577-8AD5-9B233C9575D8}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_enum", "src\mod\applications\mod_enum\mod_enum.2010.vcxproj", "{71A967D5-0E99-4CEF-A587-98836EE6F2EF}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_odbc", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_odbc.2010.vcxproj", "{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_curl", "src\mod\xml_int\mod_xml_curl\mod_xml_curl.2010.vcxproj", "{AB91A099-7690-4ECF-8994-E458F4EA1ED4}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_en", "src\mod\say\mod_say_en\mod_say_en.2010.vcxproj", "{988CACF7-3FCB-4992-BE69-77872AE67DC8}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portaudio", "libs\portaudio\build\msvc\portaudio.2010.vcxproj", "{0A18A071-125E-442F-AFF7-A3F68ABECF99}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_cdr", "src\mod\xml_int\mod_xml_cdr\mod_xml_cdr.2010.vcxproj", "{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_amr", "src\mod\codecs\mod_amr\mod_amr.2010.vcxproj", "{8DEB383C-4091-4F42-A56F-C9E46D552D79}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_h26x", "src\mod\codecs\mod_h26x\mod_h26x.2010.vcxproj", "{2C3C2423-234B-4772-8899-D3B137E5CA35}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_esf", "src\mod\applications\mod_esf\mod_esf.2010.vcxproj", "{3850D93A-5F24-4922-BC1C-74D08C37C256}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_local_stream", "src\mod\formats\mod_local_stream\mod_local_stream.2010.vcxproj", "{2CA40887-1622-46A1-A7F9-17FD7E7E545B}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_socket", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_socket.2010.vcxproj", "{028C7278-05D7-4E18-82FE-BE231B844F41}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_voicemail", "src\mod\applications\mod_voicemail\mod_voicemail.2010.vcxproj", "{D7F1E3F2-A3F4-474C-8555-15122571AF52}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_de", "src\mod\say\mod_say_de\mod_say_de.2010.vcxproj", "{5BC072DB-3826-48EA-AF34-FE32AA01E83B}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_es", "src\mod\say\mod_say_es\mod_say_es.2010.vcxproj", "{FA429E98-8B03-45E6-A096-A4BC5E821DE4}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_fr", "src\mod\say\mod_say_fr\mod_say_fr.2010.vcxproj", "{06E3A538-AB32-44F2-B477-755FF9CB5D37}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_it", "src\mod\say\mod_say_it\mod_say_it.2010.vcxproj", "{6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_nl", "src\mod\say\mod_say_nl\mod_say_nl.2010.vcxproj", "{A4B122CF-5196-476B-8C0E-D8BD59AC3C14}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_fifo", "src\mod\applications\mod_fifo\mod_fifo.2010.vcxproj", "{75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_db", "src\mod\applications\mod_db\mod_db.2010.vcxproj", "{F6A33240-8F29-48BD-98F0-826995911799}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_expr", "src\mod\applications\mod_expr\mod_expr.2010.vcxproj", "{65A6273D-FCAB-4C55-B09E-65100141A5D4}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_asterisk", "src\mod\dialplans\mod_dialplan_asterisk\mod_dialplan_asterisk.2010.vcxproj", "{E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_logfile", "src\mod\loggers\mod_logfile\mod_logfile.2010.vcxproj", "{D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cdr_csv", "src\mod\event_handlers\mod_cdr_csv\mod_cdr_csv.2010.vcxproj", "{44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_tone_stream", "src\mod\formats\mod_tone_stream\mod_tone_stream.2010.vcxproj", "{6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_fsv", "src\mod\applications\mod_fsv\mod_fsv.2010.vcxproj", "{E3246D17-E29B-4AB5-962A-C69B0C5837BB}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_curl", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_curl.2010.vcxproj", "{36E854E3-CE12-4348-A125-CCF3F9D74813}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_lua", "src\mod\languages\mod_lua\mod_lua.2010.vcxproj", "{7B077E7F-1BE7-4291-AB86-55E527B25CAC}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "abyss", "libs\xmlrpc-c\Windows\abyss.2010.vcxproj", "{D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmlrpc", "libs\xmlrpc-c\Windows\xmlrpc.2010.vcxproj", "{CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmlparse", "libs\xmlrpc-c\Windows\xmlparse.2010.vcxproj", "{0D108721-EAE8-4BAF-8102-D8960EC93647}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmltok", "libs\xmlrpc-c\Windows\xmltok.2010.vcxproj", "{B535402E-38D2-4D54-8360-423ACBD17192}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download sphinxbase", "libs\win32\Download sphinxbase.2010.vcxproj", "{4F92B672-DADB-4047-8D6A-4BB3796733FD}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download sphinxmodel", "libs\win32\Download sphinxmodel.2010.vcxproj", "{2DEE4895-1134-439C-B688-52203E57D878}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download pocketsphinx", "libs\win32\Download pocketsphinx.2010.vcxproj", "{AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sphinxbase", "libs\win32\sphinxbase\sphinxbase.2010.vcxproj", "{2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pocketsphinx", "libs\win32\pocketsphinx\pocketsphinx.2010.vcxproj", "{94001A0E-A837-445C-8004-F918F10D0226}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_pocketsphinx", "src\mod\asr_tts\mod_pocketsphinx\mod_pocketsphinx.2010.vcxproj", "{2286DA73-9FC5-45BC-A508-85994C3317AB}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 8khzsound", "libs\win32\Download 8khz Sounds.2010.vcxproj", "{3CE1DC99-8246-4DB1-A709-74F19F08EC67}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 16khzsound", "libs\win32\Download 16khz Sounds.2010.vcxproj", "{87A1FE3D-F410-4C8E-9591-8C625985BC70}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "8khz", "libs\win32\Sound_Files\8khz.2010.vcxproj", "{7A8D8174-B355-4114-AFC1-04777CB9DE0A}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "16khz", "libs\win32\Sound_Files\16khz.2010.vcxproj", "{7EB71250-F002-4ED8-92CA-CA218114537A}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 32khzsound", "libs\win32\Dowload 32khz Sounds.2010.vcxproj", "{6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "32khz", "libs\win32\Sound_Files\32khz.2010.vcxproj", "{464AAB78-5489-4916-BE51-BF8D61822311}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flite", "libs\win32\flite\flite.2010.vcxproj", "{0AD1177E-1FD8-4643-9391-431467A11084}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_flite", "src\mod\asr_tts\mod_flite\mod_flite.2010.vcxproj", "{66444AEE-554C-11DD-A9F0-8C5D56D89593}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download FLITE", "libs\win32\Download FLITE.2010.vcxproj", "{D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download LAME", "libs\win32\Download LAME.2010.vcxproj", "{D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download LIBSHOUT", "libs\win32\Download LIBSHOUT.2010.vcxproj", "{D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download OGG", "libs\win32\Download OGG.2010.vcxproj", "{D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmp3lame", "libs\win32\libmp3lame\libmp3lame.2010.vcxproj", "{E316772F-5D8F-4F2A-8F71-094C3E859D34}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libshout", "libs\win32\libshout\libshout.vcxproj", "{D3D8B329-20BE-475E-9E83-653CEA0E0EF5}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_shout", "src\mod\formats\mod_shout\mod_shout.vcxproj", "{38FE0559-9910-43A8-9E45-3E5004C27692}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libogg", "libs\win32\libogg\libogg.2010.vcxproj", "{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_snom", "src\mod\applications\mod_snom\mod_snom.2010.vcxproj", "{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_zh", "src\mod\say\mod_say_zh\mod_say_zh.2010.vcxproj", "{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_managed", "src\mod\languages\mod_managed\mod_managed.2010.vcxproj", "{7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}"\r
+-EndProject\r
+-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSWITCH.Managed.2010", "src\mod\languages\mod_managed\managed\FreeSWITCH.Managed.2010.csproj", "{834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download mpg123", "libs\win32\Download mpg123.2010.vcxproj", "{E796E337-DE78-4303-8614-9A590862EE95}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmpg123", "libs\win32\mpg123\libmpg123.2010.vcxproj", "{419C8F80-D858-4B48-A25C-AF4007608137}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_loopback", "src\mod\endpoints\mod_loopback\mod_loopback.2010.vcxproj", "{B3F424EC-3D8F-417C-B244-3919D5E1A577}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_vmd", "src\mod\applications\mod_vmd\mod_vmd.2010.vcxproj", "{14E4A972-9CFB-436D-B0A5-4943F3F80D47}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libg722_1", "libs\win32\libg722_1\libg722_1.vcxproj", "{1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_siren", "src\mod\codecs\mod_siren\mod_siren.2010.vcxproj", "{0B6C905B-142E-4999-B39D-92FF7951E921}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "esl", "libs\esl\src\esl.2010.vcxproj", "{CF405366-9558-4AE8-90EF-5E21B51CCB4E}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fs_cli", "libs\esl\fs_cli.2010.vcxproj", "{D2FB8043-D208-4AEE-8F18-3B5857C871B9}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_easyroute", "src\mod\applications\mod_easyroute\mod_easyroute.2010.vcxproj", "{329FD5B0-EF28-4606-86D0-F6EA21CF8E36}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_lcr", "src\mod\applications\mod_lcr\mod_lcr.2010.vcxproj", "{1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtiff", "libs\spandsp\src\libtiff.2010.vcxproj", "{401A40CD-5DB4-4E34-AC68-FA99E9FAC014}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libs\spandsp\src\libspandsp.2010.vcxproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeex", "libs\speex\win32\VS2008\libspeex\libspeex.vcxproj", "{E972C52F-9E85-4D65-B19C-031E511E9DB4}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeexdsp", "libs\speex\win32\VS2008\libspeexdsp\libspeexdsp.vcxproj", "{03207781-0D1C-4DB3-A71D-45C608F28DBD}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libilbc", "libs\ilbc\libilbc.2010.vcxproj", "{9A5DDF08-C88C-4A35-B7F6-D605228446BD}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua51", "src\mod\languages\mod_lua\lua\lua.2010.vcxproj", "{D0B36172-CD76-454A-9B89-990025266C2A}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_opal", "src\mod\endpoints\mod_opal\mod_opal_2010.vcxproj", "{05C9FB27-480E-4D53-B3B7-6338E2526666}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skinny", "src\mod\endpoints\mod_skinny\mod_skinny_2010.vcxproj", "{CC1DD008-9406-448D-A0AD-33C3186CFADB}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rtmp", "src\mod\endpoints\mod_rtmp\mod_rtmp_2010.vcxproj", "{48414740-C693-4968-9846-EE058020C64F}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_at_dictionary", "libs\spandsp\src\msvc\make_at_dictionary.2010.vcxproj", "{DEE932AB-5911-4700-9EEB-8C7090A0A330}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_modem_filter", "libs\spandsp\src\msvc\make_modem_filter.2010.vcxproj", "{329A6FA0-0FCC-4435-A950-E670AEFA9838}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skel", "src\mod\applications\mod_skel\mod_skel.2010.vcxproj", "{11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skypopen", "src\mod\endpoints\mod_skypopen\mod_skypopen.2010.vcxproj", "{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 32khz music", "libs\win32\Dowload 32khz music.2010.vcxproj", "{1F0A8A77-E661-418F-BB92-82172AE43803}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 8khz music", "libs\win32\Download 8khz music.2010.vcxproj", "{4F5C9D55-98EF-4256-8311-32D7BD360406}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 16khz music", "libs\win32\Download 16khz music.2010.vcxproj", "{E10571C4-E7F4-4608-B5F2-B22E7EB95400}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "8khz music", "libs\win32\Sound_Files\8khzmusic.2010.vcxproj", "{D1ABE208-6442-4FB4-9AAD-1677E41BC870}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "16khz music", "libs\win32\Sound_Files\16khzmusic.2010.vcxproj", "{BA599D0A-4310-4505-91DA-6A6447B3E289}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "32khz music", "libs\win32\Sound_Files\32khzmusic.2010.vcxproj", "{EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_nibblebill", "src\mod\applications\mod_nibblebill\mod_nibblebill.2010.vcxproj", "{3C977801-FE88-48F2-83D3-FA2EBFF6688E}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_ru", "src\mod\say\mod_say_ru\mod_say_ru.2010.vcxproj", "{0382E8FD-CFDC-41C0-8B03-792C7C84FC31}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_valet_parking", "src\mod\applications\mod_valet_parking\mod_valet_parking.2010.vcxproj", "{432DB165-1EB2-4781-A9C0-71E62610B20A}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbroadvoice", "libs\broadvoice\src\libbroadvoice.2010.vcxproj", "{CF70F278-3364-4395-A2E1-23501C9B8AD2}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_bv", "src\mod\codecs\mod_bv\mod_bv.2010.vcxproj", "{D5C87B19-150D-4EF3-A671-96589BD2D14A}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aprtoolkit", "libs\unimrcp\libs\apr-toolkit\aprtoolkit.2010.vcxproj", "{13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F} = {155844C3-EC5F-407F-97A4-A2DDADED9B2F}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mpf", "libs\unimrcp\libs\mpf\mpf.2010.vcxproj", "{B5A00BFA-6083-4FAE-A097-71642D6473B5}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcp", "libs\unimrcp\libs\mrcp\mrcp.2010.vcxproj", "{1C320193-46A6-4B34-9C56-8AB584FC1B56}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpclient", "libs\unimrcp\libs\mrcp-client\mrcpclient.2010.vcxproj", "{72782932-37CC-46AE-8C7F-9A7B1A6EE108}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpsignaling", "libs\unimrcp\libs\mrcp-signaling\mrcpsignaling.2010.vcxproj", "{12A49562-BAB9-43A3-A21D-15B60BBB4C31}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpv2transport", "libs\unimrcp\libs\mrcpv2-transport\mrcpv2transport.2010.vcxproj", "{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unirtsp", "libs\unimrcp\libs\uni-rtsp\unirtsp.2010.vcxproj", "{504B3154-7A4F-459D-9877-B951021C3F1F}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpsofiasip", "libs\unimrcp\modules\mrcp-sofiasip\mrcpsofiasip.2010.vcxproj", "{746F3632-5BB2-4570-9453-31D6D58A7D8E}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpunirtsp", "libs\unimrcp\modules\mrcp-unirtsp\mrcpunirtsp.2010.vcxproj", "{DEB01ACB-D65F-4A62-AED9-58C1054499E9}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_unimrcp", "src\mod\asr_tts\mod_unimrcp\mod_unimrcp.2010.vcxproj", "{D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download CELT", "libs\win32\Download CELT.vcxproj", "{FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcelt", "libs\win32\celt\libcelt.vcxproj", "{ABB71A76-42B0-47A4-973A-42E3D920C6FD}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_celt", "src\mod\codecs\mod_celt\mod_celt.vcxproj", "{4D418176-3B33-47E6-A63E-01BA34ADD21C}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FSComm", "fscomm\FSComm.2010.vcxproj", "{7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_curl", "src\mod\applications\mod_curl\mod_curl.2010.vcxproj", "{EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download JSON", "libs\win32\Download JSON.2010.vcxproj", "{B808178B-82F0-4CF4-A2B1-921939FA24D0}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjson", "libs\win32\json\libjson.2010.vcxproj", "{9778F1C0-09BC-4698-8EBC-BD982247209A}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_silk", "src\mod\codecs\mod_silk\mod_silk.2010.vcxproj", "{AFA983D6-4569-4F88-BA94-555ED00FD9A8}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Silk_FIX", "libs\silk\src\Silk_FIX.2010.vcxproj", "{56B91D01-9150-4BBF-AFA1-5B68AB991B76}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_avmd", "src\mod\applications\mod_avmd\mod_avmd.2010.vcxproj", "{990BAA76-89D3-4E38-8479-C7B28784EFC8}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spandsp", "src\mod\applications\mod_spandsp\mod_spandsp.2010.vcxproj", "{1E21AFE0-6FDB-41D2-942D-863607C24B91}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_hash", "src\mod\applications\mod_hash\mod_hash.2010.vcxproj", "{2E250296-0C08-4342-9C8A-BCBDD0E7DF65}"\r
+-EndProject\r
+-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "openssl", "openssl", "{E4D29906-8B73-4F8A-B5F4-CA8BFA648F5A}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libeay32", "libs\win32\openssl\libeay32.2010.vcxproj", "{D331904D-A00A-4694-A5A3-FCFF64AB5DBE}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssleay32", "libs\win32\openssl\ssleay32.2010.vcxproj", "{B4B62169-5AD4-4559-8707-3D933AC5DB39}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openssl", "libs\win32\openssl\openssl.2010.vcxproj", "{25BD39B1-C8BF-4676-A738-9CABD9C6BC79}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD} = {D578E676-7EC8-4548-BD8B-845C635F14AD}\r
+-      EndProjectSection\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download OPENSSL", "libs\win32\Download OPENSSL.2010.vcxproj", "{D578E676-7EC8-4548-BD8B-845C635F14AD}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsofia_sip_ua_static", "libs\win32\sofia\libsofia_sip_ua_static.2010.vcxproj", "{70A49BC2-7500-41D0-B75D-EDCC5BE987A0}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_directory", "src\mod\applications\mod_directory\mod_directory.2010.vcxproj", "{B889A18E-70A7-44B5-B2C9-47798D4F43B3}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_h323", "src\mod\endpoints\mod_h323\mod_h323.2010.vcxproj", "{05C9FB27-480E-4D53-B3B7-7338E2514666}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_distributor", "src\mod\applications\mod_distributor\mod_distributor.2010.vcxproj", "{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}"\r
+-EndProject\r
+-Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Setup", "w32\Setup\Setup.wixproj", "{47213370-B933-487D-9F45-BCA26D7E2B6F}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_pt", "src\mod\say\mod_say_pt\mod_say_pt.2010.vcxproj", "{7C22BDFF-CC09-400C-8A09-660733980028}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ldns", "libs\win32\ldns\ldns-lib\ldns-lib.2010.vcxproj", "{23B4D303-79FC-49E0-89E2-2280E7E28940}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_callcenter", "src\mod\applications\mod_callcenter\mod_callcenter.2010.vcxproj", "{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_blacklist", "src\mod\applications\mod_blacklist\mod_blacklist.2010.vcxproj", "{50AAC2CE-BFC9-4912-87CC-C6381850D735}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spy", "src\mod\applications\mod_spy\mod_spy.2010.vcxproj", "{A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_httapi", "src\mod\applications\mod_httapi\mod_httapi.2010.vcxproj", "{4748FF56-CA85-4809-97D6-A94C0FAC1D77}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_abstraction", "src\mod\applications\mod_abstraction\mod_abstraction.2010.vcxproj", "{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sms", "src\mod\applications\mod_sms\mod_sms.2010.vcxproj", "{2469B306-B027-4FF2-8815-C9C1EA2CAE79}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsmlib", "src\mod\endpoints\mod_gsmopen\gsmlib\gsmlib-1.10-patched-13ubuntu\win32\gsmlib.2010.vcxproj", "{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_gsmopen", "src\mod\endpoints\mod_gsmopen\mod_gsmopen.2010.vcxproj", "{74B120FF-6935-4DFE-A142-CDB6BEA99C90}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libzrtp", "libs\libzrtp\projects\win\libzrtp.2010.vcxproj", "{C13CC324-0032-4492-9A30-310A6BD64FF5}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_redis", "src\mod\applications\mod_redis\mod_redis.2010.vcxproj", "{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download libjpeg", "libs\win32\Download libjpeg.2010.vcxproj", "{652AD5F7-8488-489F-AAD0-7FBE064703B6}"\r
+-EndProject\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjpeg", "libs\win32\libjpeg\libjpeg.2010.vcxproj", "{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}"\r
+-      ProjectSection(ProjectDependencies) = postProject\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6} = {652AD5F7-8488-489F-AAD0-7FBE064703B6}\r
+-      EndProjectSection\r
+-EndProject\r
+-Global\r
+-      GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+-              All|Win32 = All|Win32\r
+-              All|x64 = All|x64\r
+-              All|x64 Setup = All|x64 Setup\r
+-              All|x86 Setup = All|x86 Setup\r
+-              Debug|Win32 = Debug|Win32\r
+-              Debug|x64 = Debug|x64\r
+-              Debug|x64 Setup = Debug|x64 Setup\r
+-              Debug|x86 Setup = Debug|x86 Setup\r
+-              Release|Win32 = Release|Win32\r
+-              Release|x64 = Release|x64\r
+-              Release|x64 Setup = Release|x64 Setup\r
+-              Release|x86 Setup = Release|x86 Setup\r
+-      EndGlobalSection\r
+-      GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|Win32.ActiveCfg = Release|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64.ActiveCfg = Release|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64.Build.0 = Release|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64 Setup.Build.0 = Release|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x64.Build.0 = Debug|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|Win32.Build.0 = Release|Win32\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|x64.ActiveCfg = Release|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|x64.Build.0 = Release|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|Win32.ActiveCfg = Release|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64.ActiveCfg = Release|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64.Build.0 = Release|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64 Setup.Build.0 = Release|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x64.Build.0 = Debug|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|Win32.Build.0 = Release|Win32\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|x64.ActiveCfg = Release|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|x64.Build.0 = Release|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|Win32.ActiveCfg = Release Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64.ActiveCfg = Release Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64.Build.0 = Release Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64 Setup.ActiveCfg = Release Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64 Setup.Build.0 = Release Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x86 Setup.ActiveCfg = Release Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|Win32.Build.0 = Debug Passthrough|Win32\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x64.ActiveCfg = Debug Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x64.Build.0 = Debug Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x64 Setup.ActiveCfg = Debug Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x86 Setup.ActiveCfg = Debug Passthrough|Win32\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|Win32.ActiveCfg = Release Passthrough|Win32\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|Win32.Build.0 = Release Passthrough|Win32\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|x64.ActiveCfg = Release Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|x64.Build.0 = Release Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|x64 Setup.ActiveCfg = Release Passthrough|x64\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|x86 Setup.ActiveCfg = Release Passthrough|Win32\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|Win32.ActiveCfg = Release|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64.ActiveCfg = Release|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64.Build.0 = Release|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64 Setup.Build.0 = Release|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x64.Build.0 = Debug|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.Build.0 = Release|Win32\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.ActiveCfg = Release|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.Build.0 = Release|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|Win32.ActiveCfg = Release|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.ActiveCfg = Release|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.Build.0 = Release|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64 Setup.Build.0 = Release|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.Build.0 = Debug|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.Build.0 = Release|Win32\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.ActiveCfg = Release|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.Build.0 = Release|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|Win32.ActiveCfg = Release|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.ActiveCfg = Release|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.Build.0 = Release|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64 Setup.Build.0 = Release|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.Build.0 = Debug|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.Build.0 = Release|Win32\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.ActiveCfg = Release|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.Build.0 = Release|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|Win32.ActiveCfg = Release|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x64.ActiveCfg = Release|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release|x64.ActiveCfg = Release|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|Win32.ActiveCfg = Release|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64.ActiveCfg = Release|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64.Build.0 = Release|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64 Setup.Build.0 = Release|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x64.Build.0 = Debug|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|Win32.Build.0 = Release|Win32\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|x64.ActiveCfg = Release|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|x64.Build.0 = Release|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|Win32.ActiveCfg = Release MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64.ActiveCfg = Release MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64.Build.0 = Release MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64 Setup.ActiveCfg = Release MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64 Setup.Build.0 = Release MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x86 Setup.ActiveCfg = Release MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|Win32.ActiveCfg = Debug MS-LDAP|Win32\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|Win32.Build.0 = Debug MS-LDAP|Win32\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x64.ActiveCfg = Debug MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x64.Build.0 = Debug MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x64 Setup.ActiveCfg = Debug MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x86 Setup.ActiveCfg = Debug MS-LDAP|Win32\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|Win32.ActiveCfg = Release MS-LDAP|Win32\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|Win32.Build.0 = Release MS-LDAP|Win32\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|x64.ActiveCfg = Release MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|x64.Build.0 = Release MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|x64 Setup.ActiveCfg = Release MS-LDAP|x64\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|x86 Setup.ActiveCfg = Release MS-LDAP|Win32\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|Win32.ActiveCfg = Release|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64.ActiveCfg = Release|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64.Build.0 = Release|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64 Setup.Build.0 = Release|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x64.Build.0 = Debug|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|Win32.Build.0 = Release|Win32\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|x64.ActiveCfg = Release|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|x64.Build.0 = Release|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|Win32.ActiveCfg = Release|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64.ActiveCfg = Release|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64.Build.0 = Release|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64 Setup.Build.0 = Release|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x64.Build.0 = Debug|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|Win32.Build.0 = Release|Win32\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|x64.ActiveCfg = Release|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|x64.Build.0 = Release|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|Win32.ActiveCfg = Release|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64.ActiveCfg = Release|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64.Build.0 = Release|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64 Setup.Build.0 = Release|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x64.Build.0 = Debug|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|Win32.Build.0 = Release|Win32\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x64.ActiveCfg = Release|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x64.Build.0 = Release|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|Win32.ActiveCfg = Release|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64.ActiveCfg = Release|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64.Build.0 = Release|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64 Setup.Build.0 = Release|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|x64.Build.0 = Debug|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|Win32.Build.0 = Release|Win32\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64.ActiveCfg = Release|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64.Build.0 = Release|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|Win32.ActiveCfg = Release|x64\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.ActiveCfg = Release|x64\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.Build.0 = Release|x64\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64 Setup.Build.0 = Release|x64\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.Release|x64.ActiveCfg = Release|x64\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|Win32.ActiveCfg = Release|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.ActiveCfg = Release|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.Build.0 = Release|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64 Setup.Build.0 = Release|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x64.Build.0 = Debug|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|Win32.Build.0 = Release|Win32\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|x64.ActiveCfg = Release|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|x64.Build.0 = Release|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|Win32.ActiveCfg = Release|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64.ActiveCfg = Release|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64.Build.0 = Release|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64 Setup.Build.0 = Release|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x64.Build.0 = Debug|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|Win32.Build.0 = Release|Win32\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|x64.ActiveCfg = Release|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|x64.Build.0 = Release|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|Win32.ActiveCfg = Release|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64.ActiveCfg = Release|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64.Build.0 = Release|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64 Setup.Build.0 = Release|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x64.Build.0 = Debug|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|Win32.Build.0 = Release|Win32\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|x64.ActiveCfg = Release|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|x64.Build.0 = Release|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.All|Win32.ActiveCfg = Release|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64.ActiveCfg = Release|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64.Build.0 = Release|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64 Setup.Build.0 = Release|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x64.Build.0 = Debug|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|Win32.Build.0 = Release|Win32\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|x64.ActiveCfg = Release|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|x64.Build.0 = Release|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|Win32.ActiveCfg = Release|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64.ActiveCfg = Release|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64.Build.0 = Release|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64 Setup.Build.0 = Release|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x64.Build.0 = Debug|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|Win32.Build.0 = Release|Win32\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64.ActiveCfg = Release|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64.Build.0 = Release|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|Win32.ActiveCfg = Release|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.ActiveCfg = Release|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.Build.0 = Release|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64 Setup.Build.0 = Release|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.Build.0 = Debug|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|Win32.Build.0 = Release|Win32\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64.ActiveCfg = Release|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64.Build.0 = Release|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.All|Win32.ActiveCfg = Release|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.ActiveCfg = Release|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.Build.0 = Release|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64 Setup.Build.0 = Release|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x64.Build.0 = Debug|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|Win32.Build.0 = Release|Win32\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|x64.ActiveCfg = Release|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|x64.Build.0 = Release|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|Win32.ActiveCfg = Release|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64.ActiveCfg = Release|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64.Build.0 = Release|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64 Setup.Build.0 = Release|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x64.Build.0 = Debug|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|Win32.Build.0 = Release|Win32\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|x64.ActiveCfg = Release|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|x64.Build.0 = Release|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|Win32.ActiveCfg = Release|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64.ActiveCfg = Release|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64.Build.0 = Release|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64 Setup.Build.0 = Release|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x64.Build.0 = Debug|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|Win32.Build.0 = Release|Win32\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|x64.ActiveCfg = Release|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|x64.Build.0 = Release|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|Win32.ActiveCfg = Release DLL|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64.ActiveCfg = Release DLL|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64.Build.0 = Release DLL|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64 Setup.ActiveCfg = Release DLL|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64 Setup.Build.0 = Release DLL|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x86 Setup.ActiveCfg = Release DLL|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64.Build.0 = Debug|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|Win32.Build.0 = Release|Win32\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|x64.ActiveCfg = Release|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|x64.Build.0 = Release|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|Win32.ActiveCfg = Release Dll|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64.ActiveCfg = Release Dll|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64.Build.0 = Release Dll|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64 Setup.ActiveCfg = Release Dll|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64 Setup.Build.0 = Release Dll|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x86 Setup.ActiveCfg = Release Dll|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x64.Build.0 = Debug|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|Win32.Build.0 = Release|Win32\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|x64.ActiveCfg = Release|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|x64.Build.0 = Release|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|Win32.ActiveCfg = Release DLL|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64.ActiveCfg = Release DLL|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64.Build.0 = Release DLL|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64 Setup.ActiveCfg = Release DLL|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64 Setup.Build.0 = Release DLL|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x86 Setup.ActiveCfg = Release DLL|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x64.Build.0 = Debug|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|Win32.Build.0 = Release|Win32\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|x64.ActiveCfg = Release|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|x64.Build.0 = Release|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|Win32.ActiveCfg = Release DLL|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64.ActiveCfg = Release DLL|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64.Build.0 = Release DLL|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64 Setup.ActiveCfg = Release DLL|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64 Setup.Build.0 = Release DLL|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x86 Setup.ActiveCfg = Release DLL|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x64.Build.0 = Debug|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|Win32.Build.0 = Release|Win32\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x64.ActiveCfg = Release|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x64.Build.0 = Release|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|Win32.ActiveCfg = Release|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64.ActiveCfg = Release|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64.Build.0 = Release|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64 Setup.Build.0 = Release|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64.Build.0 = Debug|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.Build.0 = Release|Win32\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64.ActiveCfg = Release|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64.Build.0 = Release|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|Win32.ActiveCfg = Release|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64.ActiveCfg = Release|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64.Build.0 = Release|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64 Setup.Build.0 = Release|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x64.Build.0 = Debug|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.Build.0 = Release|Win32\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.ActiveCfg = Release|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.Build.0 = Release|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|Win32.ActiveCfg = Release|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64.ActiveCfg = Release|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64.Build.0 = Release|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64 Setup.Build.0 = Release|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64.Build.0 = Debug|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|Win32.Build.0 = Release|Win32\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|x64.ActiveCfg = Release|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|x64.Build.0 = Release|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|Win32.ActiveCfg = Release|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.ActiveCfg = Release|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.Build.0 = Release|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64 Setup.Build.0 = Release|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.Build.0 = Debug|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|Win32.Build.0 = Release|Win32\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64.ActiveCfg = Release|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64.Build.0 = Release|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|Win32.ActiveCfg = Release|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64.ActiveCfg = Release|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64.Build.0 = Release|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64 Setup.Build.0 = Release|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x64.Build.0 = Debug|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|Win32.Build.0 = Release|Win32\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|x64.ActiveCfg = Release|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|x64.Build.0 = Release|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|Win32.ActiveCfg = Debug|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64.ActiveCfg = Debug|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64.Build.0 = Debug|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64 Setup.ActiveCfg = Debug|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64 Setup.Build.0 = Debug|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x86 Setup.ActiveCfg = Debug|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x64.Build.0 = Debug|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|Win32.Build.0 = Release|Win32\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|x64.ActiveCfg = Release|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|x64.Build.0 = Release|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|Win32.ActiveCfg = Debug|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64.ActiveCfg = Debug|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64.Build.0 = Debug|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64 Setup.ActiveCfg = Debug|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64 Setup.Build.0 = Debug|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x86 Setup.ActiveCfg = Debug|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x64.Build.0 = Debug|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|Win32.Build.0 = Release|Win32\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|x64.ActiveCfg = Release|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|x64.Build.0 = Release|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|Win32.ActiveCfg = Debug|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x64.ActiveCfg = Debug|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x64.Build.0 = Debug|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x64 Setup.ActiveCfg = Debug|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x64 Setup.Build.0 = Debug|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x86 Setup.ActiveCfg = Debug|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|x64.Build.0 = Debug|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|Win32.Build.0 = Release|Win32\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|x64.ActiveCfg = Release|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|x64.Build.0 = Release|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|Win32.ActiveCfg = Release|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.ActiveCfg = Release|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.Build.0 = Release|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64 Setup.Build.0 = Release|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x64.Build.0 = Debug|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|Win32.Build.0 = Release|Win32\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|x64.ActiveCfg = Release|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|x64.Build.0 = Release|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|Win32.ActiveCfg = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|Win32.Build.0 = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64.ActiveCfg = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64.Build.0 = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64 Setup.Build.0 = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x64.Build.0 = Debug|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|Win32.Build.0 = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|x64.ActiveCfg = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|x64.Build.0 = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|Win32.ActiveCfg = Release DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64.ActiveCfg = Release DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64.Build.0 = Release DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64 Setup.ActiveCfg = Release DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64 Setup.Build.0 = Release DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x86 Setup.ActiveCfg = Release DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|Win32.ActiveCfg = Debug DLL|Win32\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|Win32.Build.0 = Debug DLL|Win32\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x64.ActiveCfg = Debug DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x64.Build.0 = Debug DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x64 Setup.ActiveCfg = Debug DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x86 Setup.ActiveCfg = Debug DLL|Win32\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|Win32.ActiveCfg = Release DLL|Win32\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|Win32.Build.0 = Release DLL|Win32\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|x64.ActiveCfg = Release DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|x64.Build.0 = Release DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|x64 Setup.ActiveCfg = Release DLL|x64\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|x86 Setup.ActiveCfg = Release DLL|Win32\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|Win32.ActiveCfg = Release Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64.ActiveCfg = Release Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64.Build.0 = Release Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64 Setup.ActiveCfg = Release Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64 Setup.Build.0 = Release Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x86 Setup.ActiveCfg = Release Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|Win32.Build.0 = Debug Passthrough|Win32\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x64.ActiveCfg = Debug Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x64.Build.0 = Debug Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x64 Setup.ActiveCfg = Debug Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x86 Setup.ActiveCfg = Debug Passthrough|Win32\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|Win32.ActiveCfg = Release Passthrough|Win32\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|Win32.Build.0 = Release Passthrough|Win32\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64.ActiveCfg = Release Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64.Build.0 = Release Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64 Setup.ActiveCfg = Release Passthrough|x64\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x86 Setup.ActiveCfg = Release Passthrough|Win32\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|Win32.ActiveCfg = Release|x64\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x64.ActiveCfg = Release|x64\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x64.Build.0 = Release|x64\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x64 Setup.Build.0 = Release|x64\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x64.Build.0 = Debug|x64\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|Win32.Build.0 = Release|Win32\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x64.ActiveCfg = Release|x64\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x64.Build.0 = Release|x64\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|Win32.ActiveCfg = Release|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.ActiveCfg = Release|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.Build.0 = Release|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64 Setup.Build.0 = Release|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x64.Build.0 = Debug|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|Win32.Build.0 = Release|Win32\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|x64.ActiveCfg = Release|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|x64.Build.0 = Release|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|Win32.ActiveCfg = Release|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x64.ActiveCfg = Release|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x64.Build.0 = Release|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x64 Setup.Build.0 = Release|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|x64.Build.0 = Debug|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|Win32.Build.0 = Release|Win32\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|x64.ActiveCfg = Release|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|x64.Build.0 = Release|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|Win32.ActiveCfg = Release|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x64.ActiveCfg = Release|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x64.Build.0 = Release|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x64 Setup.Build.0 = Release|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|x64.Build.0 = Debug|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|Win32.Build.0 = Release|Win32\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|x64.ActiveCfg = Release|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|x64.Build.0 = Release|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.All|Win32.ActiveCfg = Release|x64\r
+-              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.All|x64.ActiveCfg = Release|x64\r
+-              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.All|x64.Build.0 = Release|x64\r
+-              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.All|x64 Setup.Build.0 = Release|x64\r
+-              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Release|x64.ActiveCfg = Release|x64\r
+-              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|Win32.ActiveCfg = Release|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64.ActiveCfg = Release|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64.Build.0 = Release|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64 Setup.Build.0 = Release|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x64.Build.0 = Debug|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|Win32.Build.0 = Release|Win32\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|x64.ActiveCfg = Release|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|x64.Build.0 = Release|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|Win32.ActiveCfg = Release|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x64.ActiveCfg = Release|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x64.Build.0 = Release|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x64 Setup.Build.0 = Release|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|x64.Build.0 = Debug|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|Win32.Build.0 = Release|Win32\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|x64.ActiveCfg = Release|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|x64.Build.0 = Release|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|Win32.ActiveCfg = Release|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64.ActiveCfg = Release|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64.Build.0 = Release|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64 Setup.Build.0 = Release|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x64.Build.0 = Debug|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|Win32.Build.0 = Release|Win32\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|x64.ActiveCfg = Release|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|x64.Build.0 = Release|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|Win32.ActiveCfg = Release|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64.ActiveCfg = Release|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64.Build.0 = Release|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64 Setup.Build.0 = Release|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x64.Build.0 = Debug|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|Win32.Build.0 = Release|Win32\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.ActiveCfg = Release|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.Build.0 = Release|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|Win32.ActiveCfg = Release DirectSound|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.ActiveCfg = Release DirectSound|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.Build.0 = Release DirectSound|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64 Setup.ActiveCfg = Release DirectSound|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64 Setup.Build.0 = Release DirectSound|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x86 Setup.ActiveCfg = Release DirectSound|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.ActiveCfg = Debug DirectSound|Win32\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.Build.0 = Debug DirectSound|Win32\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.ActiveCfg = Debug DirectSound|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.Build.0 = Debug DirectSound|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64 Setup.ActiveCfg = Debug DirectSound|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x86 Setup.ActiveCfg = Debug DirectSound|Win32\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.ActiveCfg = Release DirectSound|Win32\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.Build.0 = Release DirectSound|Win32\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.ActiveCfg = Release DirectSound|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.Build.0 = Release DirectSound|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64 Setup.ActiveCfg = Release DirectSound|x64\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x86 Setup.ActiveCfg = Release DirectSound|Win32\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|Win32.ActiveCfg = Release|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.ActiveCfg = Release|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.Build.0 = Release|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64 Setup.Build.0 = Release|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x64.Build.0 = Debug|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|Win32.Build.0 = Release|Win32\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|x64.ActiveCfg = Release|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|x64.Build.0 = Release|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|Win32.ActiveCfg = Release Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64.ActiveCfg = Release Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64.Build.0 = Release Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64 Setup.ActiveCfg = Release Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64 Setup.Build.0 = Release Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x86 Setup.ActiveCfg = Release Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|Win32.Build.0 = Debug Passthrough|Win32\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x64.ActiveCfg = Debug Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x64.Build.0 = Debug Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x64 Setup.ActiveCfg = Debug Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x86 Setup.ActiveCfg = Debug Passthrough|Win32\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|Win32.ActiveCfg = Release Passthrough|Win32\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|Win32.Build.0 = Release Passthrough|Win32\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64.ActiveCfg = Release Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64.Build.0 = Release Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64 Setup.ActiveCfg = Release Passthrough|x64\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x86 Setup.ActiveCfg = Release Passthrough|Win32\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|Win32.ActiveCfg = Release|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.ActiveCfg = Release|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.Build.0 = Release|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64 Setup.Build.0 = Release|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.Build.0 = Debug|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|Win32.Build.0 = Release|Win32\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64.ActiveCfg = Release|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64.Build.0 = Release|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|Win32.ActiveCfg = Release|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.ActiveCfg = Release|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.Build.0 = Release|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64 Setup.Build.0 = Release|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x64.Build.0 = Debug|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|Win32.Build.0 = Release|Win32\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|x64.ActiveCfg = Release|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|x64.Build.0 = Release|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|Win32.ActiveCfg = Release|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64.ActiveCfg = Release|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64.Build.0 = Release|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64 Setup.Build.0 = Release|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x64.Build.0 = Debug|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|Win32.Build.0 = Release|Win32\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|x64.ActiveCfg = Release|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|x64.Build.0 = Release|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|Win32.ActiveCfg = Release|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x64.ActiveCfg = Release|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x64.Build.0 = Release|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x64 Setup.Build.0 = Release|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|x64.Build.0 = Debug|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|Win32.Build.0 = Release|Win32\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|x64.ActiveCfg = Release|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|x64.Build.0 = Release|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|Win32.ActiveCfg = Release|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64.ActiveCfg = Release|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64.Build.0 = Release|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64 Setup.Build.0 = Release|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x64.Build.0 = Debug|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|Win32.Build.0 = Release|Win32\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|x64.ActiveCfg = Release|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|x64.Build.0 = Release|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|Win32.ActiveCfg = Release|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64.ActiveCfg = Release|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64.Build.0 = Release|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64 Setup.Build.0 = Release|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x64.Build.0 = Debug|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|Win32.Build.0 = Release|Win32\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|x64.ActiveCfg = Release|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|x64.Build.0 = Release|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|Win32.ActiveCfg = Release|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64.ActiveCfg = Release|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64.Build.0 = Release|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64 Setup.Build.0 = Release|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x64.Build.0 = Debug|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|Win32.Build.0 = Release|Win32\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|x64.ActiveCfg = Release|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|x64.Build.0 = Release|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|Win32.ActiveCfg = Release|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64.ActiveCfg = Release|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64.Build.0 = Release|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64 Setup.Build.0 = Release|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x64.Build.0 = Debug|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|Win32.Build.0 = Release|Win32\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|x64.ActiveCfg = Release|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|x64.Build.0 = Release|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|Win32.ActiveCfg = Release|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64.ActiveCfg = Release|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64.Build.0 = Release|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64 Setup.Build.0 = Release|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x64.Build.0 = Debug|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|Win32.Build.0 = Release|Win32\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|x64.ActiveCfg = Release|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|x64.Build.0 = Release|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|Win32.ActiveCfg = Release|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64.ActiveCfg = Release|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64.Build.0 = Release|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64 Setup.Build.0 = Release|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x64.Build.0 = Debug|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|Win32.Build.0 = Release|Win32\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|x64.ActiveCfg = Release|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|x64.Build.0 = Release|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|Win32.ActiveCfg = Release|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64.ActiveCfg = Release|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64.Build.0 = Release|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64 Setup.Build.0 = Release|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x64.Build.0 = Debug|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|Win32.Build.0 = Release|Win32\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|x64.ActiveCfg = Release|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|x64.Build.0 = Release|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.All|Win32.ActiveCfg = Release|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.All|x64.ActiveCfg = Release|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.All|x64.Build.0 = Release|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.All|x64 Setup.Build.0 = Release|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x64.Build.0 = Debug|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Release|Win32.Build.0 = Release|Win32\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Release|x64.ActiveCfg = Release|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Release|x64.Build.0 = Release|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {F6A33240-8F29-48BD-98F0-826995911799}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|Win32.ActiveCfg = Release|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64.ActiveCfg = Release|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64.Build.0 = Release|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64 Setup.Build.0 = Release|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x64.Build.0 = Debug|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|Win32.Build.0 = Release|Win32\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|x64.ActiveCfg = Release|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|x64.Build.0 = Release|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|Win32.ActiveCfg = Release|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64.ActiveCfg = Release|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64.Build.0 = Release|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64 Setup.Build.0 = Release|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x64.Build.0 = Debug|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|Win32.Build.0 = Release|Win32\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|x64.ActiveCfg = Release|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|x64.Build.0 = Release|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|Win32.ActiveCfg = Release|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64.ActiveCfg = Release|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64.Build.0 = Release|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64 Setup.Build.0 = Release|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x64.Build.0 = Debug|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|Win32.Build.0 = Release|Win32\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|x64.ActiveCfg = Release|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|x64.Build.0 = Release|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|Win32.ActiveCfg = Release|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64.ActiveCfg = Release|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64.Build.0 = Release|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64 Setup.Build.0 = Release|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x64.Build.0 = Debug|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|Win32.Build.0 = Release|Win32\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|x64.ActiveCfg = Release|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|x64.Build.0 = Release|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|Win32.ActiveCfg = Release|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64.ActiveCfg = Release|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64.Build.0 = Release|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64 Setup.Build.0 = Release|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x64.Build.0 = Debug|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|Win32.Build.0 = Release|Win32\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|x64.ActiveCfg = Release|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|x64.Build.0 = Release|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|Win32.ActiveCfg = Release|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64.ActiveCfg = Release|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64.Build.0 = Release|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64 Setup.Build.0 = Release|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x64.Build.0 = Debug|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|Win32.Build.0 = Release|Win32\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|x64.ActiveCfg = Release|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|x64.Build.0 = Release|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|Win32.ActiveCfg = Release|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x64.ActiveCfg = Release|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x64.Build.0 = Release|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x64 Setup.Build.0 = Release|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|x64.Build.0 = Debug|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|Win32.Build.0 = Release|Win32\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|x64.ActiveCfg = Release|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|x64.Build.0 = Release|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|Win32.ActiveCfg = Release|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64.ActiveCfg = Release|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64.Build.0 = Release|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64 Setup.Build.0 = Release|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.Build.0 = Debug|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.Build.0 = Release|Win32\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x64.ActiveCfg = Release|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x64.Build.0 = Release|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|Win32.ActiveCfg = Release|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|x64.ActiveCfg = Release|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|x64.Build.0 = Release|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|x64 Setup.Build.0 = Release|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|x64.Build.0 = Debug|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|Win32.Build.0 = Release|Win32\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|x64.ActiveCfg = Release|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|x64.Build.0 = Release|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|Win32.ActiveCfg = Release|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|x64.ActiveCfg = Release|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|x64.Build.0 = Release|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|x64 Setup.Build.0 = Release|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|x64.Build.0 = Debug|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|Win32.Build.0 = Release|Win32\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|x64.ActiveCfg = Release|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|x64.Build.0 = Release|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|Win32.ActiveCfg = Debug|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|x64.ActiveCfg = Debug|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|x64.Build.0 = Debug|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|x64 Setup.ActiveCfg = Debug|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|x64 Setup.Build.0 = Debug|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|x86 Setup.ActiveCfg = Debug|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|x64.Build.0 = Debug|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|Win32.Build.0 = Release|Win32\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|x64.ActiveCfg = Release|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|x64.Build.0 = Release|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.All|Win32.ActiveCfg = Release|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.All|x64.ActiveCfg = Release|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.All|x64.Build.0 = Release|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.All|x64 Setup.Build.0 = Release|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|x64.Build.0 = Debug|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|Win32.Build.0 = Release|Win32\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|x64.ActiveCfg = Release|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|x64.Build.0 = Release|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|Win32.ActiveCfg = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|Win32.Build.0 = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64.ActiveCfg = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64.Build.0 = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64 Setup.Build.0 = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x64.Build.0 = Debug|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|Win32.Build.0 = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|x64.ActiveCfg = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|x64.Build.0 = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.All|Win32.ActiveCfg = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.All|Win32.Build.0 = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.All|x64.ActiveCfg = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.All|x64.Build.0 = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.All|x64 Setup.Build.0 = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x64.Build.0 = Debug|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Release|Win32.Build.0 = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Release|x64.ActiveCfg = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Release|x64.Build.0 = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {2DEE4895-1134-439C-B688-52203E57D878}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|Win32.ActiveCfg = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|Win32.Build.0 = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64.ActiveCfg = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64.Build.0 = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64 Setup.Build.0 = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x64.Build.0 = Debug|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|Win32.Build.0 = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|x64.ActiveCfg = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|x64.Build.0 = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|Win32.ActiveCfg = Debug|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64.ActiveCfg = Debug|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64.Build.0 = Debug|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64 Setup.ActiveCfg = Debug|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64 Setup.Build.0 = Debug|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x86 Setup.ActiveCfg = Debug|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x64.Build.0 = Debug|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|Win32.Build.0 = Release|Win32\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|x64.ActiveCfg = Release|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|x64.Build.0 = Release|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.All|Win32.ActiveCfg = Debug|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.All|x64.ActiveCfg = Debug|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.All|x64.Build.0 = Debug|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.All|x64 Setup.ActiveCfg = Debug|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.All|x64 Setup.Build.0 = Debug|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.All|x86 Setup.ActiveCfg = Debug|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x64.Build.0 = Debug|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Release|Win32.Build.0 = Release|Win32\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Release|x64.ActiveCfg = Release|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Release|x64.Build.0 = Release|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {94001A0E-A837-445C-8004-F918F10D0226}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|Win32.ActiveCfg = Release|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x64.ActiveCfg = Release|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x64.Build.0 = Release|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x64 Setup.Build.0 = Release|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|x64.Build.0 = Debug|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|Win32.Build.0 = Release|Win32\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|x64.ActiveCfg = Release|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|x64.Build.0 = Release|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|Win32.ActiveCfg = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|Win32.Build.0 = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64.ActiveCfg = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64.Build.0 = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64 Setup.Build.0 = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x64.Build.0 = Debug|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|Win32.Build.0 = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|x64.ActiveCfg = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|x64.Build.0 = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|Win32.ActiveCfg = Release|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|x64.ActiveCfg = Release|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release|x64.ActiveCfg = Release|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|Win32.ActiveCfg = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|Win32.Build.0 = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64.ActiveCfg = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64.Build.0 = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64 Setup.Build.0 = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x64.Build.0 = Debug|x64\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|Win32.Build.0 = Release|Win32\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|x64.ActiveCfg = Release|x64\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|x64.Build.0 = Release|x64\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.All|Win32.ActiveCfg = Release|Win32\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.All|x64.ActiveCfg = Release|Win32\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.Release|x64.ActiveCfg = Release|x64\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|Win32.ActiveCfg = Release|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|x64.ActiveCfg = Release|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release|x64.ActiveCfg = Release|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.All|Win32.ActiveCfg = Release|Win32\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.All|x64.ActiveCfg = Release|Win32\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.Release|x64.ActiveCfg = Release|x64\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.All|Win32.ActiveCfg = Release|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64.ActiveCfg = Release|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64.Build.0 = Release|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64 Setup.Build.0 = Release|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x64.Build.0 = Debug|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|Win32.Build.0 = Release|Win32\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|x64.ActiveCfg = Release|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|x64.Build.0 = Release|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|Win32.ActiveCfg = Release Static|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64.ActiveCfg = Release Static|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64.Build.0 = Release Static|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64 Setup.ActiveCfg = Release Static|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64 Setup.Build.0 = Release Static|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x86 Setup.ActiveCfg = Release Static|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x64.Build.0 = Debug|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|Win32.Build.0 = Release|Win32\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|x64.ActiveCfg = Release|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|x64.Build.0 = Release|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64 Setup.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x64.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|x64.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64 Setup.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x64.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|x64.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64 Setup.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x64.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|x64.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64 Setup.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x64.Build.0 = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|Win32.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|x64.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|x64.Build.0 = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|Win32.ActiveCfg = Debug|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64.ActiveCfg = Debug|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64.Build.0 = Debug|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64 Setup.ActiveCfg = Debug|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64 Setup.Build.0 = Debug|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x86 Setup.ActiveCfg = Debug|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x64.Build.0 = Debug|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|Win32.Build.0 = Release|Win32\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|x64.ActiveCfg = Release|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|x64.Build.0 = Release|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|Win32.ActiveCfg = Debug|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64.ActiveCfg = Debug|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64.Build.0 = Debug|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64 Setup.ActiveCfg = Debug|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64 Setup.Build.0 = Debug|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x86 Setup.ActiveCfg = Debug|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x64.Build.0 = Debug|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|Win32.Build.0 = Release|Win32\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|x64.ActiveCfg = Release|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|x64.Build.0 = Release|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|Win32.ActiveCfg = Release|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64.ActiveCfg = Release|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64.Build.0 = Release|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64 Setup.Build.0 = Release|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x64.Build.0 = Debug|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|Win32.Build.0 = Release|Win32\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|x64.ActiveCfg = Release|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|x64.Build.0 = Release|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|Win32.ActiveCfg = Debug|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64.ActiveCfg = Debug|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64.Build.0 = Debug|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64 Setup.ActiveCfg = Debug|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64 Setup.Build.0 = Debug|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x86 Setup.ActiveCfg = Debug|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x64.Build.0 = Debug|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|Win32.Build.0 = Release|Win32\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64.ActiveCfg = Release|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64.Build.0 = Release|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|Win32.ActiveCfg = Release|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.ActiveCfg = Release|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.Build.0 = Release|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64 Setup.Build.0 = Release|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.Build.0 = Debug|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.Build.0 = Release|Win32\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64.ActiveCfg = Release|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64.Build.0 = Release|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|Win32.ActiveCfg = Release|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.ActiveCfg = Release|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.Build.0 = Release|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64 Setup.Build.0 = Release|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x64.Build.0 = Debug|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|Win32.Build.0 = Release|Win32\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|x64.ActiveCfg = Release|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|x64.Build.0 = Release|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|Win32.ActiveCfg = Release_Mono|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64.ActiveCfg = Release_Mono|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64.Build.0 = Release_Mono|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64 Setup.ActiveCfg = Release_Mono|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64 Setup.Build.0 = Release_Mono|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x86 Setup.ActiveCfg = Release_Mono|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|Win32.ActiveCfg = Debug_CLR|Win32\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|Win32.Build.0 = Debug_CLR|Win32\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x64.ActiveCfg = Debug_CLR|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x64.Build.0 = Debug_CLR|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x64 Setup.ActiveCfg = Debug_CLR|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x86 Setup.ActiveCfg = Debug_CLR|Win32\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|Win32.ActiveCfg = Release_CLR|Win32\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|Win32.Build.0 = Release_CLR|Win32\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|x64.ActiveCfg = Release_CLR|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|x64.Build.0 = Release_CLR|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|x64 Setup.ActiveCfg = Release_CLR|x64\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|x86 Setup.ActiveCfg = Release_CLR|Win32\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.All|Win32.ActiveCfg = Release|Any CPU\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.All|x64.ActiveCfg = Release|Any CPU\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.All|x64 Setup.ActiveCfg = Release|Any CPU\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.All|x86 Setup.ActiveCfg = Release|Any CPU\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|Win32.ActiveCfg = Debug|Any CPU\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|Win32.Build.0 = Debug|Any CPU\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|x64.Build.0 = Debug|x64\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|x86 Setup.ActiveCfg = Debug|Any CPU\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|Win32.ActiveCfg = Release|Any CPU\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|Win32.Build.0 = Release|Any CPU\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|x64.ActiveCfg = Release|x64\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|x64.Build.0 = Release|x64\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|x86 Setup.ActiveCfg = Release|Any CPU\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.All|Win32.ActiveCfg = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.All|Win32.Build.0 = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.All|x64.ActiveCfg = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.All|x64.Build.0 = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.All|x64 Setup.Build.0 = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x64.Build.0 = Debug|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Release|Win32.Build.0 = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Release|x64.ActiveCfg = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Release|x64.Build.0 = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {E796E337-DE78-4303-8614-9A590862EE95}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.All|Win32.ActiveCfg = Release|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64.ActiveCfg = Release|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64.Build.0 = Release|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64 Setup.Build.0 = Release|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x64.Build.0 = Debug|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|Win32.Build.0 = Release|Win32\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|x64.ActiveCfg = Release|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|x64.Build.0 = Release|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|Win32.ActiveCfg = Release|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64.ActiveCfg = Release|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64.Build.0 = Release|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64 Setup.Build.0 = Release|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x64.Build.0 = Debug|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|Win32.Build.0 = Release|Win32\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|x64.ActiveCfg = Release|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|x64.Build.0 = Release|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|Win32.ActiveCfg = Release|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64.ActiveCfg = Release|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64.Build.0 = Release|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64 Setup.Build.0 = Release|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x64.Build.0 = Debug|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|Win32.Build.0 = Release|Win32\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|x64.ActiveCfg = Release|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|x64.Build.0 = Release|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|Win32.ActiveCfg = Release|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64.ActiveCfg = Release|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64.Build.0 = Release|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64 Setup.Build.0 = Release|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x64.Build.0 = Debug|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|Win32.Build.0 = Release|Win32\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|x64.ActiveCfg = Release|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|x64.Build.0 = Release|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|Win32.ActiveCfg = Release|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64.ActiveCfg = Release|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64.Build.0 = Release|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64 Setup.Build.0 = Release|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x64.Build.0 = Debug|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|Win32.Build.0 = Release|Win32\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|x64.ActiveCfg = Release|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|x64.Build.0 = Release|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|Win32.ActiveCfg = Release|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64.ActiveCfg = Release|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64.Build.0 = Release|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64 Setup.Build.0 = Release|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x64.Build.0 = Debug|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|Win32.Build.0 = Release|Win32\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|x64.ActiveCfg = Release|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|x64.Build.0 = Release|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|Win32.ActiveCfg = Release|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64.ActiveCfg = Release|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64.Build.0 = Release|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64 Setup.Build.0 = Release|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x64.Build.0 = Debug|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|Win32.Build.0 = Release|Win32\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|x64.ActiveCfg = Release|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|x64.Build.0 = Release|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|Win32.ActiveCfg = Release|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64.ActiveCfg = Release|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64.Build.0 = Release|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64 Setup.Build.0 = Release|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x64.Build.0 = Debug|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|Win32.Build.0 = Release|Win32\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|x64.ActiveCfg = Release|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|x64.Build.0 = Release|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|Win32.ActiveCfg = Release|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64.ActiveCfg = Release|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64.Build.0 = Release|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64 Setup.Build.0 = Release|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x64.Build.0 = Debug|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|Win32.Build.0 = Release|Win32\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|x64.ActiveCfg = Release|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|x64.Build.0 = Release|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|Win32.ActiveCfg = Release|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x64.ActiveCfg = Release|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x64.Build.0 = Release|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x64 Setup.Build.0 = Release|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|x64.Build.0 = Debug|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|Win32.Build.0 = Release|Win32\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|x64.ActiveCfg = Release|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|x64.Build.0 = Release|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|Win32.ActiveCfg = Release|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64.ActiveCfg = Release|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64.Build.0 = Release|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64 Setup.Build.0 = Release|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x64.Build.0 = Debug|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|Win32.Build.0 = Release|Win32\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|x64.ActiveCfg = Release|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|x64.Build.0 = Release|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|Win32.ActiveCfg = Release_WM5_PPC_ARM|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x64.ActiveCfg = Release_WM5_PPC_ARM|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x64.Build.0 = Release_WM5_PPC_ARM|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x64 Setup.ActiveCfg = Release_WM5_PPC_ARM|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x64 Setup.Build.0 = Release_WM5_PPC_ARM|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x86 Setup.ActiveCfg = Release_WM5_PPC_ARM|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|x64.Build.0 = Debug|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|Win32.Build.0 = Release|Win32\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|x64.ActiveCfg = Release|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|x64.Build.0 = Release|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|Win32.ActiveCfg = Release_Static_SSE|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x64.ActiveCfg = Release_Static_SSE|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x64.Build.0 = Release_Static_SSE|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x64 Setup.ActiveCfg = Release_Static_SSE|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x64 Setup.Build.0 = Release_Static_SSE|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x86 Setup.ActiveCfg = Release_Static_SSE|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|x64.Build.0 = Debug|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|Win32.Build.0 = Release|Win32\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|x64.ActiveCfg = Release|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|x64.Build.0 = Release|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|Win32.ActiveCfg = Release|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64.ActiveCfg = Release|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64.Build.0 = Release|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64 Setup.Build.0 = Release|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x64.Build.0 = Debug|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|Win32.Build.0 = Release|Win32\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x64.ActiveCfg = Release|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x64.Build.0 = Release|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.All|Win32.ActiveCfg = Release|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64.ActiveCfg = Release|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64.Build.0 = Release|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64 Setup.Build.0 = Release|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64.Build.0 = Debug|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|Win32.Build.0 = Release|Win32\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|x64.ActiveCfg = Release|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|x64.Build.0 = Release|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|Win32.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|Win32.Build.0 = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|x64.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release|x64.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|Win32.ActiveCfg = Release|Win32\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|x64.ActiveCfg = Release|Win32\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x64.Build.0 = Debug|x64\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|Win32.Build.0 = Release|Win32\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|x64.ActiveCfg = Release|x64\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|x64.Build.0 = Release|x64\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {48414740-C693-4968-9846-EE058020C64F}.All|Win32.ActiveCfg = Release|Win32\r
+-              {48414740-C693-4968-9846-EE058020C64F}.All|x64.ActiveCfg = Release|Win32\r
+-              {48414740-C693-4968-9846-EE058020C64F}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {48414740-C693-4968-9846-EE058020C64F}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Debug|x64.Build.0 = Debug|x64\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Release|Win32.Build.0 = Release|Win32\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Release|x64.ActiveCfg = Release|x64\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Release|x64.Build.0 = Release|x64\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {48414740-C693-4968-9846-EE058020C64F}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|Win32.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|Win32.Build.0 = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|x64.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|x64 Setup.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|x86 Setup.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|x86 Setup.Build.0 = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|Win32.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|Win32.Build.0 = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x64.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x64.Build.0 = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x64 Setup.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x86 Setup.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|Win32.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|Win32.Build.0 = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|x64.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|x64.Build.0 = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|x64 Setup.ActiveCfg = All|Win32\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|x86 Setup.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|Win32.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|Win32.Build.0 = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|x64.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|x64 Setup.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|x86 Setup.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|x86 Setup.Build.0 = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|Win32.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|Win32.Build.0 = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x64.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x64.Build.0 = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x64 Setup.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x86 Setup.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|Win32.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|Win32.Build.0 = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|x64.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|x64.Build.0 = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|x64 Setup.ActiveCfg = All|Win32\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|x86 Setup.ActiveCfg = All|Win32\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|Win32.ActiveCfg = Release|x64\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64.ActiveCfg = Release|x64\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64.Build.0 = Release|x64\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64 Setup.Build.0 = Release|x64\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release|x64.ActiveCfg = Release|x64\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|Win32.ActiveCfg = Release|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|Win32.Build.0 = Release|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|x64.ActiveCfg = Release|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x64.Build.0 = Debug|x64\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|Win32.Build.0 = Release|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x64.ActiveCfg = Release|x64\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x64.Build.0 = Release|x64\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.All|Win32.ActiveCfg = Release|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.All|x64.ActiveCfg = Release|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.Release|x64.ActiveCfg = Release|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|Win32.ActiveCfg = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|Win32.Build.0 = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64.ActiveCfg = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64.Build.0 = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64 Setup.Build.0 = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x64.Build.0 = Debug|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|Win32.Build.0 = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|x64.ActiveCfg = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|x64.Build.0 = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|Win32.ActiveCfg = Release|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|x64.ActiveCfg = Release|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release|x64.ActiveCfg = Release|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|Win32.ActiveCfg = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|Win32.Build.0 = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64.ActiveCfg = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64.Build.0 = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64 Setup.Build.0 = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x64.Build.0 = Debug|x64\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|Win32.Build.0 = Release|Win32\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|x64.ActiveCfg = Release|x64\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|x64.Build.0 = Release|x64\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|Win32.ActiveCfg = Release|Win32\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|x64.ActiveCfg = Release|Win32\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release|x64.ActiveCfg = Release|x64\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|Win32.ActiveCfg = Release|Win32\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|x64.ActiveCfg = Release|Win32\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|x64.ActiveCfg = Release|x64\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|Win32.ActiveCfg = Release|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64.ActiveCfg = Release|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64.Build.0 = Release|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64 Setup.Build.0 = Release|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x64.Build.0 = Debug|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|Win32.Build.0 = Release|Win32\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x64.ActiveCfg = Release|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x64.Build.0 = Release|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|Win32.ActiveCfg = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|Win32.Build.0 = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.ActiveCfg = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.Build.0 = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64 Setup.Build.0 = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x86 Setup.Build.0 = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.Build.0 = Debug|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|Win32.Build.0 = Release|Win32\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64.ActiveCfg = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64.Build.0 = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|Win32.ActiveCfg = Release|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|x64.ActiveCfg = Release|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x64.Build.0 = Debug|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|Win32.Build.0 = Release|Win32\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|x64.ActiveCfg = Release|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|x64.Build.0 = Release|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|Win32.ActiveCfg = Release|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|Win32.Build.0 = Release|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|x64.ActiveCfg = Release|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x64.Build.0 = Debug|x64\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.Build.0 = Release|Win32\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|x64.ActiveCfg = Release|x64\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|x64.Build.0 = Release|x64\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|Win32.ActiveCfg = Release|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64.ActiveCfg = Release|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64.Build.0 = Release|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64 Setup.Build.0 = Release|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x64.Build.0 = Debug|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|Win32.Build.0 = Release|Win32\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x64.ActiveCfg = Release|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x64.Build.0 = Release|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|Win32.ActiveCfg = Release|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|Win32.Build.0 = Release|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|x64.ActiveCfg = Release|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64.Build.0 = Debug|x64\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|Win32.Build.0 = Release|Win32\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x64.ActiveCfg = Release|x64\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x64.Build.0 = Release|x64\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|Win32.ActiveCfg = Release|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|Win32.Build.0 = Release|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|x64.ActiveCfg = Release|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64.Build.0 = Debug|x64\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|Win32.Build.0 = Release|Win32\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x64.ActiveCfg = Release|x64\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x64.Build.0 = Release|x64\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|Win32.ActiveCfg = Release|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|Win32.Build.0 = Release|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|x64.ActiveCfg = Release|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64.Build.0 = Debug|x64\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|Win32.Build.0 = Release|Win32\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x64.ActiveCfg = Release|x64\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x64.Build.0 = Release|x64\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|Win32.ActiveCfg = Release|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|Win32.Build.0 = Release|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|x64.ActiveCfg = Release|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64.Build.0 = Debug|x64\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|Win32.Build.0 = Release|Win32\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x64.ActiveCfg = Release|x64\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x64.Build.0 = Release|x64\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|Win32.ActiveCfg = Release|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|Win32.Build.0 = Release|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|x64.ActiveCfg = Release|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64.Build.0 = Debug|x64\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|Win32.Build.0 = Release|Win32\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x64.ActiveCfg = Release|x64\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x64.Build.0 = Release|x64\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|Win32.ActiveCfg = Release|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|Win32.Build.0 = Release|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|x64.ActiveCfg = Release|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64.Build.0 = Debug|x64\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|Win32.Build.0 = Release|Win32\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x64.ActiveCfg = Release|x64\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x64.Build.0 = Release|x64\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|Win32.ActiveCfg = Release|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|Win32.Build.0 = Release|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|x64.ActiveCfg = Release|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64.Build.0 = Debug|x64\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|Win32.Build.0 = Release|Win32\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x64.ActiveCfg = Release|x64\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x64.Build.0 = Release|x64\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|Win32.ActiveCfg = Release|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|Win32.Build.0 = Release|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|x64.ActiveCfg = Release|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64.Build.0 = Debug|x64\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|Win32.Build.0 = Release|Win32\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x64.ActiveCfg = Release|x64\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x64.Build.0 = Release|x64\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|Win32.ActiveCfg = Release|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|Win32.Build.0 = Release|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|x64.ActiveCfg = Release|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64.Build.0 = Debug|x64\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|Win32.Build.0 = Release|Win32\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x64.ActiveCfg = Release|x64\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x64.Build.0 = Release|x64\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|Win32.ActiveCfg = Release|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x64.ActiveCfg = Release|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x64.Build.0 = Release|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x64 Setup.Build.0 = Release|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|x64.Build.0 = Debug|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|Win32.Build.0 = Release|Win32\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|x64.ActiveCfg = Release|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|x64.Build.0 = Release|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|Win32.ActiveCfg = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|Win32.Build.0 = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|x64.ActiveCfg = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x64.Build.0 = Debug|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|Win32.Build.0 = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|x64.ActiveCfg = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|x64.Build.0 = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|Win32.ActiveCfg = Release|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64.ActiveCfg = Release|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64.Build.0 = Release|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64 Setup.Build.0 = Release|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64.Build.0 = Debug|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|Win32.Build.0 = Release|Win32\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x64.ActiveCfg = Release|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x64.Build.0 = Release|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|Win32.ActiveCfg = Release Passthrough|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64.ActiveCfg = Release Passthrough|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64.Build.0 = Release Passthrough|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64 Setup.ActiveCfg = Release Passthrough|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64 Setup.Build.0 = Release Passthrough|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x86 Setup.ActiveCfg = Release Passthrough|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x64.Build.0 = Debug|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|Win32.Build.0 = Release|Win32\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|x64.ActiveCfg = Release|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|x64.Build.0 = Release|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|Win32.ActiveCfg = Release|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|Win32.Build.0 = Release|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|x64.ActiveCfg = Release|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release|x64.ActiveCfg = Release|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|Win32.ActiveCfg = Release|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64.ActiveCfg = Release|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64.Build.0 = Release|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64 Setup.Build.0 = Release|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x64.Build.0 = Debug|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|Win32.Build.0 = Release|Win32\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|x64.ActiveCfg = Release|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|x64.Build.0 = Release|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|Win32.ActiveCfg = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|Win32.Build.0 = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|x64.ActiveCfg = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x64.Build.0 = Debug|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|Win32.Build.0 = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|x64.ActiveCfg = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|x64.Build.0 = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|Win32.ActiveCfg = Release|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64.ActiveCfg = Release|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64.Build.0 = Release|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64 Setup.Build.0 = Release|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64.Build.0 = Debug|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|Win32.Build.0 = Release|Win32\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x64.ActiveCfg = Release|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x64.Build.0 = Release|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|Win32.ActiveCfg = Release|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64.ActiveCfg = Release|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64.Build.0 = Release|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64 Setup.Build.0 = Release|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x64.Build.0 = Debug|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|Win32.Build.0 = Release|Win32\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|x64.ActiveCfg = Release|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|x64.Build.0 = Release|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|Win32.ActiveCfg = Release|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|Win32.Build.0 = Release|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|x64.ActiveCfg = Release|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x64.Build.0 = Debug|x64\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|Win32.Build.0 = Release|Win32\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|x64.ActiveCfg = Release|x64\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|x64.Build.0 = Release|x64\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|Win32.ActiveCfg = Release|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|Win32.Build.0 = Release|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|x64.ActiveCfg = Release|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x64.Build.0 = Debug|x64\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|Win32.Build.0 = Release|Win32\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|x64.ActiveCfg = Release|x64\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|x64.Build.0 = Release|x64\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|Win32.ActiveCfg = Release|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64.ActiveCfg = Release|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64.Build.0 = Release|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64 Setup.Build.0 = Release|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x64.Build.0 = Debug|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|Win32.Build.0 = Release|Win32\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|x64.ActiveCfg = Release|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|x64.Build.0 = Release|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|Win32.ActiveCfg = Release|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64.ActiveCfg = Release|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64.Build.0 = Release|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64 Setup.Build.0 = Release|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x64.Build.0 = Debug|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|Win32.Build.0 = Release|Win32\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|x64.ActiveCfg = Release|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|x64.Build.0 = Release|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|Win32.ActiveCfg = Release|x64\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|x64.ActiveCfg = Release|x64\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|x64.Build.0 = Release|x64\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|x64 Setup.Build.0 = Release|x64\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|x64.Build.0 = Debug|x64\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|Win32.Build.0 = Release|Win32\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|x64.ActiveCfg = Release|x64\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|x64.Build.0 = Release|x64\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|Win32.ActiveCfg = Release|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|x64.ActiveCfg = Release|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|x64.Build.0 = Release|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|x64 Setup.Build.0 = Release|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|x64.Build.0 = Debug|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|Win32.Build.0 = Release|Win32\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|x64.ActiveCfg = Release|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|x64.Build.0 = Release|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|Win32.ActiveCfg = Release|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|x64.ActiveCfg = Release|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|x64.Build.0 = Release|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|x64 Setup.Build.0 = Release|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|x64.Build.0 = Debug|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|Win32.Build.0 = Release|Win32\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|x64.ActiveCfg = Release|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|x64.Build.0 = Release|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|Win32.ActiveCfg = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|Win32.Build.0 = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|x64.ActiveCfg = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|x64.Build.0 = Debug|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|Win32.Build.0 = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|x64.ActiveCfg = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|x64.Build.0 = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|Win32.ActiveCfg = Release|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64.ActiveCfg = Release|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64.Build.0 = Release|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64 Setup.Build.0 = Release|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x64.Build.0 = Debug|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|Win32.Build.0 = Release|Win32\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|x64.ActiveCfg = Release|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|x64.Build.0 = Release|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|Win32.ActiveCfg = Release|x64\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|x64.ActiveCfg = Release|x64\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|x64.Build.0 = Release|x64\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|x64 Setup.Build.0 = Release|x64\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|x64.Build.0 = Debug|x64\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|Win32.Build.0 = Release|Win32\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|x64.ActiveCfg = Release|x64\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|x64.Build.0 = Release|x64\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|Win32.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|Win32.Build.0 = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|x64.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|x86 Setup.Build.0 = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Release|x64.ActiveCfg = Release|x64\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.All|Win32.ActiveCfg = Release|x64\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.All|x64.ActiveCfg = Release|x64\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.All|x64.Build.0 = Release|x64\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.All|x64 Setup.Build.0 = Release|x64\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|x64.Build.0 = Debug|x64\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|Win32.Build.0 = Release|Win32\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|x64.ActiveCfg = Release|x64\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|x64.Build.0 = Release|x64\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.All|Win32.ActiveCfg = Release|x86\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.All|x64.ActiveCfg = Release|x86\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.All|x64 Setup.ActiveCfg = Release|x86\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.All|x86 Setup.ActiveCfg = Release|x86\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Debug|Win32.ActiveCfg = Debug|x86\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Debug|x64 Setup.Build.0 = Debug|x64\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Debug|x86 Setup.ActiveCfg = Debug|x86\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Debug|x86 Setup.Build.0 = Debug|x86\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Release|Win32.ActiveCfg = Release|x86\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Release|x64.ActiveCfg = Release|x64\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Release|x64 Setup.Build.0 = Release|x64\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Release|x86 Setup.ActiveCfg = Release|x86\r
+-              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Release|x86 Setup.Build.0 = Release|x86\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.All|Win32.ActiveCfg = Release|x64\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.All|x64.ActiveCfg = Release|x64\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.All|x64.Build.0 = Release|x64\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.Debug|x64.Build.0 = Debug|x64\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.Debug|x86 Setup.ActiveCfg = Debug|x64\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.Release|Win32.Build.0 = Release|Win32\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.Release|x64.ActiveCfg = Release|x64\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.Release|x64.Build.0 = Release|x64\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|Win32.ActiveCfg = Release|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x64.ActiveCfg = Release|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x64.Build.0 = Release|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|x64.Build.0 = Debug|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|x86 Setup.ActiveCfg = Debug|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|Win32.Build.0 = Release|Win32\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64.ActiveCfg = Release|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64.Build.0 = Release|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|Win32.ActiveCfg = Release|x64\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|x64.ActiveCfg = Release|x64\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|x64.Build.0 = Release|x64\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|x64.Build.0 = Debug|x64\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|x86 Setup.ActiveCfg = Debug|x64\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|Win32.Build.0 = Release|Win32\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|x64.ActiveCfg = Release|x64\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|x64.Build.0 = Release|x64\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.All|Win32.ActiveCfg = Release|x64\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.All|x64.ActiveCfg = Release|x64\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.All|x64.Build.0 = Release|x64\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|x64.Build.0 = Debug|x64\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|x86 Setup.ActiveCfg = Debug|x64\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|Win32.Build.0 = Release|Win32\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|x64.ActiveCfg = Release|x64\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|x64.Build.0 = Release|x64\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.All|Win32.ActiveCfg = Release|x64\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.All|x64.ActiveCfg = Release|x64\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.All|x64.Build.0 = Release|x64\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug|x64.Build.0 = Debug|x64\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug|x86 Setup.ActiveCfg = Debug|x64\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release|Win32.Build.0 = Release|Win32\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release|x64.ActiveCfg = Release|x64\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release|x64.Build.0 = Release|x64\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.All|Win32.ActiveCfg = Release|x64\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.All|x64.ActiveCfg = Release|x64\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.All|x64.Build.0 = Release|x64\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Debug|x64.Build.0 = Debug|x64\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Debug|x86 Setup.ActiveCfg = Debug|x64\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|Win32.Build.0 = Release|Win32\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x64.ActiveCfg = Release|x64\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x64.Build.0 = Release|x64\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|Win32.ActiveCfg = Release|x64\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|x64.ActiveCfg = Release|x64\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|x64.Build.0 = Release|x64\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|x64.Build.0 = Debug|x64\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|x86 Setup.ActiveCfg = Debug|x64\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|Win32.Build.0 = Release|Win32\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x64.ActiveCfg = Release|x64\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x64.Build.0 = Release|x64\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|Win32.ActiveCfg = Release|x64\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x64.ActiveCfg = Release|x64\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x64.Build.0 = Release|x64\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|x64.Build.0 = Debug|x64\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|x86 Setup.ActiveCfg = Debug|x64\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|Win32.Build.0 = Release|Win32\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x64.ActiveCfg = Release|x64\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x64.Build.0 = Release|x64\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|Win32.ActiveCfg = Release|x64\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64.ActiveCfg = Release|x64\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64.Build.0 = Release|x64\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x86 Setup.ActiveCfg = Debug|x64\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x64.ActiveCfg = Release|x64\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x86 Setup.ActiveCfg = Release|x64\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|Win32.ActiveCfg = Release|x64\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64.ActiveCfg = Release|x64\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64.Build.0 = Release|x64\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x86 Setup.ActiveCfg = Debug|x64\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x64.ActiveCfg = Release|x64\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x86 Setup.ActiveCfg = Release|x64\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.All|Win32.ActiveCfg = Release|Win32\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.All|Win32.Build.0 = Release|Win32\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.All|x64.ActiveCfg = Release|Win32\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x64.Build.0 = Debug|x64\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|Win32.Build.0 = Release|Win32\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x64.ActiveCfg = Release|x64\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x64.Build.0 = Release|x64\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|Win32.ActiveCfg = Release|x64\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x64.ActiveCfg = Release|x64\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x64.Build.0 = Release|x64\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x64 Setup.ActiveCfg = Release|x64\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x86 Setup.ActiveCfg = Release|x64\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|x64.Build.0 = Debug|x64\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|x64 Setup.ActiveCfg = Debug|x64\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|x86 Setup.ActiveCfg = Debug|x64\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|Win32.Build.0 = Release|Win32\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|x64.ActiveCfg = Release|x64\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|x64.Build.0 = Release|x64\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|x64 Setup.ActiveCfg = Release|x64\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|x86 Setup.ActiveCfg = Release|x64\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|Win32.ActiveCfg = Release|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|Win32.Build.0 = Release|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|x64.ActiveCfg = Release|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|x64.ActiveCfg = Debug|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|x64.Build.0 = Debug|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|x64 Setup.ActiveCfg = Debug|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|x86 Setup.ActiveCfg = Debug|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|Win32.Build.0 = Release|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|x64.ActiveCfg = Release|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|x64.Build.0 = Release|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|Win32.ActiveCfg = Release|Win32\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|Win32.Build.0 = Release|Win32\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|x64.ActiveCfg = Release|Win32\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|x64 Setup.ActiveCfg = Release|Win32\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|x86 Setup.ActiveCfg = Release|Win32\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x64.Build.0 = Debug|x64\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x64 Setup.ActiveCfg = Release|Win32\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x86 Setup.ActiveCfg = Release|Win32\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|Win32.Build.0 = Release|Win32\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|x64.ActiveCfg = Release|x64\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|x64.Build.0 = Release|x64\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|x64 Setup.ActiveCfg = Release|Win32\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|x86 Setup.ActiveCfg = Release|Win32\r
+-      EndGlobalSection\r
+-      GlobalSection(SolutionProperties) = preSolution\r
+-              HideSolutionNode = FALSE\r
+-      EndGlobalSection\r
+-      GlobalSection(NestedProjects) = preSolution\r
+-              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {5580D60E-0F77-4716-9CD4-B8E5986FA375} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {D3EC0AFF-76FC-4210-A825-9A17410660A3} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {8DEB383C-4091-4F42-A56F-C9E46D552D79} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {2C3C2423-234B-4772-8899-D3B137E5CA35} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {0B6C905B-142E-4999-B39D-92FF7951E921} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {D5C87B19-150D-4EF3-A671-96589BD2D14A} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {4D418176-3B33-47E6-A63E-01BA34ADD21C} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {AFA983D6-4569-4F88-BA94-555ED00FD9A8} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
+-              {5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {0DF3ABD0-DDC0-4265-B778-07C66780979B} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {B3F424EC-3D8F-417C-B244-3919D5E1A577} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {05C9FB27-480E-4D53-B3B7-6338E2526666} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {CC1DD008-9406-448D-A0AD-33C3186CFADB} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {48414740-C693-4968-9846-EE058020C64F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {05C9FB27-480E-4D53-B3B7-7338E2514666} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {74B120FF-6935-4DFE-A142-CDB6BEA99C90} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
+-              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {C24FB505-05D7-4319-8485-7540B44C8603} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {B5881A85-FE70-4F64-8607-2CAAE52669C6} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {71A967D5-0E99-4CEF-A587-98836EE6F2EF} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {3850D93A-5F24-4922-BC1C-74D08C37C256} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {D7F1E3F2-A3F4-474C-8555-15122571AF52} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {F6A33240-8F29-48BD-98F0-826995911799} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {65A6273D-FCAB-4C55-B09E-65100141A5D4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {E3246D17-E29B-4AB5-962A-C69B0C5837BB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {14E4A972-9CFB-436D-B0A5-4943F3F80D47} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {3C977801-FE88-48F2-83D3-FA2EBFF6688E} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {432DB165-1EB2-4781-A9C0-71E62610B20A} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {990BAA76-89D3-4E38-8479-C7B28784EFC8} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {1E21AFE0-6FDB-41D2-942D-863607C24B91} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {B889A18E-70A7-44B5-B2C9-47798D4F43B3} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {50AAC2CE-BFC9-4912-87CC-C6381850D735} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {4748FF56-CA85-4809-97D6-A94C0FAC1D77} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {2469B306-B027-4FF2-8815-C9C1EA2CAE79} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
+-              {07113B25-D3AF-4E04-BA77-4CD1171F022C} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}\r
+-              {A27CCA23-1541-4337-81A4-F0A6413078A0} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}\r
+-              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}\r
+-              {784113EF-44D9-4949-835D-7065D3C7AD08} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}\r
+-              {05515420-16DE-4E63-BE73-85BE85BA5142} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}\r
+-              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}\r
+-              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6} = {A5A27244-AD24-46E5-B01B-840CD296C91D}\r
+-              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7} = {A5A27244-AD24-46E5-B01B-840CD296C91D}\r
+-              {2CA40887-1622-46A1-A7F9-17FD7E7E545B} = {A5A27244-AD24-46E5-B01B-840CD296C91D}\r
+-              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52} = {A5A27244-AD24-46E5-B01B-840CD296C91D}\r
+-              {38FE0559-9910-43A8-9E45-3E5004C27692} = {A5A27244-AD24-46E5-B01B-840CD296C91D}\r
+-              {CBD81696-EFB4-4D2F-8451-1B8DAA86155A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {62F27B1A-C919-4A70-8478-51F178F3B18F} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {89385C74-5860-4174-9CAF-A39E7C48909C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {1906D736-08BD-4EE1-924F-B536249B9A54} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {8D04B550-D240-4A44-8A18-35DA3F7038D9} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {1CED5987-A529-46DC-B30F-870D85FF9C94} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {3D0370CA-BED2-4657-A475-32375CBCB6E4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {155844C3-EC5F-407F-97A4-A2DDADED9B2F} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {4043FC6A-9A30-4577-8AD5-9B233C9575D8} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {0A18A071-125E-442F-AFF7-A3F68ABECF99} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {0D108721-EAE8-4BAF-8102-D8960EC93647} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {B535402E-38D2-4D54-8360-423ACBD17192} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {94001A0E-A837-445C-8004-F918F10D0226} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {0AD1177E-1FD8-4643-9391-431467A11084} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {E316772F-5D8F-4F2A-8F71-094C3E859D34} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {419C8F80-D858-4B48-A25C-AF4007608137} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {CF405366-9558-4AE8-90EF-5E21B51CCB4E} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {03207781-0D1C-4DB3-A71D-45C608F28DBD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {9A5DDF08-C88C-4A35-B7F6-D605228446BD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {D0B36172-CD76-454A-9B89-990025266C2A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {DEE932AB-5911-4700-9EEB-8C7090A0A330} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {329A6FA0-0FCC-4435-A950-E670AEFA9838} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {CF70F278-3364-4395-A2E1-23501C9B8AD2} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {ABB71A76-42B0-47A4-973A-42E3D920C6FD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {9778F1C0-09BC-4698-8EBC-BD982247209A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {56B91D01-9150-4BBF-AFA1-5B68AB991B76} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {E4D29906-8B73-4F8A-B5F4-CA8BFA648F5A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {23B4D303-79FC-49E0-89E2-2280E7E28940} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {C13CC324-0032-4492-9A30-310A6BD64FF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}\r
+-              {EC3E5C7F-EE09-47E2-80FE-546363D14A98} = {B8F5B47B-8568-46EB-B320-64C17D2A98BC}\r
+-              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {8F992C49-6C51-412F-B2A3-34EAB708EB65} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {028C7278-05D7-4E18-82FE-BE231B844F41} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {36E854E3-CE12-4348-A125-CCF3F9D74813} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {7B077E7F-1BE7-4291-AB86-55E527B25CAC} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+-              {692F6330-4D87-4C82-81DF-40DB5892636E} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}\r
+-              {2286DA73-9FC5-45BC-A508-85994C3317AB} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}\r
+-              {66444AEE-554C-11DD-A9F0-8C5D56D89593} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}\r
+-              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}\r
+-              {1C453396-D912-4213-89FD-9B489162B7B5} = {A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}\r
+-              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909} = {A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}\r
+-              {CBEC7225-0C21-4DA8-978E-1F158F8AD950} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}\r
+-              {AB91A099-7690-4ECF-8994-E458F4EA1ED4} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}\r
+-              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}\r
+-              {1A1FF289-4FD6-4285-A422-D31DD67A4723} = {CBD81696-EFB4-4D2F-8451-1B8DAA86155A}\r
+-              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {4F92B672-DADB-4047-8D6A-4BB3796733FD} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {2DEE4895-1134-439C-B688-52203E57D878} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {3CE1DC99-8246-4DB1-A709-74F19F08EC67} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {87A1FE3D-F410-4C8E-9591-8C625985BC70} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {E796E337-DE78-4303-8614-9A590862EE95} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {1F0A8A77-E661-418F-BB92-82172AE43803} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {4F5C9D55-98EF-4256-8311-32D7BD360406} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {E10571C4-E7F4-4608-B5F2-B22E7EB95400} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {B808178B-82F0-4CF4-A2B1-921939FA24D0} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {D578E676-7EC8-4548-BD8B-845C635F14AD} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {652AD5F7-8488-489F-AAD0-7FBE064703B6} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+-              {988CACF7-3FCB-4992-BE69-77872AE67DC8} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {5BC072DB-3826-48EA-AF34-FE32AA01E83B} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {FA429E98-8B03-45E6-A096-A4BC5E821DE4} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {06E3A538-AB32-44F2-B477-755FF9CB5D37} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {7C22BDFF-CC09-400C-8A09-660733980028} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}\r
+-              {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0} = {57D119DC-484F-420F-B9E9-8589FD9A8DF8}\r
+-              {3C90CCF0-2CDD-4A7A-ACFF-208C1E271692} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}\r
+-              {C7E2382E-2C22-4D18-BF93-80C6A1FFA7AC} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}\r
+-              {FC71C66E-E268-4EAD-B1F5-F008DC382E83} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}\r
+-              {8E2E8798-8B6F-4A55-8E4F-4E6FDE40ED26} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}\r
+-              {09455AA9-C243-4F16-A1A1-A016881A2765} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}\r
+-              {CDE9B06A-3C27-4987-8FAE-DF1006BC705D} = {DB1024A8-41BF-4AD7-9AE6-13202230D1F3}\r
+-              {57199684-EC63-4A60-9DC6-11815AF6B413} = {09455AA9-C243-4F16-A1A1-A016881A2765}\r
+-              {2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C} = {09455AA9-C243-4F16-A1A1-A016881A2765}\r
+-              {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5} = {09455AA9-C243-4F16-A1A1-A016881A2765}\r
+-              {765EF1B9-5027-4820-BC37-A44466A51631} = {57199684-EC63-4A60-9DC6-11815AF6B413}\r
+-              {713E4747-1126-40B1-BD84-58F9A7745423} = {57199684-EC63-4A60-9DC6-11815AF6B413}\r
+-              {D3E5C8ED-3A6A-4FEA-92A2-48A0BA865358} = {2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C}\r
+-              {CC3E7F48-2590-49CB-AD8B-BE3650F55462} = {2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C}\r
+-              {F1B71990-EB04-4EB5-B28A-BC3EB6F7E843} = {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5}\r
+-              {3DAF028C-AB5B-4183-A01B-DCC43F5A87F0} = {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5}\r
+-              {7A8D8174-B355-4114-AFC1-04777CB9DE0A} = {4F227C26-768F-46A3-8684-1D08A46FB374}\r
+-              {7EB71250-F002-4ED8-92CA-CA218114537A} = {4F227C26-768F-46A3-8684-1D08A46FB374}\r
+-              {464AAB78-5489-4916-BE51-BF8D61822311} = {4F227C26-768F-46A3-8684-1D08A46FB374}\r
+-              {D1ABE208-6442-4FB4-9AAD-1677E41BC870} = {4F227C26-768F-46A3-8684-1D08A46FB374}\r
+-              {BA599D0A-4310-4505-91DA-6A6447B3E289} = {4F227C26-768F-46A3-8684-1D08A46FB374}\r
+-              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959} = {4F227C26-768F-46A3-8684-1D08A46FB374}\r
+-              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {B5A00BFA-6083-4FAE-A097-71642D6473B5} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {1C320193-46A6-4B34-9C56-8AB584FC1B56} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {72782932-37CC-46AE-8C7F-9A7B1A6EE108} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {12A49562-BAB9-43A3-A21D-15B60BBB4C31} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {504B3154-7A4F-459D-9877-B951021C3F1F} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {746F3632-5BB2-4570-9453-31D6D58A7D8E} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {DEB01ACB-D65F-4A62-AED9-58C1054499E9} = {62F27B1A-C919-4A70-8478-51F178F3B18F}\r
+-              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {E4D29906-8B73-4F8A-B5F4-CA8BFA648F5A}\r
+-              {B4B62169-5AD4-4559-8707-3D933AC5DB39} = {E4D29906-8B73-4F8A-B5F4-CA8BFA648F5A}\r
+-              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79} = {E4D29906-8B73-4F8A-B5F4-CA8BFA648F5A}\r
+-      EndGlobalSection\r
+-EndGlobal\r
++
++Microsoft Visual Studio Solution File, Format Version 11.00
++# Visual Studio 2010
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Codecs", "Codecs", "{F881ADA2-2F1A-4046-9FEB-191D9422D781}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Endpoints", "Endpoints", "{9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Applications", "Applications", "{E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dialplans", "Dialplans", "{C5F182F9-754A-4EC5-B50F-76ED02BE13F4}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Event Handlers", "Event Handlers", "{9ADF1E48-2F5C-4ED7-A893-596259FABFE0}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Formats", "Formats", "{A5A27244-AD24-46E5-B01B-840CD296C91D}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{CBD81696-EFB4-4D2F-8451-1B8DAA86155A}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Directories", "Directories", "{B8F5B47B-8568-46EB-B320-64C17D2A98BC}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Languages", "Languages", "{0C808854-54D1-4230-BFF5-77B5FD905000}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ASR-TTS", "ASR-TTS", "{4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Loggers", "Loggers", "{A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XML Interfaces", "XML Interfaces", "{F69A4A6B-9360-4EBB-A280-22AA3C455AC5}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Libraries", "_Libraries", "{EB910B0D-F27D-4B62-B67B-DE834C99AC5B}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Downloads", "_Downloads", "{C120A020-773F-4EA3-923F-B67AF28B750D}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "say", "say", "{6CD61A1D-797C-470A-BE08-8C31B68BB336}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Config", "_Config", "{57D119DC-484F-420F-B9E9-8589FD9A8DF8}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Default", "Default", "{3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\freeswitch.xml = conf\vanilla\freeswitch.xml
++              conf\vanilla\vars.xml = conf\vanilla\vars.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Build System", "_Build System", "{DB1024A8-41BF-4AD7-9AE6-13202230D1F3}"
++      ProjectSection(SolutionItems) = preProject
++              acsite.m4 = acsite.m4
++              bootstrap.sh = bootstrap.sh
++              build\buildlib.sh = build\buildlib.sh
++              configure.in = configure.in
++              Makefile.am = Makefile.am
++              build\modmake.rules.in = build\modmake.rules.in
++              build\modules.conf.in = build\modules.conf.in
++              libs\win32\util.vbs = libs\win32\util.vbs
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "m4", "m4", "{CDE9B06A-3C27-4987-8FAE-DF1006BC705D}"
++      ProjectSection(SolutionItems) = preProject
++              build\config\ac_cflags_gcc_option.m4 = build\config\ac_cflags_gcc_option.m4
++              build\config\ac_cflags_sun_option.m4 = build\config\ac_cflags_sun_option.m4
++              build\config\ac_gcc_archflag.m4 = build\config\ac_gcc_archflag.m4
++              build\config\ac_gcc_x86_cpuid.m4 = build\config\ac_gcc_x86_cpuid.m4
++              build\config\ac_prog_gzip.m4 = build\config\ac_prog_gzip.m4
++              build\config\ac_prog_wget.m4 = build\config\ac_prog_wget.m4
++              build\config\ax_cc_maxopt.m4 = build\config\ax_cc_maxopt.m4
++              build\config\ax_cflags_warn_all_ansi.m4 = build\config\ax_cflags_warn_all_ansi.m4
++              build\config\ax_check_compiler_flags.m4 = build\config\ax_check_compiler_flags.m4
++              build\config\ax_compiler_vendor.m4 = build\config\ax_compiler_vendor.m4
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "autoload_configs", "autoload_configs", "{3C90CCF0-2CDD-4A7A-ACFF-208C1E271692}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\autoload_configs\alsa.conf.xml = conf\vanilla\autoload_configs\alsa.conf.xml
++              conf\vanilla\autoload_configs\conference.conf.xml = conf\vanilla\autoload_configs\conference.conf.xml
++              conf\vanilla\autoload_configs\console.conf.xml = conf\vanilla\autoload_configs\console.conf.xml
++              conf\vanilla\autoload_configs\dialplan_directory.conf.xml = conf\vanilla\autoload_configs\dialplan_directory.conf.xml
++              conf\vanilla\autoload_configs\dingaling.conf.xml = conf\vanilla\autoload_configs\dingaling.conf.xml
++              conf\vanilla\autoload_configs\enum.conf.xml = conf\vanilla\autoload_configs\enum.conf.xml
++              conf\vanilla\autoload_configs\event_multicast.conf.xml = conf\vanilla\autoload_configs\event_multicast.conf.xml
++              conf\vanilla\autoload_configs\event_socket.conf.xml = conf\vanilla\autoload_configs\event_socket.conf.xml
++              conf\vanilla\autoload_configs\ivr.conf.xml = conf\vanilla\autoload_configs\ivr.conf.xml
++              conf\vanilla\autoload_configs\java.conf.xml = conf\vanilla\autoload_configs\java.conf.xml
++              conf\vanilla\autoload_configs\limit.conf.xml = conf\vanilla\autoload_configs\limit.conf.xml
++              conf\vanilla\autoload_configs\local_stream.conf.xml = conf\vanilla\autoload_configs\local_stream.conf.xml
++              conf\vanilla\autoload_configs\logfile.conf.xml = conf\vanilla\autoload_configs\logfile.conf.xml
++              conf\vanilla\autoload_configs\modules.conf.xml = conf\vanilla\autoload_configs\modules.conf.xml
++              conf\vanilla\autoload_configs\openmrcp.conf.xml = conf\vanilla\autoload_configs\openmrcp.conf.xml
++              conf\vanilla\autoload_configs\portaudio.conf.xml = conf\vanilla\autoload_configs\portaudio.conf.xml
++              conf\vanilla\autoload_configs\rss.conf.xml = conf\vanilla\autoload_configs\rss.conf.xml
++              conf\vanilla\autoload_configs\sofia.conf.xml = conf\vanilla\autoload_configs\sofia.conf.xml
++              conf\vanilla\autoload_configs\spidermonkey.conf.xml = conf\vanilla\autoload_configs\spidermonkey.conf.xml
++              conf\vanilla\autoload_configs\switch.conf.xml = conf\vanilla\autoload_configs\switch.conf.xml
++              conf\vanilla\autoload_configs\syslog.conf.xml = conf\vanilla\autoload_configs\syslog.conf.xml
++              conf\vanilla\autoload_configs\voicemail.conf.xml = conf\vanilla\autoload_configs\voicemail.conf.xml
++              conf\vanilla\autoload_configs\wanpipe.conf.xml = conf\vanilla\autoload_configs\wanpipe.conf.xml
++              conf\vanilla\autoload_configs\woomera.conf.xml = conf\vanilla\autoload_configs\woomera.conf.xml
++              conf\vanilla\autoload_configs\xml_cdr.conf.xml = conf\vanilla\autoload_configs\xml_cdr.conf.xml
++              conf\vanilla\autoload_configs\xml_curl.conf.xml = conf\vanilla\autoload_configs\xml_curl.conf.xml
++              conf\vanilla\autoload_configs\xml_rpc.conf.xml = conf\vanilla\autoload_configs\xml_rpc.conf.xml
++              conf\vanilla\autoload_configs\zeroconf.conf.xml = conf\vanilla\autoload_configs\zeroconf.conf.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dialplan", "dialplan", "{C7E2382E-2C22-4D18-BF93-80C6A1FFA7AC}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\dialplan\default.xml = conf\vanilla\dialplan\default.xml
++              conf\vanilla\dialplan\public.xml = conf\vanilla\dialplan\public.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "directory", "directory", "{FC71C66E-E268-4EAD-B1F5-F008DC382E83}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\directory\default.xml = conf\vanilla\directory\default.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sip_profiles", "sip_profiles", "{8E2E8798-8B6F-4A55-8E4F-4E6FDE40ED26}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\sip_profiles\external.xml = conf\vanilla\sip_profiles\external.xml
++              conf\vanilla\sip_profiles\internal.xml = conf\vanilla\sip_profiles\internal.xml
++              conf\vanilla\sip_profiles\nat.xml = conf\vanilla\sip_profiles\nat.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lang", "lang", "{09455AA9-C243-4F16-A1A1-A016881A2765}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\directory\default.xml = conf\vanilla\directory\default.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "en", "en", "{57199684-EC63-4A60-9DC6-11815AF6B413}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\en\en.xml = conf\vanilla\lang\en\en.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "de", "de", "{2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\de\de.xml = conf\vanilla\lang\de\de.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "fr", "fr", "{D4A12E4C-DBDA-4614-BA26-3425AE9F60F5}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\fr\fr.xml = conf\vanilla\lang\fr\fr.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{D3E5C8ED-3A6A-4FEA-92A2-48A0BA865358}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\de\demo\demo.xml = conf\vanilla\lang\de\demo\demo.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{CC3E7F48-2590-49CB-AD8B-BE3650F55462}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\de\vm\tts.xml = conf\vanilla\lang\de\vm\tts.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{765EF1B9-5027-4820-BC37-A44466A51631}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\en\demo\demo.xml = conf\vanilla\lang\en\demo\demo.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{713E4747-1126-40B1-BD84-58F9A7745423}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\en\vm\sounds.xml = conf\vanilla\lang\en\vm\sounds.xml
++              conf\vanilla\lang\en\vm\tts.xml = conf\vanilla\lang\en\vm\tts.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{F1B71990-EB04-4EB5-B28A-BC3EB6F7E843}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\fr\demo\demo.xml = conf\vanilla\lang\fr\demo\demo.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{3DAF028C-AB5B-4183-A01B-DCC43F5A87F0}"
++      ProjectSection(SolutionItems) = preProject
++              conf\vanilla\lang\fr\vm\sounds.xml = conf\vanilla\lang\fr\vm\sounds.xml
++      EndProjectSection
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sound Files", "Sound Files", "{4F227C26-768F-46A3-8684-1D08A46FB374}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "unimrcp", "unimrcp", "{62F27B1A-C919-4A70-8478-51F178F3B18F}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchConsole", "w32\Console\FreeSwitchConsole.2010.vcxproj", "{1AF3A893-F7BE-43DD-B697-8AB2397C0D67}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchCoreLib", "w32\Library\FreeSwitchCore.2010.vcxproj", "{202D7A4E-760D-4D0E-AFA1-D7459CED30FF}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g729", "src\mod\codecs\mod_g729\mod_g729.2010.vcxproj", "{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sndfile", "src\mod\formats\mod_sndfile\mod_sndfile.2010.vcxproj", "{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.2010.vcxproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_speex", "src\mod\codecs\mod_speex\mod_speex.2010.vcxproj", "{5580D60E-0F77-4716-9CD4-B8E5986FA375}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "docs", "docs\docs.2010.vcxproj", "{1A1FF289-4FD6-4285-A422-D31DD67A4723}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_xml", "src\mod\dialplans\mod_dialplan_xml\mod_dialplan_xml.2010.vcxproj", "{07113B25-D3AF-4E04-BA77-4CD1171F022C}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ldap", "src\mod\directories\mod_ldap\mod_ldap.2010.vcxproj", "{EC3E5C7F-EE09-47E2-80FE-546363D14A98}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_directory", "src\mod\dialplans\mod_dialplan_directory\mod_dialplan_directory.2010.vcxproj", "{A27CCA23-1541-4337-81A4-F0A6413078A0}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_event_multicast", "src\mod\event_handlers\mod_event_multicast\mod_event_multicast.2010.vcxproj", "{784113EF-44D9-4949-835D-7065D3C7AD08}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libteletone", "libs\libteletone\libteletone.2010.vcxproj", "{89385C74-5860-4174-9CAF-A39E7C48909C}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey", "src\mod\languages\mod_spidermonkey\mod_spidermonkey.2010.vcxproj", "{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cepstral", "src\mod\asr_tts\mod_cepstral\mod_cepstral.2010.vcxproj", "{692F6330-4D87-4C82-81DF-40DB5892636E}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ilbc", "src\mod\codecs\mod_ilbc\mod_ilbc.2010.vcxproj", "{D3EC0AFF-76FC-4210-A825-9A17410660A3}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dingaling", "src\mod\endpoints\mod_dingaling\mod_dingaling.2010.vcxproj", "{FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_commands", "src\mod\applications\mod_commands\mod_commands.2010.vcxproj", "{30A5B29C-983E-4580-9FD0-D647CCDCC7EB}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_console", "src\mod\loggers\mod_console\mod_console.2010.vcxproj", "{1C453396-D912-4213-89FD-9B489162B7B5}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_rpc", "src\mod\xml_int\mod_xml_rpc\mod_xml_rpc.2010.vcxproj", "{CBEC7225-0C21-4DA8-978E-1F158F8AD950}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rss", "src\mod\applications\mod_rss\mod_rss.2010.vcxproj", "{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_conference", "src\mod\applications\mod_conference\mod_conference.2010.vcxproj", "{C24FB505-05D7-4319-8485-7540B44C8603}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dptools", "src\mod\applications\mod_dptools\mod_dptools.2010.vcxproj", "{B5881A85-FE70-4F64-8607-2CAAE52669C6}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_event_socket", "src\mod\event_handlers\mod_event_socket\mod_event_socket.2010.vcxproj", "{05515420-16DE-4E63-BE73-85BE85BA5142}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdingaling", "libs\libdingaling\libdingaling.2010.vcxproj", "{1906D736-08BD-4EE1-924F-B536249B9A54}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsrtp", "libs\srtp\libsrtp.2010.vcxproj", "{EEF031CB-FED8-451E-A471-91EC8D4F6750}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsqlite", "libs\win32\sqlite\sqlite.2010.vcxproj", "{6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpcre", "libs\win32\pcre\libpcre.2010.vcxproj", "{8D04B550-D240-4A44-8A18-35DA3F7038D9}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpcre Generate pcre_chartables.c", "libs\win32\pcre\pcre_chartables.c.2010.vcxproj", "{1CED5987-A529-46DC-B30F-870D85FF9C94}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libapr", "libs\win32\apr\libapr.2010.vcxproj", "{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libaprutil", "libs\win32\apr-util\libaprutil.2010.vcxproj", "{F057DA7F-79E5-4B00-845C-EF446EF055E3}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iksemel", "libs\win32\iksemel\iksemel.2010.vcxproj", "{E727E8F6-935D-46FE-8B0E-37834748A0E3}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsndfile", "libs\win32\libsndfile\libsndfile.2010.vcxproj", "{3D0370CA-BED2-4657-A475-32375CBCB6E4}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "curllib", "libs\win32\curl\curllib.2010.vcxproj", "{87EE9DA4-DE1E-4448-8324-183C98DCA588}"
++      ProjectSection(ProjectDependencies) = postProject
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79} = {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "libs\win32\apr-util\xml.2010.vcxproj", "{155844C3-EC5F-407F-97A4-A2DDADED9B2F}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "js", "libs\win32\js\js.2010.vcxproj", "{204FA0DE-305D-4414-AE2E-F195A23F390D}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sofia", "src\mod\endpoints\mod_sofia\mod_sofia.2010.vcxproj", "{0DF3ABD0-DDC0-4265-B778-07C66780979B}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download PTHREAD", "libs\win32\Download PTHREAD.2010.vcxproj", "{8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pthread", "libs\win32\pthread\pthread.2010.vcxproj", "{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g723_1", "src\mod\codecs\mod_g723_1\mod_g723_1.2010.vcxproj", "{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_iSAC", "src\mod\codecs\mod_isac\mod_iSAC.2010.vcxproj", "{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_native_file", "src\mod\formats\mod_native_file\mod_native_file.2010.vcxproj", "{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_core_db", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_core_db.2010.vcxproj", "{ACFFF684-4D19-4D48-AF12-88EA1D778BDF}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_teletone", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_teletone.2010.vcxproj", "{8F992C49-6C51-412F-B2A3-34EAB708EB65}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libudns", "libs\win32\udns\libudns.2010.vcxproj", "{4043FC6A-9A30-4577-8AD5-9B233C9575D8}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_enum", "src\mod\applications\mod_enum\mod_enum.2010.vcxproj", "{71A967D5-0E99-4CEF-A587-98836EE6F2EF}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_odbc", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_odbc.2010.vcxproj", "{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_curl", "src\mod\xml_int\mod_xml_curl\mod_xml_curl.2010.vcxproj", "{AB91A099-7690-4ECF-8994-E458F4EA1ED4}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_en", "src\mod\say\mod_say_en\mod_say_en.2010.vcxproj", "{988CACF7-3FCB-4992-BE69-77872AE67DC8}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portaudio", "libs\portaudio\build\msvc\portaudio.2010.vcxproj", "{0A18A071-125E-442F-AFF7-A3F68ABECF99}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_cdr", "src\mod\xml_int\mod_xml_cdr\mod_xml_cdr.2010.vcxproj", "{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_amr", "src\mod\codecs\mod_amr\mod_amr.2010.vcxproj", "{8DEB383C-4091-4F42-A56F-C9E46D552D79}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_h26x", "src\mod\codecs\mod_h26x\mod_h26x.2010.vcxproj", "{2C3C2423-234B-4772-8899-D3B137E5CA35}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_esf", "src\mod\applications\mod_esf\mod_esf.2010.vcxproj", "{3850D93A-5F24-4922-BC1C-74D08C37C256}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_local_stream", "src\mod\formats\mod_local_stream\mod_local_stream.2010.vcxproj", "{2CA40887-1622-46A1-A7F9-17FD7E7E545B}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_socket", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_socket.2010.vcxproj", "{028C7278-05D7-4E18-82FE-BE231B844F41}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_voicemail", "src\mod\applications\mod_voicemail\mod_voicemail.2010.vcxproj", "{D7F1E3F2-A3F4-474C-8555-15122571AF52}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_de", "src\mod\say\mod_say_de\mod_say_de.2010.vcxproj", "{5BC072DB-3826-48EA-AF34-FE32AA01E83B}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_es", "src\mod\say\mod_say_es\mod_say_es.2010.vcxproj", "{FA429E98-8B03-45E6-A096-A4BC5E821DE4}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_fr", "src\mod\say\mod_say_fr\mod_say_fr.2010.vcxproj", "{06E3A538-AB32-44F2-B477-755FF9CB5D37}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_it", "src\mod\say\mod_say_it\mod_say_it.2010.vcxproj", "{6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_nl", "src\mod\say\mod_say_nl\mod_say_nl.2010.vcxproj", "{A4B122CF-5196-476B-8C0E-D8BD59AC3C14}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_fifo", "src\mod\applications\mod_fifo\mod_fifo.2010.vcxproj", "{75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_db", "src\mod\applications\mod_db\mod_db.2010.vcxproj", "{F6A33240-8F29-48BD-98F0-826995911799}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_expr", "src\mod\applications\mod_expr\mod_expr.2010.vcxproj", "{65A6273D-FCAB-4C55-B09E-65100141A5D4}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_asterisk", "src\mod\dialplans\mod_dialplan_asterisk\mod_dialplan_asterisk.2010.vcxproj", "{E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_logfile", "src\mod\loggers\mod_logfile\mod_logfile.2010.vcxproj", "{D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cdr_csv", "src\mod\event_handlers\mod_cdr_csv\mod_cdr_csv.2010.vcxproj", "{44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_tone_stream", "src\mod\formats\mod_tone_stream\mod_tone_stream.2010.vcxproj", "{6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_fsv", "src\mod\applications\mod_fsv\mod_fsv.2010.vcxproj", "{E3246D17-E29B-4AB5-962A-C69B0C5837BB}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_curl", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_curl.2010.vcxproj", "{36E854E3-CE12-4348-A125-CCF3F9D74813}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_lua", "src\mod\languages\mod_lua\mod_lua.2010.vcxproj", "{7B077E7F-1BE7-4291-AB86-55E527B25CAC}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download sphinxbase", "libs\win32\Download sphinxbase.2010.vcxproj", "{4F92B672-DADB-4047-8D6A-4BB3796733FD}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download sphinxmodel", "libs\win32\Download sphinxmodel.2010.vcxproj", "{2DEE4895-1134-439C-B688-52203E57D878}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download pocketsphinx", "libs\win32\Download pocketsphinx.2010.vcxproj", "{AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sphinxbase", "libs\win32\sphinxbase\sphinxbase.2010.vcxproj", "{2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pocketsphinx", "libs\win32\pocketsphinx\pocketsphinx.2010.vcxproj", "{94001A0E-A837-445C-8004-F918F10D0226}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_pocketsphinx", "src\mod\asr_tts\mod_pocketsphinx\mod_pocketsphinx.2010.vcxproj", "{2286DA73-9FC5-45BC-A508-85994C3317AB}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 8khzsound", "libs\win32\Download 8khz Sounds.2010.vcxproj", "{3CE1DC99-8246-4DB1-A709-74F19F08EC67}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 16khzsound", "libs\win32\Download 16khz Sounds.2010.vcxproj", "{87A1FE3D-F410-4C8E-9591-8C625985BC70}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "8khz", "libs\win32\Sound_Files\8khz.2010.vcxproj", "{7A8D8174-B355-4114-AFC1-04777CB9DE0A}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "16khz", "libs\win32\Sound_Files\16khz.2010.vcxproj", "{7EB71250-F002-4ED8-92CA-CA218114537A}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 32khzsound", "libs\win32\Dowload 32khz Sounds.2010.vcxproj", "{6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "32khz", "libs\win32\Sound_Files\32khz.2010.vcxproj", "{464AAB78-5489-4916-BE51-BF8D61822311}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flite", "libs\win32\flite\flite.2010.vcxproj", "{0AD1177E-1FD8-4643-9391-431467A11084}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_flite", "src\mod\asr_tts\mod_flite\mod_flite.2010.vcxproj", "{66444AEE-554C-11DD-A9F0-8C5D56D89593}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download FLITE", "libs\win32\Download FLITE.2010.vcxproj", "{D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download LAME", "libs\win32\Download LAME.2010.vcxproj", "{D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download LIBSHOUT", "libs\win32\Download LIBSHOUT.2010.vcxproj", "{D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download OGG", "libs\win32\Download OGG.2010.vcxproj", "{D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmp3lame", "libs\win32\libmp3lame\libmp3lame.2010.vcxproj", "{E316772F-5D8F-4F2A-8F71-094C3E859D34}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libshout", "libs\win32\libshout\libshout.vcxproj", "{D3D8B329-20BE-475E-9E83-653CEA0E0EF5}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_shout", "src\mod\formats\mod_shout\mod_shout.vcxproj", "{38FE0559-9910-43A8-9E45-3E5004C27692}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libogg", "libs\win32\libogg\libogg.2010.vcxproj", "{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_snom", "src\mod\applications\mod_snom\mod_snom.2010.vcxproj", "{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_zh", "src\mod\say\mod_say_zh\mod_say_zh.2010.vcxproj", "{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_managed", "src\mod\languages\mod_managed\mod_managed.2010.vcxproj", "{7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}"
++EndProject
++Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSWITCH.Managed.2010", "src\mod\languages\mod_managed\managed\FreeSWITCH.Managed.2010.csproj", "{834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download mpg123", "libs\win32\Download mpg123.2010.vcxproj", "{E796E337-DE78-4303-8614-9A590862EE95}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmpg123", "libs\win32\mpg123\libmpg123.2010.vcxproj", "{419C8F80-D858-4B48-A25C-AF4007608137}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_loopback", "src\mod\endpoints\mod_loopback\mod_loopback.2010.vcxproj", "{B3F424EC-3D8F-417C-B244-3919D5E1A577}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_vmd", "src\mod\applications\mod_vmd\mod_vmd.2010.vcxproj", "{14E4A972-9CFB-436D-B0A5-4943F3F80D47}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libg722_1", "libs\win32\libg722_1\libg722_1.vcxproj", "{1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_siren", "src\mod\codecs\mod_siren\mod_siren.2010.vcxproj", "{0B6C905B-142E-4999-B39D-92FF7951E921}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "esl", "libs\esl\src\esl.2010.vcxproj", "{CF405366-9558-4AE8-90EF-5E21B51CCB4E}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fs_cli", "libs\esl\fs_cli.2010.vcxproj", "{D2FB8043-D208-4AEE-8F18-3B5857C871B9}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_easyroute", "src\mod\applications\mod_easyroute\mod_easyroute.2010.vcxproj", "{329FD5B0-EF28-4606-86D0-F6EA21CF8E36}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_lcr", "src\mod\applications\mod_lcr\mod_lcr.2010.vcxproj", "{1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtiff", "libs\spandsp\src\libtiff.2010.vcxproj", "{401A40CD-5DB4-4E34-AC68-FA99E9FAC014}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libs\spandsp\src\libspandsp.2010.vcxproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeex", "libs\speex\win32\VS2008\libspeex\libspeex.vcxproj", "{E972C52F-9E85-4D65-B19C-031E511E9DB4}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeexdsp", "libs\speex\win32\VS2008\libspeexdsp\libspeexdsp.vcxproj", "{03207781-0D1C-4DB3-A71D-45C608F28DBD}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libilbc", "libs\ilbc\libilbc.2010.vcxproj", "{9A5DDF08-C88C-4A35-B7F6-D605228446BD}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua51", "src\mod\languages\mod_lua\lua\lua.2010.vcxproj", "{D0B36172-CD76-454A-9B89-990025266C2A}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_opal", "src\mod\endpoints\mod_opal\mod_opal_2010.vcxproj", "{05C9FB27-480E-4D53-B3B7-6338E2526666}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skinny", "src\mod\endpoints\mod_skinny\mod_skinny_2010.vcxproj", "{CC1DD008-9406-448D-A0AD-33C3186CFADB}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rtmp", "src\mod\endpoints\mod_rtmp\mod_rtmp_2010.vcxproj", "{48414740-C693-4968-9846-EE058020C64F}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_at_dictionary", "libs\spandsp\src\msvc\make_at_dictionary.2010.vcxproj", "{DEE932AB-5911-4700-9EEB-8C7090A0A330}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_modem_filter", "libs\spandsp\src\msvc\make_modem_filter.2010.vcxproj", "{329A6FA0-0FCC-4435-A950-E670AEFA9838}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skel", "src\mod\applications\mod_skel\mod_skel.2010.vcxproj", "{11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skypopen", "src\mod\endpoints\mod_skypopen\mod_skypopen.2010.vcxproj", "{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 32khz music", "libs\win32\Dowload 32khz music.2010.vcxproj", "{1F0A8A77-E661-418F-BB92-82172AE43803}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 8khz music", "libs\win32\Download 8khz music.2010.vcxproj", "{4F5C9D55-98EF-4256-8311-32D7BD360406}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 16khz music", "libs\win32\Download 16khz music.2010.vcxproj", "{E10571C4-E7F4-4608-B5F2-B22E7EB95400}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "8khz music", "libs\win32\Sound_Files\8khzmusic.2010.vcxproj", "{D1ABE208-6442-4FB4-9AAD-1677E41BC870}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "16khz music", "libs\win32\Sound_Files\16khzmusic.2010.vcxproj", "{BA599D0A-4310-4505-91DA-6A6447B3E289}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "32khz music", "libs\win32\Sound_Files\32khzmusic.2010.vcxproj", "{EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_nibblebill", "src\mod\applications\mod_nibblebill\mod_nibblebill.2010.vcxproj", "{3C977801-FE88-48F2-83D3-FA2EBFF6688E}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_ru", "src\mod\say\mod_say_ru\mod_say_ru.2010.vcxproj", "{0382E8FD-CFDC-41C0-8B03-792C7C84FC31}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_valet_parking", "src\mod\applications\mod_valet_parking\mod_valet_parking.2010.vcxproj", "{432DB165-1EB2-4781-A9C0-71E62610B20A}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbroadvoice", "libs\broadvoice\src\libbroadvoice.2010.vcxproj", "{CF70F278-3364-4395-A2E1-23501C9B8AD2}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_bv", "src\mod\codecs\mod_bv\mod_bv.2010.vcxproj", "{D5C87B19-150D-4EF3-A671-96589BD2D14A}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aprtoolkit", "libs\unimrcp\libs\apr-toolkit\aprtoolkit.2010.vcxproj", "{13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}"
++      ProjectSection(ProjectDependencies) = postProject
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F} = {155844C3-EC5F-407F-97A4-A2DDADED9B2F}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mpf", "libs\unimrcp\libs\mpf\mpf.2010.vcxproj", "{B5A00BFA-6083-4FAE-A097-71642D6473B5}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcp", "libs\unimrcp\libs\mrcp\mrcp.2010.vcxproj", "{1C320193-46A6-4B34-9C56-8AB584FC1B56}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpclient", "libs\unimrcp\libs\mrcp-client\mrcpclient.2010.vcxproj", "{72782932-37CC-46AE-8C7F-9A7B1A6EE108}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpsignaling", "libs\unimrcp\libs\mrcp-signaling\mrcpsignaling.2010.vcxproj", "{12A49562-BAB9-43A3-A21D-15B60BBB4C31}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpv2transport", "libs\unimrcp\libs\mrcpv2-transport\mrcpv2transport.2010.vcxproj", "{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unirtsp", "libs\unimrcp\libs\uni-rtsp\unirtsp.2010.vcxproj", "{504B3154-7A4F-459D-9877-B951021C3F1F}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpsofiasip", "libs\unimrcp\modules\mrcp-sofiasip\mrcpsofiasip.2010.vcxproj", "{746F3632-5BB2-4570-9453-31D6D58A7D8E}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpunirtsp", "libs\unimrcp\modules\mrcp-unirtsp\mrcpunirtsp.2010.vcxproj", "{DEB01ACB-D65F-4A62-AED9-58C1054499E9}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_unimrcp", "src\mod\asr_tts\mod_unimrcp\mod_unimrcp.2010.vcxproj", "{D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download CELT", "libs\win32\Download CELT.vcxproj", "{FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcelt", "libs\win32\celt\libcelt.vcxproj", "{ABB71A76-42B0-47A4-973A-42E3D920C6FD}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_celt", "src\mod\codecs\mod_celt\mod_celt.vcxproj", "{4D418176-3B33-47E6-A63E-01BA34ADD21C}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FSComm", "fscomm\FSComm.2010.vcxproj", "{7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_curl", "src\mod\applications\mod_curl\mod_curl.2010.vcxproj", "{EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download JSON", "libs\win32\Download JSON.2010.vcxproj", "{B808178B-82F0-4CF4-A2B1-921939FA24D0}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjson", "libs\win32\json\libjson.2010.vcxproj", "{9778F1C0-09BC-4698-8EBC-BD982247209A}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_silk", "src\mod\codecs\mod_silk\mod_silk.2010.vcxproj", "{AFA983D6-4569-4F88-BA94-555ED00FD9A8}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Silk_FIX", "libs\silk\src\Silk_FIX.2010.vcxproj", "{56B91D01-9150-4BBF-AFA1-5B68AB991B76}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_avmd", "src\mod\applications\mod_avmd\mod_avmd.2010.vcxproj", "{990BAA76-89D3-4E38-8479-C7B28784EFC8}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spandsp", "src\mod\applications\mod_spandsp\mod_spandsp.2010.vcxproj", "{1E21AFE0-6FDB-41D2-942D-863607C24B91}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_hash", "src\mod\applications\mod_hash\mod_hash.2010.vcxproj", "{2E250296-0C08-4342-9C8A-BCBDD0E7DF65}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "openssl", "openssl", "{E4D29906-8B73-4F8A-B5F4-CA8BFA648F5A}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libeay32", "libs\win32\openssl\libeay32.2010.vcxproj", "{D331904D-A00A-4694-A5A3-FCFF64AB5DBE}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssleay32", "libs\win32\openssl\ssleay32.2010.vcxproj", "{B4B62169-5AD4-4559-8707-3D933AC5DB39}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openssl", "libs\win32\openssl\openssl.2010.vcxproj", "{25BD39B1-C8BF-4676-A738-9CABD9C6BC79}"
++      ProjectSection(ProjectDependencies) = postProject
++              {D578E676-7EC8-4548-BD8B-845C635F14AD} = {D578E676-7EC8-4548-BD8B-845C635F14AD}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download OPENSSL", "libs\win32\Download OPENSSL.2010.vcxproj", "{D578E676-7EC8-4548-BD8B-845C635F14AD}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsofia_sip_ua_static", "libs\win32\sofia\libsofia_sip_ua_static.2010.vcxproj", "{70A49BC2-7500-41D0-B75D-EDCC5BE987A0}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_directory", "src\mod\applications\mod_directory\mod_directory.2010.vcxproj", "{B889A18E-70A7-44B5-B2C9-47798D4F43B3}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_h323", "src\mod\endpoints\mod_h323\mod_h323.2010.vcxproj", "{05C9FB27-480E-4D53-B3B7-7338E2514666}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_distributor", "src\mod\applications\mod_distributor\mod_distributor.2010.vcxproj", "{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}"
++EndProject
++Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Setup", "w32\Setup\Setup.wixproj", "{47213370-B933-487D-9F45-BCA26D7E2B6F}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_pt", "src\mod\say\mod_say_pt\mod_say_pt.2010.vcxproj", "{7C22BDFF-CC09-400C-8A09-660733980028}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ldns", "libs\win32\ldns\ldns-lib\ldns-lib.2010.vcxproj", "{23B4D303-79FC-49E0-89E2-2280E7E28940}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_callcenter", "src\mod\applications\mod_callcenter\mod_callcenter.2010.vcxproj", "{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_blacklist", "src\mod\applications\mod_blacklist\mod_blacklist.2010.vcxproj", "{50AAC2CE-BFC9-4912-87CC-C6381850D735}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spy", "src\mod\applications\mod_spy\mod_spy.2010.vcxproj", "{A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_httapi", "src\mod\applications\mod_httapi\mod_httapi.2010.vcxproj", "{4748FF56-CA85-4809-97D6-A94C0FAC1D77}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_abstraction", "src\mod\applications\mod_abstraction\mod_abstraction.2010.vcxproj", "{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sms", "src\mod\applications\mod_sms\mod_sms.2010.vcxproj", "{2469B306-B027-4FF2-8815-C9C1EA2CAE79}"
++EndProject
++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "xmlrpc-c", "xmlrpc-c", "{9DE35039-A8F6-4FBF-B1B6-EB527F802411}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsmlib", "src\mod\endpoints\mod_gsmopen\gsmlib\gsmlib-1.10-patched-13ubuntu\win32\gsmlib.2010.vcxproj", "{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_gsmopen", "src\mod\endpoints\mod_gsmopen\mod_gsmopen.2010.vcxproj", "{74B120FF-6935-4DFE-A142-CDB6BEA99C90}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libzrtp", "libs\libzrtp\projects\win\libzrtp.2010.vcxproj", "{C13CC324-0032-4492-9A30-310A6BD64FF5}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_redis", "src\mod\applications\mod_redis\mod_redis.2010.vcxproj", "{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download libjpeg", "libs\win32\Download libjpeg.2010.vcxproj", "{652AD5F7-8488-489F-AAD0-7FBE064703B6}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjpeg", "libs\win32\libjpeg\libjpeg.2010.vcxproj", "{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}"
++      ProjectSection(ProjectDependencies) = postProject
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6} = {652AD5F7-8488-489F-AAD0-7FBE064703B6}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "abyss", "libs\win32\xmlrpc-c\abyss.2010.vcxproj", "{D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}"
++      ProjectSection(ProjectDependencies) = postProject
++              {0D108721-EAE8-4BAF-8102-D8960EC93647} = {0D108721-EAE8-4BAF-8102-D8960EC93647}
++              {B535402E-38D2-4D54-8360-423ACBD17192} = {B535402E-38D2-4D54-8360-423ACBD17192}
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} = {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gennmtab", "libs\win32\xmlrpc-c\gennmtab.2010.vcxproj", "{BED7539C-0099-4A14-AD5D-30828F15A171}"
++      ProjectSection(ProjectDependencies) = postProject
++              {0D108721-EAE8-4BAF-8102-D8960EC93647} = {0D108721-EAE8-4BAF-8102-D8960EC93647}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmlparse", "libs\win32\xmlrpc-c\xmlparse.2010.vcxproj", "{0D108721-EAE8-4BAF-8102-D8960EC93647}"
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmlrpc", "libs\win32\xmlrpc-c\xmlrpc.2010.vcxproj", "{CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}"
++      ProjectSection(ProjectDependencies) = postProject
++              {0D108721-EAE8-4BAF-8102-D8960EC93647} = {0D108721-EAE8-4BAF-8102-D8960EC93647}
++              {B535402E-38D2-4D54-8360-423ACBD17192} = {B535402E-38D2-4D54-8360-423ACBD17192}
++      EndProjectSection
++EndProject
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmltok", "libs\win32\xmlrpc-c\xmltok.2010.vcxproj", "{B535402E-38D2-4D54-8360-423ACBD17192}"
++      ProjectSection(ProjectDependencies) = postProject
++              {BED7539C-0099-4A14-AD5D-30828F15A171} = {BED7539C-0099-4A14-AD5D-30828F15A171}
++      EndProjectSection
++EndProject
++Global
++      GlobalSection(SolutionConfigurationPlatforms) = preSolution
++              All|Win32 = All|Win32
++              All|x64 = All|x64
++              All|x64 Setup = All|x64 Setup
++              All|x86 Setup = All|x86 Setup
++              Debug|Win32 = Debug|Win32
++              Debug|x64 = Debug|x64
++              Debug|x64 Setup = Debug|x64 Setup
++              Debug|x86 Setup = Debug|x86 Setup
++              Release|Win32 = Release|Win32
++              Release|x64 = Release|x64
++              Release|x64 Setup = Release|x64 Setup
++              Release|x86 Setup = Release|x86 Setup
++      EndGlobalSection
++      GlobalSection(ProjectConfigurationPlatforms) = postSolution
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|Win32.ActiveCfg = Release|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64.ActiveCfg = Release|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64.Build.0 = Release|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64 Setup.ActiveCfg = Release|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64 Setup.Build.0 = Release|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x86 Setup.ActiveCfg = Release|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|Win32.Build.0 = Debug|Win32
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x64.ActiveCfg = Debug|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x64.Build.0 = Debug|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|Win32.ActiveCfg = Release|Win32
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|Win32.Build.0 = Release|Win32
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|x64.ActiveCfg = Release|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|x64.Build.0 = Release|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|x64 Setup.ActiveCfg = Release|x64
++              {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|Win32.ActiveCfg = Release|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64.ActiveCfg = Release|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64.Build.0 = Release|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64 Setup.ActiveCfg = Release|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64 Setup.Build.0 = Release|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x86 Setup.ActiveCfg = Release|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|Win32.ActiveCfg = Debug|Win32
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|Win32.Build.0 = Debug|Win32
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x64.ActiveCfg = Debug|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x64.Build.0 = Debug|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|Win32.ActiveCfg = Release|Win32
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|Win32.Build.0 = Release|Win32
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|x64.ActiveCfg = Release|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|x64.Build.0 = Release|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|x64 Setup.ActiveCfg = Release|x64
++              {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|Win32.ActiveCfg = Release Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64.ActiveCfg = Release Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64.Build.0 = Release Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64 Setup.ActiveCfg = Release Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64 Setup.Build.0 = Release Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x86 Setup.ActiveCfg = Release Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|Win32.Build.0 = Debug Passthrough|Win32
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x64.ActiveCfg = Debug Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x64.Build.0 = Debug Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x64 Setup.ActiveCfg = Debug Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x86 Setup.ActiveCfg = Debug Passthrough|Win32
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|Win32.ActiveCfg = Release Passthrough|Win32
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|Win32.Build.0 = Release Passthrough|Win32
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|x64.ActiveCfg = Release Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|x64.Build.0 = Release Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|x64 Setup.ActiveCfg = Release Passthrough|x64
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|x86 Setup.ActiveCfg = Release Passthrough|Win32
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|Win32.ActiveCfg = Release|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64.ActiveCfg = Release|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64.Build.0 = Release|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64 Setup.ActiveCfg = Release|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64 Setup.Build.0 = Release|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x86 Setup.ActiveCfg = Release|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|Win32.ActiveCfg = Debug|Win32
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|Win32.Build.0 = Debug|Win32
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x64.ActiveCfg = Debug|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x64.Build.0 = Debug|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.ActiveCfg = Release|Win32
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.Build.0 = Release|Win32
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.ActiveCfg = Release|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.Build.0 = Release|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64 Setup.ActiveCfg = Release|x64
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|Win32.ActiveCfg = Release|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.ActiveCfg = Release|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.Build.0 = Release|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64 Setup.ActiveCfg = Release|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64 Setup.Build.0 = Release|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x86 Setup.ActiveCfg = Release|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.ActiveCfg = Debug|Win32
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.Build.0 = Debug|Win32
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.ActiveCfg = Debug|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.Build.0 = Debug|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.ActiveCfg = Release|Win32
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.Build.0 = Release|Win32
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.ActiveCfg = Release|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.Build.0 = Release|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64 Setup.ActiveCfg = Release|x64
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|Win32.ActiveCfg = Release|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.ActiveCfg = Release|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.Build.0 = Release|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64 Setup.ActiveCfg = Release|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64 Setup.Build.0 = Release|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x86 Setup.ActiveCfg = Release|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.ActiveCfg = Debug|Win32
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.Build.0 = Debug|Win32
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.ActiveCfg = Debug|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.Build.0 = Debug|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.ActiveCfg = Release|Win32
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.Build.0 = Release|Win32
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.ActiveCfg = Release|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.Build.0 = Release|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64 Setup.ActiveCfg = Release|x64
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|Win32.ActiveCfg = Release|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x64.ActiveCfg = Release|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x64 Setup.ActiveCfg = Release|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x86 Setup.ActiveCfg = Release|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|x64.ActiveCfg = Debug|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release|Win32.ActiveCfg = Release|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release|x64.ActiveCfg = Release|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|Win32.ActiveCfg = Release|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64.ActiveCfg = Release|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64.Build.0 = Release|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64 Setup.ActiveCfg = Release|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64 Setup.Build.0 = Release|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x86 Setup.ActiveCfg = Release|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|Win32.ActiveCfg = Debug|Win32
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|Win32.Build.0 = Debug|Win32
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x64.ActiveCfg = Debug|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x64.Build.0 = Debug|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|Win32.ActiveCfg = Release|Win32
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|Win32.Build.0 = Release|Win32
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|x64.ActiveCfg = Release|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|x64.Build.0 = Release|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|x64 Setup.ActiveCfg = Release|x64
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|Win32.ActiveCfg = Release MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64.ActiveCfg = Release MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64.Build.0 = Release MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64 Setup.ActiveCfg = Release MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64 Setup.Build.0 = Release MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x86 Setup.ActiveCfg = Release MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|Win32.ActiveCfg = Debug MS-LDAP|Win32
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|Win32.Build.0 = Debug MS-LDAP|Win32
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x64.ActiveCfg = Debug MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x64.Build.0 = Debug MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x64 Setup.ActiveCfg = Debug MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x86 Setup.ActiveCfg = Debug MS-LDAP|Win32
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|Win32.ActiveCfg = Release MS-LDAP|Win32
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|Win32.Build.0 = Release MS-LDAP|Win32
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|x64.ActiveCfg = Release MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|x64.Build.0 = Release MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|x64 Setup.ActiveCfg = Release MS-LDAP|x64
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|x86 Setup.ActiveCfg = Release MS-LDAP|Win32
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|Win32.ActiveCfg = Release|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64.ActiveCfg = Release|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64.Build.0 = Release|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64 Setup.ActiveCfg = Release|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64 Setup.Build.0 = Release|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x86 Setup.ActiveCfg = Release|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|Win32.ActiveCfg = Debug|Win32
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|Win32.Build.0 = Debug|Win32
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x64.ActiveCfg = Debug|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x64.Build.0 = Debug|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|Win32.ActiveCfg = Release|Win32
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|Win32.Build.0 = Release|Win32
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|x64.ActiveCfg = Release|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|x64.Build.0 = Release|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|x64 Setup.ActiveCfg = Release|x64
++              {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|Win32.ActiveCfg = Release|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64.ActiveCfg = Release|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64.Build.0 = Release|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64 Setup.ActiveCfg = Release|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64 Setup.Build.0 = Release|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x86 Setup.ActiveCfg = Release|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|Win32.ActiveCfg = Debug|Win32
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|Win32.Build.0 = Debug|Win32
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x64.ActiveCfg = Debug|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x64.Build.0 = Debug|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|Win32.ActiveCfg = Release|Win32
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|Win32.Build.0 = Release|Win32
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|x64.ActiveCfg = Release|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|x64.Build.0 = Release|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|x64 Setup.ActiveCfg = Release|x64
++              {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|Win32.ActiveCfg = Release|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64.ActiveCfg = Release|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64.Build.0 = Release|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64 Setup.ActiveCfg = Release|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64 Setup.Build.0 = Release|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x86 Setup.ActiveCfg = Release|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|Win32.ActiveCfg = Debug|Win32
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|Win32.Build.0 = Debug|Win32
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x64.ActiveCfg = Debug|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x64.Build.0 = Debug|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|Win32.ActiveCfg = Release|Win32
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|Win32.Build.0 = Release|Win32
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x64.ActiveCfg = Release|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x64.Build.0 = Release|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x64 Setup.ActiveCfg = Release|x64
++              {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|Win32.ActiveCfg = Release|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64.ActiveCfg = Release|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64.Build.0 = Release|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64 Setup.ActiveCfg = Release|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64 Setup.Build.0 = Release|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x86 Setup.ActiveCfg = Release|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|Win32.Build.0 = Debug|Win32
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|x64.ActiveCfg = Debug|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|x64.Build.0 = Debug|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|Win32.ActiveCfg = Release|Win32
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|Win32.Build.0 = Release|Win32
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64.ActiveCfg = Release|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64.Build.0 = Release|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64 Setup.ActiveCfg = Release|x64
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|Win32.ActiveCfg = Release|x64
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.ActiveCfg = Release|x64
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.Build.0 = Release|x64
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64 Setup.ActiveCfg = Release|x64
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64 Setup.Build.0 = Release|x64
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x86 Setup.ActiveCfg = Release|x64
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|x64.ActiveCfg = Debug|x64
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.Release|Win32.ActiveCfg = Release|Win32
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.Release|x64.ActiveCfg = Release|x64
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.Release|x64 Setup.ActiveCfg = Release|x64
++              {692F6330-4D87-4C82-81DF-40DB5892636E}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|Win32.ActiveCfg = Release|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.ActiveCfg = Release|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.Build.0 = Release|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64 Setup.ActiveCfg = Release|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64 Setup.Build.0 = Release|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x86 Setup.ActiveCfg = Release|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|Win32.Build.0 = Debug|Win32
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x64.ActiveCfg = Debug|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x64.Build.0 = Debug|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|Win32.ActiveCfg = Release|Win32
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|Win32.Build.0 = Release|Win32
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|x64.ActiveCfg = Release|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|x64.Build.0 = Release|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|x64 Setup.ActiveCfg = Release|x64
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|Win32.ActiveCfg = Release|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64.ActiveCfg = Release|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64.Build.0 = Release|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64 Setup.ActiveCfg = Release|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64 Setup.Build.0 = Release|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x86 Setup.ActiveCfg = Release|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|Win32.ActiveCfg = Debug|Win32
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|Win32.Build.0 = Debug|Win32
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x64.ActiveCfg = Debug|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x64.Build.0 = Debug|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|Win32.ActiveCfg = Release|Win32
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|Win32.Build.0 = Release|Win32
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|x64.ActiveCfg = Release|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|x64.Build.0 = Release|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|x64 Setup.ActiveCfg = Release|x64
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|Win32.ActiveCfg = Release|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64.ActiveCfg = Release|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64.Build.0 = Release|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64 Setup.ActiveCfg = Release|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64 Setup.Build.0 = Release|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x86 Setup.ActiveCfg = Release|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|Win32.ActiveCfg = Debug|Win32
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|Win32.Build.0 = Debug|Win32
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x64.ActiveCfg = Debug|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x64.Build.0 = Debug|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|Win32.ActiveCfg = Release|Win32
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|Win32.Build.0 = Release|Win32
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|x64.ActiveCfg = Release|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|x64.Build.0 = Release|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|x64 Setup.ActiveCfg = Release|x64
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {1C453396-D912-4213-89FD-9B489162B7B5}.All|Win32.ActiveCfg = Release|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64.ActiveCfg = Release|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64.Build.0 = Release|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64 Setup.ActiveCfg = Release|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64 Setup.Build.0 = Release|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.All|x86 Setup.ActiveCfg = Release|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|Win32.Build.0 = Debug|Win32
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x64.ActiveCfg = Debug|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x64.Build.0 = Debug|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|Win32.ActiveCfg = Release|Win32
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|Win32.Build.0 = Release|Win32
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|x64.ActiveCfg = Release|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|x64.Build.0 = Release|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|x64 Setup.ActiveCfg = Release|x64
++              {1C453396-D912-4213-89FD-9B489162B7B5}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|Win32.ActiveCfg = Release|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64.ActiveCfg = Release|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64.Build.0 = Release|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64 Setup.ActiveCfg = Release|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64 Setup.Build.0 = Release|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x86 Setup.ActiveCfg = Release|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|Win32.ActiveCfg = Debug|Win32
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|Win32.Build.0 = Debug|Win32
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x64.ActiveCfg = Debug|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x64.Build.0 = Debug|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|Win32.ActiveCfg = Release|Win32
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|Win32.Build.0 = Release|Win32
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64.ActiveCfg = Release|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64.Build.0 = Release|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64 Setup.ActiveCfg = Release|x64
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|Win32.ActiveCfg = Release|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.ActiveCfg = Release|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.Build.0 = Release|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64 Setup.ActiveCfg = Release|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64 Setup.Build.0 = Release|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x86 Setup.ActiveCfg = Release|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|Win32.Build.0 = Debug|Win32
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.ActiveCfg = Debug|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.Build.0 = Debug|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|Win32.ActiveCfg = Release|Win32
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|Win32.Build.0 = Release|Win32
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64.ActiveCfg = Release|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64.Build.0 = Release|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64 Setup.ActiveCfg = Release|x64
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {C24FB505-05D7-4319-8485-7540B44C8603}.All|Win32.ActiveCfg = Release|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.ActiveCfg = Release|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.Build.0 = Release|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64 Setup.ActiveCfg = Release|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64 Setup.Build.0 = Release|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.All|x86 Setup.ActiveCfg = Release|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|Win32.ActiveCfg = Debug|Win32
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|Win32.Build.0 = Debug|Win32
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x64.ActiveCfg = Debug|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x64.Build.0 = Debug|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|Win32.ActiveCfg = Release|Win32
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|Win32.Build.0 = Release|Win32
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|x64.ActiveCfg = Release|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|x64.Build.0 = Release|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|x64 Setup.ActiveCfg = Release|x64
++              {C24FB505-05D7-4319-8485-7540B44C8603}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|Win32.ActiveCfg = Release|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64.ActiveCfg = Release|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64.Build.0 = Release|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64 Setup.ActiveCfg = Release|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64 Setup.Build.0 = Release|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x86 Setup.ActiveCfg = Release|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|Win32.Build.0 = Debug|Win32
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x64.ActiveCfg = Debug|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x64.Build.0 = Debug|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|Win32.ActiveCfg = Release|Win32
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|Win32.Build.0 = Release|Win32
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|x64.ActiveCfg = Release|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|x64.Build.0 = Release|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|x64 Setup.ActiveCfg = Release|x64
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|Win32.ActiveCfg = Release|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64.ActiveCfg = Release|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64.Build.0 = Release|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64 Setup.ActiveCfg = Release|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64 Setup.Build.0 = Release|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x86 Setup.ActiveCfg = Release|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|Win32.ActiveCfg = Debug|Win32
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|Win32.Build.0 = Debug|Win32
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x64.ActiveCfg = Debug|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x64.Build.0 = Debug|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|Win32.ActiveCfg = Release|Win32
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|Win32.Build.0 = Release|Win32
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|x64.ActiveCfg = Release|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|x64.Build.0 = Release|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|x64 Setup.ActiveCfg = Release|x64
++              {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|Win32.ActiveCfg = Release DLL|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64.ActiveCfg = Release DLL|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64.Build.0 = Release DLL|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64 Setup.ActiveCfg = Release DLL|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64 Setup.Build.0 = Release DLL|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x86 Setup.ActiveCfg = Release DLL|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|Win32.Build.0 = Debug|Win32
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64.ActiveCfg = Debug|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64.Build.0 = Debug|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|Win32.ActiveCfg = Release|Win32
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|Win32.Build.0 = Release|Win32
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|x64.ActiveCfg = Release|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|x64.Build.0 = Release|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|x64 Setup.ActiveCfg = Release|x64
++              {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|Win32.ActiveCfg = Release Dll|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64.ActiveCfg = Release Dll|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64.Build.0 = Release Dll|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64 Setup.ActiveCfg = Release Dll|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64 Setup.Build.0 = Release Dll|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x86 Setup.ActiveCfg = Release Dll|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|Win32.ActiveCfg = Debug|Win32
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|Win32.Build.0 = Debug|Win32
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x64.ActiveCfg = Debug|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x64.Build.0 = Debug|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|Win32.ActiveCfg = Release|Win32
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|Win32.Build.0 = Release|Win32
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|x64.ActiveCfg = Release|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|x64.Build.0 = Release|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|x64 Setup.ActiveCfg = Release|x64
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|Win32.ActiveCfg = Release DLL|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64.ActiveCfg = Release DLL|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64.Build.0 = Release DLL|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64 Setup.ActiveCfg = Release DLL|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64 Setup.Build.0 = Release DLL|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x86 Setup.ActiveCfg = Release DLL|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|Win32.ActiveCfg = Debug|Win32
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|Win32.Build.0 = Debug|Win32
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x64.ActiveCfg = Debug|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x64.Build.0 = Debug|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|Win32.ActiveCfg = Release|Win32
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|Win32.Build.0 = Release|Win32
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|x64.ActiveCfg = Release|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|x64.Build.0 = Release|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|x64 Setup.ActiveCfg = Release|x64
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|Win32.ActiveCfg = Release DLL|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64.ActiveCfg = Release DLL|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64.Build.0 = Release DLL|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64 Setup.ActiveCfg = Release DLL|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64 Setup.Build.0 = Release DLL|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x86 Setup.ActiveCfg = Release DLL|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|Win32.ActiveCfg = Debug|Win32
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|Win32.Build.0 = Debug|Win32
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x64.ActiveCfg = Debug|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x64.Build.0 = Debug|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|Win32.ActiveCfg = Release|Win32
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|Win32.Build.0 = Release|Win32
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x64.ActiveCfg = Release|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x64.Build.0 = Release|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x64 Setup.ActiveCfg = Release|x64
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|Win32.ActiveCfg = Release|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64.ActiveCfg = Release|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64.Build.0 = Release|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64 Setup.ActiveCfg = Release|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64 Setup.Build.0 = Release|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x86 Setup.ActiveCfg = Release|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.Build.0 = Debug|Win32
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64.ActiveCfg = Debug|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64.Build.0 = Debug|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.ActiveCfg = Release|Win32
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.Build.0 = Release|Win32
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64.ActiveCfg = Release|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64.Build.0 = Release|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64 Setup.ActiveCfg = Release|x64
++              {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|Win32.ActiveCfg = Release|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64.ActiveCfg = Release|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64.Build.0 = Release|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64 Setup.ActiveCfg = Release|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64 Setup.Build.0 = Release|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x86 Setup.ActiveCfg = Release|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|Win32.ActiveCfg = Debug|Win32
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|Win32.Build.0 = Debug|Win32
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x64.ActiveCfg = Debug|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x64.Build.0 = Debug|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.ActiveCfg = Release|Win32
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.Build.0 = Release|Win32
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.ActiveCfg = Release|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.Build.0 = Release|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64 Setup.ActiveCfg = Release|x64
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|Win32.ActiveCfg = Release|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64.ActiveCfg = Release|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64.Build.0 = Release|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64 Setup.ActiveCfg = Release|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64 Setup.Build.0 = Release|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x86 Setup.ActiveCfg = Release|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|Win32.ActiveCfg = Debug|Win32
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|Win32.Build.0 = Debug|Win32
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64.ActiveCfg = Debug|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64.Build.0 = Debug|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|Win32.ActiveCfg = Release|Win32
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|Win32.Build.0 = Release|Win32
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|x64.ActiveCfg = Release|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|x64.Build.0 = Release|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|x64 Setup.ActiveCfg = Release|x64
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|Win32.ActiveCfg = Release|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.ActiveCfg = Release|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.Build.0 = Release|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64 Setup.ActiveCfg = Release|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64 Setup.Build.0 = Release|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x86 Setup.ActiveCfg = Release|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|Win32.ActiveCfg = Debug|Win32
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|Win32.Build.0 = Debug|Win32
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.ActiveCfg = Debug|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.Build.0 = Debug|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|Win32.ActiveCfg = Release|Win32
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|Win32.Build.0 = Release|Win32
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64.ActiveCfg = Release|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64.Build.0 = Release|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64 Setup.ActiveCfg = Release|x64
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|Win32.ActiveCfg = Release|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64.ActiveCfg = Release|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64.Build.0 = Release|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64 Setup.ActiveCfg = Release|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64 Setup.Build.0 = Release|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x86 Setup.ActiveCfg = Release|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|Win32.ActiveCfg = Debug|Win32
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|Win32.Build.0 = Debug|Win32
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x64.ActiveCfg = Debug|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x64.Build.0 = Debug|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|Win32.ActiveCfg = Release|Win32
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|Win32.Build.0 = Release|Win32
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|x64.ActiveCfg = Release|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|x64.Build.0 = Release|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|x64 Setup.ActiveCfg = Release|x64
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|Win32.ActiveCfg = Debug|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64.ActiveCfg = Debug|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64.Build.0 = Debug|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64 Setup.ActiveCfg = Debug|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64 Setup.Build.0 = Debug|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x86 Setup.ActiveCfg = Debug|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|Win32.ActiveCfg = Debug|Win32
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|Win32.Build.0 = Debug|Win32
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x64.ActiveCfg = Debug|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x64.Build.0 = Debug|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|Win32.ActiveCfg = Release|Win32
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|Win32.Build.0 = Release|Win32
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|x64.ActiveCfg = Release|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|x64.Build.0 = Release|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|x64 Setup.ActiveCfg = Release|x64
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|Win32.ActiveCfg = Debug|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64.ActiveCfg = Debug|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64.Build.0 = Debug|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64 Setup.ActiveCfg = Debug|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64 Setup.Build.0 = Debug|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x86 Setup.ActiveCfg = Debug|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|Win32.ActiveCfg = Debug|Win32
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|Win32.Build.0 = Debug|Win32
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x64.ActiveCfg = Debug|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x64.Build.0 = Debug|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|Win32.ActiveCfg = Release|Win32
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|Win32.Build.0 = Release|Win32
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|x64.ActiveCfg = Release|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|x64.Build.0 = Release|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|x64 Setup.ActiveCfg = Release|x64
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|Win32.ActiveCfg = Debug|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x64.ActiveCfg = Debug|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x64.Build.0 = Debug|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x64 Setup.ActiveCfg = Debug|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x64 Setup.Build.0 = Debug|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x86 Setup.ActiveCfg = Debug|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|Win32.ActiveCfg = Debug|Win32
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|Win32.Build.0 = Debug|Win32
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|x64.ActiveCfg = Debug|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|x64.Build.0 = Debug|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|Win32.ActiveCfg = Release|Win32
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|Win32.Build.0 = Release|Win32
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|x64.ActiveCfg = Release|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|x64.Build.0 = Release|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|x64 Setup.ActiveCfg = Release|x64
++              {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|Win32.ActiveCfg = Release|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.ActiveCfg = Release|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.Build.0 = Release|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64 Setup.ActiveCfg = Release|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64 Setup.Build.0 = Release|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x86 Setup.ActiveCfg = Release|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|Win32.ActiveCfg = Debug|Win32
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|Win32.Build.0 = Debug|Win32
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x64.ActiveCfg = Debug|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x64.Build.0 = Debug|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|Win32.ActiveCfg = Release|Win32
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|Win32.Build.0 = Release|Win32
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|x64.ActiveCfg = Release|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|x64.Build.0 = Release|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|x64 Setup.ActiveCfg = Release|x64
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|Win32.ActiveCfg = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|Win32.Build.0 = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64.ActiveCfg = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64.Build.0 = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64 Setup.ActiveCfg = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64 Setup.Build.0 = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x86 Setup.ActiveCfg = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x86 Setup.Build.0 = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|Win32.Build.0 = Debug|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x64.ActiveCfg = Debug|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x64.Build.0 = Debug|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|Win32.ActiveCfg = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|Win32.Build.0 = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|x64.ActiveCfg = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|x64.Build.0 = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|Win32.ActiveCfg = Release DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64.ActiveCfg = Release DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64.Build.0 = Release DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64 Setup.ActiveCfg = Release DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64 Setup.Build.0 = Release DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x86 Setup.ActiveCfg = Release DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|Win32.ActiveCfg = Debug DLL|Win32
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|Win32.Build.0 = Debug DLL|Win32
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x64.ActiveCfg = Debug DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x64.Build.0 = Debug DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x64 Setup.ActiveCfg = Debug DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x86 Setup.ActiveCfg = Debug DLL|Win32
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|Win32.ActiveCfg = Release DLL|Win32
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|Win32.Build.0 = Release DLL|Win32
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|x64.ActiveCfg = Release DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|x64.Build.0 = Release DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|x64 Setup.ActiveCfg = Release DLL|x64
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|x86 Setup.ActiveCfg = Release DLL|Win32
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|Win32.ActiveCfg = Release Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64.ActiveCfg = Release Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64.Build.0 = Release Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64 Setup.ActiveCfg = Release Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64 Setup.Build.0 = Release Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x86 Setup.ActiveCfg = Release Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|Win32.Build.0 = Debug Passthrough|Win32
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x64.ActiveCfg = Debug Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x64.Build.0 = Debug Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x64 Setup.ActiveCfg = Debug Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x86 Setup.ActiveCfg = Debug Passthrough|Win32
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|Win32.ActiveCfg = Release Passthrough|Win32
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|Win32.Build.0 = Release Passthrough|Win32
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64.ActiveCfg = Release Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64.Build.0 = Release Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64 Setup.ActiveCfg = Release Passthrough|x64
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x86 Setup.ActiveCfg = Release Passthrough|Win32
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|Win32.ActiveCfg = Release|x64
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x64.ActiveCfg = Release|x64
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x64.Build.0 = Release|x64
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x64 Setup.ActiveCfg = Release|x64
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x64 Setup.Build.0 = Release|x64
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x86 Setup.ActiveCfg = Release|x64
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|Win32.Build.0 = Debug|Win32
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x64.ActiveCfg = Debug|x64
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x64.Build.0 = Debug|x64
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|Win32.ActiveCfg = Release|Win32
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|Win32.Build.0 = Release|Win32
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x64.ActiveCfg = Release|x64
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x64.Build.0 = Release|x64
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x64 Setup.ActiveCfg = Release|x64
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|Win32.ActiveCfg = Release|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.ActiveCfg = Release|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.Build.0 = Release|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64 Setup.ActiveCfg = Release|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64 Setup.Build.0 = Release|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x86 Setup.ActiveCfg = Release|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|Win32.ActiveCfg = Debug|Win32
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|Win32.Build.0 = Debug|Win32
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x64.ActiveCfg = Debug|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x64.Build.0 = Debug|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|Win32.ActiveCfg = Release|Win32
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|Win32.Build.0 = Release|Win32
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|x64.ActiveCfg = Release|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|x64.Build.0 = Release|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|x64 Setup.ActiveCfg = Release|x64
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|Win32.ActiveCfg = Release|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x64.ActiveCfg = Release|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x64.Build.0 = Release|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x64 Setup.ActiveCfg = Release|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x64 Setup.Build.0 = Release|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x86 Setup.ActiveCfg = Release|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|Win32.ActiveCfg = Debug|Win32
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|Win32.Build.0 = Debug|Win32
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|x64.ActiveCfg = Debug|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|x64.Build.0 = Debug|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|Win32.ActiveCfg = Release|Win32
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|Win32.Build.0 = Release|Win32
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|x64.ActiveCfg = Release|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|x64.Build.0 = Release|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|x64 Setup.ActiveCfg = Release|x64
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|Win32.ActiveCfg = Release|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x64.ActiveCfg = Release|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x64.Build.0 = Release|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x64 Setup.ActiveCfg = Release|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x64 Setup.Build.0 = Release|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x86 Setup.ActiveCfg = Release|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|Win32.ActiveCfg = Debug|Win32
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|Win32.Build.0 = Debug|Win32
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|x64.ActiveCfg = Debug|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|x64.Build.0 = Debug|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|Win32.ActiveCfg = Release|Win32
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|Win32.Build.0 = Release|Win32
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|x64.ActiveCfg = Release|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|x64.Build.0 = Release|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|x64 Setup.ActiveCfg = Release|x64
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.All|Win32.ActiveCfg = Release|x64
++              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.All|x64.ActiveCfg = Release|x64
++              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.All|x64.Build.0 = Release|x64
++              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.All|x64 Setup.ActiveCfg = Release|x64
++              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.All|x64 Setup.Build.0 = Release|x64
++              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.All|x86 Setup.ActiveCfg = Release|x64
++              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Debug|Win32.ActiveCfg = Debug|Win32
++              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Debug|x64.ActiveCfg = Debug|x64
++              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Release|Win32.ActiveCfg = Release|Win32
++              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Release|x64.ActiveCfg = Release|x64
++              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Release|x64 Setup.ActiveCfg = Release|x64
++              {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|Win32.ActiveCfg = Release|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64.ActiveCfg = Release|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64.Build.0 = Release|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64 Setup.ActiveCfg = Release|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64 Setup.Build.0 = Release|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x86 Setup.ActiveCfg = Release|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|Win32.ActiveCfg = Debug|Win32
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|Win32.Build.0 = Debug|Win32
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x64.ActiveCfg = Debug|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x64.Build.0 = Debug|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|Win32.ActiveCfg = Release|Win32
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|Win32.Build.0 = Release|Win32
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|x64.ActiveCfg = Release|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|x64.Build.0 = Release|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|x64 Setup.ActiveCfg = Release|x64
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|Win32.ActiveCfg = Release|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x64.ActiveCfg = Release|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x64.Build.0 = Release|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x64 Setup.ActiveCfg = Release|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x64 Setup.Build.0 = Release|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x86 Setup.ActiveCfg = Release|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|Win32.ActiveCfg = Debug|Win32
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|Win32.Build.0 = Debug|Win32
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|x64.ActiveCfg = Debug|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|x64.Build.0 = Debug|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|Win32.ActiveCfg = Release|Win32
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|Win32.Build.0 = Release|Win32
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|x64.ActiveCfg = Release|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|x64.Build.0 = Release|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|x64 Setup.ActiveCfg = Release|x64
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|Win32.ActiveCfg = Release|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64.ActiveCfg = Release|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64.Build.0 = Release|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64 Setup.ActiveCfg = Release|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64 Setup.Build.0 = Release|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x86 Setup.ActiveCfg = Release|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|Win32.ActiveCfg = Debug|Win32
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|Win32.Build.0 = Debug|Win32
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x64.ActiveCfg = Debug|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x64.Build.0 = Debug|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|Win32.ActiveCfg = Release|Win32
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|Win32.Build.0 = Release|Win32
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|x64.ActiveCfg = Release|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|x64.Build.0 = Release|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|x64 Setup.ActiveCfg = Release|x64
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|Win32.ActiveCfg = Release|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64.ActiveCfg = Release|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64.Build.0 = Release|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64 Setup.ActiveCfg = Release|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64 Setup.Build.0 = Release|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x86 Setup.ActiveCfg = Release|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|Win32.ActiveCfg = Debug|Win32
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|Win32.Build.0 = Debug|Win32
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x64.ActiveCfg = Debug|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x64.Build.0 = Debug|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|Win32.ActiveCfg = Release|Win32
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|Win32.Build.0 = Release|Win32
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.ActiveCfg = Release|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.Build.0 = Release|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64 Setup.ActiveCfg = Release|x64
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|Win32.ActiveCfg = Release DirectSound|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.ActiveCfg = Release DirectSound|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.Build.0 = Release DirectSound|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64 Setup.ActiveCfg = Release DirectSound|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64 Setup.Build.0 = Release DirectSound|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x86 Setup.ActiveCfg = Release DirectSound|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.ActiveCfg = Debug DirectSound|Win32
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.Build.0 = Debug DirectSound|Win32
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.ActiveCfg = Debug DirectSound|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.Build.0 = Debug DirectSound|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64 Setup.ActiveCfg = Debug DirectSound|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x86 Setup.ActiveCfg = Debug DirectSound|Win32
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.ActiveCfg = Release DirectSound|Win32
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.Build.0 = Release DirectSound|Win32
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.ActiveCfg = Release DirectSound|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.Build.0 = Release DirectSound|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64 Setup.ActiveCfg = Release DirectSound|x64
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x86 Setup.ActiveCfg = Release DirectSound|Win32
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|Win32.ActiveCfg = Release|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.ActiveCfg = Release|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.Build.0 = Release|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64 Setup.ActiveCfg = Release|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64 Setup.Build.0 = Release|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x86 Setup.ActiveCfg = Release|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|Win32.ActiveCfg = Debug|Win32
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|Win32.Build.0 = Debug|Win32
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x64.ActiveCfg = Debug|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x64.Build.0 = Debug|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|Win32.ActiveCfg = Release|Win32
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|Win32.Build.0 = Release|Win32
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|x64.ActiveCfg = Release|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|x64.Build.0 = Release|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|x64 Setup.ActiveCfg = Release|x64
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|Win32.ActiveCfg = Release Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64.ActiveCfg = Release Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64.Build.0 = Release Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64 Setup.ActiveCfg = Release Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64 Setup.Build.0 = Release Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x86 Setup.ActiveCfg = Release Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|Win32.Build.0 = Debug Passthrough|Win32
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x64.ActiveCfg = Debug Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x64.Build.0 = Debug Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x64 Setup.ActiveCfg = Debug Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x86 Setup.ActiveCfg = Debug Passthrough|Win32
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|Win32.ActiveCfg = Release Passthrough|Win32
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|Win32.Build.0 = Release Passthrough|Win32
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64.ActiveCfg = Release Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64.Build.0 = Release Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64 Setup.ActiveCfg = Release Passthrough|x64
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x86 Setup.ActiveCfg = Release Passthrough|Win32
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|Win32.ActiveCfg = Release|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.ActiveCfg = Release|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.Build.0 = Release|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64 Setup.ActiveCfg = Release|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64 Setup.Build.0 = Release|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x86 Setup.ActiveCfg = Release|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|Win32.Build.0 = Debug|Win32
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.ActiveCfg = Debug|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.Build.0 = Debug|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|Win32.ActiveCfg = Release|Win32
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|Win32.Build.0 = Release|Win32
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64.ActiveCfg = Release|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64.Build.0 = Release|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64 Setup.ActiveCfg = Release|x64
++              {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|Win32.ActiveCfg = Release|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.ActiveCfg = Release|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.Build.0 = Release|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64 Setup.ActiveCfg = Release|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64 Setup.Build.0 = Release|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x86 Setup.ActiveCfg = Release|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|Win32.ActiveCfg = Debug|Win32
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|Win32.Build.0 = Debug|Win32
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x64.ActiveCfg = Debug|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x64.Build.0 = Debug|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|Win32.ActiveCfg = Release|Win32
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|Win32.Build.0 = Release|Win32
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|x64.ActiveCfg = Release|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|x64.Build.0 = Release|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|x64 Setup.ActiveCfg = Release|x64
++              {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|Win32.ActiveCfg = Release|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64.ActiveCfg = Release|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64.Build.0 = Release|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64 Setup.ActiveCfg = Release|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64 Setup.Build.0 = Release|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x86 Setup.ActiveCfg = Release|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|Win32.Build.0 = Debug|Win32
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x64.ActiveCfg = Debug|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x64.Build.0 = Debug|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|Win32.ActiveCfg = Release|Win32
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|Win32.Build.0 = Release|Win32
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|x64.ActiveCfg = Release|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|x64.Build.0 = Release|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|x64 Setup.ActiveCfg = Release|x64
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|Win32.ActiveCfg = Release|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x64.ActiveCfg = Release|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x64.Build.0 = Release|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x64 Setup.ActiveCfg = Release|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x64 Setup.Build.0 = Release|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x86 Setup.ActiveCfg = Release|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|Win32.ActiveCfg = Debug|Win32
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|Win32.Build.0 = Debug|Win32
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|x64.ActiveCfg = Debug|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|x64.Build.0 = Debug|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|Win32.ActiveCfg = Release|Win32
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|Win32.Build.0 = Release|Win32
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|x64.ActiveCfg = Release|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|x64.Build.0 = Release|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|x64 Setup.ActiveCfg = Release|x64
++              {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|Win32.ActiveCfg = Release|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64.ActiveCfg = Release|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64.Build.0 = Release|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64 Setup.ActiveCfg = Release|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64 Setup.Build.0 = Release|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x86 Setup.ActiveCfg = Release|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|Win32.Build.0 = Debug|Win32
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x64.ActiveCfg = Debug|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x64.Build.0 = Debug|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|Win32.ActiveCfg = Release|Win32
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|Win32.Build.0 = Release|Win32
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|x64.ActiveCfg = Release|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|x64.Build.0 = Release|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|x64 Setup.ActiveCfg = Release|x64
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|Win32.ActiveCfg = Release|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64.ActiveCfg = Release|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64.Build.0 = Release|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64 Setup.ActiveCfg = Release|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64 Setup.Build.0 = Release|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x86 Setup.ActiveCfg = Release|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|Win32.ActiveCfg = Debug|Win32
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|Win32.Build.0 = Debug|Win32
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x64.ActiveCfg = Debug|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x64.Build.0 = Debug|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|Win32.ActiveCfg = Release|Win32
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|Win32.Build.0 = Release|Win32
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|x64.ActiveCfg = Release|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|x64.Build.0 = Release|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|x64 Setup.ActiveCfg = Release|x64
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|Win32.ActiveCfg = Release|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64.ActiveCfg = Release|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64.Build.0 = Release|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64 Setup.ActiveCfg = Release|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64 Setup.Build.0 = Release|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x86 Setup.ActiveCfg = Release|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|Win32.ActiveCfg = Debug|Win32
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|Win32.Build.0 = Debug|Win32
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x64.ActiveCfg = Debug|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x64.Build.0 = Debug|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|Win32.ActiveCfg = Release|Win32
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|Win32.Build.0 = Release|Win32
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|x64.ActiveCfg = Release|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|x64.Build.0 = Release|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|x64 Setup.ActiveCfg = Release|x64
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|Win32.ActiveCfg = Release|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64.ActiveCfg = Release|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64.Build.0 = Release|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64 Setup.ActiveCfg = Release|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64 Setup.Build.0 = Release|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x86 Setup.ActiveCfg = Release|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|Win32.ActiveCfg = Debug|Win32
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|Win32.Build.0 = Debug|Win32
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x64.ActiveCfg = Debug|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x64.Build.0 = Debug|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|Win32.ActiveCfg = Release|Win32
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|Win32.Build.0 = Release|Win32
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|x64.ActiveCfg = Release|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|x64.Build.0 = Release|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|x64 Setup.ActiveCfg = Release|x64
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|Win32.ActiveCfg = Release|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64.ActiveCfg = Release|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64.Build.0 = Release|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64 Setup.ActiveCfg = Release|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64 Setup.Build.0 = Release|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x86 Setup.ActiveCfg = Release|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|Win32.ActiveCfg = Debug|Win32
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|Win32.Build.0 = Debug|Win32
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x64.ActiveCfg = Debug|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x64.Build.0 = Debug|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|Win32.ActiveCfg = Release|Win32
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|Win32.Build.0 = Release|Win32
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|x64.ActiveCfg = Release|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|x64.Build.0 = Release|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|x64 Setup.ActiveCfg = Release|x64
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|Win32.ActiveCfg = Release|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64.ActiveCfg = Release|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64.Build.0 = Release|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64 Setup.ActiveCfg = Release|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64 Setup.Build.0 = Release|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x86 Setup.ActiveCfg = Release|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|Win32.ActiveCfg = Debug|Win32
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|Win32.Build.0 = Debug|Win32
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x64.ActiveCfg = Debug|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x64.Build.0 = Debug|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|Win32.ActiveCfg = Release|Win32
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|Win32.Build.0 = Release|Win32
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|x64.ActiveCfg = Release|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|x64.Build.0 = Release|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|x64 Setup.ActiveCfg = Release|x64
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|Win32.ActiveCfg = Release|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64.ActiveCfg = Release|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64.Build.0 = Release|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64 Setup.ActiveCfg = Release|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64 Setup.Build.0 = Release|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x86 Setup.ActiveCfg = Release|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|Win32.Build.0 = Debug|Win32
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x64.ActiveCfg = Debug|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x64.Build.0 = Debug|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|Win32.ActiveCfg = Release|Win32
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|Win32.Build.0 = Release|Win32
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|x64.ActiveCfg = Release|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|x64.Build.0 = Release|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|x64 Setup.ActiveCfg = Release|x64
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {F6A33240-8F29-48BD-98F0-826995911799}.All|Win32.ActiveCfg = Release|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.All|x64.ActiveCfg = Release|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.All|x64.Build.0 = Release|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.All|x64 Setup.ActiveCfg = Release|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.All|x64 Setup.Build.0 = Release|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.All|x86 Setup.ActiveCfg = Release|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|Win32.ActiveCfg = Debug|Win32
++              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|Win32.Build.0 = Debug|Win32
++              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x64.ActiveCfg = Debug|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x64.Build.0 = Debug|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {F6A33240-8F29-48BD-98F0-826995911799}.Release|Win32.ActiveCfg = Release|Win32
++              {F6A33240-8F29-48BD-98F0-826995911799}.Release|Win32.Build.0 = Release|Win32
++              {F6A33240-8F29-48BD-98F0-826995911799}.Release|x64.ActiveCfg = Release|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.Release|x64.Build.0 = Release|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.Release|x64 Setup.ActiveCfg = Release|x64
++              {F6A33240-8F29-48BD-98F0-826995911799}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|Win32.ActiveCfg = Release|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64.ActiveCfg = Release|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64.Build.0 = Release|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64 Setup.ActiveCfg = Release|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64 Setup.Build.0 = Release|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x86 Setup.ActiveCfg = Release|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|Win32.ActiveCfg = Debug|Win32
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|Win32.Build.0 = Debug|Win32
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x64.ActiveCfg = Debug|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x64.Build.0 = Debug|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|Win32.ActiveCfg = Release|Win32
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|Win32.Build.0 = Release|Win32
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|x64.ActiveCfg = Release|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|x64.Build.0 = Release|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|x64 Setup.ActiveCfg = Release|x64
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|Win32.ActiveCfg = Release|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64.ActiveCfg = Release|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64.Build.0 = Release|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64 Setup.ActiveCfg = Release|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64 Setup.Build.0 = Release|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x86 Setup.ActiveCfg = Release|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|Win32.ActiveCfg = Debug|Win32
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|Win32.Build.0 = Debug|Win32
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x64.ActiveCfg = Debug|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x64.Build.0 = Debug|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|Win32.ActiveCfg = Release|Win32
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|Win32.Build.0 = Release|Win32
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|x64.ActiveCfg = Release|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|x64.Build.0 = Release|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|x64 Setup.ActiveCfg = Release|x64
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|Win32.ActiveCfg = Release|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64.ActiveCfg = Release|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64.Build.0 = Release|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64 Setup.ActiveCfg = Release|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64 Setup.Build.0 = Release|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x86 Setup.ActiveCfg = Release|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|Win32.Build.0 = Debug|Win32
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x64.ActiveCfg = Debug|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x64.Build.0 = Debug|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|Win32.ActiveCfg = Release|Win32
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|Win32.Build.0 = Release|Win32
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|x64.ActiveCfg = Release|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|x64.Build.0 = Release|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|x64 Setup.ActiveCfg = Release|x64
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|Win32.ActiveCfg = Release|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64.ActiveCfg = Release|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64.Build.0 = Release|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64 Setup.ActiveCfg = Release|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64 Setup.Build.0 = Release|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x86 Setup.ActiveCfg = Release|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|Win32.Build.0 = Debug|Win32
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x64.ActiveCfg = Debug|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x64.Build.0 = Debug|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|Win32.ActiveCfg = Release|Win32
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|Win32.Build.0 = Release|Win32
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|x64.ActiveCfg = Release|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|x64.Build.0 = Release|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|x64 Setup.ActiveCfg = Release|x64
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|Win32.ActiveCfg = Release|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64.ActiveCfg = Release|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64.Build.0 = Release|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64 Setup.ActiveCfg = Release|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64 Setup.Build.0 = Release|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x86 Setup.ActiveCfg = Release|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|Win32.ActiveCfg = Debug|Win32
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|Win32.Build.0 = Debug|Win32
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x64.ActiveCfg = Debug|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x64.Build.0 = Debug|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|Win32.ActiveCfg = Release|Win32
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|Win32.Build.0 = Release|Win32
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|x64.ActiveCfg = Release|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|x64.Build.0 = Release|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|x64 Setup.ActiveCfg = Release|x64
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|Win32.ActiveCfg = Release|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64.ActiveCfg = Release|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64.Build.0 = Release|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64 Setup.ActiveCfg = Release|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64 Setup.Build.0 = Release|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x86 Setup.ActiveCfg = Release|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|Win32.ActiveCfg = Debug|Win32
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|Win32.Build.0 = Debug|Win32
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x64.ActiveCfg = Debug|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x64.Build.0 = Debug|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|Win32.ActiveCfg = Release|Win32
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|Win32.Build.0 = Release|Win32
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|x64.ActiveCfg = Release|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|x64.Build.0 = Release|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|x64 Setup.ActiveCfg = Release|x64
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|Win32.ActiveCfg = Release|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x64.ActiveCfg = Release|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x64.Build.0 = Release|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x64 Setup.ActiveCfg = Release|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x64 Setup.Build.0 = Release|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x86 Setup.ActiveCfg = Release|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|Win32.ActiveCfg = Debug|Win32
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|Win32.Build.0 = Debug|Win32
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|x64.ActiveCfg = Debug|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|x64.Build.0 = Debug|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|Win32.ActiveCfg = Release|Win32
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|Win32.Build.0 = Release|Win32
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|x64.ActiveCfg = Release|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|x64.Build.0 = Release|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|x64 Setup.ActiveCfg = Release|x64
++              {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|Win32.ActiveCfg = Release|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64.ActiveCfg = Release|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64.Build.0 = Release|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64 Setup.ActiveCfg = Release|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64 Setup.Build.0 = Release|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x86 Setup.ActiveCfg = Release|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.ActiveCfg = Debug|Win32
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.Build.0 = Debug|Win32
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.ActiveCfg = Debug|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.Build.0 = Debug|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.ActiveCfg = Release|Win32
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.Build.0 = Release|Win32
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x64.ActiveCfg = Release|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x64.Build.0 = Release|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x64 Setup.ActiveCfg = Release|x64
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|Win32.ActiveCfg = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|Win32.Build.0 = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64.ActiveCfg = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64.Build.0 = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64 Setup.ActiveCfg = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64 Setup.Build.0 = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x86 Setup.ActiveCfg = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x86 Setup.Build.0 = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|Win32.Build.0 = Debug|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x64.ActiveCfg = Debug|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x64.Build.0 = Debug|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|Win32.ActiveCfg = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|Win32.Build.0 = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|x64.ActiveCfg = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|x64.Build.0 = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.All|Win32.ActiveCfg = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.All|Win32.Build.0 = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.All|x64.ActiveCfg = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.All|x64.Build.0 = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.All|x64 Setup.ActiveCfg = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.All|x64 Setup.Build.0 = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.All|x86 Setup.ActiveCfg = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.All|x86 Setup.Build.0 = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|Win32.Build.0 = Debug|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x64.ActiveCfg = Debug|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x64.Build.0 = Debug|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Release|Win32.ActiveCfg = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Release|Win32.Build.0 = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Release|x64.ActiveCfg = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Release|x64.Build.0 = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {2DEE4895-1134-439C-B688-52203E57D878}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|Win32.ActiveCfg = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|Win32.Build.0 = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64.ActiveCfg = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64.Build.0 = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64 Setup.ActiveCfg = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64 Setup.Build.0 = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x86 Setup.ActiveCfg = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x86 Setup.Build.0 = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|Win32.Build.0 = Debug|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x64.ActiveCfg = Debug|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x64.Build.0 = Debug|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|Win32.ActiveCfg = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|Win32.Build.0 = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|x64.ActiveCfg = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|x64.Build.0 = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|Win32.ActiveCfg = Debug|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64.ActiveCfg = Debug|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64.Build.0 = Debug|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64 Setup.ActiveCfg = Debug|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64 Setup.Build.0 = Debug|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x86 Setup.ActiveCfg = Debug|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|Win32.Build.0 = Debug|Win32
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x64.ActiveCfg = Debug|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x64.Build.0 = Debug|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|Win32.ActiveCfg = Release|Win32
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|Win32.Build.0 = Release|Win32
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|x64.ActiveCfg = Release|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|x64.Build.0 = Release|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|x64 Setup.ActiveCfg = Release|x64
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {94001A0E-A837-445C-8004-F918F10D0226}.All|Win32.ActiveCfg = Debug|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.All|x64.ActiveCfg = Debug|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.All|x64.Build.0 = Debug|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.All|x64 Setup.ActiveCfg = Debug|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.All|x64 Setup.Build.0 = Debug|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.All|x86 Setup.ActiveCfg = Debug|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|Win32.ActiveCfg = Debug|Win32
++              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|Win32.Build.0 = Debug|Win32
++              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x64.ActiveCfg = Debug|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x64.Build.0 = Debug|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {94001A0E-A837-445C-8004-F918F10D0226}.Release|Win32.ActiveCfg = Release|Win32
++              {94001A0E-A837-445C-8004-F918F10D0226}.Release|Win32.Build.0 = Release|Win32
++              {94001A0E-A837-445C-8004-F918F10D0226}.Release|x64.ActiveCfg = Release|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.Release|x64.Build.0 = Release|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.Release|x64 Setup.ActiveCfg = Release|x64
++              {94001A0E-A837-445C-8004-F918F10D0226}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|Win32.ActiveCfg = Release|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x64.ActiveCfg = Release|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x64.Build.0 = Release|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x64 Setup.ActiveCfg = Release|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x64 Setup.Build.0 = Release|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x86 Setup.ActiveCfg = Release|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|Win32.Build.0 = Debug|Win32
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|x64.ActiveCfg = Debug|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|x64.Build.0 = Debug|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|Win32.ActiveCfg = Release|Win32
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|Win32.Build.0 = Release|Win32
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|x64.ActiveCfg = Release|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|x64.Build.0 = Release|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|x64 Setup.ActiveCfg = Release|x64
++              {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|Win32.ActiveCfg = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|Win32.Build.0 = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64.ActiveCfg = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64.Build.0 = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64 Setup.ActiveCfg = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64 Setup.Build.0 = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x86 Setup.ActiveCfg = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x86 Setup.Build.0 = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|Win32.ActiveCfg = Debug|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|Win32.Build.0 = Debug|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x64.ActiveCfg = Debug|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x64.Build.0 = Debug|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|Win32.ActiveCfg = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|Win32.Build.0 = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|x64.ActiveCfg = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|x64.Build.0 = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|Win32.ActiveCfg = Release|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|x64.ActiveCfg = Release|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|x64 Setup.ActiveCfg = Release|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|x86 Setup.ActiveCfg = Release|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|Win32.ActiveCfg = Debug|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|x64.ActiveCfg = Debug|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release|Win32.ActiveCfg = Release|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release|x64.ActiveCfg = Release|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|Win32.ActiveCfg = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|Win32.Build.0 = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64.ActiveCfg = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64.Build.0 = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64 Setup.ActiveCfg = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64 Setup.Build.0 = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x86 Setup.ActiveCfg = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x86 Setup.Build.0 = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|Win32.Build.0 = Debug|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x64.ActiveCfg = Debug|x64
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x64.Build.0 = Debug|x64
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|Win32.ActiveCfg = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|Win32.Build.0 = Release|Win32
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|x64.ActiveCfg = Release|x64
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|x64.Build.0 = Release|x64
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|x64 Setup.ActiveCfg = Release|x64
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.All|Win32.ActiveCfg = Release|Win32
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.All|x64.ActiveCfg = Release|Win32
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.All|x64 Setup.ActiveCfg = Release|Win32
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.All|x86 Setup.ActiveCfg = Release|Win32
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|x64.ActiveCfg = Debug|x64
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.Release|Win32.ActiveCfg = Release|Win32
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.Release|x64.ActiveCfg = Release|x64
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.Release|x64 Setup.ActiveCfg = Release|x64
++              {7EB71250-F002-4ED8-92CA-CA218114537A}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|Win32.ActiveCfg = Release|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|x64.ActiveCfg = Release|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|x64 Setup.ActiveCfg = Release|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|x86 Setup.ActiveCfg = Release|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|Win32.ActiveCfg = Debug|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|x64.ActiveCfg = Debug|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release|Win32.ActiveCfg = Release|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release|x64.ActiveCfg = Release|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {464AAB78-5489-4916-BE51-BF8D61822311}.All|Win32.ActiveCfg = Release|Win32
++              {464AAB78-5489-4916-BE51-BF8D61822311}.All|x64.ActiveCfg = Release|Win32
++              {464AAB78-5489-4916-BE51-BF8D61822311}.All|x64 Setup.ActiveCfg = Release|Win32
++              {464AAB78-5489-4916-BE51-BF8D61822311}.All|x86 Setup.ActiveCfg = Release|Win32
++              {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|Win32.ActiveCfg = Debug|Win32
++              {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|x64.ActiveCfg = Debug|x64
++              {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {464AAB78-5489-4916-BE51-BF8D61822311}.Release|Win32.ActiveCfg = Release|Win32
++              {464AAB78-5489-4916-BE51-BF8D61822311}.Release|x64.ActiveCfg = Release|x64
++              {464AAB78-5489-4916-BE51-BF8D61822311}.Release|x64 Setup.ActiveCfg = Release|x64
++              {464AAB78-5489-4916-BE51-BF8D61822311}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {0AD1177E-1FD8-4643-9391-431467A11084}.All|Win32.ActiveCfg = Release|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64.ActiveCfg = Release|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64.Build.0 = Release|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64 Setup.ActiveCfg = Release|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64 Setup.Build.0 = Release|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.All|x86 Setup.ActiveCfg = Release|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|Win32.ActiveCfg = Debug|Win32
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|Win32.Build.0 = Debug|Win32
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x64.ActiveCfg = Debug|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x64.Build.0 = Debug|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|Win32.ActiveCfg = Release|Win32
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|Win32.Build.0 = Release|Win32
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|x64.ActiveCfg = Release|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|x64.Build.0 = Release|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|x64 Setup.ActiveCfg = Release|x64
++              {0AD1177E-1FD8-4643-9391-431467A11084}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|Win32.ActiveCfg = Release Static|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64.ActiveCfg = Release Static|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64.Build.0 = Release Static|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64 Setup.ActiveCfg = Release Static|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64 Setup.Build.0 = Release Static|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x86 Setup.ActiveCfg = Release Static|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|Win32.ActiveCfg = Debug|Win32
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|Win32.Build.0 = Debug|Win32
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x64.ActiveCfg = Debug|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x64.Build.0 = Debug|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|Win32.ActiveCfg = Release|Win32
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|Win32.Build.0 = Release|Win32
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|x64.ActiveCfg = Release|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|x64.Build.0 = Release|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|x64 Setup.ActiveCfg = Release|x64
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64 Setup.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x86 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x86 Setup.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|Win32.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x64.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x64.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|x64.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64 Setup.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x86 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x86 Setup.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|Win32.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x64.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x64.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|x64.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64 Setup.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x86 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x86 Setup.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|Win32.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x64.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x64.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|x64.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64 Setup.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x86 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x86 Setup.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|Win32.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x64.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x64.Build.0 = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|Win32.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|Win32.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|x64.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|x64.Build.0 = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|Win32.ActiveCfg = Debug|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64.ActiveCfg = Debug|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64.Build.0 = Debug|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64 Setup.ActiveCfg = Debug|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64 Setup.Build.0 = Debug|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x86 Setup.ActiveCfg = Debug|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|Win32.ActiveCfg = Debug|Win32
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|Win32.Build.0 = Debug|Win32
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x64.ActiveCfg = Debug|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x64.Build.0 = Debug|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|Win32.ActiveCfg = Release|Win32
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|Win32.Build.0 = Release|Win32
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|x64.ActiveCfg = Release|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|x64.Build.0 = Release|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|x64 Setup.ActiveCfg = Release|x64
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|Win32.ActiveCfg = Debug|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64.ActiveCfg = Debug|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64.Build.0 = Debug|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64 Setup.ActiveCfg = Debug|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64 Setup.Build.0 = Debug|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x86 Setup.ActiveCfg = Debug|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|Win32.Build.0 = Debug|Win32
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x64.ActiveCfg = Debug|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x64.Build.0 = Debug|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|Win32.ActiveCfg = Release|Win32
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|Win32.Build.0 = Release|Win32
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|x64.ActiveCfg = Release|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|x64.Build.0 = Release|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|x64 Setup.ActiveCfg = Release|x64
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|Win32.ActiveCfg = Release|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64.ActiveCfg = Release|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64.Build.0 = Release|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64 Setup.ActiveCfg = Release|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64 Setup.Build.0 = Release|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x86 Setup.ActiveCfg = Release|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|Win32.ActiveCfg = Debug|Win32
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|Win32.Build.0 = Debug|Win32
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x64.ActiveCfg = Debug|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x64.Build.0 = Debug|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|Win32.ActiveCfg = Release|Win32
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|Win32.Build.0 = Release|Win32
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|x64.ActiveCfg = Release|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|x64.Build.0 = Release|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|x64 Setup.ActiveCfg = Release|x64
++              {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|Win32.ActiveCfg = Debug|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64.ActiveCfg = Debug|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64.Build.0 = Debug|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64 Setup.ActiveCfg = Debug|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64 Setup.Build.0 = Debug|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x86 Setup.ActiveCfg = Debug|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|Win32.ActiveCfg = Debug|Win32
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|Win32.Build.0 = Debug|Win32
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x64.ActiveCfg = Debug|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x64.Build.0 = Debug|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|Win32.ActiveCfg = Release|Win32
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|Win32.Build.0 = Release|Win32
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64.ActiveCfg = Release|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64.Build.0 = Release|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64 Setup.ActiveCfg = Release|x64
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|Win32.ActiveCfg = Release|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.ActiveCfg = Release|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.Build.0 = Release|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64 Setup.ActiveCfg = Release|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64 Setup.Build.0 = Release|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x86 Setup.ActiveCfg = Release|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.Build.0 = Debug|Win32
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.ActiveCfg = Debug|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.Build.0 = Debug|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.ActiveCfg = Release|Win32
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.Build.0 = Release|Win32
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64.ActiveCfg = Release|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64.Build.0 = Release|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64 Setup.ActiveCfg = Release|x64
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|Win32.ActiveCfg = Release|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.ActiveCfg = Release|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.Build.0 = Release|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64 Setup.ActiveCfg = Release|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64 Setup.Build.0 = Release|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x86 Setup.ActiveCfg = Release|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|Win32.Build.0 = Debug|Win32
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x64.ActiveCfg = Debug|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x64.Build.0 = Debug|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|Win32.ActiveCfg = Release|Win32
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|Win32.Build.0 = Release|Win32
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|x64.ActiveCfg = Release|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|x64.Build.0 = Release|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|x64 Setup.ActiveCfg = Release|x64
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|Win32.ActiveCfg = Release_Mono|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64.ActiveCfg = Release_Mono|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64.Build.0 = Release_Mono|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64 Setup.ActiveCfg = Release_Mono|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64 Setup.Build.0 = Release_Mono|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x86 Setup.ActiveCfg = Release_Mono|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|Win32.ActiveCfg = Debug_CLR|Win32
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|Win32.Build.0 = Debug_CLR|Win32
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x64.ActiveCfg = Debug_CLR|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x64.Build.0 = Debug_CLR|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x64 Setup.ActiveCfg = Debug_CLR|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x86 Setup.ActiveCfg = Debug_CLR|Win32
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|Win32.ActiveCfg = Release_CLR|Win32
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|Win32.Build.0 = Release_CLR|Win32
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|x64.ActiveCfg = Release_CLR|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|x64.Build.0 = Release_CLR|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|x64 Setup.ActiveCfg = Release_CLR|x64
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|x86 Setup.ActiveCfg = Release_CLR|Win32
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.All|Win32.ActiveCfg = Release|Any CPU
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.All|x64.ActiveCfg = Release|Any CPU
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.All|x64 Setup.ActiveCfg = Release|Any CPU
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.All|x86 Setup.ActiveCfg = Release|Any CPU
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|Win32.ActiveCfg = Debug|Any CPU
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|Win32.Build.0 = Debug|Any CPU
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|x64.ActiveCfg = Debug|x64
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|x64.Build.0 = Debug|x64
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|x86 Setup.ActiveCfg = Debug|Any CPU
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|Win32.ActiveCfg = Release|Any CPU
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|Win32.Build.0 = Release|Any CPU
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|x64.ActiveCfg = Release|x64
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|x64.Build.0 = Release|x64
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|x64 Setup.ActiveCfg = Release|x64
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|x86 Setup.ActiveCfg = Release|Any CPU
++              {E796E337-DE78-4303-8614-9A590862EE95}.All|Win32.ActiveCfg = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.All|Win32.Build.0 = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.All|x64.ActiveCfg = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.All|x64.Build.0 = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.All|x64 Setup.ActiveCfg = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.All|x64 Setup.Build.0 = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.All|x86 Setup.ActiveCfg = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.All|x86 Setup.Build.0 = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|Win32.ActiveCfg = Debug|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|Win32.Build.0 = Debug|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x64.ActiveCfg = Debug|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x64.Build.0 = Debug|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Release|Win32.ActiveCfg = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Release|Win32.Build.0 = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Release|x64.ActiveCfg = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Release|x64.Build.0 = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {E796E337-DE78-4303-8614-9A590862EE95}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {419C8F80-D858-4B48-A25C-AF4007608137}.All|Win32.ActiveCfg = Release|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64.ActiveCfg = Release|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64.Build.0 = Release|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64 Setup.ActiveCfg = Release|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64 Setup.Build.0 = Release|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.All|x86 Setup.ActiveCfg = Release|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|Win32.ActiveCfg = Debug|Win32
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|Win32.Build.0 = Debug|Win32
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x64.ActiveCfg = Debug|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x64.Build.0 = Debug|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|Win32.ActiveCfg = Release|Win32
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|Win32.Build.0 = Release|Win32
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|x64.ActiveCfg = Release|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|x64.Build.0 = Release|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|x64 Setup.ActiveCfg = Release|x64
++              {419C8F80-D858-4B48-A25C-AF4007608137}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|Win32.ActiveCfg = Release|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64.ActiveCfg = Release|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64.Build.0 = Release|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64 Setup.ActiveCfg = Release|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64 Setup.Build.0 = Release|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x86 Setup.ActiveCfg = Release|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|Win32.Build.0 = Debug|Win32
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x64.ActiveCfg = Debug|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x64.Build.0 = Debug|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|Win32.ActiveCfg = Release|Win32
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|Win32.Build.0 = Release|Win32
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|x64.ActiveCfg = Release|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|x64.Build.0 = Release|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|x64 Setup.ActiveCfg = Release|x64
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|Win32.ActiveCfg = Release|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64.ActiveCfg = Release|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64.Build.0 = Release|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64 Setup.ActiveCfg = Release|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64 Setup.Build.0 = Release|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x86 Setup.ActiveCfg = Release|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|Win32.ActiveCfg = Debug|Win32
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|Win32.Build.0 = Debug|Win32
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x64.ActiveCfg = Debug|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x64.Build.0 = Debug|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|Win32.ActiveCfg = Release|Win32
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|Win32.Build.0 = Release|Win32
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|x64.ActiveCfg = Release|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|x64.Build.0 = Release|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|x64 Setup.ActiveCfg = Release|x64
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|Win32.ActiveCfg = Release|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64.ActiveCfg = Release|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64.Build.0 = Release|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64 Setup.ActiveCfg = Release|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64 Setup.Build.0 = Release|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x86 Setup.ActiveCfg = Release|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|Win32.Build.0 = Debug|Win32
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x64.ActiveCfg = Debug|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x64.Build.0 = Debug|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|Win32.ActiveCfg = Release|Win32
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|Win32.Build.0 = Release|Win32
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|x64.ActiveCfg = Release|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|x64.Build.0 = Release|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|x64 Setup.ActiveCfg = Release|x64
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|Win32.ActiveCfg = Release|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64.ActiveCfg = Release|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64.Build.0 = Release|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64 Setup.ActiveCfg = Release|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64 Setup.Build.0 = Release|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x86 Setup.ActiveCfg = Release|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|Win32.ActiveCfg = Debug|Win32
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|Win32.Build.0 = Debug|Win32
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x64.ActiveCfg = Debug|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x64.Build.0 = Debug|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|Win32.ActiveCfg = Release|Win32
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|Win32.Build.0 = Release|Win32
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|x64.ActiveCfg = Release|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|x64.Build.0 = Release|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|x64 Setup.ActiveCfg = Release|x64
++              {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|Win32.ActiveCfg = Release|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64.ActiveCfg = Release|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64.Build.0 = Release|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64 Setup.ActiveCfg = Release|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64 Setup.Build.0 = Release|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x86 Setup.ActiveCfg = Release|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|Win32.Build.0 = Debug|Win32
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x64.ActiveCfg = Debug|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x64.Build.0 = Debug|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|Win32.ActiveCfg = Release|Win32
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|Win32.Build.0 = Release|Win32
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|x64.ActiveCfg = Release|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|x64.Build.0 = Release|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|x64 Setup.ActiveCfg = Release|x64
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|Win32.ActiveCfg = Release|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64.ActiveCfg = Release|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64.Build.0 = Release|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64 Setup.ActiveCfg = Release|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64 Setup.Build.0 = Release|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x86 Setup.ActiveCfg = Release|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|Win32.Build.0 = Debug|Win32
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x64.ActiveCfg = Debug|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x64.Build.0 = Debug|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|Win32.ActiveCfg = Release|Win32
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|Win32.Build.0 = Release|Win32
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|x64.ActiveCfg = Release|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|x64.Build.0 = Release|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|x64 Setup.ActiveCfg = Release|x64
++              {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|Win32.ActiveCfg = Release|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64.ActiveCfg = Release|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64.Build.0 = Release|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64 Setup.ActiveCfg = Release|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64 Setup.Build.0 = Release|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x86 Setup.ActiveCfg = Release|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|Win32.ActiveCfg = Debug|Win32
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|Win32.Build.0 = Debug|Win32
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x64.ActiveCfg = Debug|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x64.Build.0 = Debug|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|Win32.ActiveCfg = Release|Win32
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|Win32.Build.0 = Release|Win32
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|x64.ActiveCfg = Release|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|x64.Build.0 = Release|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|x64 Setup.ActiveCfg = Release|x64
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|Win32.ActiveCfg = Release|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64.ActiveCfg = Release|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64.Build.0 = Release|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64 Setup.ActiveCfg = Release|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64 Setup.Build.0 = Release|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x86 Setup.ActiveCfg = Release|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|Win32.Build.0 = Debug|Win32
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x64.ActiveCfg = Debug|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x64.Build.0 = Debug|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|Win32.ActiveCfg = Release|Win32
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|Win32.Build.0 = Release|Win32
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|x64.ActiveCfg = Release|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|x64.Build.0 = Release|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|x64 Setup.ActiveCfg = Release|x64
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|Win32.ActiveCfg = Release|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x64.ActiveCfg = Release|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x64.Build.0 = Release|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x64 Setup.ActiveCfg = Release|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x64 Setup.Build.0 = Release|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x86 Setup.ActiveCfg = Release|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|Win32.ActiveCfg = Debug|Win32
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|Win32.Build.0 = Debug|Win32
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|x64.ActiveCfg = Debug|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|x64.Build.0 = Debug|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|Win32.ActiveCfg = Release|Win32
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|Win32.Build.0 = Release|Win32
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|x64.ActiveCfg = Release|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|x64.Build.0 = Release|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|x64 Setup.ActiveCfg = Release|x64
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|Win32.ActiveCfg = Release|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64.ActiveCfg = Release|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64.Build.0 = Release|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64 Setup.ActiveCfg = Release|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64 Setup.Build.0 = Release|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x86 Setup.ActiveCfg = Release|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|Win32.Build.0 = Debug|Win32
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x64.ActiveCfg = Debug|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x64.Build.0 = Debug|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|Win32.ActiveCfg = Release|Win32
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|Win32.Build.0 = Release|Win32
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|x64.ActiveCfg = Release|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|x64.Build.0 = Release|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|x64 Setup.ActiveCfg = Release|x64
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|Win32.ActiveCfg = Release_WM5_PPC_ARM|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x64.ActiveCfg = Release_WM5_PPC_ARM|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x64.Build.0 = Release_WM5_PPC_ARM|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x64 Setup.ActiveCfg = Release_WM5_PPC_ARM|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x64 Setup.Build.0 = Release_WM5_PPC_ARM|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x86 Setup.ActiveCfg = Release_WM5_PPC_ARM|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|Win32.ActiveCfg = Debug|Win32
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|Win32.Build.0 = Debug|Win32
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|x64.ActiveCfg = Debug|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|x64.Build.0 = Debug|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|Win32.ActiveCfg = Release|Win32
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|Win32.Build.0 = Release|Win32
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|x64.ActiveCfg = Release|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|x64.Build.0 = Release|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|x64 Setup.ActiveCfg = Release|x64
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|Win32.ActiveCfg = Release_Static_SSE|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x64.ActiveCfg = Release_Static_SSE|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x64.Build.0 = Release_Static_SSE|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x64 Setup.ActiveCfg = Release_Static_SSE|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x64 Setup.Build.0 = Release_Static_SSE|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x86 Setup.ActiveCfg = Release_Static_SSE|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|Win32.Build.0 = Debug|Win32
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|x64.ActiveCfg = Debug|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|x64.Build.0 = Debug|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|Win32.ActiveCfg = Release|Win32
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|Win32.Build.0 = Release|Win32
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|x64.ActiveCfg = Release|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|x64.Build.0 = Release|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|x64 Setup.ActiveCfg = Release|x64
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|Win32.ActiveCfg = Release|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64.ActiveCfg = Release|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64.Build.0 = Release|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64 Setup.ActiveCfg = Release|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64 Setup.Build.0 = Release|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x86 Setup.ActiveCfg = Release|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|Win32.Build.0 = Debug|Win32
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x64.ActiveCfg = Debug|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x64.Build.0 = Debug|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|Win32.ActiveCfg = Release|Win32
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|Win32.Build.0 = Release|Win32
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x64.ActiveCfg = Release|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x64.Build.0 = Release|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x64 Setup.ActiveCfg = Release|x64
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D0B36172-CD76-454A-9B89-990025266C2A}.All|Win32.ActiveCfg = Release|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64.ActiveCfg = Release|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64.Build.0 = Release|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64 Setup.ActiveCfg = Release|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64 Setup.Build.0 = Release|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.All|x86 Setup.ActiveCfg = Release|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|Win32.Build.0 = Debug|Win32
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64.ActiveCfg = Debug|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64.Build.0 = Debug|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|Win32.ActiveCfg = Release|Win32
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|Win32.Build.0 = Release|Win32
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|x64.ActiveCfg = Release|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|x64.Build.0 = Release|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|x64 Setup.ActiveCfg = Release|x64
++              {D0B36172-CD76-454A-9B89-990025266C2A}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|Win32.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|Win32.Build.0 = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|x64.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|x64 Setup.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|x86 Setup.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|x86 Setup.Build.0 = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|Win32.ActiveCfg = Debug|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|x64.ActiveCfg = Debug|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release|Win32.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release|x64.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|Win32.ActiveCfg = Release|Win32
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|x64.ActiveCfg = Release|Win32
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|x64 Setup.ActiveCfg = Release|Win32
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|x86 Setup.ActiveCfg = Release|Win32
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|Win32.ActiveCfg = Debug|Win32
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|Win32.Build.0 = Debug|Win32
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x64.ActiveCfg = Debug|x64
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x64.Build.0 = Debug|x64
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|Win32.ActiveCfg = Release|Win32
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|Win32.Build.0 = Release|Win32
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|x64.ActiveCfg = Release|x64
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|x64.Build.0 = Release|x64
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|x64 Setup.ActiveCfg = Release|x64
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {48414740-C693-4968-9846-EE058020C64F}.All|Win32.ActiveCfg = Release|Win32
++              {48414740-C693-4968-9846-EE058020C64F}.All|x64.ActiveCfg = Release|Win32
++              {48414740-C693-4968-9846-EE058020C64F}.All|x64 Setup.ActiveCfg = Release|Win32
++              {48414740-C693-4968-9846-EE058020C64F}.All|x86 Setup.ActiveCfg = Release|Win32
++              {48414740-C693-4968-9846-EE058020C64F}.Debug|Win32.ActiveCfg = Debug|Win32
++              {48414740-C693-4968-9846-EE058020C64F}.Debug|Win32.Build.0 = Debug|Win32
++              {48414740-C693-4968-9846-EE058020C64F}.Debug|x64.ActiveCfg = Debug|x64
++              {48414740-C693-4968-9846-EE058020C64F}.Debug|x64.Build.0 = Debug|x64
++              {48414740-C693-4968-9846-EE058020C64F}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {48414740-C693-4968-9846-EE058020C64F}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {48414740-C693-4968-9846-EE058020C64F}.Release|Win32.ActiveCfg = Release|Win32
++              {48414740-C693-4968-9846-EE058020C64F}.Release|Win32.Build.0 = Release|Win32
++              {48414740-C693-4968-9846-EE058020C64F}.Release|x64.ActiveCfg = Release|x64
++              {48414740-C693-4968-9846-EE058020C64F}.Release|x64.Build.0 = Release|x64
++              {48414740-C693-4968-9846-EE058020C64F}.Release|x64 Setup.ActiveCfg = Release|x64
++              {48414740-C693-4968-9846-EE058020C64F}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|Win32.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|Win32.Build.0 = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|x64.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|x64 Setup.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|x86 Setup.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|x86 Setup.Build.0 = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|Win32.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|Win32.Build.0 = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x64.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x64.Build.0 = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x64 Setup.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x86 Setup.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|Win32.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|Win32.Build.0 = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|x64.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|x64.Build.0 = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|x64 Setup.ActiveCfg = All|Win32
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|x86 Setup.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|Win32.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|Win32.Build.0 = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|x64.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|x64 Setup.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|x86 Setup.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|x86 Setup.Build.0 = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|Win32.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|Win32.Build.0 = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x64.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x64.Build.0 = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x64 Setup.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x86 Setup.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|Win32.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|Win32.Build.0 = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|x64.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|x64.Build.0 = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|x64 Setup.ActiveCfg = All|Win32
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|x86 Setup.ActiveCfg = All|Win32
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|Win32.ActiveCfg = Release|x64
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64.ActiveCfg = Release|x64
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64.Build.0 = Release|x64
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64 Setup.ActiveCfg = Release|x64
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64 Setup.Build.0 = Release|x64
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x86 Setup.ActiveCfg = Release|x64
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|Win32.ActiveCfg = Debug|Win32
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|x64.ActiveCfg = Debug|x64
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release|Win32.ActiveCfg = Release|Win32
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release|x64.ActiveCfg = Release|x64
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release|x64 Setup.ActiveCfg = Release|x64
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|Win32.ActiveCfg = Release|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|Win32.Build.0 = Release|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|x64.ActiveCfg = Release|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|x64 Setup.ActiveCfg = Release|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|x86 Setup.ActiveCfg = Release|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|x86 Setup.Build.0 = Release|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|Win32.ActiveCfg = Debug|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|Win32.Build.0 = Debug|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x64.ActiveCfg = Debug|x64
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x64.Build.0 = Debug|x64
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|Win32.ActiveCfg = Release|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|Win32.Build.0 = Release|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x64.ActiveCfg = Release|x64
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x64.Build.0 = Release|x64
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.All|Win32.ActiveCfg = Release|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.All|x64.ActiveCfg = Release|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.All|x64 Setup.ActiveCfg = Release|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.All|x86 Setup.ActiveCfg = Release|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|x64.ActiveCfg = Debug|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.Release|Win32.ActiveCfg = Release|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.Release|x64.ActiveCfg = Release|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {1F0A8A77-E661-418F-BB92-82172AE43803}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|Win32.ActiveCfg = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|Win32.Build.0 = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64.ActiveCfg = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64.Build.0 = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64 Setup.ActiveCfg = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64 Setup.Build.0 = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x86 Setup.ActiveCfg = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x86 Setup.Build.0 = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|Win32.ActiveCfg = Debug|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|Win32.Build.0 = Debug|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x64.ActiveCfg = Debug|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x64.Build.0 = Debug|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|Win32.ActiveCfg = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|Win32.Build.0 = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|x64.ActiveCfg = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|x64.Build.0 = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|Win32.ActiveCfg = Release|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|x64.ActiveCfg = Release|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|x64 Setup.ActiveCfg = Release|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|x86 Setup.ActiveCfg = Release|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|Win32.ActiveCfg = Debug|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|x64.ActiveCfg = Debug|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release|Win32.ActiveCfg = Release|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release|x64.ActiveCfg = Release|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|Win32.ActiveCfg = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|Win32.Build.0 = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64.ActiveCfg = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64.Build.0 = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64 Setup.ActiveCfg = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64 Setup.Build.0 = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x86 Setup.ActiveCfg = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x86 Setup.Build.0 = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|Win32.Build.0 = Debug|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x64.ActiveCfg = Debug|x64
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x64.Build.0 = Debug|x64
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|Win32.ActiveCfg = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|Win32.Build.0 = Release|Win32
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|x64.ActiveCfg = Release|x64
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|x64.Build.0 = Release|x64
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|x64 Setup.ActiveCfg = Release|x64
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|Win32.ActiveCfg = Release|Win32
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|x64.ActiveCfg = Release|Win32
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|x64 Setup.ActiveCfg = Release|Win32
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|x86 Setup.ActiveCfg = Release|Win32
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|Win32.ActiveCfg = Debug|Win32
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|x64.ActiveCfg = Debug|x64
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release|Win32.ActiveCfg = Release|Win32
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release|x64.ActiveCfg = Release|x64
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release|x64 Setup.ActiveCfg = Release|x64
++              {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|Win32.ActiveCfg = Release|Win32
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|x64.ActiveCfg = Release|Win32
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|x64 Setup.ActiveCfg = Release|Win32
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|x86 Setup.ActiveCfg = Release|Win32
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|Win32.ActiveCfg = Debug|Win32
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|x64.ActiveCfg = Debug|x64
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|Win32.ActiveCfg = Release|Win32
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|x64.ActiveCfg = Release|x64
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|x64 Setup.ActiveCfg = Release|x64
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|Win32.ActiveCfg = Release|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64.ActiveCfg = Release|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64.Build.0 = Release|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64 Setup.ActiveCfg = Release|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64 Setup.Build.0 = Release|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x86 Setup.ActiveCfg = Release|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|Win32.Build.0 = Debug|Win32
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x64.ActiveCfg = Debug|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x64.Build.0 = Debug|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|Win32.ActiveCfg = Release|Win32
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|Win32.Build.0 = Release|Win32
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x64.ActiveCfg = Release|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x64.Build.0 = Release|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x64 Setup.ActiveCfg = Release|x64
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|Win32.ActiveCfg = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|Win32.Build.0 = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.ActiveCfg = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.Build.0 = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64 Setup.ActiveCfg = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64 Setup.Build.0 = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x86 Setup.ActiveCfg = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x86 Setup.Build.0 = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|Win32.ActiveCfg = Debug|Win32
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|Win32.Build.0 = Debug|Win32
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.ActiveCfg = Debug|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.Build.0 = Debug|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|Win32.ActiveCfg = Release|Win32
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|Win32.Build.0 = Release|Win32
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64.ActiveCfg = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64.Build.0 = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64 Setup.ActiveCfg = Release|x64
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|Win32.ActiveCfg = Release|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|x64.ActiveCfg = Release|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|x64 Setup.ActiveCfg = Release|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|x86 Setup.ActiveCfg = Release|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|Win32.Build.0 = Debug|Win32
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x64.ActiveCfg = Debug|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x64.Build.0 = Debug|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|Win32.ActiveCfg = Release|Win32
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|Win32.Build.0 = Release|Win32
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|x64.ActiveCfg = Release|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|x64.Build.0 = Release|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|x64 Setup.ActiveCfg = Release|x64
++              {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|Win32.ActiveCfg = Release|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|Win32.Build.0 = Release|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|x64.ActiveCfg = Release|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|x64 Setup.ActiveCfg = Release|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|x86 Setup.ActiveCfg = Release|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|x86 Setup.Build.0 = Release|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.ActiveCfg = Debug|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.Build.0 = Debug|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x64.ActiveCfg = Debug|x64
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x64.Build.0 = Debug|x64
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.ActiveCfg = Release|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.Build.0 = Release|Win32
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|x64.ActiveCfg = Release|x64
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|x64.Build.0 = Release|x64
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|x64 Setup.ActiveCfg = Release|x64
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|Win32.ActiveCfg = Release|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64.ActiveCfg = Release|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64.Build.0 = Release|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64 Setup.ActiveCfg = Release|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64 Setup.Build.0 = Release|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x86 Setup.ActiveCfg = Release|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|Win32.Build.0 = Debug|Win32
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x64.ActiveCfg = Debug|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x64.Build.0 = Debug|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|Win32.ActiveCfg = Release|Win32
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|Win32.Build.0 = Release|Win32
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x64.ActiveCfg = Release|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x64.Build.0 = Release|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x64 Setup.ActiveCfg = Release|x64
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|Win32.ActiveCfg = Release|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|Win32.Build.0 = Release|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|x64.ActiveCfg = Release|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|x64 Setup.ActiveCfg = Release|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|x86 Setup.ActiveCfg = Release|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|x86 Setup.Build.0 = Release|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|Win32.ActiveCfg = Debug|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|Win32.Build.0 = Debug|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64.ActiveCfg = Debug|x64
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64.Build.0 = Debug|x64
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|Win32.ActiveCfg = Release|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|Win32.Build.0 = Release|Win32
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x64.ActiveCfg = Release|x64
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x64.Build.0 = Release|x64
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x64 Setup.ActiveCfg = Release|x64
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|Win32.ActiveCfg = Release|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|Win32.Build.0 = Release|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|x64.ActiveCfg = Release|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|x64 Setup.ActiveCfg = Release|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|x86 Setup.ActiveCfg = Release|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|x86 Setup.Build.0 = Release|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|Win32.Build.0 = Debug|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64.ActiveCfg = Debug|x64
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64.Build.0 = Debug|x64
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|Win32.ActiveCfg = Release|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|Win32.Build.0 = Release|Win32
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x64.ActiveCfg = Release|x64
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x64.Build.0 = Release|x64
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x64 Setup.ActiveCfg = Release|x64
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|Win32.ActiveCfg = Release|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|Win32.Build.0 = Release|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|x64.ActiveCfg = Release|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|x64 Setup.ActiveCfg = Release|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|x86 Setup.ActiveCfg = Release|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|x86 Setup.Build.0 = Release|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|Win32.Build.0 = Debug|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64.ActiveCfg = Debug|x64
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64.Build.0 = Debug|x64
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|Win32.ActiveCfg = Release|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|Win32.Build.0 = Release|Win32
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x64.ActiveCfg = Release|x64
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x64.Build.0 = Release|x64
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x64 Setup.ActiveCfg = Release|x64
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|Win32.ActiveCfg = Release|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|Win32.Build.0 = Release|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|x64.ActiveCfg = Release|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|x64 Setup.ActiveCfg = Release|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|x86 Setup.ActiveCfg = Release|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|x86 Setup.Build.0 = Release|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|Win32.ActiveCfg = Debug|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|Win32.Build.0 = Debug|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64.ActiveCfg = Debug|x64
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64.Build.0 = Debug|x64
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|Win32.ActiveCfg = Release|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|Win32.Build.0 = Release|Win32
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x64.ActiveCfg = Release|x64
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x64.Build.0 = Release|x64
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x64 Setup.ActiveCfg = Release|x64
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|Win32.ActiveCfg = Release|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|Win32.Build.0 = Release|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|x64.ActiveCfg = Release|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|x64 Setup.ActiveCfg = Release|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|x86 Setup.ActiveCfg = Release|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|x86 Setup.Build.0 = Release|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|Win32.ActiveCfg = Debug|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|Win32.Build.0 = Debug|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64.ActiveCfg = Debug|x64
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64.Build.0 = Debug|x64
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|Win32.ActiveCfg = Release|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|Win32.Build.0 = Release|Win32
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x64.ActiveCfg = Release|x64
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x64.Build.0 = Release|x64
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x64 Setup.ActiveCfg = Release|x64
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|Win32.ActiveCfg = Release|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|Win32.Build.0 = Release|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|x64.ActiveCfg = Release|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|x64 Setup.ActiveCfg = Release|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|x86 Setup.ActiveCfg = Release|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|x86 Setup.Build.0 = Release|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|Win32.ActiveCfg = Debug|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|Win32.Build.0 = Debug|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64.ActiveCfg = Debug|x64
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64.Build.0 = Debug|x64
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|Win32.ActiveCfg = Release|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|Win32.Build.0 = Release|Win32
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x64.ActiveCfg = Release|x64
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x64.Build.0 = Release|x64
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x64 Setup.ActiveCfg = Release|x64
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|Win32.ActiveCfg = Release|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|Win32.Build.0 = Release|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|x64.ActiveCfg = Release|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|x64 Setup.ActiveCfg = Release|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|x86 Setup.ActiveCfg = Release|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.All|x86 Setup.Build.0 = Release|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|Win32.ActiveCfg = Debug|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|Win32.Build.0 = Debug|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64.ActiveCfg = Debug|x64
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64.Build.0 = Debug|x64
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|Win32.ActiveCfg = Release|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|Win32.Build.0 = Release|Win32
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x64.ActiveCfg = Release|x64
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x64.Build.0 = Release|x64
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x64 Setup.ActiveCfg = Release|x64
++              {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|Win32.ActiveCfg = Release|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|Win32.Build.0 = Release|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|x64.ActiveCfg = Release|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|x64 Setup.ActiveCfg = Release|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|x86 Setup.ActiveCfg = Release|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|x86 Setup.Build.0 = Release|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|Win32.Build.0 = Debug|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64.ActiveCfg = Debug|x64
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64.Build.0 = Debug|x64
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|Win32.ActiveCfg = Release|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|Win32.Build.0 = Release|Win32
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x64.ActiveCfg = Release|x64
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x64.Build.0 = Release|x64
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x64 Setup.ActiveCfg = Release|x64
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|Win32.ActiveCfg = Release|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|Win32.Build.0 = Release|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|x64.ActiveCfg = Release|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|x64 Setup.ActiveCfg = Release|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|x86 Setup.ActiveCfg = Release|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|x86 Setup.Build.0 = Release|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|Win32.ActiveCfg = Debug|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|Win32.Build.0 = Debug|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64.ActiveCfg = Debug|x64
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64.Build.0 = Debug|x64
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|Win32.ActiveCfg = Release|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|Win32.Build.0 = Release|Win32
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x64.ActiveCfg = Release|x64
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x64.Build.0 = Release|x64
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x64 Setup.ActiveCfg = Release|x64
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|Win32.ActiveCfg = Release|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x64.ActiveCfg = Release|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x64.Build.0 = Release|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x64 Setup.ActiveCfg = Release|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x64 Setup.Build.0 = Release|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x86 Setup.ActiveCfg = Release|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|Win32.Build.0 = Debug|Win32
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|x64.ActiveCfg = Debug|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|x64.Build.0 = Debug|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|Win32.ActiveCfg = Release|Win32
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|Win32.Build.0 = Release|Win32
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|x64.ActiveCfg = Release|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|x64.Build.0 = Release|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|x64 Setup.ActiveCfg = Release|x64
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|Win32.ActiveCfg = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|Win32.Build.0 = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|x64.ActiveCfg = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|x64 Setup.ActiveCfg = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|x86 Setup.ActiveCfg = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|x86 Setup.Build.0 = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|Win32.ActiveCfg = Debug|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|Win32.Build.0 = Debug|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x64.ActiveCfg = Debug|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x64.Build.0 = Debug|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|Win32.ActiveCfg = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|Win32.Build.0 = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|x64.ActiveCfg = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|x64.Build.0 = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|Win32.ActiveCfg = Release|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64.ActiveCfg = Release|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64.Build.0 = Release|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64 Setup.ActiveCfg = Release|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64 Setup.Build.0 = Release|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x86 Setup.ActiveCfg = Release|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|Win32.Build.0 = Debug|Win32
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64.ActiveCfg = Debug|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64.Build.0 = Debug|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|Win32.ActiveCfg = Release|Win32
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|Win32.Build.0 = Release|Win32
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x64.ActiveCfg = Release|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x64.Build.0 = Release|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x64 Setup.ActiveCfg = Release|x64
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|Win32.ActiveCfg = Release Passthrough|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64.ActiveCfg = Release Passthrough|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64.Build.0 = Release Passthrough|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64 Setup.ActiveCfg = Release Passthrough|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64 Setup.Build.0 = Release Passthrough|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x86 Setup.ActiveCfg = Release Passthrough|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|Win32.ActiveCfg = Debug|Win32
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|Win32.Build.0 = Debug|Win32
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x64.ActiveCfg = Debug|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x64.Build.0 = Debug|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|Win32.ActiveCfg = Release|Win32
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|Win32.Build.0 = Release|Win32
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|x64.ActiveCfg = Release|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|x64.Build.0 = Release|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|x64 Setup.ActiveCfg = Release|x64
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|Win32.ActiveCfg = Release|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|Win32.Build.0 = Release|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|x64.ActiveCfg = Release|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|x64 Setup.ActiveCfg = Release|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|x86 Setup.ActiveCfg = Release|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|x86 Setup.Build.0 = Release|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|Win32.ActiveCfg = Debug|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|x64.ActiveCfg = Debug|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release|Win32.ActiveCfg = Release|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release|x64.ActiveCfg = Release|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|Win32.ActiveCfg = Release|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64.ActiveCfg = Release|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64.Build.0 = Release|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64 Setup.ActiveCfg = Release|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64 Setup.Build.0 = Release|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x86 Setup.ActiveCfg = Release|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|Win32.ActiveCfg = Debug|Win32
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|Win32.Build.0 = Debug|Win32
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x64.ActiveCfg = Debug|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x64.Build.0 = Debug|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|Win32.ActiveCfg = Release|Win32
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|Win32.Build.0 = Release|Win32
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|x64.ActiveCfg = Release|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|x64.Build.0 = Release|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|x64 Setup.ActiveCfg = Release|x64
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|Win32.ActiveCfg = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|Win32.Build.0 = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|x64.ActiveCfg = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|x64 Setup.ActiveCfg = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|x86 Setup.ActiveCfg = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|x86 Setup.Build.0 = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|Win32.Build.0 = Debug|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x64.ActiveCfg = Debug|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x64.Build.0 = Debug|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|Win32.ActiveCfg = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|Win32.Build.0 = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|x64.ActiveCfg = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|x64.Build.0 = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|Win32.ActiveCfg = Release|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64.ActiveCfg = Release|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64.Build.0 = Release|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64 Setup.ActiveCfg = Release|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64 Setup.Build.0 = Release|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x86 Setup.ActiveCfg = Release|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|Win32.Build.0 = Debug|Win32
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64.ActiveCfg = Debug|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64.Build.0 = Debug|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|Win32.ActiveCfg = Release|Win32
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|Win32.Build.0 = Release|Win32
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x64.ActiveCfg = Release|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x64.Build.0 = Release|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x64 Setup.ActiveCfg = Release|x64
++              {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|Win32.ActiveCfg = Release|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64.ActiveCfg = Release|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64.Build.0 = Release|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64 Setup.ActiveCfg = Release|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64 Setup.Build.0 = Release|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x86 Setup.ActiveCfg = Release|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|Win32.ActiveCfg = Debug|Win32
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|Win32.Build.0 = Debug|Win32
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x64.ActiveCfg = Debug|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x64.Build.0 = Debug|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|Win32.ActiveCfg = Release|Win32
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|Win32.Build.0 = Release|Win32
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|x64.ActiveCfg = Release|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|x64.Build.0 = Release|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|x64 Setup.ActiveCfg = Release|x64
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|Win32.ActiveCfg = Release|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|Win32.Build.0 = Release|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|x64.ActiveCfg = Release|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|x64 Setup.ActiveCfg = Release|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|x86 Setup.ActiveCfg = Release|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|x86 Setup.Build.0 = Release|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|Win32.ActiveCfg = Debug|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|Win32.Build.0 = Debug|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x64.ActiveCfg = Debug|x64
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x64.Build.0 = Debug|x64
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|Win32.ActiveCfg = Release|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|Win32.Build.0 = Release|Win32
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|x64.ActiveCfg = Release|x64
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|x64.Build.0 = Release|x64
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|x64 Setup.ActiveCfg = Release|x64
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|Win32.ActiveCfg = Release|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|Win32.Build.0 = Release|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|x64.ActiveCfg = Release|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|x64 Setup.ActiveCfg = Release|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|x86 Setup.ActiveCfg = Release|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|x86 Setup.Build.0 = Release|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|Win32.ActiveCfg = Debug|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|Win32.Build.0 = Debug|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x64.ActiveCfg = Debug|x64
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x64.Build.0 = Debug|x64
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|Win32.ActiveCfg = Release|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|Win32.Build.0 = Release|Win32
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|x64.ActiveCfg = Release|x64
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|x64.Build.0 = Release|x64
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|x64 Setup.ActiveCfg = Release|x64
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|Win32.ActiveCfg = Release|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64.ActiveCfg = Release|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64.Build.0 = Release|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64 Setup.ActiveCfg = Release|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64 Setup.Build.0 = Release|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x86 Setup.ActiveCfg = Release|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|Win32.ActiveCfg = Debug|Win32
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|Win32.Build.0 = Debug|Win32
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x64.ActiveCfg = Debug|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x64.Build.0 = Debug|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|Win32.ActiveCfg = Release|Win32
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|Win32.Build.0 = Release|Win32
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|x64.ActiveCfg = Release|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|x64.Build.0 = Release|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|x64 Setup.ActiveCfg = Release|x64
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|Win32.ActiveCfg = Release|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64.ActiveCfg = Release|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64.Build.0 = Release|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64 Setup.ActiveCfg = Release|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64 Setup.Build.0 = Release|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x86 Setup.ActiveCfg = Release|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|Win32.Build.0 = Debug|Win32
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x64.ActiveCfg = Debug|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x64.Build.0 = Debug|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|Win32.ActiveCfg = Release|Win32
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|Win32.Build.0 = Release|Win32
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|x64.ActiveCfg = Release|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|x64.Build.0 = Release|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|x64 Setup.ActiveCfg = Release|x64
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|Win32.ActiveCfg = Release|x64
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|x64.ActiveCfg = Release|x64
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|x64.Build.0 = Release|x64
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|x64 Setup.ActiveCfg = Release|x64
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|x64 Setup.Build.0 = Release|x64
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|x86 Setup.ActiveCfg = Release|x64
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|Win32.Build.0 = Debug|Win32
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|x64.ActiveCfg = Debug|x64
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|x64.Build.0 = Debug|x64
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|Win32.ActiveCfg = Release|Win32
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|Win32.Build.0 = Release|Win32
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|x64.ActiveCfg = Release|x64
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|x64.Build.0 = Release|x64
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|x64 Setup.ActiveCfg = Release|x64
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|Win32.ActiveCfg = Release|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|x64.ActiveCfg = Release|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|x64.Build.0 = Release|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|x64 Setup.ActiveCfg = Release|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|x64 Setup.Build.0 = Release|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|x86 Setup.ActiveCfg = Release|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|Win32.Build.0 = Debug|Win32
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|x64.ActiveCfg = Debug|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|x64.Build.0 = Debug|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|Win32.ActiveCfg = Release|Win32
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|Win32.Build.0 = Release|Win32
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|x64.ActiveCfg = Release|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|x64.Build.0 = Release|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|x64 Setup.ActiveCfg = Release|x64
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|Win32.ActiveCfg = Release|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|x64.ActiveCfg = Release|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|x64.Build.0 = Release|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|x64 Setup.ActiveCfg = Release|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|x64 Setup.Build.0 = Release|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|x86 Setup.ActiveCfg = Release|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|Win32.ActiveCfg = Debug|Win32
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|Win32.Build.0 = Debug|Win32
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|x64.ActiveCfg = Debug|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|x64.Build.0 = Debug|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|Win32.ActiveCfg = Release|Win32
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|Win32.Build.0 = Release|Win32
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|x64.ActiveCfg = Release|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|x64.Build.0 = Release|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|x64 Setup.ActiveCfg = Release|x64
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|Win32.ActiveCfg = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|Win32.Build.0 = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|x64.ActiveCfg = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|x64 Setup.ActiveCfg = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|x86 Setup.ActiveCfg = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|x86 Setup.Build.0 = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|Win32.Build.0 = Debug|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|x64.ActiveCfg = Debug|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|x64.Build.0 = Debug|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|Win32.ActiveCfg = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|Win32.Build.0 = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|x64.ActiveCfg = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|x64.Build.0 = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|Win32.ActiveCfg = Release|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64.ActiveCfg = Release|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64.Build.0 = Release|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64 Setup.ActiveCfg = Release|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64 Setup.Build.0 = Release|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x86 Setup.ActiveCfg = Release|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|Win32.ActiveCfg = Debug|Win32
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|Win32.Build.0 = Debug|Win32
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x64.ActiveCfg = Debug|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x64.Build.0 = Debug|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|Win32.ActiveCfg = Release|Win32
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|Win32.Build.0 = Release|Win32
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|x64.ActiveCfg = Release|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|x64.Build.0 = Release|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|x64 Setup.ActiveCfg = Release|x64
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|Win32.ActiveCfg = Release|x64
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|x64.ActiveCfg = Release|x64
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|x64.Build.0 = Release|x64
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|x64 Setup.ActiveCfg = Release|x64
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|x64 Setup.Build.0 = Release|x64
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|x86 Setup.ActiveCfg = Release|x64
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|Win32.Build.0 = Debug|Win32
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|x64.ActiveCfg = Debug|x64
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|x64.Build.0 = Debug|x64
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|Win32.ActiveCfg = Release|Win32
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|Win32.Build.0 = Release|Win32
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|x64.ActiveCfg = Release|x64
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|x64.Build.0 = Release|x64
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|x64 Setup.ActiveCfg = Release|x64
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|Win32.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|Win32.Build.0 = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|x64.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|x64 Setup.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|x86 Setup.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.All|x86 Setup.Build.0 = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Debug|Win32.ActiveCfg = Debug|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Debug|x64.ActiveCfg = Debug|x64
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Release|Win32.ActiveCfg = Release|Win32
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Release|x64.ActiveCfg = Release|x64
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Release|x64 Setup.ActiveCfg = Release|x64
++              {05C9FB27-480E-4D53-B3B7-7338E2514666}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.All|Win32.ActiveCfg = Release|x64
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.All|x64.ActiveCfg = Release|x64
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.All|x64.Build.0 = Release|x64
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.All|x64 Setup.ActiveCfg = Release|x64
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.All|x64 Setup.Build.0 = Release|x64
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.All|x86 Setup.ActiveCfg = Release|x64
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|Win32.ActiveCfg = Debug|Win32
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|Win32.Build.0 = Debug|Win32
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|x64.ActiveCfg = Debug|x64
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|x64.Build.0 = Debug|x64
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|Win32.ActiveCfg = Release|Win32
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|Win32.Build.0 = Release|Win32
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|x64.ActiveCfg = Release|x64
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|x64.Build.0 = Release|x64
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|x64 Setup.ActiveCfg = Release|x64
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.All|Win32.ActiveCfg = Release|x86
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.All|x64.ActiveCfg = Release|x86
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.All|x64 Setup.ActiveCfg = Release|x86
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.All|x86 Setup.ActiveCfg = Release|x86
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Debug|Win32.ActiveCfg = Debug|x86
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Debug|x64.ActiveCfg = Debug|x64
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Debug|x64 Setup.Build.0 = Debug|x64
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Debug|x86 Setup.ActiveCfg = Debug|x86
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Debug|x86 Setup.Build.0 = Debug|x86
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Release|Win32.ActiveCfg = Release|x86
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Release|x64.ActiveCfg = Release|x64
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Release|x64 Setup.ActiveCfg = Release|x64
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Release|x64 Setup.Build.0 = Release|x64
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Release|x86 Setup.ActiveCfg = Release|x86
++              {47213370-B933-487D-9F45-BCA26D7E2B6F}.Release|x86 Setup.Build.0 = Release|x86
++              {7C22BDFF-CC09-400C-8A09-660733980028}.All|Win32.ActiveCfg = Release|x64
++              {7C22BDFF-CC09-400C-8A09-660733980028}.All|x64.ActiveCfg = Release|x64
++              {7C22BDFF-CC09-400C-8A09-660733980028}.All|x64.Build.0 = Release|x64
++              {7C22BDFF-CC09-400C-8A09-660733980028}.All|x64 Setup.ActiveCfg = Release|x64
++              {7C22BDFF-CC09-400C-8A09-660733980028}.All|x86 Setup.ActiveCfg = Release|x64
++              {7C22BDFF-CC09-400C-8A09-660733980028}.Debug|Win32.ActiveCfg = Debug|Win32
++              {7C22BDFF-CC09-400C-8A09-660733980028}.Debug|Win32.Build.0 = Debug|Win32
++              {7C22BDFF-CC09-400C-8A09-660733980028}.Debug|x64.ActiveCfg = Debug|x64
++              {7C22BDFF-CC09-400C-8A09-660733980028}.Debug|x64.Build.0 = Debug|x64
++              {7C22BDFF-CC09-400C-8A09-660733980028}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {7C22BDFF-CC09-400C-8A09-660733980028}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {7C22BDFF-CC09-400C-8A09-660733980028}.Release|Win32.ActiveCfg = Release|Win32
++              {7C22BDFF-CC09-400C-8A09-660733980028}.Release|Win32.Build.0 = Release|Win32
++              {7C22BDFF-CC09-400C-8A09-660733980028}.Release|x64.ActiveCfg = Release|x64
++              {7C22BDFF-CC09-400C-8A09-660733980028}.Release|x64.Build.0 = Release|x64
++              {7C22BDFF-CC09-400C-8A09-660733980028}.Release|x64 Setup.ActiveCfg = Release|x64
++              {7C22BDFF-CC09-400C-8A09-660733980028}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|Win32.ActiveCfg = Release|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x64.ActiveCfg = Release|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x64.Build.0 = Release|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x64 Setup.ActiveCfg = Release|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x86 Setup.ActiveCfg = Release|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|Win32.ActiveCfg = Debug|Win32
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|Win32.Build.0 = Debug|Win32
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|x64.ActiveCfg = Debug|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|x64.Build.0 = Debug|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|Win32.ActiveCfg = Release|Win32
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|Win32.Build.0 = Release|Win32
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64.ActiveCfg = Release|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64.Build.0 = Release|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64 Setup.ActiveCfg = Release|x64
++              {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|Win32.ActiveCfg = Release|x64
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|x64.ActiveCfg = Release|x64
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|x64.Build.0 = Release|x64
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|x64 Setup.ActiveCfg = Release|x64
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|x86 Setup.ActiveCfg = Release|x64
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|Win32.ActiveCfg = Debug|Win32
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|Win32.Build.0 = Debug|Win32
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|x64.ActiveCfg = Debug|x64
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|x64.Build.0 = Debug|x64
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|Win32.ActiveCfg = Release|Win32
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|Win32.Build.0 = Release|Win32
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|x64.ActiveCfg = Release|x64
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|x64.Build.0 = Release|x64
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|x64 Setup.ActiveCfg = Release|x64
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.All|Win32.ActiveCfg = Release|x64
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.All|x64.ActiveCfg = Release|x64
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.All|x64.Build.0 = Release|x64
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.All|x64 Setup.ActiveCfg = Release|x64
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.All|x86 Setup.ActiveCfg = Release|x64
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|Win32.ActiveCfg = Debug|Win32
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|Win32.Build.0 = Debug|Win32
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|x64.ActiveCfg = Debug|x64
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|x64.Build.0 = Debug|x64
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|Win32.ActiveCfg = Release|Win32
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|Win32.Build.0 = Release|Win32
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|x64.ActiveCfg = Release|x64
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|x64.Build.0 = Release|x64
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|x64 Setup.ActiveCfg = Release|x64
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.All|Win32.ActiveCfg = Release|x64
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.All|x64.ActiveCfg = Release|x64
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.All|x64.Build.0 = Release|x64
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.All|x64 Setup.ActiveCfg = Release|x64
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.All|x86 Setup.ActiveCfg = Release|x64
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug|Win32.ActiveCfg = Debug|Win32
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug|Win32.Build.0 = Debug|Win32
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug|x64.ActiveCfg = Debug|x64
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug|x64.Build.0 = Debug|x64
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release|Win32.ActiveCfg = Release|Win32
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release|Win32.Build.0 = Release|Win32
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release|x64.ActiveCfg = Release|x64
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release|x64.Build.0 = Release|x64
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release|x64 Setup.ActiveCfg = Release|x64
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.All|Win32.ActiveCfg = Release|x64
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.All|x64.ActiveCfg = Release|x64
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.All|x64.Build.0 = Release|x64
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.All|x64 Setup.ActiveCfg = Release|x64
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.All|x86 Setup.ActiveCfg = Release|x64
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Debug|Win32.ActiveCfg = Debug|Win32
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Debug|Win32.Build.0 = Debug|Win32
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Debug|x64.ActiveCfg = Debug|x64
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Debug|x64.Build.0 = Debug|x64
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|Win32.ActiveCfg = Release|Win32
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|Win32.Build.0 = Release|Win32
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x64.ActiveCfg = Release|x64
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x64.Build.0 = Release|x64
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x64 Setup.ActiveCfg = Release|x64
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|Win32.ActiveCfg = Release|x64
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|x64.ActiveCfg = Release|x64
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|x64.Build.0 = Release|x64
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|x64 Setup.ActiveCfg = Release|x64
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|x86 Setup.ActiveCfg = Release|x64
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|Win32.ActiveCfg = Debug|Win32
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|Win32.Build.0 = Debug|Win32
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|x64.ActiveCfg = Debug|x64
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|x64.Build.0 = Debug|x64
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|Win32.ActiveCfg = Release|Win32
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|Win32.Build.0 = Release|Win32
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x64.ActiveCfg = Release|x64
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x64.Build.0 = Release|x64
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x64 Setup.ActiveCfg = Release|x64
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|Win32.ActiveCfg = Release|x64
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x64.ActiveCfg = Release|x64
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x64.Build.0 = Release|x64
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x64 Setup.ActiveCfg = Release|x64
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x86 Setup.ActiveCfg = Release|x64
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|Win32.Build.0 = Debug|Win32
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|x64.ActiveCfg = Debug|x64
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|x64.Build.0 = Debug|x64
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|Win32.ActiveCfg = Release|Win32
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|Win32.Build.0 = Release|Win32
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x64.ActiveCfg = Release|x64
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x64.Build.0 = Release|x64
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x64 Setup.ActiveCfg = Release|x64
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|Win32.ActiveCfg = Release|x64
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64.ActiveCfg = Release|x64
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64.Build.0 = Release|x64
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64 Setup.ActiveCfg = Release|x64
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x86 Setup.ActiveCfg = Release|x64
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|Win32.ActiveCfg = Debug|Win32
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x64.ActiveCfg = Debug|x64
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|Win32.ActiveCfg = Release|Win32
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x64.ActiveCfg = Release|x64
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x64 Setup.ActiveCfg = Release|x64
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x86 Setup.ActiveCfg = Release|x64
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|Win32.ActiveCfg = Release|x64
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64.ActiveCfg = Release|x64
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64.Build.0 = Release|x64
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64 Setup.ActiveCfg = Release|x64
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x86 Setup.ActiveCfg = Release|x64
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|Win32.ActiveCfg = Debug|Win32
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x64.ActiveCfg = Debug|x64
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|Win32.ActiveCfg = Release|Win32
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x64.ActiveCfg = Release|x64
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x64 Setup.ActiveCfg = Release|x64
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x86 Setup.ActiveCfg = Release|x64
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.All|Win32.ActiveCfg = Release|Win32
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.All|Win32.Build.0 = Release|Win32
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.All|x64.ActiveCfg = Release|Win32
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.All|x64 Setup.ActiveCfg = Release|Win32
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.All|x86 Setup.ActiveCfg = Release|Win32
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|Win32.ActiveCfg = Debug|Win32
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|Win32.Build.0 = Debug|Win32
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x64.ActiveCfg = Debug|x64
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x64.Build.0 = Debug|x64
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|Win32.ActiveCfg = Release|Win32
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|Win32.Build.0 = Release|Win32
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x64.ActiveCfg = Release|x64
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x64.Build.0 = Release|x64
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|Win32.ActiveCfg = Release|x64
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x64.ActiveCfg = Release|x64
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x64.Build.0 = Release|x64
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x64 Setup.ActiveCfg = Release|x64
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x86 Setup.ActiveCfg = Release|x64
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|Win32.ActiveCfg = Debug|Win32
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|Win32.Build.0 = Debug|Win32
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|x64.ActiveCfg = Debug|x64
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|x64.Build.0 = Debug|x64
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|Win32.ActiveCfg = Release|Win32
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|Win32.Build.0 = Release|Win32
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|x64.ActiveCfg = Release|x64
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|x64.Build.0 = Release|x64
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|x64 Setup.ActiveCfg = Release|x64
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|x86 Setup.ActiveCfg = Release|x64
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|Win32.ActiveCfg = Release|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|Win32.Build.0 = Release|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|x64.ActiveCfg = Release|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|x64 Setup.ActiveCfg = Release|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|x86 Setup.ActiveCfg = Release|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|Win32.ActiveCfg = Debug|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|Win32.Build.0 = Debug|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|x64.ActiveCfg = Debug|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|x64.Build.0 = Debug|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|x64 Setup.ActiveCfg = Debug|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|x86 Setup.ActiveCfg = Debug|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|Win32.ActiveCfg = Release|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|Win32.Build.0 = Release|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|x64.ActiveCfg = Release|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|x64.Build.0 = Release|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|Win32.ActiveCfg = Release|Win32
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|Win32.Build.0 = Release|Win32
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|x64.ActiveCfg = Release|Win32
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|x64 Setup.ActiveCfg = Release|Win32
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|x86 Setup.ActiveCfg = Release|Win32
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|Win32.ActiveCfg = Debug|Win32
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|Win32.Build.0 = Debug|Win32
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x64.ActiveCfg = Debug|x64
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x64.Build.0 = Debug|x64
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x64 Setup.ActiveCfg = Release|Win32
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x86 Setup.ActiveCfg = Release|Win32
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|Win32.ActiveCfg = Release|Win32
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|Win32.Build.0 = Release|Win32
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|x64.ActiveCfg = Release|x64
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|x64.Build.0 = Release|x64
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|x64 Setup.ActiveCfg = Release|Win32
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|x86 Setup.ActiveCfg = Release|Win32
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|Win32.ActiveCfg = Release|x64
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|x64.ActiveCfg = Release|x64
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|x64.Build.0 = Release|x64
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|x64 Setup.ActiveCfg = Release|x64
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|x86 Setup.ActiveCfg = Release|x64
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|Win32.ActiveCfg = Debug|Win32
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|Win32.Build.0 = Debug|Win32
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|x64.ActiveCfg = Debug|x64
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|x64.Build.0 = Debug|x64
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|Win32.ActiveCfg = Release|Win32
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|Win32.Build.0 = Release|Win32
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|x64.ActiveCfg = Release|x64
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|x64.Build.0 = Release|x64
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|x64 Setup.ActiveCfg = Release|x64
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|x86 Setup.ActiveCfg = Release|x64
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.All|Win32.ActiveCfg = Release|x64
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.All|x64.ActiveCfg = Release|x64
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.All|x64.Build.0 = Release|x64
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.All|x64 Setup.ActiveCfg = Release|x64
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.All|x86 Setup.ActiveCfg = Release|x64
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.Debug|Win32.ActiveCfg = Debug|Win32
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.Debug|Win32.Build.0 = Debug|Win32
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.Debug|x64.ActiveCfg = Debug|x64
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.Debug|x64.Build.0 = Debug|x64
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.Release|Win32.ActiveCfg = Release|Win32
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.Release|Win32.Build.0 = Release|Win32
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.Release|x64.ActiveCfg = Release|x64
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.Release|x64.Build.0 = Release|x64
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.Release|x64 Setup.ActiveCfg = Release|x64
++              {BED7539C-0099-4A14-AD5D-30828F15A171}.Release|x86 Setup.ActiveCfg = Release|x64
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|Win32.ActiveCfg = Release|x64
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|x64.ActiveCfg = Release|x64
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|x64.Build.0 = Release|x64
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|x64 Setup.ActiveCfg = Release|x64
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|x86 Setup.ActiveCfg = Release|x64
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|Win32.ActiveCfg = Debug|Win32
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|Win32.Build.0 = Debug|Win32
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|x64.ActiveCfg = Debug|x64
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|x64.Build.0 = Debug|x64
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|Win32.ActiveCfg = Release|Win32
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|Win32.Build.0 = Release|Win32
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|x64.ActiveCfg = Release|x64
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|x64.Build.0 = Release|x64
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|x64 Setup.ActiveCfg = Release|x64
++              {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|x86 Setup.ActiveCfg = Release|x64
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|Win32.ActiveCfg = Release|x64
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|x64.ActiveCfg = Release|x64
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|x64.Build.0 = Release|x64
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|x64 Setup.ActiveCfg = Release|x64
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|x86 Setup.ActiveCfg = Release|x64
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|Win32.ActiveCfg = Debug|Win32
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|Win32.Build.0 = Debug|Win32
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|x64.ActiveCfg = Debug|x64
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|x64.Build.0 = Debug|x64
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|Win32.ActiveCfg = Release|Win32
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|Win32.Build.0 = Release|Win32
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|x64.ActiveCfg = Release|x64
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|x64.Build.0 = Release|x64
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|x64 Setup.ActiveCfg = Release|x64
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|x86 Setup.ActiveCfg = Release|x64
++              {B535402E-38D2-4D54-8360-423ACBD17192}.All|Win32.ActiveCfg = Release|x64
++              {B535402E-38D2-4D54-8360-423ACBD17192}.All|x64.ActiveCfg = Release|x64
++              {B535402E-38D2-4D54-8360-423ACBD17192}.All|x64.Build.0 = Release|x64
++              {B535402E-38D2-4D54-8360-423ACBD17192}.All|x64 Setup.ActiveCfg = Release|x64
++              {B535402E-38D2-4D54-8360-423ACBD17192}.All|x86 Setup.ActiveCfg = Release|x64
++              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|Win32.ActiveCfg = Debug|Win32
++              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|Win32.Build.0 = Debug|Win32
++              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|x64.ActiveCfg = Debug|x64
++              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|x64.Build.0 = Debug|x64
++              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|x64 Setup.ActiveCfg = Debug|x64
++              {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|x86 Setup.ActiveCfg = Debug|x64
++              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|Win32.ActiveCfg = Release|Win32
++              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|Win32.Build.0 = Release|Win32
++              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|x64.ActiveCfg = Release|x64
++              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|x64.Build.0 = Release|x64
++              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|x64 Setup.ActiveCfg = Release|x64
++              {B535402E-38D2-4D54-8360-423ACBD17192}.Release|x86 Setup.ActiveCfg = Release|x64
++      EndGlobalSection
++      GlobalSection(SolutionProperties) = preSolution
++              HideSolutionNode = FALSE
++      EndGlobalSection
++      GlobalSection(NestedProjects) = preSolution
++              {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {5580D60E-0F77-4716-9CD4-B8E5986FA375} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {D3EC0AFF-76FC-4210-A825-9A17410660A3} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {FEA1EEF7-876F-48DE-88BF-C0E3E606D758} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {7F1610F1-DD5A-4CF7-8610-30AB12C60ADD} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {8DEB383C-4091-4F42-A56F-C9E46D552D79} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {2C3C2423-234B-4772-8899-D3B137E5CA35} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {0B6C905B-142E-4999-B39D-92FF7951E921} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {D5C87B19-150D-4EF3-A671-96589BD2D14A} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {4D418176-3B33-47E6-A63E-01BA34ADD21C} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {AFA983D6-4569-4F88-BA94-555ED00FD9A8} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
++              {5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {0DF3ABD0-DDC0-4265-B778-07C66780979B} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {B3F424EC-3D8F-417C-B244-3919D5E1A577} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {05C9FB27-480E-4D53-B3B7-6338E2526666} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {CC1DD008-9406-448D-A0AD-33C3186CFADB} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {48414740-C693-4968-9846-EE058020C64F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {05C9FB27-480E-4D53-B3B7-7338E2514666} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {74B120FF-6935-4DFE-A142-CDB6BEA99C90} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
++              {30A5B29C-983E-4580-9FD0-D647CCDCC7EB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {C24FB505-05D7-4319-8485-7540B44C8603} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {B5881A85-FE70-4F64-8607-2CAAE52669C6} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {71A967D5-0E99-4CEF-A587-98836EE6F2EF} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {3850D93A-5F24-4922-BC1C-74D08C37C256} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {D7F1E3F2-A3F4-474C-8555-15122571AF52} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {F6A33240-8F29-48BD-98F0-826995911799} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {65A6273D-FCAB-4C55-B09E-65100141A5D4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {E3246D17-E29B-4AB5-962A-C69B0C5837BB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {14E4A972-9CFB-436D-B0A5-4943F3F80D47} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {329FD5B0-EF28-4606-86D0-F6EA21CF8E36} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {3C977801-FE88-48F2-83D3-FA2EBFF6688E} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {432DB165-1EB2-4781-A9C0-71E62610B20A} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {990BAA76-89D3-4E38-8479-C7B28784EFC8} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {1E21AFE0-6FDB-41D2-942D-863607C24B91} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {2E250296-0C08-4342-9C8A-BCBDD0E7DF65} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {B889A18E-70A7-44B5-B2C9-47798D4F43B3} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {50AAC2CE-BFC9-4912-87CC-C6381850D735} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {4748FF56-CA85-4809-97D6-A94C0FAC1D77} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {60C542EE-6882-4EA2-8C21-5AB6DB1BA73F} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {2469B306-B027-4FF2-8815-C9C1EA2CAE79} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
++              {07113B25-D3AF-4E04-BA77-4CD1171F022C} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}
++              {A27CCA23-1541-4337-81A4-F0A6413078A0} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}
++              {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}
++              {784113EF-44D9-4949-835D-7065D3C7AD08} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
++              {05515420-16DE-4E63-BE73-85BE85BA5142} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
++              {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
++              {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
++              {9254C4B0-6F60-42B6-BB3A-36D63FC001C7} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
++              {2CA40887-1622-46A1-A7F9-17FD7E7E545B} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
++              {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
++              {38FE0559-9910-43A8-9E45-3E5004C27692} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
++              {CBD81696-EFB4-4D2F-8451-1B8DAA86155A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {62F27B1A-C919-4A70-8478-51F178F3B18F} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {89385C74-5860-4174-9CAF-A39E7C48909C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {1906D736-08BD-4EE1-924F-B536249B9A54} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {8D04B550-D240-4A44-8A18-35DA3F7038D9} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {1CED5987-A529-46DC-B30F-870D85FF9C94} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {3D0370CA-BED2-4657-A475-32375CBCB6E4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {155844C3-EC5F-407F-97A4-A2DDADED9B2F} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {204FA0DE-305D-4414-AE2E-F195A23F390D} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {4043FC6A-9A30-4577-8AD5-9B233C9575D8} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {0A18A071-125E-442F-AFF7-A3F68ABECF99} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {94001A0E-A837-445C-8004-F918F10D0226} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {0AD1177E-1FD8-4643-9391-431467A11084} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {E316772F-5D8F-4F2A-8F71-094C3E859D34} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {D3D8B329-20BE-475E-9E83-653CEA0E0EF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {419C8F80-D858-4B48-A25C-AF4007608137} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {CF405366-9558-4AE8-90EF-5E21B51CCB4E} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {401A40CD-5DB4-4E34-AC68-FA99E9FAC014} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {03207781-0D1C-4DB3-A71D-45C608F28DBD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {9A5DDF08-C88C-4A35-B7F6-D605228446BD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {D0B36172-CD76-454A-9B89-990025266C2A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {DEE932AB-5911-4700-9EEB-8C7090A0A330} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {329A6FA0-0FCC-4435-A950-E670AEFA9838} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {CF70F278-3364-4395-A2E1-23501C9B8AD2} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {ABB71A76-42B0-47A4-973A-42E3D920C6FD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {9778F1C0-09BC-4698-8EBC-BD982247209A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {56B91D01-9150-4BBF-AFA1-5B68AB991B76} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {E4D29906-8B73-4F8A-B5F4-CA8BFA648F5A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {23B4D303-79FC-49E0-89E2-2280E7E28940} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {9DE35039-A8F6-4FBF-B1B6-EB527F802411} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {C13CC324-0032-4492-9A30-310A6BD64FF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
++              {EC3E5C7F-EE09-47E2-80FE-546363D14A98} = {B8F5B47B-8568-46EB-B320-64C17D2A98BC}
++              {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {ACFFF684-4D19-4D48-AF12-88EA1D778BDF} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {8F992C49-6C51-412F-B2A3-34EAB708EB65} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {028C7278-05D7-4E18-82FE-BE231B844F41} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {36E854E3-CE12-4348-A125-CCF3F9D74813} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {7B077E7F-1BE7-4291-AB86-55E527B25CAC} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0} = {0C808854-54D1-4230-BFF5-77B5FD905000}
++              {692F6330-4D87-4C82-81DF-40DB5892636E} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
++              {2286DA73-9FC5-45BC-A508-85994C3317AB} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
++              {66444AEE-554C-11DD-A9F0-8C5D56D89593} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
++              {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
++              {1C453396-D912-4213-89FD-9B489162B7B5} = {A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}
++              {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909} = {A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}
++              {CBEC7225-0C21-4DA8-978E-1F158F8AD950} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}
++              {AB91A099-7690-4ECF-8994-E458F4EA1ED4} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}
++              {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}
++              {1A1FF289-4FD6-4285-A422-D31DD67A4723} = {CBD81696-EFB4-4D2F-8451-1B8DAA86155A}
++              {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {4F92B672-DADB-4047-8D6A-4BB3796733FD} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {2DEE4895-1134-439C-B688-52203E57D878} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {3CE1DC99-8246-4DB1-A709-74F19F08EC67} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {87A1FE3D-F410-4C8E-9591-8C625985BC70} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {E796E337-DE78-4303-8614-9A590862EE95} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {1F0A8A77-E661-418F-BB92-82172AE43803} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {4F5C9D55-98EF-4256-8311-32D7BD360406} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {E10571C4-E7F4-4608-B5F2-B22E7EB95400} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {B808178B-82F0-4CF4-A2B1-921939FA24D0} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {D578E676-7EC8-4548-BD8B-845C635F14AD} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {652AD5F7-8488-489F-AAD0-7FBE064703B6} = {C120A020-773F-4EA3-923F-B67AF28B750D}
++              {988CACF7-3FCB-4992-BE69-77872AE67DC8} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {5BC072DB-3826-48EA-AF34-FE32AA01E83B} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {FA429E98-8B03-45E6-A096-A4BC5E821DE4} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {06E3A538-AB32-44F2-B477-755FF9CB5D37} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {A4B122CF-5196-476B-8C0E-D8BD59AC3C14} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {0382E8FD-CFDC-41C0-8B03-792C7C84FC31} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {7C22BDFF-CC09-400C-8A09-660733980028} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
++              {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0} = {57D119DC-484F-420F-B9E9-8589FD9A8DF8}
++              {3C90CCF0-2CDD-4A7A-ACFF-208C1E271692} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}
++              {C7E2382E-2C22-4D18-BF93-80C6A1FFA7AC} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}
++              {FC71C66E-E268-4EAD-B1F5-F008DC382E83} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}
++              {8E2E8798-8B6F-4A55-8E4F-4E6FDE40ED26} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}
++              {09455AA9-C243-4F16-A1A1-A016881A2765} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}
++              {CDE9B06A-3C27-4987-8FAE-DF1006BC705D} = {DB1024A8-41BF-4AD7-9AE6-13202230D1F3}
++              {57199684-EC63-4A60-9DC6-11815AF6B413} = {09455AA9-C243-4F16-A1A1-A016881A2765}
++              {2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C} = {09455AA9-C243-4F16-A1A1-A016881A2765}
++              {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5} = {09455AA9-C243-4F16-A1A1-A016881A2765}
++              {765EF1B9-5027-4820-BC37-A44466A51631} = {57199684-EC63-4A60-9DC6-11815AF6B413}
++              {713E4747-1126-40B1-BD84-58F9A7745423} = {57199684-EC63-4A60-9DC6-11815AF6B413}
++              {D3E5C8ED-3A6A-4FEA-92A2-48A0BA865358} = {2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C}
++              {CC3E7F48-2590-49CB-AD8B-BE3650F55462} = {2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C}
++              {F1B71990-EB04-4EB5-B28A-BC3EB6F7E843} = {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5}
++              {3DAF028C-AB5B-4183-A01B-DCC43F5A87F0} = {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5}
++              {7A8D8174-B355-4114-AFC1-04777CB9DE0A} = {4F227C26-768F-46A3-8684-1D08A46FB374}
++              {7EB71250-F002-4ED8-92CA-CA218114537A} = {4F227C26-768F-46A3-8684-1D08A46FB374}
++              {464AAB78-5489-4916-BE51-BF8D61822311} = {4F227C26-768F-46A3-8684-1D08A46FB374}
++              {D1ABE208-6442-4FB4-9AAD-1677E41BC870} = {4F227C26-768F-46A3-8684-1D08A46FB374}
++              {BA599D0A-4310-4505-91DA-6A6447B3E289} = {4F227C26-768F-46A3-8684-1D08A46FB374}
++              {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959} = {4F227C26-768F-46A3-8684-1D08A46FB374}
++              {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {B5A00BFA-6083-4FAE-A097-71642D6473B5} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {1C320193-46A6-4B34-9C56-8AB584FC1B56} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {72782932-37CC-46AE-8C7F-9A7B1A6EE108} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {12A49562-BAB9-43A3-A21D-15B60BBB4C31} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {504B3154-7A4F-459D-9877-B951021C3F1F} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {746F3632-5BB2-4570-9453-31D6D58A7D8E} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {DEB01ACB-D65F-4A62-AED9-58C1054499E9} = {62F27B1A-C919-4A70-8478-51F178F3B18F}
++              {D331904D-A00A-4694-A5A3-FCFF64AB5DBE} = {E4D29906-8B73-4F8A-B5F4-CA8BFA648F5A}
++              {B4B62169-5AD4-4559-8707-3D933AC5DB39} = {E4D29906-8B73-4F8A-B5F4-CA8BFA648F5A}
++              {25BD39B1-C8BF-4676-A738-9CABD9C6BC79} = {E4D29906-8B73-4F8A-B5F4-CA8BFA648F5A}
++              {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
++              {BED7539C-0099-4A14-AD5D-30828F15A171} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
++              {0D108721-EAE8-4BAF-8102-D8960EC93647} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
++              {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
++              {B535402E-38D2-4D54-8360-423ACBD17192} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
++      EndGlobalSection
++EndGlobal
+diff --git a/configure.in b/configure.in
+index e8ab623..a10daf8 100644
+--- a/configure.in
++++ b/configure.in
+@@ -490,9 +490,8 @@ AC_SUBST(LIBTOOL_LIB_EXTEN)
+ # Checks for header files.
+ AC_HEADER_DIRENT
+ AC_HEADER_STDC
+-AC_CHECK_HEADERS([sys/types.h sys/resource.h sched.h wchar.h sys/filio.h sys/ioctl.h netdb.h execinfo.h])
++AC_CHECK_HEADERS([sys/types.h sys/resource.h sched.h wchar.h sys/filio.h sys/ioctl.h sys/select.h netdb.h execinfo.h])
+-# for xmlrpc-c config.h
+ if test x"$ac_cv_header_wchar_h" = xyes; then
+   HAVE_WCHAR_H_DEFINE=1
+ else
+@@ -500,6 +499,31 @@ else
+ fi
+ AC_SUBST(HAVE_WCHAR_H_DEFINE)
++# Needed by Abyss on Solaris:
++
++if test x"$ac_cv_header_sys_filio_h" = xyes; then
++  HAVE_SYS_FILIO_H_DEFINE=1
++else
++  HAVE_SYS_FILIO_H_DEFINE=0
++fi
++AC_SUBST(HAVE_SYS_FILIO_H_DEFINE)
++
++# Needed by Abyss on Solaris:
++
++if test x"$ac_cv_header_sys_ioctl_h" = xyes; then
++  HAVE_SYS_IOCTL_H_DEFINE=1
++else
++  HAVE_SYS_IOCTL_H_DEFINE=0
++fi
++AC_SUBST(HAVE_SYS_IOCTL_H_DEFINE)
++
++if test x"$ac_cv_header_sys_select_h" = xyes; then
++  HAVE_SYS_SELECT_H_DEFINE=1
++else
++  HAVE_SYS_SELECT_H_DEFINE=0
++fi
++AC_SUBST(HAVE_SYS_SELECT_H_DEFINE)
++
+ # Checks for typedefs, structures, and compiler characteristics.
+ AC_C_CONST
+ AC_C_INLINE
+@@ -603,6 +627,7 @@ fi
+ # xmlrpc-c checks
+ #
++AC_CHECK_FUNCS(setenv strtoll strtoull strtoq strtouq __strtoll __strtoull)
+ HAVE_LIBWWW_SSL_DEFINE=0
+ AC_SUBST(HAVE_LIBWWW_SSL_DEFINE)
+@@ -1049,8 +1074,10 @@ AC_CONFIG_FILES([Makefile
+               build/getg729.sh
+               build/freeswitch.pc
+               build/modmake.rules
+-              libs/xmlrpc-c/include/xmlrpc-c/config.h
+               libs/xmlrpc-c/xmlrpc_config.h
++              libs/xmlrpc-c/config.mk
++              libs/xmlrpc-c/srcdir.mk
++              libs/xmlrpc-c/stamp-h
+               scripts/gentls_cert])
+ AM_CONDITIONAL(ISLINUX, [test `uname -s` = Linux])
+diff --git a/libs/.gitignore b/libs/.gitignore
+index 1bc99bc..ed326e9 100644
+--- a/libs/.gitignore
++++ b/libs/.gitignore
+@@ -884,11 +884,14 @@ opal
+ /win32/libshout/*/*/libshout.log
+ /win32/pcre/pcre_chartables.c
+ /win32/tmp*.bat
+-/xmlrpc-c/include/xmlrpc-c/config.h
+ !/xmlrpc-c/include/xmlrpc-c/config.h.in
+ /xmlrpc-c/stamp-h2
+-/xmlrpc-c/xmlrpc_amconfig.h
++/xmlrpc-c/examples/config.h
++/xmlrpc-c/include/xmlrpc-c/config.h
++/xmlrpc-c/transport_config.h
++/xmlrpc-c/version.h
+ /xmlrpc-c/xmlrpc_config.h
++# /xmlrpc-c/xmlrpc_amconfig.h
+ /yaml/
+ /yaml/config.h
+ /yaml/stamp-h1
+@@ -944,4 +947,3 @@ opal
+ !/yaml/config/ltmain.sh
+ !/yaml/config/missing
+ !/yaml/configure
+-
+diff --git a/libs/win32/apr-util/libaprutil.2010.vcxproj.filters b/libs/win32/apr-util/libaprutil.2010.vcxproj.filters
+index 9ba92f9..66ad7f9 100644
+--- a/libs/win32/apr-util/libaprutil.2010.vcxproj.filters
++++ b/libs/win32/apr-util/libaprutil.2010.vcxproj.filters
+@@ -1,304 +1,307 @@
+-<?xml version="1.0" encoding="utf-8"?>\r
+-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+-  <ItemGroup>\r
+-    <Filter Include="Source Files">\r
+-      <UniqueIdentifier>{fefe4b16-83a4-46b0-ab4b-858531a32218}</UniqueIdentifier>\r
+-    </Filter>\r
+-    <Filter Include="Source Files\buckets">\r
+-      <UniqueIdentifier>{66bee6b2-6ba2-4e7d-9c04-5e52ea75b8ee}</UniqueIdentifier>\r
+-    </Filter>\r
+-    <Filter Include="Source Files\crypto">\r
+-      <UniqueIdentifier>{ec602915-b144-4258-81ce-f8931434e1eb}</UniqueIdentifier>\r
+-    </Filter>\r
+-    <Filter Include="Source Files\dbd">\r
+-      <UniqueIdentifier>{47b5e91f-ec43-4b87-8d11-cc109d0f0733}</UniqueIdentifier>\r
+-    </Filter>\r
+-    <Filter Include="Source Files\dbm">\r
+-      <UniqueIdentifier>{12d41721-8bc3-476e-bffa-6bab3ebbcfef}</UniqueIdentifier>\r
+-    </Filter>\r
+-    <Filter Include="Source Files\encoding">\r
+-      <UniqueIdentifier>{aafe340f-5f94-4402-a3f4-977c302848c1}</UniqueIdentifier>\r
+-    </Filter>\r
+-    <Filter Include="Source Files\hooks">\r
+-      <UniqueIdentifier>{627c064a-54af-49ae-b154-01343f2be90e}</UniqueIdentifier>\r
+-    </Filter>\r
+-    <Filter Include="Source Files\ldap">\r
+-      <UniqueIdentifier>{3791a803-8653-410b-905e-934728270db6}</UniqueIdentifier>\r
+-    </Filter>\r
+-    <Filter Include="Source Files\misc">\r
+-      <UniqueIdentifier>{5133e514-d14d-46b5-9e37-3ab909e4ef28}</UniqueIdentifier>\r
+-    </Filter>\r
+-    <Filter Include="Source Files\sdbm">\r
+-      <UniqueIdentifier>{62959b64-29f8-483f-830f-91e3005c15b9}</UniqueIdentifier>\r
+-    </Filter>\r
+-    <Filter Include="Source Files\strmatch">\r
+-      <UniqueIdentifier>{ec299ad2-8fa6-4923-95f4-b8c7f6184dcf}</UniqueIdentifier>\r
+-    </Filter>\r
+-    <Filter Include="Source Files\uri">\r
+-      <UniqueIdentifier>{ef13505a-0a7a-4fdc-a55a-b47e92957a85}</UniqueIdentifier>\r
+-    </Filter>\r
+-    <Filter Include="Source Files\xlate">\r
+-      <UniqueIdentifier>{80fa8ffc-4776-4a21-bd8b-bfa055f9f46d}</UniqueIdentifier>\r
+-    </Filter>\r
+-    <Filter Include="Generated Files">\r
+-      <UniqueIdentifier>{fdb27306-6946-4cf2-bdb6-39e03cdeeae6}</UniqueIdentifier>\r
+-    </Filter>\r
+-    <Filter Include="Public Header Files">\r
+-      <UniqueIdentifier>{ee62af10-73ee-4af5-85d1-442efcd33aa2}</UniqueIdentifier>\r
+-    </Filter>\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <ClCompile Include="..\..\apr-util\buckets\apr_brigade.c">\r
+-      <Filter>Source Files\buckets</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\buckets\apr_buckets.c">\r
+-      <Filter>Source Files\buckets</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_alloc.c">\r
+-      <Filter>Source Files\buckets</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_eos.c">\r
+-      <Filter>Source Files\buckets</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_file.c">\r
+-      <Filter>Source Files\buckets</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_flush.c">\r
+-      <Filter>Source Files\buckets</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_heap.c">\r
+-      <Filter>Source Files\buckets</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_mmap.c">\r
+-      <Filter>Source Files\buckets</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_pipe.c">\r
+-      <Filter>Source Files\buckets</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_pool.c">\r
+-      <Filter>Source Files\buckets</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_refcount.c">\r
+-      <Filter>Source Files\buckets</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_simple.c">\r
+-      <Filter>Source Files\buckets</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_socket.c">\r
+-      <Filter>Source Files\buckets</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\crypto\apr_md4.c">\r
+-      <Filter>Source Files\crypto</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\crypto\apr_md5.c">\r
+-      <Filter>Source Files\crypto</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\crypto\apr_sha1.c">\r
+-      <Filter>Source Files\crypto</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\crypto\getuuid.c">\r
+-      <Filter>Source Files\crypto</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\crypto\uuid.c">\r
+-      <Filter>Source Files\crypto</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\dbd\apr_dbd.c">\r
+-      <Filter>Source Files\dbd</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\dbd\apr_dbd_pgsql.c">\r
+-      <Filter>Source Files\dbd</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\dbd\apr_dbd_sqlite2.c">\r
+-      <Filter>Source Files\dbd</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\dbd\apr_dbd_sqlite3.c">\r
+-      <Filter>Source Files\dbd</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\dbm\apr_dbm.c">\r
+-      <Filter>Source Files\dbm</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\dbm\apr_dbm_berkeleydb.c">\r
+-      <Filter>Source Files\dbm</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\dbm\apr_dbm_gdbm.c">\r
+-      <Filter>Source Files\dbm</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\dbm\apr_dbm_sdbm.c">\r
+-      <Filter>Source Files\dbm</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\encoding\apr_base64.c">\r
+-      <Filter>Source Files\encoding</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\hooks\apr_hooks.c">\r
+-      <Filter>Source Files\hooks</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\ldap\apr_ldap_init.c">\r
+-      <Filter>Source Files\ldap</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\ldap\apr_ldap_option.c">\r
+-      <Filter>Source Files\ldap</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\ldap\apr_ldap_url.c">\r
+-      <Filter>Source Files\ldap</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\misc\apr_date.c">\r
+-      <Filter>Source Files\misc</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\misc\apr_queue.c">\r
+-      <Filter>Source Files\misc</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\misc\apr_reslist.c">\r
+-      <Filter>Source Files\misc</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\misc\apr_rmm.c">\r
+-      <Filter>Source Files\misc</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\dbm\sdbm\sdbm.c">\r
+-      <Filter>Source Files\sdbm</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\dbm\sdbm\sdbm_hash.c">\r
+-      <Filter>Source Files\sdbm</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\dbm\sdbm\sdbm_lock.c">\r
+-      <Filter>Source Files\sdbm</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\dbm\sdbm\sdbm_pair.c">\r
+-      <Filter>Source Files\sdbm</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\strmatch\apr_strmatch.c">\r
+-      <Filter>Source Files\strmatch</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\uri\apr_uri.c">\r
+-      <Filter>Source Files\uri</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\xlate\xlate.c">\r
+-      <Filter>Source Files\xlate</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\..\apr-util\xml\apr_xml.c" />\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_anylock.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_base64.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_buckets.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_date.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_dbm.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_hooks.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_ldap_url.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_md4.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_md5.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_optional.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_optional_hooks.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_queue.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_reslist.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_rmm.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_sdbm.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_sha1.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_strmatch.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_uri.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_uuid.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_xlate.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apr_xml.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\..\apr-util\include\apu_version.h">\r
+-      <Filter>Public Header Files</Filter>\r
+-    </ClInclude>\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <None Include="..\..\apr-util\include\apr_ldap.h.in">\r
+-      <Filter>Generated Files</Filter>\r
+-    </None>\r
+-    <None Include="..\..\apr-util\include\apr_ldap.hnw">\r
+-      <Filter>Generated Files</Filter>\r
+-    </None>\r
+-    <None Include="..\..\apr-util\include\apu.h.in">\r
+-      <Filter>Generated Files</Filter>\r
+-    </None>\r
+-    <None Include="..\..\apr-util\include\apu.hnw">\r
+-      <Filter>Generated Files</Filter>\r
+-    </None>\r
+-    <None Include="..\..\apr-util\include\private\apu_config.h.in">\r
+-      <Filter>Generated Files</Filter>\r
+-    </None>\r
+-    <None Include="..\..\apr-util\include\private\apu_select_dbm.h.in">\r
+-      <Filter>Generated Files</Filter>\r
+-    </None>\r
+-    <None Include="..\..\apr-util\include\apu_want.h.in">\r
+-      <Filter>Generated Files</Filter>\r
+-    </None>\r
+-    <None Include="..\..\apr-util\include\apu_want.hnw">\r
+-      <Filter>Generated Files</Filter>\r
+-    </None>\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <ResourceCompile Include="..\..\apr-util\libaprutil.rc" />\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <CustomBuildStep Include="..\..\apr-util\dbm\sdbm\sdbm_pair.h">\r
+-      <Filter>Source Files\sdbm</Filter>\r
+-    </CustomBuildStep>\r
+-    <CustomBuildStep Include="..\..\apr-util\dbm\sdbm\sdbm_private.h">\r
+-      <Filter>Source Files\sdbm</Filter>\r
+-    </CustomBuildStep>\r
+-    <CustomBuildStep Include="..\..\apr-util\dbm\sdbm\sdbm_tune.h">\r
+-      <Filter>Source Files\sdbm</Filter>\r
+-    </CustomBuildStep>\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <CustomBuild Include="..\..\apr-util\include\apr_ldap.hw">\r
+-      <Filter>Generated Files</Filter>\r
+-    </CustomBuild>\r
+-    <CustomBuild Include="..\..\apr-util\include\apu.hw">\r
+-      <Filter>Generated Files</Filter>\r
+-    </CustomBuild>\r
+-    <CustomBuild Include="..\..\apr-util\include\private\apu_config.hw">\r
+-      <Filter>Generated Files</Filter>\r
+-    </CustomBuild>\r
+-    <CustomBuild Include="..\..\apr-util\include\private\apu_select_dbm.hw">\r
+-      <Filter>Generated Files</Filter>\r
+-    </CustomBuild>\r
+-    <CustomBuild Include="..\..\apr-util\include\apu_want.hw">\r
+-      <Filter>Generated Files</Filter>\r
+-    </CustomBuild>\r
+-  </ItemGroup>\r
++<?xml version="1.0" encoding="utf-8"?>
++<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++  <ItemGroup>
++    <Filter Include="Source Files">
++      <UniqueIdentifier>{fefe4b16-83a4-46b0-ab4b-858531a32218}</UniqueIdentifier>
++    </Filter>
++    <Filter Include="Source Files\buckets">
++      <UniqueIdentifier>{66bee6b2-6ba2-4e7d-9c04-5e52ea75b8ee}</UniqueIdentifier>
++    </Filter>
++    <Filter Include="Source Files\crypto">
++      <UniqueIdentifier>{ec602915-b144-4258-81ce-f8931434e1eb}</UniqueIdentifier>
++    </Filter>
++    <Filter Include="Source Files\dbd">
++      <UniqueIdentifier>{47b5e91f-ec43-4b87-8d11-cc109d0f0733}</UniqueIdentifier>
++    </Filter>
++    <Filter Include="Source Files\dbm">
++      <UniqueIdentifier>{12d41721-8bc3-476e-bffa-6bab3ebbcfef}</UniqueIdentifier>
++    </Filter>
++    <Filter Include="Source Files\encoding">
++      <UniqueIdentifier>{aafe340f-5f94-4402-a3f4-977c302848c1}</UniqueIdentifier>
++    </Filter>
++    <Filter Include="Source Files\hooks">
++      <UniqueIdentifier>{627c064a-54af-49ae-b154-01343f2be90e}</UniqueIdentifier>
++    </Filter>
++    <Filter Include="Source Files\ldap">
++      <UniqueIdentifier>{3791a803-8653-410b-905e-934728270db6}</UniqueIdentifier>
++    </Filter>
++    <Filter Include="Source Files\misc">
++      <UniqueIdentifier>{5133e514-d14d-46b5-9e37-3ab909e4ef28}</UniqueIdentifier>
++    </Filter>
++    <Filter Include="Source Files\sdbm">
++      <UniqueIdentifier>{62959b64-29f8-483f-830f-91e3005c15b9}</UniqueIdentifier>
++    </Filter>
++    <Filter Include="Source Files\strmatch">
++      <UniqueIdentifier>{ec299ad2-8fa6-4923-95f4-b8c7f6184dcf}</UniqueIdentifier>
++    </Filter>
++    <Filter Include="Source Files\uri">
++      <UniqueIdentifier>{ef13505a-0a7a-4fdc-a55a-b47e92957a85}</UniqueIdentifier>
++    </Filter>
++    <Filter Include="Source Files\xlate">
++      <UniqueIdentifier>{80fa8ffc-4776-4a21-bd8b-bfa055f9f46d}</UniqueIdentifier>
++    </Filter>
++    <Filter Include="Generated Files">
++      <UniqueIdentifier>{fdb27306-6946-4cf2-bdb6-39e03cdeeae6}</UniqueIdentifier>
++    </Filter>
++    <Filter Include="Public Header Files">
++      <UniqueIdentifier>{ee62af10-73ee-4af5-85d1-442efcd33aa2}</UniqueIdentifier>
++    </Filter>
++    <Filter Include="Source Files\xml">
++      <UniqueIdentifier>{0ea472ce-22be-43c7-b06d-a50dd027a9fe}</UniqueIdentifier>
++    </Filter>
++  </ItemGroup>
++  <ItemGroup>
++    <ClCompile Include="..\..\apr-util\buckets\apr_brigade.c">
++      <Filter>Source Files\buckets</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\buckets\apr_buckets.c">
++      <Filter>Source Files\buckets</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_alloc.c">
++      <Filter>Source Files\buckets</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_eos.c">
++      <Filter>Source Files\buckets</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_file.c">
++      <Filter>Source Files\buckets</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_flush.c">
++      <Filter>Source Files\buckets</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_heap.c">
++      <Filter>Source Files\buckets</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_mmap.c">
++      <Filter>Source Files\buckets</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_pipe.c">
++      <Filter>Source Files\buckets</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_pool.c">
++      <Filter>Source Files\buckets</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_refcount.c">
++      <Filter>Source Files\buckets</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_simple.c">
++      <Filter>Source Files\buckets</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\buckets\apr_buckets_socket.c">
++      <Filter>Source Files\buckets</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\crypto\apr_md4.c">
++      <Filter>Source Files\crypto</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\crypto\apr_md5.c">
++      <Filter>Source Files\crypto</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\crypto\apr_sha1.c">
++      <Filter>Source Files\crypto</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\crypto\getuuid.c">
++      <Filter>Source Files\crypto</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\crypto\uuid.c">
++      <Filter>Source Files\crypto</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\dbd\apr_dbd.c">
++      <Filter>Source Files\dbd</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\dbd\apr_dbd_pgsql.c">
++      <Filter>Source Files\dbd</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\dbd\apr_dbd_sqlite2.c">
++      <Filter>Source Files\dbd</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\dbd\apr_dbd_sqlite3.c">
++      <Filter>Source Files\dbd</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\dbm\apr_dbm.c">
++      <Filter>Source Files\dbm</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\dbm\apr_dbm_berkeleydb.c">
++      <Filter>Source Files\dbm</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\dbm\apr_dbm_gdbm.c">
++      <Filter>Source Files\dbm</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\dbm\apr_dbm_sdbm.c">
++      <Filter>Source Files\dbm</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\encoding\apr_base64.c">
++      <Filter>Source Files\encoding</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\hooks\apr_hooks.c">
++      <Filter>Source Files\hooks</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\ldap\apr_ldap_init.c">
++      <Filter>Source Files\ldap</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\ldap\apr_ldap_option.c">
++      <Filter>Source Files\ldap</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\ldap\apr_ldap_url.c">
++      <Filter>Source Files\ldap</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\misc\apr_date.c">
++      <Filter>Source Files\misc</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\misc\apr_queue.c">
++      <Filter>Source Files\misc</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\misc\apr_reslist.c">
++      <Filter>Source Files\misc</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\misc\apr_rmm.c">
++      <Filter>Source Files\misc</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\dbm\sdbm\sdbm.c">
++      <Filter>Source Files\sdbm</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\dbm\sdbm\sdbm_hash.c">
++      <Filter>Source Files\sdbm</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\dbm\sdbm\sdbm_lock.c">
++      <Filter>Source Files\sdbm</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\dbm\sdbm\sdbm_pair.c">
++      <Filter>Source Files\sdbm</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\strmatch\apr_strmatch.c">
++      <Filter>Source Files\strmatch</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\uri\apr_uri.c">
++      <Filter>Source Files\uri</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\xlate\xlate.c">
++      <Filter>Source Files\xlate</Filter>
++    </ClCompile>
++    <ClCompile Include="..\..\apr-util\xml\apr_xml.c" />
++  </ItemGroup>
++  <ItemGroup>
++    <ClInclude Include="..\..\apr-util\include\apr_anylock.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_base64.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_buckets.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_date.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_dbm.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_hooks.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_ldap_url.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_md4.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_md5.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_optional.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_optional_hooks.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_queue.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_reslist.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_rmm.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_sdbm.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_sha1.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_strmatch.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_uri.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_uuid.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_xlate.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apr_xml.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++    <ClInclude Include="..\..\apr-util\include\apu_version.h">
++      <Filter>Public Header Files</Filter>
++    </ClInclude>
++  </ItemGroup>
++  <ItemGroup>
++    <None Include="..\..\apr-util\include\apr_ldap.h.in">
++      <Filter>Generated Files</Filter>
++    </None>
++    <None Include="..\..\apr-util\include\apr_ldap.hnw">
++      <Filter>Generated Files</Filter>
++    </None>
++    <None Include="..\..\apr-util\include\apu.h.in">
++      <Filter>Generated Files</Filter>
++    </None>
++    <None Include="..\..\apr-util\include\apu.hnw">
++      <Filter>Generated Files</Filter>
++    </None>
++    <None Include="..\..\apr-util\include\private\apu_config.h.in">
++      <Filter>Generated Files</Filter>
++    </None>
++    <None Include="..\..\apr-util\include\private\apu_select_dbm.h.in">
++      <Filter>Generated Files</Filter>
++    </None>
++    <None Include="..\..\apr-util\include\apu_want.h.in">
++      <Filter>Generated Files</Filter>
++    </None>
++    <None Include="..\..\apr-util\include\apu_want.hnw">
++      <Filter>Generated Files</Filter>
++    </None>
++  </ItemGroup>
++  <ItemGroup>
++    <ResourceCompile Include="..\..\apr-util\libaprutil.rc" />
++  </ItemGroup>
++  <ItemGroup>
++    <CustomBuildStep Include="..\..\apr-util\dbm\sdbm\sdbm_pair.h">
++      <Filter>Source Files\sdbm</Filter>
++    </CustomBuildStep>
++    <CustomBuildStep Include="..\..\apr-util\dbm\sdbm\sdbm_private.h">
++      <Filter>Source Files\sdbm</Filter>
++    </CustomBuildStep>
++    <CustomBuildStep Include="..\..\apr-util\dbm\sdbm\sdbm_tune.h">
++      <Filter>Source Files\sdbm</Filter>
++    </CustomBuildStep>
++  </ItemGroup>
++  <ItemGroup>
++    <CustomBuild Include="..\..\apr-util\include\apr_ldap.hw">
++      <Filter>Generated Files</Filter>
++    </CustomBuild>
++    <CustomBuild Include="..\..\apr-util\include\apu.hw">
++      <Filter>Generated Files</Filter>
++    </CustomBuild>
++    <CustomBuild Include="..\..\apr-util\include\private\apu_config.hw">
++      <Filter>Generated Files</Filter>
++    </CustomBuild>
++    <CustomBuild Include="..\..\apr-util\include\private\apu_select_dbm.hw">
++      <Filter>Generated Files</Filter>
++    </CustomBuild>
++    <CustomBuild Include="..\..\apr-util\include\apu_want.hw">
++      <Filter>Generated Files</Filter>
++    </CustomBuild>
++  </ItemGroup>
+ </Project>
+\ No newline at end of file
+diff --git a/libs/xmlrpc-c/.cvsignore b/libs/xmlrpc-c/.cvsignore
+deleted file mode 100644
+index f007c35..0000000
+--- a/libs/xmlrpc-c/.cvsignore
++++ /dev/null
+@@ -1,18 +0,0 @@
+-Makefile.config
+-autogen.sh
+-autom4te.cache
+-configure
+-config.log
+-stamp-h
+-stamp-h1
+-config.cache
+-libtool
+-config.status
+-xmlrpc_config.h
+-xmlrpc_amconfig.h
+-xmlrpc-c-config
+-xmlrpc-c-config.test
+-xmlrpc-c-*.tar.gz
+-xmlrpc-c.spec
+-transport_config.h
+-
+diff --git a/libs/xmlrpc-c/.update b/libs/xmlrpc-c/.update
+deleted file mode 100644
+index 60fffd1..0000000
+--- a/libs/xmlrpc-c/.update
++++ /dev/null
+@@ -1 +0,0 @@
+-date
+diff --git a/libs/xmlrpc-c/GNUmakefile b/libs/xmlrpc-c/GNUmakefile
+index be7e423..976e92c 100644
+--- a/libs/xmlrpc-c/GNUmakefile
++++ b/libs/xmlrpc-c/GNUmakefile
+@@ -1,4 +1,4 @@
+-include Makefile.srcdir
++include srcdir.mk
+ BLDDIR = $(CURDIR)
+ SUBDIR =
+@@ -6,7 +6,6 @@ SUBDIR =
+ export SRCDIR
+ export BLDDIR
+-include $(BLDDIR)/Makefile.version
+ include $(BLDDIR)/config.mk
+ SUBDIRS = include lib src tools examples
+@@ -24,10 +23,25 @@ SUBDIRS = include lib src tools examples
+ DEFAULT_SUBDIRS = include lib src
++ifeq ($(BUILD_TOOLS),yes)
++  DEFAULT_SUBDIRS += tools
++endif
++
+ PROGRAMS_TO_INSTALL = xmlrpc-c-config
+ default: xmlrpc-c-config xmlrpc-c-config.test $(DEFAULT_SUBDIRS:%=%/all)
++# We don't want common.mk's rule for version.h
++OMIT_VERSION_H = Y
++
++# We don't want common.mk's rule for transport_config.h
++OMIT_TRANSPORT_CONFIG_H = Y
++
++# We don't want common.mk's rule for xmlrpc-c-config.test:
++OMIT_XMLRPC_C_CONFIG_TEST = Y
++
++include $(SRCDIR)/common.mk
++
+ .PHONY: all
+ all: xmlrpc-c-config xmlrpc-c-config.test $(SUBDIRS:%=%/all)
+@@ -61,22 +75,15 @@ src/all: lib/all
+ MAJOR := $(XMLRPC_MAJOR_RELEASE)
+ MINOR := $(XMLRPC_MINOR_RELEASE)
+ POINT := $(XMLRPC_POINT_RELEASE)
+-version.h: $(SRCDIR)/Makefile.version
++version.h: $(SRCDIR)/version.mk
+       rm -f $@
+       echo "/* Generated by make file rule */" >>$@
+-      echo "#define XMLRPC_C_VERSION" \
+-        \"Xmlrpc-c $(MAJOR).$(MINOR).$(POINT)"\"" >>$@
++      echo "#define XMLRPC_C_VERSION" \"$(MAJOR).$(MINOR).$(POINT)"\"" >>$@
+       echo "#define XMLRPC_VERSION_MAJOR $(MAJOR)" >>$@
+       echo "#define XMLRPC_VERSION_MINOR $(MINOR)" >>$@
+       echo "#define XMLRPC_VERSION_POINT $(POINT)" >>$@
+-# We don't want common.mk's rule for version.h
+-OMIT_VERSION_H = Y
+-
+-# We don't want common.mk's rule for transport_config.h
+-OMIT_TRANSPORT_CONFIG_H = Y
+-
+-include transport_config.make
++include transport_config.mk
+ # shell_config is a fragment to place inside a Bourne shell program that
+ # sets variables that tell how the build is configured.
+@@ -94,17 +101,15 @@ shell_config: $(BLDDIR)/config.mk
+       @echo 'MUST_BUILD_CURL_CLIENT="$(MUST_BUILD_CURL_CLIENT)"'      >>$@
+       @echo 'MUST_BUILD_LIBWWW_CLIENT="$(MUST_BUILD_LIBWWW_CLIENT)"'  >>$@
+       @echo 'NEED_RPATH="$(NEED_RPATH)"'                              >>$@
+-      @echo 'NEED_WL_RPATH="$(NEED_WL)RPATH)"'                        >>$@
++      @echo 'NEED_WL_RPATH="$(NEED_WL_RPATH)"'                        >>$@
++      @echo 'LIBXMLRPCPP_NAME="$(LIBXMLRPCPP_NAME)"'                  >>$@
+       @echo 'LSOCKET="$(LSOCKET)"'                                    >>$@
+       @echo 'WININET_LDADD="$(WININET_LDADD)"'                        >>$@
+-      @echo 'WININET_RPATH="$(WININET_RPATH)"'                        >>$@
+-      @echo 'WININET_WL_RPATH="$(WININET_WL_RPATH)"'                  >>$@
++      @echo 'WININET_LIBDIR="$(WININET_LIBDIR)"'                      >>$@
+       @echo 'CURL_LDADD="$(CURL_LDADD)"'                              >>$@
+-      @echo 'CURL_RPATH="$(CURL_RPATH)"'                              >>$@
+-      @echo 'CURL_WL_RPATH="$(CURL_WL_RPATH)"'                        >>$@
++      @echo 'CURL_LIBDIR="$(CURL_LIBDIR)"'                            >>$@
+       @echo 'LIBWWW_LDADD="$(LIBWWW_LDADD)"'                          >>$@
+-      @echo 'LIBWWW_RPATH="$(LIBWWW_RPATH)"'                          >>$@
+-      @echo 'LIBWWW_WL_RPATH="$(LIBWWW_WL_RPATH)"'                    >>$@
++      @echo 'LIBWWW_LIBDIR="$(LIBWWW_LIBDIR)"'                        >>$@
+       @echo 'XMLRPC_MAJOR_RELEASE="$(XMLRPC_MAJOR_RELEASE)"'          >>$@
+       @echo 'XMLRPC_MINOR_RELEASE="$(XMLRPC_MINOR_RELEASE)"'          >>$@
+       @echo 'XMLRPC_POINT_RELEASE="$(XMLRPC_POINT_RELEASE)"'          >>$@
+@@ -116,9 +121,6 @@ shell_config: $(BLDDIR)/config.mk
+       @echo 'ABS_SRCDIR="$(ABS_SRCDIR)"'                              >>$@
+       @echo '#######################################################' >>$@
+-# We don't want config.mk's xmlrpc-c-config.test rule:
+-OMIT_XMLRPC_C_CONFIG_TEST = Y
+-
+ xmlrpc-c-config xmlrpc-c-config.test:%: %.main shell_config
+       rm -f $@
+       @echo "Echoes to '$@' suppressed here ..."
+@@ -140,7 +142,7 @@ clean-local:
+ distclean: $(SUBDIRS:%=%/distclean) distclean-common distclean-local
+ distclean-local: clean-local
+-      rm -f config.log config.status config.mk Makefile.srcdir
++      rm -f config.log config.status config.mk srcdir.mk
+       rm -f xmlrpc_config.h xmlrpc_amconfig.h stamp-h 
+       rm -f shell_config xmlrpc-c-config xmlrpc-c-config.test
+       rm -f TAGS
+@@ -162,11 +164,8 @@ xmlrpc_config.h xmlrpc_amconfig.h \
+       :%:%.in $(SRCDIR)/configure
+       $(SRCDIR)/configure
+-include $(SRCDIR)/common.mk
+-
+-
+ # A trick to catch a common user error.  When you don't run 'configure',
+-# you don't have a Makefile.srcdir, which means $(SRCDIR) is null.
++# you don't have a srcdir.mk, which means $(SRCDIR) is null.
+ /common.mk:
+       @echo =======================================
+diff --git a/libs/xmlrpc-c/Makefile.common b/libs/xmlrpc-c/Makefile.common
+deleted file mode 100644
+index bf51040..0000000
+--- a/libs/xmlrpc-c/Makefile.common
++++ /dev/null
+@@ -1,272 +0,0 @@
+-# -*-makefile-*-    <-- an Emacs control
+-
+-# This file contains rules and variable settings for the convenience
+-# of every other make file in the package.
+-
+-# No make file is required to use this file, but it usually saves a lot
+-# of duplication.
+-
+-# The following make variables are meaningful as input to this file:
+-#
+-# SRCDIR:  Name of directory which is the top of the Xmlrpc-c source tree.
+-# BUILDDIR: Name of directory which is the top of the Xmlrpc-c build tree.
+-
+-LIBTOOL = $(SRCDIR)/libtool
+-LINK = $(LIBTOOL) --mode=link $(CCLD)
+-
+-GCC_WARNINGS = -Wall -Wundef -Wimplicit -W -Winline
+-  # We need -Wwrite-strings after we fix all the missing consts
+-
+-GCC_C_WARNINGS = $(GCC_WARNINGS) \
+-  -Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes
+-
+-GCC_CXX_WARNINGS = $(GCC_WARNINGS) -Woverloaded-virtual -Wsynth
+-
+-ifeq ($(C_COMPILER_GNU),yes)
+-  CFLAGS_COMMON = $(GCC_C_WARNINGS) $(COMPILER_CFLAGS) -fno-common -g
+-else
+-  CFLAGS_COMMON = $(COMPILER_CFLAGS)
+-endif
+-
+-ifeq ($(CXX_COMPILER_GNU),yes)
+-  CXXFLAGS_COMMON = $(GCC_CXX_WARNINGS) $(COMPILER_CXXFLAGS)
+-else
+-  CXXFLAGS_COMMON = $(COMPILER_CXXFLAGS)
+-endif
+-
+-DISTDIR = $(BUILDDIR)/$(PACKAGE)-$(VERSION)/$(SUBDIR)
+-
+-LDFLAGS_VERSINFO = -version-info 7:0:4
+-
+-# CURDIR was introduced in GNU Make 3.77.
+-ifeq ($(CURDIR)x,x)
+-  CURDIR := $(shell /bin/pwd)
+-endif
+-
+-##############################################################################
+-#                             RULES                                          #
+-##############################################################################
+-
+-$(SUBDIRS:%=%/all): %/all: $(CURDIR)/%
+-      $(MAKE) -C $(dir $@) -f $(SRCDIR)/$(SUBDIR)/$(dir $@)Makefile \
+-          $(notdir $@) 
+-
+-$(SUBDIRS:%=%/install): %/install: $(CURDIR)/%
+-      $(MAKE) -C $(dir $@) -f $(SRCDIR)/$(SUBDIR)/$(dir $@)Makefile \
+-          $(notdir $@) 
+-
+-$(SUBDIRS:%=%/clean): %/clean: $(CURDIR)/%
+-      $(MAKE) -C $(dir $@) -f $(SRCDIR)/$(SUBDIR)/$(dir $@)Makefile \
+-          $(notdir $@) 
+-
+-$(SUBDIRS:%=%/distclean): %/distclean: $(CURDIR)/%
+-      $(MAKE) -C $(dir $@) -f $(SRCDIR)/$(SUBDIR)/$(dir $@)Makefile \
+-          $(notdir $@) 
+-
+-$(SUBDIRS:%=%/distdir): %/distdir: $(CURDIR)/%
+-      $(MAKE) -C $(dir $@) -f $(SRCDIR)/$(SUBDIR)/$(dir $@)Makefile \
+-          $(notdir $@) 
+-
+-$(SUBDIRS:%=%/dep): %/dep: $(CURDIR)/%
+-      $(MAKE) -C $(dir $@) -f $(SRCDIR)/$(SUBDIR)/$(dir $@)Makefile \
+-          $(notdir $@) 
+-
+-$(BUILDDIR)/lib/util/casprintf.lo: FORCE
+-      $(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/util/Makefile $(notdir $@) 
+-
+-$(BUILDDIR)/lib/expat/xmlparse/libxmlrpc_xmlparse.la: FORCE
+-      $(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/expat/xmlparse/Makefile \
+-          $(notdir $@)
+-
+-$(BUILDDIR)/lib/expat/xmltok/libxmlrpc_xmltok.la: FORCE
+-      $(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/expat/xmltok/Makefile \
+-          $(notdir $@)
+-
+-$(BUILDDIR)/lib/wininet_transport/xmlrpc_wininet_transport.lo: FORCE
+-      $(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/wininet_transport/Makefile \
+-          $(notdir $@)
+-
+-$(BUILDDIR)/lib/curl_transport/xmlrpc_curl_transport.lo: FORCE
+-      $(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/curl_transport/Makefile \
+-          $(notdir $@)
+-
+-$(BUILDDIR)/lib/libwww_transport/xmlrpc_libwww_transport.lo: FORCE
+-      $(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/libwww_transport/Makefile \
+-          $(notdir $@)
+-
+-$(BUILDDIR)/src/libxmlrpc.la: FORCE
+-      $(MAKE) -C $(dir $@) -f $(SRCDIR)/src/Makefile \
+-          $(notdir $@)
+-
+-$(BUILDDIR)/src/libxmlrpc_client.la: FORCE
+-      $(MAKE) -C $(dir $@) -f $(SRCDIR)/src/Makefile \
+-          $(notdir $@)
+-
+-$(BUILDDIR)/src/libxmlrpc_server.la: FORCE
+-      $(MAKE) -C $(dir $@) -f $(SRCDIR)/src/Makefile \
+-          $(notdir $@)
+-
+-ifneq ($(OMIT_TRANSPORT_CONFIG_H),Y)
+-$(BUILDDIR)/transport_config.h:
+-      $(MAKE) -C $(dir $@) $(notdir $@)
+-endif
+-
+-MKINSTALLDIRS = $(SHELL) $(SRCDIR)/mkinstalldirs
+-
+-.PHONY: install-common install-libraries install-headers install-bin
+-install-common: \
+-  install-ltlibraries install-libraries install-headers install-bin
+-
+-INSTALL_LIB_CMD = $(INSTALL_DATA) $$p $(DESTDIR)$(LIBINST_DIR)/$$p
+-RANLIB_CMD = $(RANLIB) $(DESTDIR)$(LIBINST_DIR)/$$p
+-
+-install-libraries: $(LIBRARIES_TO_INSTALL)
+-      $(MKINSTALLDIRS) $(DESTDIR)$(LIBINST_DIR)
+-      @list='$(LIBRARIES_TO_INSTALL)'; for p in $$list; do \
+-        if test -f $$p; then \
+-          echo " $(INSTALL_LIB_CMD)"; \
+-          $(INSTALL_LIB_CMD); \
+-        else :; fi; \
+-      done
+-      @$(POST_INSTALL)
+-      @list='$(LIBRARIES_TO_INSTALL)'; for p in $$list; do \
+-        if test -f $$p; then \
+-          echo " $(RANLIB_CMD)"; \
+-          $(RANLIB_CMD); \
+-        else :; fi; \
+-      done
+-
+-LIBTOOL_INSTALL_CMD = $(LIBTOOL) --mode=install \
+-  $(INSTALL) $$p $(DESTDIR)$(LIBINST_DIR)/$$p
+-
+-install-ltlibraries: $(LTLIBRARIES_TO_INSTALL)
+-      $(MKINSTALLDIRS) $(DESTDIR)$(LIBINST_DIR)
+-      @list='$(LTLIBRARIES_TO_INSTALL)'; for p in $$list; do \
+-        if test -f $$p; then \
+-          echo " $(LIBTOOL_INSTALL_CMD)"; \
+-          $(LIBTOOL_INSTALL_CMD); \
+-        else :; fi; \
+-      done
+-
+-HEADERDESTDIR = $(DESTDIR)$(HEADERINST_DIR)
+-INSTALL_HDR_CMD = $(INSTALL_DATA) $$d$$p $(HEADERDESTDIR)/$$p 
+-
+-install-headers: $(HEADERS_TO_INSTALL)
+-      $(MKINSTALLDIRS) $(HEADERDESTDIR)
+-      $(MKINSTALLDIRS) $(HEADERDESTDIR)/xmlrpc-c
+-      @list='$(HEADERS_TO_INSTALL)'; for p in $$list; do \
+-        if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
+-        echo " $(INSTALL_HDR_CMD)"; \
+-        $(INSTALL_HDR_CMD); \
+-      done
+-
+-
+-INSTALL_PROGRAM_CMD = $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p \
+-  $(DESTDIR)$(PROGRAMINST_DIR)/$$p
+-
+-install-bin: $(PROGRAMS_TO_INSTALL) $(DESTDIR)$(PROGRAMINST_DIR)
+-      @list='$(PROGRAMS_TO_INSTALL)'; \
+-         for p in $$list; do \
+-         echo "$(INSTALL_PROGRAM_CMD)"; \
+-         $(INSTALL_PROGRAM_CMD); \
+-         done
+-
+-$(DESTDIR)$(PROGRAMINST_DIR):
+-      $(MKINSTALLDIRS) $@
+-
+-
+-.PHONY: clean-common
+-clean-common:
+-      rm -f *.o *.a *.s *.i *.la *.lo
+-      rm -rf .libs
+-
+-.PHONY: distclean-common
+-distclean-common:
+-# Makefile.depend is generated by 'make dep' and contains only dependencies
+-# that make parts get _rebuilt_ when parts upon which they depend change.
+-# It does not contain dependencies that are necessary to cause a part to
+-# get built in the first place.  E.g. if foo.c uses bar.h and bar.h gets built
+-# by a make rule, you must put the dependency of foo.c on bar.h somewhere
+-# besides Makefile.depend.
+-#
+-# Because of this, a user doesn't need Makefile.depend, because he
+-# doesn't modify source files.  A developer, on the other hand, must make his
+-# own Makefile.depend, because 'make dep' creates Makefile.depend with 
+-# absolute pathnames, specific to the developer's system.
+-#
+-# So we empty out Makefile.depend here.  The developer must do 'make dep' if
+-# he wants to edit and rebuild.
+-#
+-# Other projects have 'make distclean' _remove_ Makefile.depend and then
+-# have 'make' automatically build Makefile.depend.  We have
+-# found that to be an utter disaster -- it's way too complicated and prone
+-# to failure, especially with built .h files.  Better not to burden the user,
+-# who gains nothing from it, with that.
+-#
+-      cat /dev/null >Makefile.depend
+-      rm -f TAGS
+-
+-
+-.PHONY: distdir-common
+-distdir-common:
+-      @for file in $(DISTFILES); do \
+-        d=$(SRCDIR); \
+-        if test -d $$d/$$file; then \
+-          cp -pr $$d/$$file $(DISTDIR)/$$file; \
+-        else \
+-          test -f $(DISTDIR)/$$file \
+-          || ln $$d/$$file $(DISTDIR)/$$file 2> /dev/null \
+-          || cp -p $$d/$$file $(DISTDIR)/$$file || :; \
+-        fi; \
+-      done
+-
+-TAGS: $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SUBDIRS)'; for subdir in $$list; do \
+-   if test "$$subdir" = .; then :; else \
+-          test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+-   fi; \
+-      done; \
+-      list='$(SOURCES) $(HEADERS)'; \
+-      unique=`for i in $$list; do echo $$i; done | \
+-        awk '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+-
+-DEP_SOURCES = $(wildcard *.c *.cpp)
+-
+-# This is a filter to turn "foo.o:" rules into "foo.o foo.lo:" because Libtool
+-# uses .lo for object files.  I'd like to purge the build of Libtool some day
+-# and eliminate this complication.
+-
+-LIBTOOL_DEPEND_MASSAGER = perl -walnpe's{^(.*)\.o:}{$$1.o $$1.lo:}'
+-
+-
+-
+-.PHONY: dep-common
+-dep-common: FORCE
+-ifneq ($(DEP_SOURCES)x,x)
+-      -$(CC) -MM -MG -I. $(INCLUDES) $(DEP_SOURCES) | \
+-        $(LIBTOOL_DEPEND_MASSAGER) \
+-        >Makefile.depend
+-endif
+-
+-Makefile.depend:
+-      cat /dev/null >$@
+-
+-# The automatic dependency generation is a pain in the butt and
+-# totally unnecessary for people just installing the distributed code,
+-# so to avoid needless failures in the field and a complex build, the
+-# 'distclean' target simply makes Makefile.depend an empty file.  A
+-# developer may do 'make dep' to create a Makefile.depend full of real
+-# dependencies.
+-
+-# Tell versions [3.59,3.63) of GNU make to not export all variables.
+-# Otherwise a system limit (for SysV at least) may be exceeded.
+-.NOEXPORT:
+-
+-
+-# Use the FORCE target as a dependency to force a target to get remade
+-FORCE:
+diff --git a/libs/xmlrpc-c/Makefile.config.in b/libs/xmlrpc-c/Makefile.config.in
+deleted file mode 100644
+index efdcf4f..0000000
+--- a/libs/xmlrpc-c/Makefile.config.in
++++ /dev/null
+@@ -1,79 +0,0 @@
+-# Makefile.config is generated by 'configure' using Makefile.config.in
+-# as a template and information that 'configure' gathers from the build
+-# system and from user options.
+-
+-# Makefile.config should someday replace most of the other files that
+-# 'configure' generates, thus simplifying development and customization.
+-# Makefile.config is intended to contain information specific to the
+-# particular build environment or user build choices.
+-
+-# Furthermore, most of the logic in 'configure', and thus 'configure.in',
+-# should go into the make files to simplify the build.  Makefile.config
+-# should just pass raw configure variables through to the make file.
+-
+-# Tokens of the form @TOKEN@ in the template file get replaced by
+-# 'configure' with the values of variables of the same name within
+-# 'configure', because of a AC_SUBST(TOKEN) statement in the
+-# 'configure.in' from which 'configure' was built.
+-
+-# Here are the options the user chose on 'configure':
+-
+-ENABLE_ABYSS_SERVER    = @ENABLE_ABYSS_SERVER@
+-ENABLE_ABYSS_THREADS   = @ENABLE_ABYSS_THREADS@
+-ENABLE_CPLUSPLUS       = @ENABLE_CPLUSPLUS@
+-ENABLE_CGI_SERVER      = @ENABLE_CGI_SERVER@
+-ENABLE_LIBXML2_BACKEND = @ENABLE_LIBXML2_BACKEND@
+-ENABLE_EFENCE          = @ENABLE_EFENCE@
+-
+-MUST_BUILD_WININET_CLIENT = @MUST_BUILD_WININET_CLIENT@
+-MUST_BUILD_CURL_CLIENT    = @MUST_BUILD_CURL_CLIENT@
+-MUST_BUILD_LIBWWW_CLIENT  = @MUST_BUILD_LIBWWW_CLIENT@
+-
+-LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+-LIBXML2_LIBS   = @LIBXML2_LIBS@
+-
+-MUST_BUILD_CLIENT = no
+-ifeq ($(MUST_BUILD_WININET_CLIENT),yes)
+-  MUST_BUILD_CLIENT = yes
+-endif
+-ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
+-  MUST_BUILD_CLIENT = yes
+-endif
+-ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
+-  MUST_BUILD_CLIENT = yes
+-endif
+-
+-# Stuff 'configure' figured out about our build platform:
+-
+-SHELL = @SHELL@
+-CC = @CC@
+-CXX = @CXX@
+-CCLD = $(CC)
+-CXXLD = $(CXX)
+-AR = ar
+-RANLIB = @RANLIB@
+-LN_S = @LN_S@
+-INSTALL = @INSTALL@
+-
+-C_COMPILER_GNU = @C_COMPILER_GNU@
+-CXX_COMPILER_GNU = @CXX_COMPILER_GNU@
+-COMPILER_CFLAGS = @COMPILER_CFLAGS@
+-COMPILER_CXXFLAGS = @COMPILER_CXXFLAGS@
+-
+-# Here are the commands 'make install' uses to install various kinds of files:
+-
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+-INSTALL_DATA = @INSTALL_DATA@
+-INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-
+-# Here are the locations at which 'make install' puts files:
+-
+-# DESTDIR is designed to be overriden at make time in order to relocate
+-# the entire install into a subdirectory.
+-DESTDIR =
+-
+-exec_prefix = @exec_prefix@
+-prefix = @prefix@
+-LIBINST_DIR = @libdir@
+-HEADERINST_DIR = @includedir@
+-PROGRAMINST_DIR = @bindir@
+diff --git a/libs/xmlrpc-c/Makefile.srcdir.in b/libs/xmlrpc-c/Makefile.srcdir.in
+deleted file mode 100644
+index d389df1..0000000
+--- a/libs/xmlrpc-c/Makefile.srcdir.in
++++ /dev/null
+@@ -1 +0,0 @@
+-SRCDIR=@abs_srcdir@
+diff --git a/libs/xmlrpc-c/Makefile.version b/libs/xmlrpc-c/Makefile.version
+deleted file mode 100644
+index 6dc75a2..0000000
+--- a/libs/xmlrpc-c/Makefile.version
++++ /dev/null
+@@ -1,11 +0,0 @@
+-###############################################################################
+-# This is not only a make file inclusion, but a source file for the program
+-# 'mkvers' in the Windows build system.  The latter is very particular about
+-# the format of this file.  Do not change white space, add comment lines, or
+-# anything!
+-#
+-#
+-###############################################################################
+-XMLRPC_MAJOR_RELEASE = 1
+-XMLRPC_MINOR_RELEASE = 14
+-XMLRPC_POINT_RELEASE = 99
+diff --git a/libs/xmlrpc-c/Windows/CleanWin32.bat b/libs/xmlrpc-c/Windows/CleanWin32.bat
+index 907b32b..181c3aa 100644
+--- a/libs/xmlrpc-c/Windows/CleanWin32.bat
++++ b/libs/xmlrpc-c/Windows/CleanWin32.bat
+@@ -1,43 +1,30 @@
+-@echo Windows build\r
+-@echo This batch file deletes the copied header files,\r
+-@echo Deleting Win32 header files...\r
+-@echo #####################################################\r
+-@echo IF YOU HAVE MADE CHANGES IN ..\xmlrpc_config.h, ..\include\xmlrpc-c\config.h etc ...\r
+-@echo THESE CHANGES WILL BE LOST!\r
+-@echo You should run diffcfg.bat first to check for changes,\r
+-@echo and updcfg.bat if you have made changes ...\r
+-@echo #####################################################\r
+-@echo ARE YOU SURE YOU WANT TO DO THIS? Ctrl+C to abort ...\r
+-@echo #####################################################\r
+-@pause\r
+-@set TEMP1=\r
+-@if NOT EXIST ..\include\xmlrpc-c\config.h goto DN1\r
+-del ..\include\xmlrpc-c\config.h > nul\r
+-@set TEMP1=%TEMP1% ..\include\xmlrpc-c\config.h\r
+-:DN1\r
+-@if NOT EXIST ..\xmlrpc_config.h goto DN2\r
+-del ..\xmlrpc_config.h > nul\r
+-@set TEMP1=%TEMP1% ..\xmlrpc_config.h\r
+-:DN2\r
+-@if NOT EXIST ..\transport_config.h goto DN3\r
+-del ..\transport_config.h > nul\r
+-@set TEMP1=%TEMP1% ..\transport_config.h\r
+-:DN3\r
+-@if NOT EXIST ..\version.h goto DN4\r
+-del ..\version.h > nul\r
+-@set TEMP1=%TEMP1% ..\version.h\r
+-:DN4\r
+-@if NOT EXIST ..\examples\config.h goto DN5\r
+-del ..\examples\config.h > nul\r
+-@set TEMP1=%TEMP1% ..\examples\config.h\r
+-:DN5\r
+-@if "%TEMP1%." == "." goto ALLDN\r
+-@echo DELETED win32 header files.\r
+-@echo %TEMP1%\r
+-@goto END\r
+-\r
+-:ALLDN\r
+-@echo NOne to DELETE ...\r
+-@goto END\r
+-\r
+-:END\r
++@if NOT EXIST ..\include\xmlrpc-c\config.h goto DN1
++del ..\include\xmlrpc-c\config.h > nul
++@set TEMP1=%TEMP1% ..\include\xmlrpc-c\config.h
++:DN1
++@if NOT EXIST ..\xmlrpc_config.h goto DN2
++del ..\xmlrpc_config.h > nul
++@set TEMP1=%TEMP1% ..\xmlrpc_config.h
++:DN2
++@if NOT EXIST ..\transport_config.h goto DN3
++del ..\transport_config.h > nul
++@set TEMP1=%TEMP1% ..\transport_config.h
++:DN3
++@if NOT EXIST ..\version.h goto DN4
++del ..\version.h > nul
++@set TEMP1=%TEMP1% ..\version.h
++:DN4
++@if NOT EXIST ..\examples\config.h goto DN5
++del ..\examples\config.h > nul
++@set TEMP1=%TEMP1% ..\examples\config.h
++:DN5
++@if "%TEMP1%." == "." goto ALLDN
++@echo DELETED win32 header files.
++@echo %TEMP1%
++@goto END
++
++:ALLDN
++@echo NOne to DELETE ...
++@goto END
++
++:END
+diff --git a/libs/xmlrpc-c/Windows/ReadMeWin32.txt b/libs/xmlrpc-c/Windows/ReadMeWin32.txt
+index 2da1575..c3d5d5d 100644
+--- a/libs/xmlrpc-c/Windows/ReadMeWin32.txt
++++ b/libs/xmlrpc-c/Windows/ReadMeWin32.txt
+@@ -1,64 +1,66 @@
+-Build Instructions For XML-RPC For C/C++ On Windows\r
+----------------------------------------------------\r
+-\r
+-Latest Windows work was done by\r
+-\r
+-  Geoff McLane\r
+-  19 October, 2007\r
+-  home: http://geoffair.net\r
+-\r
+-\r
+-1. Run the batch file ConfigureWin32.bat, found in the Windows\r
+-directory. This will copy four(4) headers to the appropriate folders.\r
+-\r
+-2. Load xmlrpc.dsw in MSVC[7,8] or later, and build the Release or Debug\r
+-configurations. DLL configurations are not included, and may not compile.\r
+-\r
+-This build requires that you have a Microsoft SDK, or Plaform SDK\r
+-installed, since among other things, it uses <http.h>, and\r
+-HTTPAPI.LIB, from the SDK.\r
+-\r
+-Once built, the rpctest.exe, in the bin folder, should run with no errors,\r
+-and the xmlrpc_sample_add_server.exe, using port 8080, and\r
+-xmlrpc_sample_add_sync_client.exe should communicate ... proving 7+5 = 12 ;=))\r
+-\r
+-Have fun.\r
+-\r
+-PS: Several other batch files are included in the Windows folder ...\r
+-\r
+-delsln.bat - to delete all the MSVC7 and 8 solution file.\r
+-\r
+-diffcfg.bat - compare the headers in windows with the version used in\r
+-the compile. Requires diff.exe to be in the path.\r
+-\r
+-updcfg.bat - copy the 3 manually maintained configuration files back\r
+-to the Windows folder (for distribution).\r
+-\r
+-cleawin32.bat - deletes the headers used in the compile. That is does the\r
+-opposite of ConfigureWin32.bat.\r
+-\r
+-cleanall.bat - to remove ALL the binary files created. Requires an xdelete\r
+-program which will recursively delete an entire folder.\r
+-\r
+-\r
+-There is some historical information in ReadMeOld.txt, which used to be\r
+-the contents of this file.  Some of it is still valid.\r
+-\r
+-\r
+-Developing XML-RPC For C/C++ for Windows\r
+-----------------------------------------\r
+-\r
+-If you fix or enhance something in the Windows build system, please send\r
+-your updates to the Xmlrpc-c maintainer to be included in future releases\r
+-so others don't have to repeat your work.\r
+-\r
+-Output of a Subversion 'diff' is usually the best way to send updates,\r
+-but you can also send complete files or just a description of the\r
+-change if that is easier.\r
+-\r
+-For the project files, we distribute only MSVC6-compatible DSP and DSW\r
+-files (which are, of course, usable as input to later versions of MSVC\r
+-as well).  That means if you need to modify something in the project\r
+-files and you are not using MSVC6, you must edit the project files\r
+-manually as text files.  Modifying them via the IDE would simply\r
+-generate new files in a format that cannot be used with older MSVC.\r
++Build Instructions For XML-RPC For C/C++ On Windows
++---------------------------------------------------
++
++-------------------------------------------------------------------------
++These instructions are for static link libraries, using Microsoft Visual
++Studio 7 and later.  There are project files to create DLLs, using
++Visual Studio 2008 or later, in the 'dll' subdirectory.  People maintain
++those project files separately from the rest of the build system, so it's
++not uncommon for something to work with one but not the other.
++-------------------------------------------------------------------------
++
++
++1. Run the batch file ConfigureWin32.bat, found in the Windows
++directory. This will copy four(4) headers to the appropriate folders.
++
++2. Load xmlrpc.dsw in MSVC[7,8] or later, and build the Release or Debug
++configurations. DLL configurations are not included, and may not compile.
++
++This build requires that you have a Microsoft SDK, or Plaform SDK
++installed, since among other things, it uses <http.h>, and
++HTTPAPI.LIB, from the SDK.
++
++Once built, the rpctest.exe, in the bin folder, should run with no errors,
++and the xmlrpc_sample_add_server.exe, using port 8080, and
++xmlrpc_sample_add_sync_client.exe should communicate ... proving 7+5 = 12 ;=))
++
++Have fun.
++
++PS: Several other batch files are included in the Windows folder ...
++
++delsln.bat - to delete all the MSVC7 and 8 solution file.
++
++diffcfg.bat - compare the headers in windows with the version used in
++the compile. Requires diff.exe to be in the path.
++
++updcfg.bat - copy the 3 manually maintained configuration files back
++to the Windows folder (for distribution).
++
++cleawin32.bat - deletes the headers used in the compile. That is does the
++opposite of ConfigureWin32.bat.
++
++cleanall.bat - to remove ALL the binary files created. Requires an xdelete
++program which will recursively delete an entire folder.
++
++
++There is some historical information in ReadMeOld.txt, which used to be
++the contents of this file.  Some of it is still valid.
++
++
++Developing XML-RPC For C/C++ for Windows
++----------------------------------------
++
++If you fix or enhance something in the Windows build system, please send
++your updates to the Xmlrpc-c maintainer to be included in future releases
++so others don't have to repeat your work.
++
++Output of a Subversion 'diff' is usually the best way to send updates,
++but you can also send complete files or just a description of the
++change if that is easier.
++
++For the project files, we distribute only MSVC6-compatible DSP and DSW
++files (which are, of course, usable as input to later versions of MSVC
++as well).  That means if you need to modify something in the project
++files and you are not using MSVC6, you must edit the project files
++manually as text files.  Modifying them via the IDE would simply
++generate new files in a format that cannot be used with older MSVC.
+diff --git a/libs/xmlrpc-c/Windows/abyss.2008.vcproj b/libs/xmlrpc-c/Windows/abyss.2008.vcproj
+deleted file mode 100644
+index 45508db..0000000
+--- a/libs/xmlrpc-c/Windows/abyss.2008.vcproj
++++ /dev/null
+@@ -1,1298 +0,0 @@
+-<?xml version="1.0" encoding="Windows-1252"?>\r
+-<VisualStudioProject\r
+-      ProjectType="Visual C++"\r
+-      Version="9.00"\r
+-      Name="abyss"\r
+-      ProjectGUID="{D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}"\r
+-      RootNamespace="abyss"\r
+-      TargetFrameworkVersion="131072"\r
+-      >\r
+-      <Platforms>\r
+-              <Platform\r
+-                      Name="Win32"\r
+-              />\r
+-              <Platform\r
+-                      Name="x64"\r
+-              />\r
+-      </Platforms>\r
+-      <ToolFiles>\r
+-      </ToolFiles>\r
+-      <Configurations>\r
+-              <Configuration\r
+-                      Name="Debug|Win32"\r
+-                      OutputDirectory=".\Debug\abyss"\r
+-                      IntermediateDirectory=".\Debug\abyss"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="0"\r
+-                              AdditionalIncludeDirectories="..\,..\include,..\lib\util\include,."\r
+-                              PreprocessorDefinitions="WIN32;_DEBUG;_LIB;ABYSS_WIN32;_THREAD"\r
+-                              MinimalRebuild="true"\r
+-                              BasicRuntimeChecks="3"\r
+-                              RuntimeLibrary="3"\r
+-                              PrecompiledHeaderFile=".\Debug\abyss/abyss.pch"\r
+-                              AssemblerListingLocation=".\Debug\abyss/"\r
+-                              ObjectFile=".\Debug\abyss/"\r
+-                              ProgramDataBaseFileName=".\Debug\abyss/"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                              DebugInformationFormat="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="_DEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\abyssD.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Debug\abyss/abyss.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-              <Configuration\r
+-                      Name="Debug|x64"\r
+-                      OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                              TargetEnvironment="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="0"\r
+-                              AdditionalIncludeDirectories="..\,..\include,..\lib\util\include,."\r
+-                              PreprocessorDefinitions="WIN32;_DEBUG;_LIB;ABYSS_WIN32;_THREAD"\r
+-                              MinimalRebuild="true"\r
+-                              BasicRuntimeChecks="3"\r
+-                              RuntimeLibrary="3"\r
+-                              PrecompiledHeaderFile=".\Debug\abyss/abyss.pch"\r
+-                              ObjectFile="$(IntDir)\Abyss\"\r
+-                              ProgramDataBaseFileName="$(IntDir)\Abyss\vc90.pdb"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                              DebugInformationFormat="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="_DEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\$(PlatformName)\$(ConfigurationName)\abyssD.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Debug\abyss/abyss.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-              <Configuration\r
+-                      Name="Release|Win32"\r
+-                      OutputDirectory=".\Release\Abyss"\r
+-                      IntermediateDirectory=".\Release\Abyss"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="2"\r
+-                              InlineFunctionExpansion="1"\r
+-                              AdditionalIncludeDirectories="..\,..\include,..\lib\util\include,."\r
+-                              PreprocessorDefinitions="WIN32;NDEBUG;_LIB;ABYSS_WIN32;_THREAD"\r
+-                              StringPooling="true"\r
+-                              RuntimeLibrary="2"\r
+-                              EnableFunctionLevelLinking="true"\r
+-                              PrecompiledHeaderFile=".\Release\Abyss/abyss.pch"\r
+-                              AssemblerListingLocation=".\Release\Abyss/"\r
+-                              ObjectFile=".\Release\Abyss/"\r
+-                              ProgramDataBaseFileName=".\Release\Abyss/"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="NDEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\abyss.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Release\Abyss/abyss.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-              <Configuration\r
+-                      Name="Release|x64"\r
+-                      OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                              TargetEnvironment="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="2"\r
+-                              InlineFunctionExpansion="1"\r
+-                              AdditionalIncludeDirectories="..\,..\include,..\lib\util\include,."\r
+-                              PreprocessorDefinitions="WIN32;NDEBUG;_LIB;ABYSS_WIN32;_THREAD"\r
+-                              StringPooling="true"\r
+-                              RuntimeLibrary="2"\r
+-                              EnableFunctionLevelLinking="true"\r
+-                              PrecompiledHeaderFile=".\Release\Abyss/abyss.pch"\r
+-                              ObjectFile="$(IntDir)\Abyss\"\r
+-                              ProgramDataBaseFileName="$(IntDir)\Abyss\vc90.pdb"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="NDEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\$(PlatformName)\$(ConfigurationName)\abyss.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Release\Abyss/abyss.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-      </Configurations>\r
+-      <References>\r
+-      </References>\r
+-      <Files>\r
+-              <Filter\r
+-                      Name="Source Files"\r
+-                      Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
+-                      >\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\channel.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\chanswitch.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\conf.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\conn.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\data.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\date.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\file.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\handler.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\http.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\init.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\response.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\server.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\session.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\socket.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\socket_openssl.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\socket_unix.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\socket_win.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\thread_fork.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\thread_pthread.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\thread_windows.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\token.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\trace.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-              </Filter>\r
+-              <Filter\r
+-                      Name="Header Files"\r
+-                      Filter="h;hpp;hxx;hm;inl"\r
+-                      >\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\abyss_info.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\channel.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\chanswitch.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\conn.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\data.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\date.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\file.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\handler.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\http.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\server.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\session.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\socket.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\socket_win.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\thread.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\token.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\trace.h"\r
+-                              >\r
+-                      </File>\r
+-              </Filter>\r
+-      </Files>\r
+-      <Globals>\r
+-      </Globals>\r
+-</VisualStudioProject>\r
+diff --git a/libs/xmlrpc-c/Windows/abyss.2010.vcxproj b/libs/xmlrpc-c/Windows/abyss.2010.vcxproj
+deleted file mode 100644
+index 8f366a8..0000000
+--- a/libs/xmlrpc-c/Windows/abyss.2010.vcxproj
++++ /dev/null
+@@ -1,437 +0,0 @@
+-<?xml version="1.0" encoding="utf-8"?>\r
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+-  <ItemGroup Label="ProjectConfigurations">\r
+-    <ProjectConfiguration Include="Debug|Win32">\r
+-      <Configuration>Debug</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Debug|x64">\r
+-      <Configuration>Debug</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release|Win32">\r
+-      <Configuration>Release</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release|x64">\r
+-      <Configuration>Release</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-  </ItemGroup>\r
+-  <PropertyGroup Label="Globals">\r
+-    <ProjectName>abyss</ProjectName>\r
+-    <ProjectGuid>{D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}</ProjectGuid>\r
+-    <RootNamespace>abyss</RootNamespace>\r
+-  </PropertyGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+-  <ImportGroup Label="ExtensionSettings">\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <PropertyGroup Label="UserMacros" />\r
+-  <PropertyGroup>\r
+-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(PlatformName)\abyss\$(Configuration)\</IntDir>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(PlatformName)\abyss\$(Configuration)\</IntDir>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(PlatformName)\abyss\$(Configuration)\</IntDir>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(PlatformName)\abyss\$(Configuration)\</IntDir>\r
+-  </PropertyGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+-    <ClCompile>\r
+-      <Optimization>Disabled</Optimization>\r
+-      <AdditionalIncludeDirectories>..\;..\include;..\lib\util\include;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;ABYSS_WIN32;_THREAD;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <MinimalRebuild>true</MinimalRebuild>\r
+-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Debug\abyss/abyss.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <Optimization>Disabled</Optimization>\r
+-      <AdditionalIncludeDirectories>..\;..\include;..\lib\util\include;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;ABYSS_WIN32;_THREAD;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <MinimalRebuild>true</MinimalRebuild>\r
+-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Debug\abyss/abyss.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+-    <ClCompile>\r
+-      <Optimization>MaxSpeed</Optimization>\r
+-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+-      <AdditionalIncludeDirectories>..\;..\include;..\lib\util\include;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;ABYSS_WIN32;_THREAD;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <StringPooling>true</StringPooling>\r
+-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Release\Abyss/abyss.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <Optimization>MaxSpeed</Optimization>\r
+-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+-      <AdditionalIncludeDirectories>..\;..\include;..\lib\util\include;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;ABYSS_WIN32;_THREAD;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <StringPooling>true</StringPooling>\r
+-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Release\Abyss/abyss.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemGroup>\r
+-    <ClCompile Include="..\lib\abyss\src\channel.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\chanswitch.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\conf.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\conn.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\data.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\date.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\file.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\handler.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\http.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\init.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\response.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\server.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\session.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\socket.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\socket_openssl.c">\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\socket_unix.c">\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\socket_win.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\thread_fork.c">\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\thread_pthread.c">\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\thread_windows.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\token.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\trace.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <ClInclude Include="..\lib\abyss\src\abyss_info.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\channel.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\chanswitch.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\conn.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\data.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\date.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\file.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\handler.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\http.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\server.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\session.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\socket.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\socket_win.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\thread.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\token.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\trace.h" />\r
+-  </ItemGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+-  <ImportGroup Label="ExtensionTargets">\r
+-  </ImportGroup>\r
+-</Project>
+\ No newline at end of file
+diff --git a/libs/xmlrpc-c/Windows/abyss.2010.vcxproj.filters b/libs/xmlrpc-c/Windows/abyss.2010.vcxproj.filters
+deleted file mode 100644
+index 63a3cb3..0000000
+--- a/libs/xmlrpc-c/Windows/abyss.2010.vcxproj.filters
++++ /dev/null
+@@ -1,131 +0,0 @@
+-<?xml version="1.0" encoding="utf-8"?>\r
+-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+-  <ItemGroup>\r
+-    <Filter Include="Source Files">\r
+-      <UniqueIdentifier>{8ac4971f-a9ba-4930-a7e3-b291ad24d6ca}</UniqueIdentifier>\r
+-      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>\r
+-    </Filter>\r
+-    <Filter Include="Header Files">\r
+-      <UniqueIdentifier>{05489d43-6c6b-4bb8-95db-414e8137ee9e}</UniqueIdentifier>\r
+-      <Extensions>h;hpp;hxx;hm;inl</Extensions>\r
+-    </Filter>\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <ClCompile Include="..\lib\abyss\src\channel.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\chanswitch.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\conf.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\conn.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\data.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\date.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\file.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\handler.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\http.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\init.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\response.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\server.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\session.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\socket.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\socket_openssl.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\socket_unix.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\socket_win.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\thread_fork.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\thread_pthread.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\thread_windows.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\token.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\abyss\src\trace.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <ClInclude Include="..\lib\abyss\src\abyss_info.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\channel.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\chanswitch.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\conn.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\data.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\date.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\file.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\handler.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\http.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\server.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\session.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\socket.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\socket_win.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\thread.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\token.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\trace.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-  </ItemGroup>\r
+-</Project>
+\ No newline at end of file
+diff --git a/libs/xmlrpc-c/Windows/cpptest.dsp b/libs/xmlrpc-c/Windows/cpptest.dsp
+index 9db8ccc..49f52c1 100644
+--- a/libs/xmlrpc-c/Windows/cpptest.dsp
++++ b/libs/xmlrpc-c/Windows/cpptest.dsp
+@@ -1,121 +1,128 @@
+-# Microsoft Developer Studio Project File - Name="cpptest" - Package Owner=<4>\r
+-# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
+-# ** DO NOT EDIT **\r
+-\r
+-# TARGTYPE "Win32 (x86) Console Application" 0x0103\r
+-\r
+-CFG=cpptest - Win32 Debug\r
+-!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
+-!MESSAGE use the Export Makefile command and run\r
+-!MESSAGE \r
+-!MESSAGE NMAKE /f "cpptest.mak".\r
+-!MESSAGE \r
+-!MESSAGE You can specify a configuration when running NMAKE\r
+-!MESSAGE by defining the macro CFG on the command line. For example:\r
+-!MESSAGE \r
+-!MESSAGE NMAKE /f "cpptest.mak" CFG="cpptest - Win32 Debug"\r
+-!MESSAGE \r
+-!MESSAGE Possible choices for configuration are:\r
+-!MESSAGE \r
+-!MESSAGE "cpptest - Win32 Release" (based on "Win32 (x86) Console Application")\r
+-!MESSAGE "cpptest - Win32 Debug" (based on "Win32 (x86) Console Application")\r
+-!MESSAGE \r
+-\r
+-# Begin Project\r
+-# PROP AllowPerConfigDependencies 0\r
+-CPP=cl.exe\r
+-RSC=rc.exe\r
+-\r
+-!IF  "$(CFG)" == "cpptest - Win32 Release"\r
+-\r
+-# PROP BASE Use_MFC 0\r
+-# PROP BASE Use_Debug_Libraries 0\r
+-# PROP BASE Output_Dir "Release"\r
+-# PROP BASE Intermediate_Dir "Release"\r
+-# PROP BASE Target_Dir ""\r
+-# PROP Use_MFC 0\r
+-# PROP Use_Debug_Libraries 0\r
+-# PROP Output_Dir "Release\cpptest"\r
+-# PROP Intermediate_Dir "Release\cpptest"\r
+-# PROP Ignore_Export_Lib 0\r
+-# PROP Target_Dir ""\r
+-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c\r
+-# ADD CPP /nologo /MT /W3 /GX /O2 /I ".." /I "../include" /I "../lib/util/include" /I "../.." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /D "_CRT_SECURE_NO_WARNINGS" /YX /FD /c\r
+-# ADD BASE RSC /l 0x409 /d "NDEBUG"\r
+-# ADD RSC /l 0x409 /d "NDEBUG"\r
+-BSC32=bscmake.exe\r
+-# ADD BASE BSC32 /nologo\r
+-# ADD BSC32 /nologo\r
+-LINK32=link.exe\r
+-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.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 /nologo /subsystem:console /machine:I386\r
+-# ADD LINK32 ..\lib\xmlrpccpp.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 Ws2_32.lib Wininet.lib /nologo /subsystem:console /machine:I386 /out:"..\bin\cpptest.exe"\r
+-\r
+-!ELSEIF  "$(CFG)" == "cpptest - Win32 Debug"\r
+-\r
+-# PROP BASE Use_MFC 0\r
+-# PROP BASE Use_Debug_Libraries 1\r
+-# PROP BASE Output_Dir "Debug"\r
+-# PROP BASE Intermediate_Dir "Debug"\r
+-# PROP BASE Target_Dir ""\r
+-# PROP Use_MFC 0\r
+-# PROP Use_Debug_Libraries 1\r
+-# PROP Output_Dir "Debug\cpptest"\r
+-# PROP Intermediate_Dir "Debug\cpptest"\r
+-# PROP Ignore_Export_Lib 0\r
+-# PROP Target_Dir ""\r
+-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c\r
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../.." /I ".." /I "../include" /I "../lib/util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /D "_CRT_SECURE_NO_WARNINGS" /YX /FD /GZ /c\r
+-# ADD BASE RSC /l 0x409 /d "_DEBUG"\r
+-# ADD RSC /l 0x409 /d "_DEBUG"\r
+-BSC32=bscmake.exe\r
+-# ADD BASE BSC32 /nologo\r
+-# ADD BSC32 /nologo\r
+-LINK32=link.exe\r
+-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.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 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept\r
+-# ADD LINK32 ..\lib\xmlrpccppD.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 Ws2_32.lib Wininet.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\bin\cpptestD.exe" /pdbtype:sept\r
+-\r
+-!ENDIF \r
+-\r
+-# Begin Target\r
+-\r
+-# Name "cpptest - Win32 Release"\r
+-# Name "cpptest - Win32 Debug"\r
+-# Begin Group "Source Files"\r
+-\r
+-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\test\registry.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\test\server_abyss.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\test\server_pstream.cpp\r
+-# PROP Exclude_From_Build 1\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\test\test.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\test\testclient_dummy.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\test\tools.cpp\r
+-# End Source File\r
+-# End Group\r
+-# Begin Group "Header Files"\r
+-\r
+-# PROP Default_Filter "h;hpp;hxx;hm;inl"\r
+-# End Group\r
+-# Begin Group "Resource Files"\r
+-\r
+-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
+-# End Group\r
+-# End Target\r
+-# End Project\r
++# Microsoft Developer Studio Project File - Name="cpptest" - Package Owner=<4>
++# Microsoft Developer Studio Generated Build File, Format Version 6.00
++# ** DO NOT EDIT **
++
++# TARGTYPE "Win32 (x86) Console Application" 0x0103
++
++CFG=cpptest - Win32 Debug
++!MESSAGE This is not a valid makefile. To build this project using NMAKE,
++!MESSAGE use the Export Makefile command and run
++!MESSAGE 
++!MESSAGE NMAKE /f "cpptest.mak".
++!MESSAGE 
++!MESSAGE You can specify a configuration when running NMAKE
++!MESSAGE by defining the macro CFG on the command line. For example:
++!MESSAGE 
++!MESSAGE NMAKE /f "cpptest.mak" CFG="cpptest - Win32 Debug"
++!MESSAGE 
++!MESSAGE Possible choices for configuration are:
++!MESSAGE 
++!MESSAGE "cpptest - Win32 Release" (based on "Win32 (x86) Console Application")
++!MESSAGE "cpptest - Win32 Debug" (based on "Win32 (x86) Console Application")
++!MESSAGE 
++
++# Begin Project
++# PROP AllowPerConfigDependencies 0
++CPP=cl.exe
++RSC=rc.exe
++
++!IF  "$(CFG)" == "cpptest - Win32 Release"
++
++# PROP BASE Use_MFC 0
++# PROP BASE Use_Debug_Libraries 0
++# PROP BASE Output_Dir "Release"
++# PROP BASE Intermediate_Dir "Release"
++# PROP BASE Target_Dir ""
++# PROP Use_MFC 0
++# PROP Use_Debug_Libraries 0
++# PROP Output_Dir "Release\cpptest"
++# PROP Intermediate_Dir "Release\cpptest"
++# PROP Ignore_Export_Lib 0
++# PROP Target_Dir ""
++# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
++# ADD CPP /nologo /MT /W3 /GX /O2 /I ".." /I "../include" /I "../lib/util/include" /I "../.." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /D "_CRT_SECURE_NO_WARNINGS" /YX /FD /c
++# ADD BASE RSC /l 0x409 /d "NDEBUG"
++# ADD RSC /l 0x409 /d "NDEBUG"
++BSC32=bscmake.exe
++# ADD BASE BSC32 /nologo
++# ADD BSC32 /nologo
++LINK32=link.exe
++# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.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 /nologo /subsystem:console /machine:I386
++# ADD LINK32 ..\lib\xmlrpccpp.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 Ws2_32.lib Wininet.lib /nologo /subsystem:console /machine:I386 /out:"..\bin\cpptest.exe"
++
++!ELSEIF  "$(CFG)" == "cpptest - Win32 Debug"
++
++# PROP BASE Use_MFC 0
++# PROP BASE Use_Debug_Libraries 1
++# PROP BASE Output_Dir "Debug"
++# PROP BASE Intermediate_Dir "Debug"
++# PROP BASE Target_Dir ""
++# PROP Use_MFC 0
++# PROP Use_Debug_Libraries 1
++# PROP Output_Dir "Debug\cpptest"
++# PROP Intermediate_Dir "Debug\cpptest"
++# PROP Ignore_Export_Lib 0
++# PROP Target_Dir ""
++# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
++# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../.." /I ".." /I "../include" /I "../lib/util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /D "_CRT_SECURE_NO_WARNINGS" /YX /FD /GZ /c
++# ADD BASE RSC /l 0x409 /d "_DEBUG"
++# ADD RSC /l 0x409 /d "_DEBUG"
++BSC32=bscmake.exe
++# ADD BASE BSC32 /nologo
++# ADD BSC32 /nologo
++LINK32=link.exe
++# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.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 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
++# ADD LINK32 ..\lib\xmlrpccppD.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 Ws2_32.lib Wininet.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\bin\cpptestD.exe" /pdbtype:sept
++
++!ENDIF 
++
++# Begin Target
++
++# Name "cpptest - Win32 Release"
++# Name "cpptest - Win32 Debug"
++# Begin Group "Source Files"
++
++# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
++# Begin Source File
++
++SOURCE=..\src\cpp\test\value.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\test\registry.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\test\server_abyss.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\test\server_pstream.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\test\test.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\test\testclient_dummy.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\test\tools.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=.\socketpair.cpp
++# End Source File
++# End Group
++# Begin Group "Header Files"
++
++# PROP Default_Filter "h;hpp;hxx;hm;inl"
++# End Group
++# Begin Group "Resource Files"
++
++# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
++# End Group
++# End Target
++# End Project
+diff --git a/libs/xmlrpc-c/Windows/gennmtab.2008.vcproj b/libs/xmlrpc-c/Windows/gennmtab.2008.vcproj
+deleted file mode 100644
+index c4460dd..0000000
+--- a/libs/xmlrpc-c/Windows/gennmtab.2008.vcproj
++++ /dev/null
+@@ -1,242 +0,0 @@
+-<?xml version="1.0" encoding="Windows-1252"?>\r
+-<VisualStudioProject\r
+-      ProjectType="Visual C++"\r
+-      Version="9.00"\r
+-      Name="gennmtab"\r
+-      ProjectGUID="{A6F149DA-CD8D-4E8E-B914-25DFFE6269A7}"\r
+-      RootNamespace="gennmtab"\r
+-      TargetFrameworkVersion="131072"\r
+-      >\r
+-      <Platforms>\r
+-              <Platform\r
+-                      Name="Win32"\r
+-              />\r
+-      </Platforms>\r
+-      <ToolFiles>\r
+-      </ToolFiles>\r
+-      <Configurations>\r
+-              <Configuration\r
+-                      Name="Debug|Win32"\r
+-                      OutputDirectory=".\Debug\gennmtab"\r
+-                      IntermediateDirectory=".\Debug\gennmtab"\r
+-                      ConfigurationType="1"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                              TypeLibraryName=".\Debug\gennmtab/gennmtab.tlb"\r
+-                              HeaderFileName=""\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="0"\r
+-                              AdditionalIncludeDirectories="..;."\r
+-                              PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"\r
+-                              MinimalRebuild="true"\r
+-                              RuntimeLibrary="1"\r
+-                              PrecompiledHeaderFile=".\Debug\gennmtab/gennmtab.pch"\r
+-                              AssemblerListingLocation=".\Debug\gennmtab/"\r
+-                              ObjectFile=".\Debug\gennmtab/"\r
+-                              ProgramDataBaseFileName=".\Debug\gennmtab/"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                              DebugInformationFormat="4"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="_DEBUG"\r
+-                              Culture="2057"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLinkerTool"\r
+-                              OutputFile="..\bin\gennmtabD.exe"\r
+-                              LinkIncremental="2"\r
+-                              SuppressStartupBanner="true"\r
+-                              GenerateDebugInformation="true"\r
+-                              ProgramDatabaseFile=".\Debug\gennmtab/gennmtabD.pdb"\r
+-                              SubSystem="1"\r
+-                              RandomizedBaseAddress="1"\r
+-                              DataExecutionPrevention="0"\r
+-                              TargetMachine="1"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManifestTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Debug\gennmtab/gennmtab.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCAppVerifierTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                              Description="(D) Generating nametab.h ..."\r
+-                              CommandLine="..\bin\gennmtabD.exe &gt;..\lib\expat\xmltok\nametab.h"\r
+-                      />\r
+-              </Configuration>\r
+-              <Configuration\r
+-                      Name="Release|Win32"\r
+-                      OutputDirectory=".\Release\gennmtab"\r
+-                      IntermediateDirectory=".\Release\gennmtab"\r
+-                      ConfigurationType="1"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                              TypeLibraryName=".\Release\gennmtab/gennmtab.tlb"\r
+-                              HeaderFileName=""\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="2"\r
+-                              InlineFunctionExpansion="1"\r
+-                              AdditionalIncludeDirectories="..;."\r
+-                              PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"\r
+-                              StringPooling="true"\r
+-                              RuntimeLibrary="0"\r
+-                              EnableFunctionLevelLinking="true"\r
+-                              PrecompiledHeaderFile=".\Release\gennmtab/gennmtab.pch"\r
+-                              AssemblerListingLocation=".\Release\gennmtab/"\r
+-                              ObjectFile=".\Release\gennmtab/"\r
+-                              ProgramDataBaseFileName=".\Release\gennmtab/"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="NDEBUG"\r
+-                              Culture="2057"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLinkerTool"\r
+-                              OutputFile="..\bin\gennmtab.exe"\r
+-                              LinkIncremental="1"\r
+-                              SuppressStartupBanner="true"\r
+-                              ProgramDatabaseFile=".\Release\gennmtab/gennmtab.pdb"\r
+-                              SubSystem="1"\r
+-                              RandomizedBaseAddress="1"\r
+-                              DataExecutionPrevention="0"\r
+-                              TargetMachine="1"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManifestTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Release\gennmtab/gennmtab.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCAppVerifierTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                              Description="(R) Generating nametab.h ..."\r
+-                              CommandLine="..\bin\gennmtab.exe &gt;..\lib\expat\xmltok\nametab.h"\r
+-                      />\r
+-              </Configuration>\r
+-      </Configurations>\r
+-      <References>\r
+-      </References>\r
+-      <Files>\r
+-              <Filter\r
+-                      Name="Source Files"\r
+-                      Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90"\r
+-                      >\r
+-                      <File\r
+-                              RelativePath="..\lib\expat\gennmtab\gennmtab.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-              </Filter>\r
+-              <Filter\r
+-                      Name="Header Files"\r
+-                      Filter="h;hpp;hxx;hm;inl;fi;fd"\r
+-                      >\r
+-              </Filter>\r
+-              <Filter\r
+-                      Name="Resource Files"\r
+-                      Filter="ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"\r
+-                      >\r
+-              </Filter>\r
+-      </Files>\r
+-      <Globals>\r
+-      </Globals>\r
+-</VisualStudioProject>\r
+diff --git a/libs/xmlrpc-c/Windows/mkvers.bat b/libs/xmlrpc-c/Windows/mkvers.bat
+index 2f6ec1b..2ff46e0 100644
+--- a/libs/xmlrpc-c/Windows/mkvers.bat
++++ b/libs/xmlrpc-c/Windows/mkvers.bat
+@@ -1,53 +1,53 @@
+-@if EXIST ..\version.h goto SHOW\r
+-@if NOT EXIST ..\Makefile.version goto ERR1\r
+-@if NOT EXIST mkvers1.bat goto ERR2\r
+-@echo updating/creating ..\version.h ...\r
+-@set TEMP1=1\r
+-@for /F "skip=8 tokens=3" %%i in (..\Makefile.version) do @call mkvers1 %%i\r
+-@if "%TEMPX1%." == "." goto NOX1\r
+-@if "%TEMPX2%." == "." goto NOX1\r
+-@if "%TEMPX3%." == "." goto NOX1\r
+-@set TEMP1=..\version.h\r
+-@echo #ifndef XMLRPC_C_VERSION_INCLUDED > %TEMP1%\r
+-@echo #define XMLRPC_C_VERSION_INCLUDED >> %TEMP1%\r
+-@echo /* generated by Windows/mkvers.bat on %DATE% ... */ >> %TEMP1%\r
+-@echo #define XMLRPC_C_VERSION "Xmlrpc-c %TEMPX1%.%TEMPX2%.%TEMPX3%" >> %TEMP1%\r
+-@echo #define XMLRPC_VERSION_MAJOR %TEMPX1% >> %TEMP1%\r
+-@echo #define XMLRPC_VERSION_MINOR %TEMPX2% >> %TEMP1%\r
+-@echo #define XMLRPC_VERSION_POINT %TEMPX3% >> %TEMP1%\r
+-@echo #endif >> %TEMP1%\r
+-type %TEMP1%\r
+-@echo ..\version.h set to the above ...\r
+-@set TEMP1=\r
+-@set TEMPX1=\r
+-@set TEMPX2=\r
+-@set TEMPX3=\r
+-@goto END \r
+-\r
+-:NOX1\r
+-@echo Some error occurred in the batch process ...\r
+-@goto NOVER\r
+-\r
+-:NOVER\r
+-@echo Failed to create ..\version.h .\r
+-@pause\r
+-@goto END\r
+-\r
+-\r
+-:ERR1\r
+-@echo Can not locate ..\Makefile.version ... check name, location ...\r
+-@pause\r
+-@goto END\r
+-:ERR2\r
+-@echo Can not locate mkvers1.bat ... check name, location ...\r
+-@pause\r
+-@goto END\r
+-\r
+-:SHOW\r
+-@echo ..\version.h already exist, with version ...\r
+-@type ..\version.h\r
+-@echo Delete this file if you wish to redo it ...\r
+-@pause\r
+-@goto END\r
+-\r
+-:END\r
++@if EXIST ..\version.h goto SHOW
++@if NOT EXIST ..\version.mk goto ERR1
++@if NOT EXIST mkvers1.bat goto ERR2
++@echo updating/creating ..\version.h ...
++@set TEMP1=1
++@for /F "skip=8 tokens=3" %%i in (..\version.mk) do @call mkvers1 %%i
++@if "%TEMPX1%." == "." goto NOX1
++@if "%TEMPX2%." == "." goto NOX1
++@if "%TEMPX3%." == "." goto NOX1
++@set TEMP1=..\version.h
++@echo #ifndef XMLRPC_C_VERSION_INCLUDED > %TEMP1%
++@echo #define XMLRPC_C_VERSION_INCLUDED >> %TEMP1%
++@echo /* generated by Windows/mkvers.bat on %DATE% ... */ >> %TEMP1%
++@echo #define XMLRPC_C_VERSION "%TEMPX1%.%TEMPX2%.%TEMPX3%" >> %TEMP1%
++@echo #define XMLRPC_VERSION_MAJOR %TEMPX1% >> %TEMP1%
++@echo #define XMLRPC_VERSION_MINOR %TEMPX2% >> %TEMP1%
++@echo #define XMLRPC_VERSION_POINT %TEMPX3% >> %TEMP1%
++@echo #endif >> %TEMP1%
++type %TEMP1%
++@echo ..\version.h set to the above ...
++@set TEMP1=
++@set TEMPX1=
++@set TEMPX2=
++@set TEMPX3=
++@goto END 
++
++:NOX1
++@echo Some error occurred in the batch process ...
++@goto NOVER
++
++:NOVER
++@echo Failed to create ..\version.h .
++@pause
++@goto END
++
++
++:ERR1
++@echo Can not locate ..\version.mk ... check name, location ...
++@pause
++@goto END
++:ERR2
++@echo Can not locate mkvers1.bat ... check name, location ...
++@pause
++@goto END
++
++:SHOW
++@echo ..\version.h already exist, with version ...
++@type ..\version.h
++@echo Delete this file if you wish to redo it ...
++@pause
++@goto END
++
++:END
+diff --git a/libs/xmlrpc-c/Windows/query_meerkat.dsp b/libs/xmlrpc-c/Windows/query_meerkat.dsp
+deleted file mode 100644
+index 2ffb15b..0000000
+--- a/libs/xmlrpc-c/Windows/query_meerkat.dsp
++++ /dev/null
+@@ -1,100 +0,0 @@
+-# Microsoft Developer Studio Project File - Name="query_meerkat" - Package Owner=<4>
+-# Microsoft Developer Studio Generated Build File, Format Version 6.00
+-# ** DO NOT EDIT **
+-
+-# TARGTYPE "Win32 (x86) Console Application" 0x0103
+-
+-CFG=query_meerkat - Win32 Debug
+-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+-!MESSAGE use the Export Makefile command and run
+-!MESSAGE 
+-!MESSAGE NMAKE /f "query_meerkat.mak".
+-!MESSAGE 
+-!MESSAGE You can specify a configuration when running NMAKE
+-!MESSAGE by defining the macro CFG on the command line. For example:
+-!MESSAGE 
+-!MESSAGE NMAKE /f "query_meerkat.mak" CFG="query_meerkat - Win32 Debug"
+-!MESSAGE 
+-!MESSAGE Possible choices for configuration are:
+-!MESSAGE 
+-!MESSAGE "query_meerkat - Win32 Release" (based on "Win32 (x86) Console Application")
+-!MESSAGE "query_meerkat - Win32 Debug" (based on "Win32 (x86) Console Application")
+-!MESSAGE 
+-
+-# Begin Project
+-# PROP AllowPerConfigDependencies 0
+-# PROP Scc_ProjName "query_meerkat"
+-# PROP Scc_LocalPath ".."
+-CPP=cl.exe
+-RSC=rc.exe
+-
+-!IF  "$(CFG)" == "query_meerkat - Win32 Release"
+-
+-# PROP BASE Use_MFC 0
+-# PROP BASE Use_Debug_Libraries 0
+-# PROP BASE Output_Dir "Release"
+-# PROP BASE Intermediate_Dir "Release"
+-# PROP BASE Target_Dir ""
+-# PROP Use_MFC 0
+-# PROP Use_Debug_Libraries 0
+-# PROP Output_Dir "Release\query_meerkat"
+-# PROP Intermediate_Dir "Release\query_meerkat"
+-# PROP Target_Dir ""
+-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\\" /I "..\include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+-# ADD BASE RSC /l 0x409 /d "NDEBUG"
+-# ADD RSC /l 0x409 /d "NDEBUG"
+-BSC32=bscmake.exe
+-# ADD BASE BSC32 /nologo
+-# ADD BSC32 /nologo
+-LINK32=link.exe
+-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.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 /nologo /subsystem:console /machine:I386
+-# ADD LINK32 ..\lib\xmlrpc.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 WinInet.lib /nologo /subsystem:console /machine:I386 /out:"..\bin\query_meerkat.exe"
+-
+-!ELSEIF  "$(CFG)" == "query_meerkat - Win32 Debug"
+-
+-# PROP BASE Use_MFC 0
+-# PROP BASE Use_Debug_Libraries 1
+-# PROP BASE Output_Dir "Debug"
+-# PROP BASE Intermediate_Dir "Debug"
+-# PROP BASE Target_Dir ""
+-# PROP Use_MFC 0
+-# PROP Use_Debug_Libraries 1
+-# PROP Output_Dir "Debug\query_meerkat"
+-# PROP Intermediate_Dir "Debug\query_meerkat"
+-# PROP Target_Dir ""
+-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\\" /I "..\include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+-# ADD BASE RSC /l 0x409 /d "_DEBUG"
+-# ADD RSC /l 0x409 /d "_DEBUG"
+-BSC32=bscmake.exe
+-# ADD BASE BSC32 /nologo
+-# ADD BSC32 /nologo
+-LINK32=link.exe
+-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.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 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+-# ADD LINK32 ..\lib\xmlrpcD.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 WinInet.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\bin\query_meerkatD.exe" /pdbtype:sept
+-
+-!ENDIF 
+-
+-# Begin Target
+-
+-# Name "query_meerkat - Win32 Release"
+-# Name "query_meerkat - Win32 Debug"
+-# Begin Group "Source Files"
+-
+-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+-# Begin Source File
+-
+-SOURCE="..\examples\query-meerkat.c"
+-# End Source File
+-# End Group
+-# Begin Group "Header Files"
+-
+-# PROP Default_Filter "h;hpp;hxx;hm;inl"
+-# End Group
+-# Begin Group "Resource Files"
+-
+-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+-# End Group
+-# End Target
+-# End Project
+diff --git a/libs/xmlrpc-c/Windows/rpctest.dsp b/libs/xmlrpc-c/Windows/rpctest.dsp
+index 159692c..7a7b350 100644
+--- a/libs/xmlrpc-c/Windows/rpctest.dsp
++++ b/libs/xmlrpc-c/Windows/rpctest.dsp
+@@ -1,210 +1,218 @@
+-# Microsoft Developer Studio Project File - Name="rpctest" - Package Owner=<4>\r
+-# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
+-# ** DO NOT EDIT **\r
+-\r
+-# TARGTYPE "Win32 (x86) Console Application" 0x0103\r
+-\r
+-CFG=rpctest - Win32 Debug\r
+-!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
+-!MESSAGE use the Export Makefile command and run\r
+-!MESSAGE \r
+-!MESSAGE NMAKE /f "rpctest.mak".\r
+-!MESSAGE \r
+-!MESSAGE You can specify a configuration when running NMAKE\r
+-!MESSAGE by defining the macro CFG on the command line. For example:\r
+-!MESSAGE \r
+-!MESSAGE NMAKE /f "rpctest.mak" CFG="rpctest - Win32 Debug"\r
+-!MESSAGE \r
+-!MESSAGE Possible choices for configuration are:\r
+-!MESSAGE \r
+-!MESSAGE "rpctest - Win32 Release" (based on "Win32 (x86) Console Application")\r
+-!MESSAGE "rpctest - Win32 Debug" (based on "Win32 (x86) Console Application")\r
+-!MESSAGE \r
+-\r
+-# Begin Project\r
+-# PROP AllowPerConfigDependencies 0\r
+-CPP=cl.exe\r
+-RSC=rc.exe\r
+-\r
+-!IF  "$(CFG)" == "rpctest - Win32 Release"\r
+-\r
+-# PROP BASE Use_MFC 0\r
+-# PROP BASE Use_Debug_Libraries 0\r
+-# PROP BASE Output_Dir "Release"\r
+-# PROP BASE Intermediate_Dir "Release"\r
+-# PROP BASE Target_Dir ""\r
+-# PROP Use_MFC 0\r
+-# PROP Use_Debug_Libraries 0\r
+-# PROP Output_Dir "Release\rpctest"\r
+-# PROP Intermediate_Dir "Release\rpctest"\r
+-# PROP Ignore_Export_Lib 0\r
+-# PROP Target_Dir ""\r
+-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c\r
+-# ADD CPP /nologo /MT /W3 /GX /O2 /I ".." /I "../include" /I "../lib/util/include" /I "../.." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "ABYSS_WIN32" /YX /FD /c\r
+-# ADD BASE RSC /l 0x409 /d "NDEBUG"\r
+-# ADD RSC /l 0x409 /d "NDEBUG"\r
+-BSC32=bscmake.exe\r
+-# ADD BASE BSC32 /nologo\r
+-# ADD BSC32 /nologo\r
+-LINK32=link.exe\r
+-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.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 /nologo /subsystem:console /machine:I386\r
+-# ADD LINK32 ..\lib\xmlrpc.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 Ws2_32.lib Wininet.lib /nologo /subsystem:console /machine:I386 /out:"..\bin\rpctest.exe"\r
+-# Begin Special Build Tool\r
+-SOURCE="$(InputPath)"\r
+-PostBuild_Desc=Copy test files\r
+-PostBuild_Cmds=if not exist ..\Bin\data md ..\Bin\data        copy ..\src\test\data\*.* ..\Bin\data\r
+-# End Special Build Tool\r
+-\r
+-!ELSEIF  "$(CFG)" == "rpctest - Win32 Debug"\r
+-\r
+-# PROP BASE Use_MFC 0\r
+-# PROP BASE Use_Debug_Libraries 1\r
+-# PROP BASE Output_Dir "Debug"\r
+-# PROP BASE Intermediate_Dir "Debug"\r
+-# PROP BASE Target_Dir ""\r
+-# PROP Use_MFC 0\r
+-# PROP Use_Debug_Libraries 1\r
+-# PROP Output_Dir "Debug\rpctest"\r
+-# PROP Intermediate_Dir "Debug\rpctest"\r
+-# PROP Ignore_Export_Lib 0\r
+-# PROP Target_Dir ""\r
+-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c\r
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../.." /I ".." /I "../include" /I "../lib/util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "ABYSS_WIN32" /YX /FD /GZ /c\r
+-# ADD BASE RSC /l 0x409 /d "_DEBUG"\r
+-# ADD RSC /l 0x409 /d "_DEBUG"\r
+-BSC32=bscmake.exe\r
+-# ADD BASE BSC32 /nologo\r
+-# ADD BSC32 /nologo\r
+-LINK32=link.exe\r
+-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.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 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept\r
+-# ADD LINK32 ..\lib\xmlrpcD.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 Ws2_32.lib Wininet.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\bin\rpctestD.exe" /pdbtype:sept\r
+-# Begin Special Build Tool\r
+-SOURCE="$(InputPath)"\r
+-PostBuild_Desc=Copy test files\r
+-PostBuild_Cmds=if not exist ..\Bin\data md ..\Bin\data        copy ..\src\test\data\*.* ..\Bin\data\r
+-# End Special Build Tool\r
+-\r
+-!ENDIF \r
+-\r
+-# Begin Target\r
+-\r
+-# Name "rpctest - Win32 Release"\r
+-# Name "rpctest - Win32 Debug"\r
+-# Begin Group "Source Files"\r
+-\r
+-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\abyss.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\cgi.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\client.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\util\casprintf.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\method_registry.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\parse_xml.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\serialize.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\serialize_value.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\server_abyss.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\test.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\abyss\src\token.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\value.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\xml_data.c\r
+-# End Source File\r
+-# End Group\r
+-# Begin Group "Header Files"\r
+-\r
+-# PROP Default_Filter "h;hpp;hxx;hm;inl"\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\client.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\parse_xml.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\serialize.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\serialize_value.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\server_abyss.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\test.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\value.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\test\xml_data.h\r
+-# End Source File\r
+-# End Group\r
+-# Begin Group "Resource Files"\r
+-\r
+-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
+-# End Group\r
+-# Begin Group "TestFiles"\r
+-\r
+-# PROP Default_Filter ""\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\src\testdata\http-req-simple.txt"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\testdata\req_no_params.xml\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\testdata\req_out_of_order.xml\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\testdata\req_value_name.xml\r
+-# End Source File\r
+-# End Group\r
+-# End Target\r
+-# End Project\r
++# Microsoft Developer Studio Project File - Name="rpctest" - Package Owner=<4>
++# Microsoft Developer Studio Generated Build File, Format Version 6.00
++# ** DO NOT EDIT **
++
++# TARGTYPE "Win32 (x86) Console Application" 0x0103
++
++CFG=rpctest - Win32 Debug
++!MESSAGE This is not a valid makefile. To build this project using NMAKE,
++!MESSAGE use the Export Makefile command and run
++!MESSAGE 
++!MESSAGE NMAKE /f "rpctest.mak".
++!MESSAGE 
++!MESSAGE You can specify a configuration when running NMAKE
++!MESSAGE by defining the macro CFG on the command line. For example:
++!MESSAGE 
++!MESSAGE NMAKE /f "rpctest.mak" CFG="rpctest - Win32 Debug"
++!MESSAGE 
++!MESSAGE Possible choices for configuration are:
++!MESSAGE 
++!MESSAGE "rpctest - Win32 Release" (based on "Win32 (x86) Console Application")
++!MESSAGE "rpctest - Win32 Debug" (based on "Win32 (x86) Console Application")
++!MESSAGE 
++
++# Begin Project
++# PROP AllowPerConfigDependencies 0
++CPP=cl.exe
++RSC=rc.exe
++
++!IF  "$(CFG)" == "rpctest - Win32 Release"
++
++# PROP BASE Use_MFC 0
++# PROP BASE Use_Debug_Libraries 0
++# PROP BASE Output_Dir "Release"
++# PROP BASE Intermediate_Dir "Release"
++# PROP BASE Target_Dir ""
++# PROP Use_MFC 0
++# PROP Use_Debug_Libraries 0
++# PROP Output_Dir "Release\rpctest"
++# PROP Intermediate_Dir "Release\rpctest"
++# PROP Ignore_Export_Lib 0
++# PROP Target_Dir ""
++# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
++# ADD CPP /nologo /MT /W3 /GX /O2 /I ".." /I "../include" /I "../lib/util/include" /I "../.." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "ABYSS_WIN32" /YX /FD /c
++# ADD BASE RSC /l 0x409 /d "NDEBUG"
++# ADD RSC /l 0x409 /d "NDEBUG"
++BSC32=bscmake.exe
++# ADD BASE BSC32 /nologo
++# ADD BSC32 /nologo
++LINK32=link.exe
++# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.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 /nologo /subsystem:console /machine:I386
++# ADD LINK32 ..\lib\xmlrpc.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 Ws2_32.lib Wininet.lib /nologo /subsystem:console /machine:I386 /out:"..\bin\rpctest.exe"
++# Begin Special Build Tool
++SOURCE="$(InputPath)"
++PostBuild_Desc=Copy test files
++PostBuild_Cmds=if not exist ..\Bin\data md ..\Bin\data        copy ..\src\test\data\*.* ..\Bin\data
++# End Special Build Tool
++
++!ELSEIF  "$(CFG)" == "rpctest - Win32 Debug"
++
++# PROP BASE Use_MFC 0
++# PROP BASE Use_Debug_Libraries 1
++# PROP BASE Output_Dir "Debug"
++# PROP BASE Intermediate_Dir "Debug"
++# PROP BASE Target_Dir ""
++# PROP Use_MFC 0
++# PROP Use_Debug_Libraries 1
++# PROP Output_Dir "Debug\rpctest"
++# PROP Intermediate_Dir "Debug\rpctest"
++# PROP Ignore_Export_Lib 0
++# PROP Target_Dir ""
++# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
++# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../.." /I ".." /I "../include" /I "../lib/util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "ABYSS_WIN32" /YX /FD /GZ /c
++# ADD BASE RSC /l 0x409 /d "_DEBUG"
++# ADD RSC /l 0x409 /d "_DEBUG"
++BSC32=bscmake.exe
++# ADD BASE BSC32 /nologo
++# ADD BSC32 /nologo
++LINK32=link.exe
++# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.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 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
++# ADD LINK32 ..\lib\xmlrpcD.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 Ws2_32.lib Wininet.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\bin\rpctestD.exe" /pdbtype:sept
++# Begin Special Build Tool
++SOURCE="$(InputPath)"
++PostBuild_Desc=Copy test files
++PostBuild_Cmds=if not exist ..\Bin\data md ..\Bin\data        copy ..\src\test\data\*.* ..\Bin\data
++# End Special Build Tool
++
++!ENDIF 
++
++# Begin Target
++
++# Name "rpctest - Win32 Release"
++# Name "rpctest - Win32 Debug"
++# Begin Group "Source Files"
++
++# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
++# Begin Source File
++
++SOURCE=..\src\test\abyss.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\cgi.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\client.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\util\casprintf.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\method_registry.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\parse_xml.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\serialize.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\serialize_value.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\server_abyss.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\test.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\abyss\src\token.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\value.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\value_datetime.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\value_datetime.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\xml_data.c
++# End Source File
++# End Group
++# Begin Group "Header Files"
++
++# PROP Default_Filter "h;hpp;hxx;hm;inl"
++# Begin Source File
++
++SOURCE=..\src\test\client.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\parse_xml.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\serialize.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\serialize_value.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\server_abyss.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\test.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\value.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\test\xml_data.h
++# End Source File
++# End Group
++# Begin Group "Resource Files"
++
++# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
++# End Group
++# Begin Group "TestFiles"
++
++# PROP Default_Filter ""
++# Begin Source File
++
++SOURCE="..\src\testdata\http-req-simple.txt"
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\testdata\req_no_params.xml
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\testdata\req_out_of_order.xml
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\testdata\req_value_name.xml
++# End Source File
++# End Group
++# End Target
++# End Project
+diff --git a/libs/xmlrpc-c/Windows/transport_config.h b/libs/xmlrpc-c/Windows/transport_config.h
+deleted file mode 100644
+index 2642168..0000000
+--- a/libs/xmlrpc-c/Windows/transport_config.h
++++ /dev/null
+@@ -1,13 +0,0 @@
+-/* Win32 version of transport_config.h.\r
+-\r
+-   For other platforms, this is generated automatically, but for Windows,\r
+-   someone generates it manually.  Nonetheless, we keep it looking as much\r
+-   as possible like the automatically generated one to make it easier to\r
+-   maintain (e.g. you can compare the two and see why something builds\r
+-   differently for Windows that for some other platform).\r
+-*/\r
+-#define MUST_BUILD_WININET_CLIENT 1\r
+-#define MUST_BUILD_CURL_CLIENT 0\r
+-#define MUST_BUILD_LIBWWW_CLIENT 0\r
+-static const char * const XMLRPC_DEFAULT_TRANSPORT =\r
+-"wininet";\r
+diff --git a/libs/xmlrpc-c/Windows/win32_config.h b/libs/xmlrpc-c/Windows/win32_config.h
+index aabf9c2..a7e7a7d 100644
+--- a/libs/xmlrpc-c/Windows/win32_config.h
++++ b/libs/xmlrpc-c/Windows/win32_config.h
+@@ -1,38 +1,42 @@
+-#ifndef XMLRPC_C_CONFIG_H_INCLUDED\r
+-#define XMLRPC_C_CONFIG_H_INCLUDED\r
+-\r
+-/* This file, part of XML-RPC For C/C++, is meant to \r
+-   define characteristics of this particular installation \r
+-   that the other <xmlrpc-c/...> header files need in \r
+-   order to compile correctly when #included in Xmlrpc-c\r
+-   user code.\r
+-\r
+-   Those header files #include this one.\r
+-\r
+-   This file was created by a make rule.\r
+-*/\r
+-#define XMLRPC_HAVE_WCHAR 1\r
+-#ifdef WIN32\r
+-  /* SOCKET is a type defined by <winsock.h>.  Anyone who\r
+-     uses XMLRPC_SOCKET on a WIN32 system must #include\r
+-     <winsock.h>\r
+-  */\r
+-  #define XMLRPC_SOCKET SOCKET\r
+-  #define XMLRPC_HAVE_TIMEVAL 0\r
+-  #define XMLRPC_HAVE_TIMESPEC 0\r
+-#else\r
+-  #define XMLRPC_SOCKET int\r
+-  #define XMLRPC_HAVE_TIMEVAL 1\r
+-  #define XMLRPC_HAVE_TIMESPEC 1\r
+-#endif\r
+-\r
+-#if defined(_MSC_VER)\r
+-  /* Newer MSVC has long long, but MSVC 6 does not */\r
+-  #define XMLRPC_INT64 __int64\r
+-  #define XMLRPC_INT32 __int32\r
+-#else\r
+-  #define XMLRPC_INT64 long long\r
+-  #define XMLRPC_INT32 int\r
+-#endif\r
+-#endif\r
+-\r
++#ifndef XMLRPC_C_CONFIG_H_INCLUDED
++#define XMLRPC_C_CONFIG_H_INCLUDED
++
++/* This file, part of XML-RPC For C/C++, is meant to 
++   define characteristics of this particular installation 
++   that the other <xmlrpc-c/...> header files need in 
++   order to compile correctly when #included in Xmlrpc-c
++   user code.
++
++   Those header files #include this one.
++
++   This file was created by a make rule.
++*/
++#define XMLRPC_HAVE_WCHAR 1
++#ifdef WIN32
++  /* SOCKET is a type defined by <winsock.h>.  Anyone who
++     uses XMLRPC_SOCKET on a WIN32 system must #include
++     <winsock.h>
++  */
++  #define XMLRPC_SOCKET SOCKET
++  #define XMLRPC_HAVE_TIMEVAL 0
++  #define XMLRPC_HAVE_TIMESPEC 0
++  #define XMLRPC_HAVE_PTHREAD 0
++#else
++  #define XMLRPC_SOCKET int
++  #define XMLRPC_HAVE_TIMEVAL 1
++  #define XMLRPC_HAVE_TIMESPEC 1
++  #define XMLRPC_HAVE_PTHREAD 1
++#endif
++
++#if defined(_MSC_VER)
++  /* Newer MSVC has long long, but MSVC 6 does not */
++  #define XMLRPC_INT64 __int64
++  #define XMLRPC_INT32 __int32
++  #define XMLRPC_PRId64 PRId64
++#else
++  #define XMLRPC_INT64 long long
++  #define XMLRPC_INT32 int
++  #define XMLRPC_PRId64 "I64d"
++#endif
++#endif
++
+diff --git a/libs/xmlrpc-c/Windows/xmlparse.2008.vcproj b/libs/xmlrpc-c/Windows/xmlparse.2008.vcproj
+deleted file mode 100644
+index 15adb11..0000000
+--- a/libs/xmlrpc-c/Windows/xmlparse.2008.vcproj
++++ /dev/null
+@@ -1,387 +0,0 @@
+-<?xml version="1.0" encoding="Windows-1252"?>\r
+-<VisualStudioProject\r
+-      ProjectType="Visual C++"\r
+-      Version="9.00"\r
+-      Name="xmlparse"\r
+-      ProjectGUID="{0D108721-EAE8-4BAF-8102-D8960EC93647}"\r
+-      RootNamespace="xmlparse"\r
+-      TargetFrameworkVersion="131072"\r
+-      >\r
+-      <Platforms>\r
+-              <Platform\r
+-                      Name="Win32"\r
+-              />\r
+-              <Platform\r
+-                      Name="x64"\r
+-              />\r
+-      </Platforms>\r
+-      <ToolFiles>\r
+-      </ToolFiles>\r
+-      <Configurations>\r
+-              <Configuration\r
+-                      Name="Release|Win32"\r
+-                      OutputDirectory=".\Release\xmlparse"\r
+-                      IntermediateDirectory=".\Release\xmlparse"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="2"\r
+-                              InlineFunctionExpansion="1"\r
+-                              AdditionalIncludeDirectories="..\lib\expat\xmltok,..\lib\expat\xmlwf,..,..\lib\util\include,..\include,."\r
+-                              PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;XML_DTD;_LIB"\r
+-                              StringPooling="true"\r
+-                              RuntimeLibrary="0"\r
+-                              EnableFunctionLevelLinking="true"\r
+-                              PrecompiledHeaderFile=".\Release\xmlparse/xmlparse.pch"\r
+-                              AssemblerListingLocation=".\Release\xmlparse/"\r
+-                              ObjectFile=".\Release\xmlparse/"\r
+-                              ProgramDataBaseFileName=".\Release\xmlparse/"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="NDEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\xmlparse.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Release\xmlparse/xmlparse.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-              <Configuration\r
+-                      Name="Release|x64"\r
+-                      OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                              TargetEnvironment="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="2"\r
+-                              InlineFunctionExpansion="1"\r
+-                              AdditionalIncludeDirectories="..\lib\expat\xmltok,..\lib\expat\xmlwf,..,..\lib\util\include,..\include,."\r
+-                              PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;XML_DTD;_LIB"\r
+-                              StringPooling="true"\r
+-                              RuntimeLibrary="0"\r
+-                              EnableFunctionLevelLinking="true"\r
+-                              PrecompiledHeaderFile=".\Release\xmlparse/xmlparse.pch"\r
+-                              ObjectFile="$(IntDir)\xmlparse\"\r
+-                              ProgramDataBaseFileName="$(IntDir)\xmlparse\vc90.pdb"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="NDEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\$(PlatformName)\$(ConfigurationName)\xmlparse.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Release\xmlparse/xmlparse.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-              <Configuration\r
+-                      Name="Debug|Win32"\r
+-                      OutputDirectory=".\Debug\xmlparse"\r
+-                      IntermediateDirectory=".\Debug\xmlparse"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="0"\r
+-                              AdditionalIncludeDirectories="..\lib\expat\xmltok,..\lib\expat\xmlwf,..,..\lib\util\include,..\include,."\r
+-                              PreprocessorDefinitions="WIN32;_WINDOWS;XML_DTD;_LIB"\r
+-                              MinimalRebuild="true"\r
+-                              BasicRuntimeChecks="3"\r
+-                              RuntimeLibrary="3"\r
+-                              PrecompiledHeaderFile=".\Debug\xmlparse/xmlparse.pch"\r
+-                              AssemblerListingLocation=".\Debug\xmlparse/"\r
+-                              ObjectFile=".\Debug\xmlparse/"\r
+-                              ProgramDataBaseFileName=".\Debug\xmlparse/"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                              DebugInformationFormat="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="_DEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\xmlparseD.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Debug\xmlparse/xmlparse.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-              <Configuration\r
+-                      Name="Debug|x64"\r
+-                      OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                              TargetEnvironment="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="0"\r
+-                              AdditionalIncludeDirectories="..\lib\expat\xmltok,..\lib\expat\xmlwf,..,..\lib\util\include,..\include,."\r
+-                              PreprocessorDefinitions="WIN32;_WINDOWS;XML_DTD;_LIB"\r
+-                              MinimalRebuild="true"\r
+-                              BasicRuntimeChecks="3"\r
+-                              RuntimeLibrary="3"\r
+-                              PrecompiledHeaderFile=".\Debug\xmlparse/xmlparse.pch"\r
+-                              ObjectFile="$(IntDir)\xmlparse\"\r
+-                              ProgramDataBaseFileName="$(IntDir)\xmlparse\vc90.pdb"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                              DebugInformationFormat="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="_DEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\$(PlatformName)\$(ConfigurationName)\xmlparseD.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Debug\xmlparse/xmlparse.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-      </Configurations>\r
+-      <References>\r
+-      </References>\r
+-      <Files>\r
+-              <Filter\r
+-                      Name="Source Files"\r
+-                      Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90"\r
+-                      >\r
+-                      <File\r
+-                              RelativePath="..\lib\expat\xmlparse\xmlparse.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-              </Filter>\r
+-              <Filter\r
+-                      Name="Header Files"\r
+-                      Filter="h;hpp;hxx;hm;inl;fi;fd"\r
+-                      >\r
+-                      <File\r
+-                              RelativePath="..\lib\expat\xmlparse\xmlparse.h"\r
+-                              >\r
+-                      </File>\r
+-              </Filter>\r
+-              <Filter\r
+-                      Name="Resource Files"\r
+-                      Filter="ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"\r
+-                      >\r
+-              </Filter>\r
+-      </Files>\r
+-      <Globals>\r
+-      </Globals>\r
+-</VisualStudioProject>\r
+diff --git a/libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj b/libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj
+deleted file mode 100644
+index a747e32..0000000
+--- a/libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj
++++ /dev/null
+@@ -1,198 +0,0 @@
+-<?xml version="1.0" encoding="utf-8"?>\r
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+-  <ItemGroup Label="ProjectConfigurations">\r
+-    <ProjectConfiguration Include="Debug|Win32">\r
+-      <Configuration>Debug</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Debug|x64">\r
+-      <Configuration>Debug</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release|Win32">\r
+-      <Configuration>Release</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release|x64">\r
+-      <Configuration>Release</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-  </ItemGroup>\r
+-  <PropertyGroup Label="Globals">\r
+-    <ProjectName>xmlparse</ProjectName>\r
+-    <ProjectGuid>{0D108721-EAE8-4BAF-8102-D8960EC93647}</ProjectGuid>\r
+-    <RootNamespace>xmlparse</RootNamespace>\r
+-  </PropertyGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+-  <ImportGroup Label="ExtensionSettings">\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <PropertyGroup Label="UserMacros" />\r
+-  <PropertyGroup>\r
+-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(PlatformName)\xmlparse\$(Configuration)\</IntDir>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(PlatformName)\xmlparse\$(Configuration)\</IntDir>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(PlatformName)\xmlparse\$(Configuration)\</IntDir>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(PlatformName)\xmlparse\$(Configuration)\</IntDir>\r
+-  </PropertyGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+-    <ClCompile>\r
+-      <Optimization>MaxSpeed</Optimization>\r
+-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+-      <AdditionalIncludeDirectories>..\lib\expat\xmltok;..\lib\expat\xmlwf;..;..\lib\util\include;..\include;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <StringPooling>true</StringPooling>\r
+-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r
+-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Release\xmlparse/xmlparse.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <Optimization>MaxSpeed</Optimization>\r
+-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+-      <AdditionalIncludeDirectories>..\lib\expat\xmltok;..\lib\expat\xmlwf;..;..\lib\util\include;..\include;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <StringPooling>true</StringPooling>\r
+-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r
+-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Release\xmlparse/xmlparse.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+-    <ClCompile>\r
+-      <Optimization>Disabled</Optimization>\r
+-      <AdditionalIncludeDirectories>..\lib\expat\xmltok;..\lib\expat\xmlwf;..;..\lib\util\include;..\include;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <MinimalRebuild>true</MinimalRebuild>\r
+-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Debug\xmlparse/xmlparse.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <Optimization>Disabled</Optimization>\r
+-      <AdditionalIncludeDirectories>..\lib\expat\xmltok;..\lib\expat\xmlwf;..;..\lib\util\include;..\include;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <MinimalRebuild>true</MinimalRebuild>\r
+-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Debug\xmlparse/xmlparse.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemGroup>\r
+-    <ClCompile Include="..\lib\expat\xmlparse\xmlparse.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <ClInclude Include="..\lib\expat\xmlparse\xmlparse.h" />\r
+-  </ItemGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+-  <ImportGroup Label="ExtensionTargets">\r
+-  </ImportGroup>\r
+-</Project>
+\ No newline at end of file
+diff --git a/libs/xmlrpc-c/Windows/xmlrpc-c/config.h b/libs/xmlrpc-c/Windows/xmlrpc-c/config.h
+deleted file mode 100644
+index aabf9c2..0000000
+--- a/libs/xmlrpc-c/Windows/xmlrpc-c/config.h
++++ /dev/null
+@@ -1,38 +0,0 @@
+-#ifndef XMLRPC_C_CONFIG_H_INCLUDED\r
+-#define XMLRPC_C_CONFIG_H_INCLUDED\r
+-\r
+-/* This file, part of XML-RPC For C/C++, is meant to \r
+-   define characteristics of this particular installation \r
+-   that the other <xmlrpc-c/...> header files need in \r
+-   order to compile correctly when #included in Xmlrpc-c\r
+-   user code.\r
+-\r
+-   Those header files #include this one.\r
+-\r
+-   This file was created by a make rule.\r
+-*/\r
+-#define XMLRPC_HAVE_WCHAR 1\r
+-#ifdef WIN32\r
+-  /* SOCKET is a type defined by <winsock.h>.  Anyone who\r
+-     uses XMLRPC_SOCKET on a WIN32 system must #include\r
+-     <winsock.h>\r
+-  */\r
+-  #define XMLRPC_SOCKET SOCKET\r
+-  #define XMLRPC_HAVE_TIMEVAL 0\r
+-  #define XMLRPC_HAVE_TIMESPEC 0\r
+-#else\r
+-  #define XMLRPC_SOCKET int\r
+-  #define XMLRPC_HAVE_TIMEVAL 1\r
+-  #define XMLRPC_HAVE_TIMESPEC 1\r
+-#endif\r
+-\r
+-#if defined(_MSC_VER)\r
+-  /* Newer MSVC has long long, but MSVC 6 does not */\r
+-  #define XMLRPC_INT64 __int64\r
+-  #define XMLRPC_INT32 __int32\r
+-#else\r
+-  #define XMLRPC_INT64 long long\r
+-  #define XMLRPC_INT32 int\r
+-#endif\r
+-#endif\r
+-\r
+diff --git a/libs/xmlrpc-c/Windows/xmlrpc.2008.vcproj b/libs/xmlrpc-c/Windows/xmlrpc.2008.vcproj
+deleted file mode 100644
+index 6a16191..0000000
+--- a/libs/xmlrpc-c/Windows/xmlrpc.2008.vcproj
++++ /dev/null
+@@ -1,2042 +0,0 @@
+-<?xml version="1.0" encoding="Windows-1252"?>\r
+-<VisualStudioProject\r
+-      ProjectType="Visual C++"\r
+-      Version="9.00"\r
+-      Name="xmlrpc"\r
+-      ProjectGUID="{CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}"\r
+-      RootNamespace="xmlrpc"\r
+-      TargetFrameworkVersion="131072"\r
+-      >\r
+-      <Platforms>\r
+-              <Platform\r
+-                      Name="Win32"\r
+-              />\r
+-              <Platform\r
+-                      Name="x64"\r
+-              />\r
+-      </Platforms>\r
+-      <ToolFiles>\r
+-      </ToolFiles>\r
+-      <Configurations>\r
+-              <Configuration\r
+-                      Name="Debug|Win32"\r
+-                      OutputDirectory=".\Debug\xmlrpc"\r
+-                      IntermediateDirectory=".\Debug\xmlrpc"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="0"\r
+-                              AdditionalIncludeDirectories="../lib,../lib/util/include,../include,..,../lib/expat/xmlparse,../lib/abyss/src,../lib/wininet_transport,."\r
+-                              PreprocessorDefinitions="_DEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB"\r
+-                              MinimalRebuild="true"\r
+-                              BasicRuntimeChecks="3"\r
+-                              RuntimeLibrary="3"\r
+-                              PrecompiledHeaderFile=".\Debug\xmlrpc/xmlrpc.pch"\r
+-                              AssemblerListingLocation=".\Debug\xmlrpc/"\r
+-                              ObjectFile=".\Debug\xmlrpc/"\r
+-                              ProgramDataBaseFileName=".\Debug\xmlrpc/"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                              DebugInformationFormat="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="_DEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\xmlrpcD.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Debug\xmlrpc/xmlrpc.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-              <Configuration\r
+-                      Name="Debug|x64"\r
+-                      OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                              TargetEnvironment="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="0"\r
+-                              AdditionalIncludeDirectories="../lib,../lib/util/include,../include,..,../lib/expat/xmlparse,../lib/abyss/src,../lib/wininet_transport,."\r
+-                              PreprocessorDefinitions="_DEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB"\r
+-                              MinimalRebuild="true"\r
+-                              BasicRuntimeChecks="3"\r
+-                              RuntimeLibrary="3"\r
+-                              PrecompiledHeaderFile=".\Debug\xmlrpc/xmlrpc.pch"\r
+-                              ObjectFile="$(IntDir)\xmlrpc\"\r
+-                              ProgramDataBaseFileName="$(IntDir)\xmlrpc\vc90.pdb"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                              DebugInformationFormat="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="_DEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\$(PlatformName)\$(ConfigurationName)\xmlrpcD.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Debug\xmlrpc/xmlrpc.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-              <Configuration\r
+-                      Name="Release|Win32"\r
+-                      OutputDirectory=".\Release\xmlrpc"\r
+-                      IntermediateDirectory=".\Release\xmlrpc"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="2"\r
+-                              InlineFunctionExpansion="1"\r
+-                              AdditionalIncludeDirectories="../lib,../lib/util/include,../include,..,../lib/expat/xmlparse,../lib/abyss/src,../lib/wininet_transport,."\r
+-                              PreprocessorDefinitions="NDEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB"\r
+-                              StringPooling="true"\r
+-                              RuntimeLibrary="2"\r
+-                              EnableFunctionLevelLinking="true"\r
+-                              PrecompiledHeaderFile=".\Release\xmlrpc/xmlrpc.pch"\r
+-                              AssemblerListingLocation=".\Release\xmlrpc/"\r
+-                              ObjectFile=".\Release\xmlrpc/"\r
+-                              ProgramDataBaseFileName=".\Release\xmlrpc/"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="NDEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\xmlrpc.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Release\xmlrpc/xmlrpc.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-              <Configuration\r
+-                      Name="Release|x64"\r
+-                      OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                              TargetEnvironment="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="2"\r
+-                              InlineFunctionExpansion="1"\r
+-                              AdditionalIncludeDirectories="../lib,../lib/util/include,../include,..,../lib/expat/xmlparse,../lib/abyss/src,../lib/wininet_transport,."\r
+-                              PreprocessorDefinitions="NDEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB"\r
+-                              StringPooling="true"\r
+-                              RuntimeLibrary="2"\r
+-                              EnableFunctionLevelLinking="true"\r
+-                              PrecompiledHeaderFile=".\Release\xmlrpc/xmlrpc.pch"\r
+-                              ObjectFile="$(IntDir)\xmlrpc\"\r
+-                              ProgramDataBaseFileName="$(IntDir)\xmlrpc\vc90.pdb"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="NDEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\$(PlatformName)\$(ConfigurationName)\xmlrpc.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Release\xmlrpc/xmlrpc.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-      </Configurations>\r
+-      <References>\r
+-      </References>\r
+-      <Files>\r
+-              <Filter\r
+-                      Name="Source Files"\r
+-                      Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;cc"\r
+-                      >\r
+-                      <File\r
+-                              RelativePath="..\lib\libutil\asprintf.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\double.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\libutil\error.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\libutil\make_printable.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\libutil\memblock.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\method.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\parse_value.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\util\pthreadx_win32.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\registry.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\resource.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\libutil\select.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\libutil\sleep.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\system_method.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\libutil\time.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\trace.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\libutil\utf8.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\version.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_array.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_authcookie.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_base64.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_build.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_client.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_client_global.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\curl_transport\xmlrpc_curl_transport.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=".;..\..\curl\include"\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=".;..\..\curl\include"\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=".;..\..\curl\include"\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=".;..\..\curl\include"\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_data.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_datetime.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_decompose.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_expat.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_libxml2.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_parse.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_serialize.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_server_abyss.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_server_info.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_server_w32httpsys.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      ExcludedFromBuild="true"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_string.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\xmlrpc_struct.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\wininet_transport\xmlrpc_wininet_transport.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-              </Filter>\r
+-              <Filter\r
+-                      Name="Header Files"\r
+-                      Filter="h;hpp;hxx;hm;inl"\r
+-                      >\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\abyss.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\abyss_info.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\abyss_winsock.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\base.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\base_int.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\util\include\bool.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\c_util.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\util\include\c_util.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\util\include\casprintf.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\channel.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\chanswitch.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\client.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\client_global.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\client_int.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\config.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\conn.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\date.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\double.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\file.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\util\include\girmath.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\handler.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\http.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\util\include\inline.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\util\include\linklist.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\util\include\mallocvar.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\method.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\parse_value.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\util\include\pthreadx.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\registry.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\server.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\server.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\server_abyss.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\server_cgi.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\server_w32httpsys.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\sleep_int.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\socket.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\socket_win.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\util\include\stdargx.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\string_int.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\src\system_method.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\thread.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\time_int.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\abyss\src\token.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\transport.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\transport_config.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\transport_int.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\util_int.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\xml_rpc_alloc.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\expat\xmlparse\xmlparse.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\include\xmlrpc-c\xmlparser.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\xmlrpc_config.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\curl_transport\xmlrpc_curl_transport.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\wininet_transport\xmlrpc_wininet_transport.h"\r
+-                              >\r
+-                      </File>\r
+-              </Filter>\r
+-      </Files>\r
+-      <Globals>\r
+-      </Globals>\r
+-</VisualStudioProject>\r
+diff --git a/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj b/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj
+deleted file mode 100644
+index bdc988c..0000000
+--- a/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj
++++ /dev/null
+@@ -1,620 +0,0 @@
+-<?xml version="1.0" encoding="utf-8"?>\r
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+-  <ItemGroup Label="ProjectConfigurations">\r
+-    <ProjectConfiguration Include="Debug|Win32">\r
+-      <Configuration>Debug</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Debug|x64">\r
+-      <Configuration>Debug</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release|Win32">\r
+-      <Configuration>Release</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release|x64">\r
+-      <Configuration>Release</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-  </ItemGroup>\r
+-  <PropertyGroup Label="Globals">\r
+-    <ProjectName>xmlrpc</ProjectName>\r
+-    <ProjectGuid>{CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}</ProjectGuid>\r
+-    <RootNamespace>xmlrpc</RootNamespace>\r
+-  </PropertyGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+-  <ImportGroup Label="ExtensionSettings">\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <PropertyGroup Label="UserMacros" />\r
+-  <PropertyGroup>\r
+-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(PlatformName)\xmlrpc\$(Configuration)\</IntDir>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(PlatformName)\xmlrpc\$(Configuration)\</IntDir>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(PlatformName)\xmlrpc\$(Configuration)\</IntDir>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(PlatformName)\xmlrpc\$(Configuration)\</IntDir>\r
+-  </PropertyGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+-    <ClCompile>\r
+-      <Optimization>Disabled</Optimization>\r
+-      <AdditionalIncludeDirectories>../lib;../lib/util/include;../include;..;../lib/expat/xmlparse;../lib/abyss/src;../lib/wininet_transport;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>_DEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <MinimalRebuild>true</MinimalRebuild>\r
+-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Debug\xmlrpc/xmlrpc.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <Optimization>Disabled</Optimization>\r
+-      <AdditionalIncludeDirectories>../lib;../lib/util/include;../include;..;../lib/expat/xmlparse;../lib/abyss/src;../lib/wininet_transport;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>_DEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <MinimalRebuild>true</MinimalRebuild>\r
+-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Debug\xmlrpc/xmlrpc.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+-    <ClCompile>\r
+-      <Optimization>MaxSpeed</Optimization>\r
+-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+-      <AdditionalIncludeDirectories>../lib;../lib/util/include;../include;..;../lib/expat/xmlparse;../lib/abyss/src;../lib/wininet_transport;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>NDEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <StringPooling>true</StringPooling>\r
+-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Release\xmlrpc/xmlrpc.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <Optimization>MaxSpeed</Optimization>\r
+-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+-      <AdditionalIncludeDirectories>../lib;../lib/util/include;../include;..;../lib/expat/xmlparse;../lib/abyss/src;../lib/wininet_transport;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>NDEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <StringPooling>true</StringPooling>\r
+-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Release\xmlrpc/xmlrpc.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemGroup>\r
+-    <ClCompile Include="..\lib\libutil\asprintf.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\double.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\libutil\error.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\libutil\make_printable.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\libutil\memblock.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\method.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\parse_value.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\util\pthreadx_win32.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\registry.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\resource.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\libutil\select.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\libutil\sleep.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\system_method.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\libutil\time.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\trace.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\libutil\utf8.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\version.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_array.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_authcookie.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_base64.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_build.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_client.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_client_global.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\curl_transport\xmlrpc_curl_transport.c">\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.;..\..\curl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.;..\..\curl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.;..\..\curl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.;..\..\curl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_data.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_datetime.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_decompose.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_expat.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_libxml2.c">\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_parse.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_serialize.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_server_abyss.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_server_info.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_server_w32httpsys.c">\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_string.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_struct.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\wininet_transport\xmlrpc_wininet_transport.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <ClInclude Include="..\include\xmlrpc-c\abyss.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\abyss_info.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\abyss_winsock.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\base.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\base_int.h" />\r
+-    <ClInclude Include="..\lib\util\include\bool.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\c_util.h" />\r
+-    <ClInclude Include="..\lib\util\include\c_util.h" />\r
+-    <ClInclude Include="..\lib\util\include\casprintf.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\channel.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\chanswitch.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\client.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\client_global.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\client_int.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\config.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\conn.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\date.h" />\r
+-    <ClInclude Include="..\src\double.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\file.h" />\r
+-    <ClInclude Include="..\lib\util\include\girmath.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\handler.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\http.h" />\r
+-    <ClInclude Include="..\lib\util\include\inline.h" />\r
+-    <ClInclude Include="..\lib\util\include\linklist.h" />\r
+-    <ClInclude Include="..\lib\util\include\mallocvar.h" />\r
+-    <ClInclude Include="..\src\method.h" />\r
+-    <ClInclude Include="..\src\parse_value.h" />\r
+-    <ClInclude Include="..\lib\util\include\pthreadx.h" />\r
+-    <ClInclude Include="..\src\registry.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\server.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\server.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\server_abyss.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\server_cgi.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\server_w32httpsys.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\sleep_int.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\socket.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\socket_win.h" />\r
+-    <ClInclude Include="..\lib\util\include\stdargx.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\string_int.h" />\r
+-    <ClInclude Include="..\src\system_method.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\thread.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\time_int.h" />\r
+-    <ClInclude Include="..\lib\abyss\src\token.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\transport.h" />\r
+-    <ClInclude Include="..\transport_config.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\transport_int.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\util_int.h" />\r
+-    <ClInclude Include="..\xml_rpc_alloc.h" />\r
+-    <ClInclude Include="..\lib\expat\xmlparse\xmlparse.h" />\r
+-    <ClInclude Include="..\include\xmlrpc-c\xmlparser.h" />\r
+-    <ClInclude Include="..\xmlrpc_config.h" />\r
+-    <ClInclude Include="..\lib\curl_transport\xmlrpc_curl_transport.h" />\r
+-    <ClInclude Include="..\lib\wininet_transport\xmlrpc_wininet_transport.h" />\r
+-  </ItemGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+-  <ImportGroup Label="ExtensionTargets">\r
+-  </ImportGroup>\r
+-</Project>
+\ No newline at end of file
+diff --git a/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj.filters b/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj.filters
+deleted file mode 100644
+index 6886dfe..0000000
+--- a/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj.filters
++++ /dev/null
+@@ -1,287 +0,0 @@
+-<?xml version="1.0" encoding="utf-8"?>\r
+-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+-  <ItemGroup>\r
+-    <Filter Include="Source Files">\r
+-      <UniqueIdentifier>{7ca2b8b9-bf59-4407-aedf-588e548fe34a}</UniqueIdentifier>\r
+-      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;cc</Extensions>\r
+-    </Filter>\r
+-    <Filter Include="Header Files">\r
+-      <UniqueIdentifier>{28891c93-973b-487f-a8f9-3fae090e14e3}</UniqueIdentifier>\r
+-      <Extensions>h;hpp;hxx;hm;inl</Extensions>\r
+-    </Filter>\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <ClCompile Include="..\lib\libutil\asprintf.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\double.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\libutil\error.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\libutil\make_printable.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\libutil\memblock.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\method.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\parse_value.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\util\pthreadx_win32.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\registry.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\resource.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\libutil\select.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\libutil\sleep.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\system_method.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\libutil\time.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\trace.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\libutil\utf8.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\version.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_array.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_authcookie.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_base64.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_build.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_client.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_client_global.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\curl_transport\xmlrpc_curl_transport.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_data.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_datetime.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_decompose.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_expat.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_libxml2.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_parse.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_serialize.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_server_abyss.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_server_info.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_server_w32httpsys.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_string.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\src\xmlrpc_struct.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\wininet_transport\xmlrpc_wininet_transport.c">\r
+-      <Filter>Source Files</Filter>\r
+-    </ClCompile>\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <ClInclude Include="..\include\xmlrpc-c\abyss.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\abyss_info.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\abyss_winsock.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\base.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\base_int.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\util\include\bool.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\c_util.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\util\include\c_util.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\util\include\casprintf.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\channel.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\chanswitch.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\client.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\client_global.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\client_int.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\config.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\conn.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\date.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\src\double.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\file.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\util\include\girmath.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\handler.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\http.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\util\include\inline.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\util\include\linklist.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\util\include\mallocvar.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\src\method.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\src\parse_value.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\util\include\pthreadx.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\src\registry.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\server.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\server.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\server_abyss.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\server_cgi.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\server_w32httpsys.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\sleep_int.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\socket.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\socket_win.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\util\include\stdargx.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\string_int.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\src\system_method.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\thread.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\time_int.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\abyss\src\token.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\transport.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\transport_config.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\transport_int.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\util_int.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\xml_rpc_alloc.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\expat\xmlparse\xmlparse.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\include\xmlrpc-c\xmlparser.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\xmlrpc_config.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\curl_transport\xmlrpc_curl_transport.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-    <ClInclude Include="..\lib\wininet_transport\xmlrpc_wininet_transport.h">\r
+-      <Filter>Header Files</Filter>\r
+-    </ClInclude>\r
+-  </ItemGroup>\r
+-</Project>
+\ No newline at end of file
+diff --git a/libs/xmlrpc-c/Windows/xmlrpc.dsp b/libs/xmlrpc-c/Windows/xmlrpc.dsp
+index 15d20f0..ce96807 100644
+--- a/libs/xmlrpc-c/Windows/xmlrpc.dsp
++++ b/libs/xmlrpc-c/Windows/xmlrpc.dsp
+@@ -1,469 +1,481 @@
+-# Microsoft Developer Studio Project File - Name="xmlrpc" - Package Owner=<4>\r
+-# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
+-# ** DO NOT EDIT **\r
+-\r
+-# TARGTYPE "Win32 (x86) Static Library" 0x0104\r
+-\r
+-CFG=xmlrpc - Win32 Debug\r
+-!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
+-!MESSAGE use the Export Makefile command and run\r
+-!MESSAGE \r
+-!MESSAGE NMAKE /f "xmlrpc.mak".\r
+-!MESSAGE \r
+-!MESSAGE You can specify a configuration when running NMAKE\r
+-!MESSAGE by defining the macro CFG on the command line. For example:\r
+-!MESSAGE \r
+-!MESSAGE NMAKE /f "xmlrpc.mak" CFG="xmlrpc - Win32 Debug"\r
+-!MESSAGE \r
+-!MESSAGE Possible choices for configuration are:\r
+-!MESSAGE \r
+-!MESSAGE "xmlrpc - Win32 Release" (based on "Win32 (x86) Static Library")\r
+-!MESSAGE "xmlrpc - Win32 Debug" (based on "Win32 (x86) Static Library")\r
+-!MESSAGE \r
+-\r
+-# Begin Project\r
+-# PROP AllowPerConfigDependencies 0\r
+-CPP=cl.exe\r
+-RSC=rc.exe\r
+-\r
+-!IF  "$(CFG)" == "xmlrpc - Win32 Release"\r
+-\r
+-# PROP BASE Use_MFC 0\r
+-# PROP BASE Use_Debug_Libraries 0\r
+-# PROP BASE Output_Dir "Release"\r
+-# PROP BASE Intermediate_Dir "Release"\r
+-# PROP BASE Target_Dir ""\r
+-# PROP Use_MFC 0\r
+-# PROP Use_Debug_Libraries 0\r
+-# PROP Output_Dir "Release\xmlrpc"\r
+-# PROP Intermediate_Dir "Release\xmlrpc"\r
+-# PROP Target_Dir ""\r
+-LINK32=link.exe -lib\r
+-MTL=midl.exe\r
+-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c\r
+-# ADD CPP /nologo /MT /W3 /GX /O2 /I "../lib" /I "../lib/util/include" /I "../include" /I ".." /I "../lib/expat/xmlparse" /I "../lib/abyss/src" /I "../lib/wininet_transport" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /YX /FD /c\r
+-# ADD BASE RSC /l 0x409 /d "NDEBUG"\r
+-# ADD RSC /l 0x409 /d "NDEBUG"\r
+-BSC32=bscmake.exe\r
+-# ADD BASE BSC32 /nologo\r
+-# ADD BSC32 /nologo\r
+-LIB32=link.exe -lib\r
+-# ADD BASE LIB32 /nologo\r
+-# ADD LIB32 /nologo /out:"..\lib\xmlrpc.lib"\r
+-\r
+-!ELSEIF  "$(CFG)" == "xmlrpc - Win32 Debug"\r
+-\r
+-# PROP BASE Use_MFC 0\r
+-# PROP BASE Use_Debug_Libraries 1\r
+-# PROP BASE Output_Dir "Debug"\r
+-# PROP BASE Intermediate_Dir "Debug"\r
+-# PROP BASE Target_Dir ""\r
+-# PROP Use_MFC 0\r
+-# PROP Use_Debug_Libraries 1\r
+-# PROP Output_Dir "Debug\xmlrpc"\r
+-# PROP Intermediate_Dir "Debug\xmlrpc"\r
+-# PROP Target_Dir ""\r
+-LINK32=link.exe -lib\r
+-MTL=midl.exe\r
+-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c\r
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../lib" /I "../lib/util/include" /I "../include" /I ".." /I "../lib/expat/xmlparse" /I "../lib/abyss/src" /I "../lib/wininet_transport" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /YX /FD /GZ /c\r
+-# ADD BASE RSC /l 0x409 /d "_DEBUG"\r
+-# ADD RSC /l 0x409 /d "_DEBUG"\r
+-BSC32=bscmake.exe\r
+-# ADD BASE BSC32 /nologo\r
+-# ADD BSC32 /nologo\r
+-LIB32=link.exe -lib\r
+-# ADD BASE LIB32 /nologo\r
+-# ADD LIB32 /nologo /out:"..\lib\xmlrpcD.lib"\r
+-\r
+-!ENDIF \r
+-\r
+-# Begin Target\r
+-\r
+-# Name "xmlrpc - Win32 Release"\r
+-# Name "xmlrpc - Win32 Debug"\r
+-# Begin Group "Source Files"\r
+-\r
+-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;cc"\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\libutil\asprintf.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\libutil\error.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\libutil\make_printable.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\libutil\memblock.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\method.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\util\pthreadx_win32.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\parse_value.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\registry.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\resource.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\libutil\select.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\libutil\sleep.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\system_method.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\libutil\time.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\trace.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\version.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\libutil\utf8.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\double.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_array.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_authcookie.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_base64.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_build.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_client.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_client_global.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_server_info.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\curl_transport\xmlrpc_curl_transport.c\r
+-\r
+-!IF  "$(CFG)" == "xmlrpc - Win32 Release"\r
+-\r
+-# ADD CPP /I "." /I "..\..\curl\include"\r
+-# PROP Exclude_From_Build 1\r
+-\r
+-!ELSEIF  "$(CFG)" == "xmlrpc - Win32 Debug"\r
+-\r
+-# ADD CPP /I "." /I "..\..\curl\include"\r
+-# PROP Exclude_From_Build 1\r
+-\r
+-!ENDIF \r
+-\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_data.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_datetime.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_decompose.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_expat.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_libxml2.c\r
+-# PROP Exclude_From_Build 1\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_parse.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_serialize.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_server_abyss.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_server_w32httpsys.c\r
+-# PROP Exclude_From_Build 1\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_string.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\xmlrpc_struct.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\wininet_transport\xmlrpc_wininet_transport.c\r
+-# End Source File\r
+-# End Group\r
+-# Begin Group "Header Files"\r
+-\r
+-# PROP Default_Filter "h;hpp;hxx;hm;inl"\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\abyss\src\http.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\abyss.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\abyss\src\abyss_info.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\abyss_winsock.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\base.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\base_int.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\util\include\bool.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\c_util.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\util\include\c_util.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\util\include\casprintf.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\abyss\src\channel.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\abyss\src\chanswitch.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\client.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\client_global.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\client_int.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\config.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\abyss\src\conn.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\abyss\src\date.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\abyss\src\file.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\util\include\girmath.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\abyss\src\handler.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\util\include\inline.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\util\include\linklist.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\util\include\mallocvar.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\double.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\method.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\util\include\pthreadx.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\parse_value.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\registry.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\server.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\abyss\src\server.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\server_abyss.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\server_cgi.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\server_w32httpsys.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\sleep_int.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\abyss\src\socket.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\abyss\src\socket_win.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\util\include\stdargx.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\string_int.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\system_method.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\abyss\src\thread.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\time_int.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\abyss\src\token.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\transport.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\transport_config.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\transport_int.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\util_int.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\xml_rpc_alloc.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\expat\xmlparse\xmlparse.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE="..\include\xmlrpc-c\xmlparser.h"\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\xmlrpc_config.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\curl_transport\xmlrpc_curl_transport.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\wininet_transport\xmlrpc_wininet_transport.h\r
+-# End Source File\r
+-# End Group\r
+-# End Target\r
+-# End Project\r
++# Microsoft Developer Studio Project File - Name="xmlrpc" - Package Owner=<4>
++# Microsoft Developer Studio Generated Build File, Format Version 6.00
++# ** DO NOT EDIT **
++
++# TARGTYPE "Win32 (x86) Static Library" 0x0104
++
++CFG=xmlrpc - Win32 Debug
++!MESSAGE This is not a valid makefile. To build this project using NMAKE,
++!MESSAGE use the Export Makefile command and run
++!MESSAGE 
++!MESSAGE NMAKE /f "xmlrpc.mak".
++!MESSAGE 
++!MESSAGE You can specify a configuration when running NMAKE
++!MESSAGE by defining the macro CFG on the command line. For example:
++!MESSAGE 
++!MESSAGE NMAKE /f "xmlrpc.mak" CFG="xmlrpc - Win32 Debug"
++!MESSAGE 
++!MESSAGE Possible choices for configuration are:
++!MESSAGE 
++!MESSAGE "xmlrpc - Win32 Release" (based on "Win32 (x86) Static Library")
++!MESSAGE "xmlrpc - Win32 Debug" (based on "Win32 (x86) Static Library")
++!MESSAGE 
++
++# Begin Project
++# PROP AllowPerConfigDependencies 0
++CPP=cl.exe
++RSC=rc.exe
++
++!IF  "$(CFG)" == "xmlrpc - Win32 Release"
++
++# PROP BASE Use_MFC 0
++# PROP BASE Use_Debug_Libraries 0
++# PROP BASE Output_Dir "Release"
++# PROP BASE Intermediate_Dir "Release"
++# PROP BASE Target_Dir ""
++# PROP Use_MFC 0
++# PROP Use_Debug_Libraries 0
++# PROP Output_Dir "Release\xmlrpc"
++# PROP Intermediate_Dir "Release\xmlrpc"
++# PROP Target_Dir ""
++LINK32=link.exe -lib
++MTL=midl.exe
++# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
++# ADD CPP /nologo /MT /W3 /GX /O2 /I "../lib" /I "../lib/util/include" /I "../include" /I ".." /I "../lib/expat/xmlparse" /I "../lib/abyss/src" /I "../lib/wininet_transport" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /YX /FD /c
++# ADD BASE RSC /l 0x409 /d "NDEBUG"
++# ADD RSC /l 0x409 /d "NDEBUG"
++BSC32=bscmake.exe
++# ADD BASE BSC32 /nologo
++# ADD BSC32 /nologo
++LIB32=link.exe -lib
++# ADD BASE LIB32 /nologo
++# ADD LIB32 /nologo /out:"..\lib\xmlrpc.lib"
++
++!ELSEIF  "$(CFG)" == "xmlrpc - Win32 Debug"
++
++# PROP BASE Use_MFC 0
++# PROP BASE Use_Debug_Libraries 1
++# PROP BASE Output_Dir "Debug"
++# PROP BASE Intermediate_Dir "Debug"
++# PROP BASE Target_Dir ""
++# PROP Use_MFC 0
++# PROP Use_Debug_Libraries 1
++# PROP Output_Dir "Debug\xmlrpc"
++# PROP Intermediate_Dir "Debug\xmlrpc"
++# PROP Target_Dir ""
++LINK32=link.exe -lib
++MTL=midl.exe
++# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
++# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../lib" /I "../lib/util/include" /I "../include" /I ".." /I "../lib/expat/xmlparse" /I "../lib/abyss/src" /I "../lib/wininet_transport" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /YX /FD /GZ /c
++# ADD BASE RSC /l 0x409 /d "_DEBUG"
++# ADD RSC /l 0x409 /d "_DEBUG"
++BSC32=bscmake.exe
++# ADD BASE BSC32 /nologo
++# ADD BSC32 /nologo
++LIB32=link.exe -lib
++# ADD BASE LIB32 /nologo
++# ADD LIB32 /nologo /out:"..\lib\xmlrpcD.lib"
++
++!ENDIF 
++
++# Begin Target
++
++# Name "xmlrpc - Win32 Release"
++# Name "xmlrpc - Win32 Debug"
++# Begin Group "Source Files"
++
++# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;cc"
++# Begin Source File
++
++SOURCE=..\lib\libutil\asprintf.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\libutil\base64.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\libutil\error.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\libutil\make_printable.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\libutil\memblock.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\method.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\util\pthreadx_win32.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\parse_datetime.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\parse_value.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\registry.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\resource.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\libutil\select.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\libutil\sleep.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\system_method.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\libutil\time.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\trace.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\version.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\libutil\utf8.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\double.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_array.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_authcookie.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_base64.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_build.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_client.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_client_global.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_server_info.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\curl_transport\xmlrpc_curl_transport.c
++
++!IF  "$(CFG)" == "xmlrpc - Win32 Release"
++
++# ADD CPP /I "." /I "..\..\curl\include"
++# PROP Exclude_From_Build 1
++
++!ELSEIF  "$(CFG)" == "xmlrpc - Win32 Debug"
++
++# ADD CPP /I "." /I "..\..\curl\include"
++# PROP Exclude_From_Build 1
++
++!ENDIF 
++
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_data.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_datetime.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_decompose.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_expat.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_libxml2.c
++# PROP Exclude_From_Build 1
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_parse.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_serialize.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_server_abyss.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_server_w32httpsys.c
++# PROP Exclude_From_Build 1
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_string.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\xmlrpc_struct.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\wininet_transport\xmlrpc_wininet_transport.c
++# End Source File
++# End Group
++# Begin Group "Header Files"
++
++# PROP Default_Filter "h;hpp;hxx;hm;inl"
++# Begin Source File
++
++SOURCE=..\lib\abyss\src\http.h
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\abyss.h"
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\abyss\src\abyss_info.h
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\abyss_winsock.h"
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\base.h"
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\base_int.h"
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\util\include\bool.h
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\c_util.h"
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\util\include\c_util.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\util\include\casprintf.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\abyss\src\channel.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\abyss\src\chanswitch.h
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\client.h"
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\client_global.h"
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\client_int.h"
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\config.h"
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\abyss\src\conn.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\abyss\src\date.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\abyss\src\file.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\util\include\girmath.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\abyss\src\handler.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\util\include\inline.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\util\include\linklist.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\util\include\mallocvar.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\double.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\method.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\util\include\pthreadx.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\parse_datetime.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\parse_value.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\registry.h
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\server.h"
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\abyss\src\server.h
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\server_abyss.h"
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\server_cgi.h"
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\server_w32httpsys.h"
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\sleep_int.h"
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\abyss\src\socket.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\abyss\src\socket_win.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\util\include\stdargx.h
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\string_int.h"
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\system_method.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\abyss\src\thread.h
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\time_int.h"
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\abyss\src\token.h
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\transport.h"
++# End Source File
++# Begin Source File
++
++SOURCE=..\transport_config.h
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\transport_int.h"
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\util_int.h"
++# End Source File
++# Begin Source File
++
++SOURCE=..\xml_rpc_alloc.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\expat\xmlparse\xmlparse.h
++# End Source File
++# Begin Source File
++
++SOURCE="..\include\xmlrpc-c\xmlparser.h"
++# End Source File
++# Begin Source File
++
++SOURCE=..\xmlrpc_config.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\curl_transport\xmlrpc_curl_transport.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\wininet_transport\xmlrpc_wininet_transport.h
++# End Source File
++# End Group
++# End Target
++# End Project
+diff --git a/libs/xmlrpc-c/Windows/xmlrpc.dsw b/libs/xmlrpc-c/Windows/xmlrpc.dsw
+index f7b676e..db3cb5a 100644
+--- a/libs/xmlrpc-c/Windows/xmlrpc.dsw
++++ b/libs/xmlrpc-c/Windows/xmlrpc.dsw
+@@ -1,242 +1,272 @@
+-Microsoft Developer Studio Workspace File, Format Version 6.00\r
+-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "abyss"=".\abyss.dsp" - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "cpptest"=".\cpptest.dsp" - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name xmlrpc\r
+-    End Project Dependency\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name xmlrpccpp\r
+-    End Project Dependency\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name abyss\r
+-    End Project Dependency\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "gennmtab"=".\gennmtab.dsp" - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "rpctest"=".\rpctest.dsp" - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name xmlrpc\r
+-    End Project Dependency\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name abyss\r
+-    End Project Dependency\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "xmlhttpsys"=".\xmlhttpsys.dsp" - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "xmlparse"=".\xmlparse.dsp" - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name xmltok\r
+-    End Project Dependency\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "xmlrpc"=".\xmlrpc.dsp" - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name xmlparse\r
+-    End Project Dependency\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name abyss\r
+-    End Project Dependency\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "xmlrpccpp"=".\xmlrpccpp.dsp" - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name xmlparse\r
+-    End Project Dependency\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name abyss\r
+-    End Project Dependency\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name xmlrpc\r
+-    End Project Dependency\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "xmlrpc_sample_add_asynch_client"=".\xmlrpc_sample_add_asynch_client.dsp" - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name xmlrpc\r
+-    End Project Dependency\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "xmlrpc_sample_add_server"=".\xmlrpc_sample_add_server.dsp" - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name xmlrpc\r
+-    End Project Dependency\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name abyss\r
+-    End Project Dependency\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "xmlrpc_sample_add_server_w32httpsys"=".\xmlrpc_sample_add_server_w32httpsys.dsp" - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name xmlhttpsys\r
+-    End Project Dependency\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name xmlrpc\r
+-    End Project Dependency\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "xmlrpc_sample_add_sync_client"=".\xmlrpc_sample_add_sync_client.dsp" - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name xmlrpc\r
+-    End Project Dependency\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "xmlrpc_sample_auth_client"=".\xmlrpc_sample_auth_client.dsp" - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name xmlrpc\r
+-    End Project Dependency\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "xmltok"=".\xmltok.dsp" - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name gennmtab\r
+-    End Project Dependency\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Global:\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<3>\r
+-{{{\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
++Microsoft Developer Studio Workspace File, Format Version 6.00
++# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
++
++###############################################################################
++
++Project: "abyss"=".\abyss.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++}}}
++
++###############################################################################
++
++Project: "cpptest"=".\cpptest.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++    Begin Project Dependency
++    Project_Dep_Name xmlrpc
++    End Project Dependency
++    Begin Project Dependency
++    Project_Dep_Name xmlrpccpp
++    End Project Dependency
++    Begin Project Dependency
++    Project_Dep_Name abyss
++    End Project Dependency
++}}}
++
++###############################################################################
++
++Project: "gennmtab"=".\gennmtab.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++}}}
++
++###############################################################################
++
++Project: "rpctest"=".\rpctest.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++    Begin Project Dependency
++    Project_Dep_Name xmlrpc
++    End Project Dependency
++    Begin Project Dependency
++    Project_Dep_Name abyss
++    End Project Dependency
++}}}
++
++###############################################################################
++
++Project: "xmlhttpsys"=".\xmlhttpsys.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++}}}
++
++###############################################################################
++
++Project: "xmlparse"=".\xmlparse.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++    Begin Project Dependency
++    Project_Dep_Name xmltok
++    End Project Dependency
++}}}
++
++###############################################################################
++
++Project: "xmlrpc"=".\xmlrpc.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++    Begin Project Dependency
++    Project_Dep_Name xmlparse
++    End Project Dependency
++    Begin Project Dependency
++    Project_Dep_Name abyss
++    End Project Dependency
++}}}
++
++###############################################################################
++
++Project: "xmlrpc_misc"=".\xmlrpc_misc.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++}}}
++
++###############################################################################
++
++Project: "xmlrpcclient"=".\xmlrpcclient.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++    Begin Project Dependency
++    Project_Dep_Name xmlrpc
++    End Project Dependency
++    Begin Project Dependency
++    Project_Dep_Name xmlrpc_misc
++    End Project Dependency
++}}}
++
++###############################################################################
++
++Project: "xmlrpccpp"=".\xmlrpccpp.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++    Begin Project Dependency
++    Project_Dep_Name xmlparse
++    End Project Dependency
++    Begin Project Dependency
++    Project_Dep_Name abyss
++    End Project Dependency
++    Begin Project Dependency
++    Project_Dep_Name xmlrpc
++    End Project Dependency
++}}}
++
++###############################################################################
++
++Project: "xmlrpc_sample_add_asynch_client"=".\xmlrpc_sample_add_asynch_client.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++    Begin Project Dependency
++    Project_Dep_Name xmlrpc
++    End Project Dependency
++}}}
++
++###############################################################################
++
++Project: "xmlrpc_sample_add_server"=".\xmlrpc_sample_add_server.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++    Begin Project Dependency
++    Project_Dep_Name xmlrpc
++    End Project Dependency
++    Begin Project Dependency
++    Project_Dep_Name abyss
++    End Project Dependency
++}}}
++
++###############################################################################
++
++Project: "xmlrpc_sample_add_server_w32httpsys"=".\xmlrpc_sample_add_server_w32httpsys.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++    Begin Project Dependency
++    Project_Dep_Name xmlhttpsys
++    End Project Dependency
++    Begin Project Dependency
++    Project_Dep_Name xmlrpc
++    End Project Dependency
++}}}
++
++###############################################################################
++
++Project: "xmlrpc_sample_add_sync_client"=".\xmlrpc_sample_add_sync_client.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++    Begin Project Dependency
++    Project_Dep_Name xmlrpc
++    End Project Dependency
++}}}
++
++###############################################################################
++
++Project: "xmlrpc_sample_auth_client"=".\xmlrpc_sample_auth_client.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++    Begin Project Dependency
++    Project_Dep_Name xmlrpc
++    End Project Dependency
++}}}
++
++###############################################################################
++
++Project: "xmltok"=".\xmltok.dsp" - Package Owner=<4>
++
++Package=<5>
++{{{
++}}}
++
++Package=<4>
++{{{
++    Begin Project Dependency
++    Project_Dep_Name gennmtab
++    End Project Dependency
++}}}
++
++###############################################################################
++
++Global:
++
++Package=<5>
++{{{
++}}}
++
++Package=<3>
++{{{
++}}}
++
++###############################################################################
++
+diff --git a/libs/xmlrpc-c/Windows/xmlrpc_config.h b/libs/xmlrpc-c/Windows/xmlrpc_config.h
+deleted file mode 100644
+index 319dc2a..0000000
+--- a/libs/xmlrpc-c/Windows/xmlrpc_config.h
++++ /dev/null
+@@ -1,158 +0,0 @@
+-/* Win32 version of xmlrpc_config.h.\r
+-\r
+-   For other platforms, this is generated automatically, but for Windows,\r
+-   someone generates it manually.  Nonetheless, we keep it looking as much\r
+-   as possible like the automatically generated one to make it easier to\r
+-   maintain (e.g. you can compare the two and see why something builds\r
+-   differently for Windows than for some other platform).\r
+-\r
+-   The purpose of this file is to define stuff particular to the build\r
+-   environment being used to build Xmlrpc-c.  Xmlrpc-c source files can\r
+-   #include this file and have build-environment-independent source code.\r
+-\r
+-   A major goal of this file is to reduce conditional compilation in\r
+-   the other source files as much as possible.  Even more, we want to avoid\r
+-   having to generate source code particular to a build environment\r
+-   except in this file.   \r
+-\r
+-   This file is NOT meant to be used by any code outside of the\r
+-   Xmlrpc-c source tree.  There is a similar file that gets installed\r
+-   as <xmlrpc-c/config.h> that performs the same function for Xmlrpc-c\r
+-   interface header files that get compiled as part of a user's program.\r
+-\r
+-   Logical macros are 0 or 1 instead of the more traditional defined and\r
+-   undefined.  That's so we can distinguish when compiling code between\r
+-   "false" and some problem with the code.\r
+-*/\r
+-\r
+-#ifndef XMLRPC_CONFIG_H_INCLUDED\r
+-#define XMLRPC_CONFIG_H_INCLUDED\r
+-\r
+-/* From xmlrpc_amconfig.h */\r
+-\r
+-#define HAVE__STRICMP 1\r
+-/* Name of package */\r
+-#define PACKAGE "xmlrpc-c"\r
+-/*----------------------------------*/\r
+-\r
+-#ifndef HAVE_SETGROUPS\r
+-#define HAVE_SETGROUPS 0\r
+-#endif\r
+-#ifndef HAVE_ASPRINTF\r
+-#define HAVE_ASPRINTF 0\r
+-#endif\r
+-#ifndef HAVE_SETENV\r
+-#define HAVE_SETENV 0\r
+-#endif\r
+-#ifndef HAVE_PSELECT\r
+-#define HAVE_PSELECT 0\r
+-#endif\r
+-#ifndef HAVE_WCSNCMP\r
+-#define HAVE_WCSNCMP 1\r
+-#endif\r
+-#ifndef HAVE_GETTIMEOFDAY\r
+-#define HAVE_GETTIMEOFDAY 0\r
+-#endif\r
+-#ifndef HAVE_LOCALTIME_R\r
+-#define HAVE_LOCALTIME_R 0\r
+-#endif\r
+-#ifndef HAVE_GMTIME_R\r
+-#define HAVE_GMTIME_R 0\r
+-#endif\r
+-#ifndef HAVE_STRCASECMP\r
+-#define HAVE_STRCASECMP 0\r
+-#endif\r
+-#ifndef HAVE_STRICMP\r
+-#define HAVE_STRICMP 0\r
+-#endif\r
+-#ifndef HAVE__STRICMP\r
+-#define HAVE__STRICMP 0\r
+-#endif\r
+-\r
+-#define HAVE_WCHAR_H 1\r
+-#define HAVE_SYS_FILIO_H 0\r
+-#define HAVE_SYS_IOCTL_H 0\r
+-\r
+-#define VA_LIST_IS_ARRAY 0\r
+-\r
+-#define HAVE_LIBWWW_SSL 0\r
+-\r
+-/* Used to mark an unused function parameter */\r
+-#define ATTR_UNUSED\r
+-\r
+-#define DIRECTORY_SEPARATOR "\\"\r
+-\r
+-#define HAVE_UNICODE_WCHAR 1\r
+-\r
+-/*  Xmlrpc-c code uses __inline__ to declare functions that should\r
+-    be compiled as inline code.  GNU C recognizes the __inline__ keyword.\r
+-    Others recognize 'inline' or '__inline' or nothing at all to say\r
+-    a function should be inlined.\r
+-\r
+-    We could make 'configure' simply do a trial compile to figure out\r
+-    which one, but for now, this approximation is easier:\r
+-*/\r
+-#if (!defined(__GNUC__))\r
+-  #if (!defined(__inline__))\r
+-    #if (defined(__sgi) || defined(_AIX) || defined(_MSC_VER))\r
+-      #define __inline__ __inline\r
+-    #else   \r
+-      #define __inline__\r
+-    #endif\r
+-  #endif\r
+-#endif\r
+-\r
+-/* MSVCRT means we're using the Microsoft Visual C++ runtime library */\r
+-\r
+-#ifdef _MSC_VER\r
+-/* The compiler is Microsoft Visual C++. */\r
+-  #define MSVCRT _MSC_VER\r
+-#else\r
+-  #define MSVCRT 0\r
+-#endif\r
+-\r
+-#if MSVCRT\r
+-  /* The MSVC runtime library _does_ have a 'struct timeval', but it is\r
+-     part of the Winsock interface (along with select(), which is probably\r
+-     its intended use), so isn't intended for use for general timekeeping.\r
+-  */\r
+-  #define HAVE_TIMEVAL 0\r
+-  #define HAVE_TIMESPEC 0\r
+-#else\r
+-  #define HAVE_TIMEVAL 1\r
+-  /* timespec is Posix.1b.  If we need to work on a non-Posix.1b non-Windows\r
+-     system, we'll have to figure out how to make Configure determine this.\r
+-  */\r
+-  #define HAVE_TIMESPEC 1\r
+-#endif\r
+-\r
+-#if MSVCRT\r
+-  #define XMLRPC_VSNPRINTF _vsnprintf\r
+-#else\r
+-  #define XMLRPC_VSNPRINTF vsnprintf\r
+-#endif\r
+-\r
+-#if defined(_MSC_VER) && (_MSC_VER >= 1400)\r
+-/* Starting with MSVC 8, the runtime library defines various POSIX functions\r
+-   such as strdup() whose names violate the ISO C standard (the standard\r
+-   says the strXXX names are reserved for the standard), but warns you of\r
+-   the standards violation.  That warning is 4996, along with other warnings\r
+-   that tell you you're using a function that Microsoft thinks you\r
+-   shouldn't.\r
+-\r
+-   Well, POSIX is more important than that element of ISO C, so we disable\r
+-   that warning.\r
+-\r
+-   FYI, msvcrt also defines _strdup(), etc, which doesn't violate the\r
+-   naming standard.  But since other environments don't define _strdup(),\r
+-   we can't use it in portable code.\r
+-*/\r
+-#pragma warning(disable:4996)\r
+-#endif\r
+-\r
+-#define snprintf _snprintf\r
+-#define popen _popen\r
+-#define strtoll _strtoui64\r
+-#define strtoull _strtoui64\r
+-\r
+-#endif\r
+diff --git a/libs/xmlrpc-c/Windows/xmlrpc_win32_config.h b/libs/xmlrpc-c/Windows/xmlrpc_win32_config.h
+index e4e34fd..798b5b2 100644
+--- a/libs/xmlrpc-c/Windows/xmlrpc_win32_config.h
++++ b/libs/xmlrpc-c/Windows/xmlrpc_win32_config.h
+@@ -31,6 +31,8 @@
+ /* From xmlrpc_amconfig.h */
+ #define HAVE__STRICMP 1
++#define HAVE__STRTOUI64 1
++
+ /* Name of package */
+ #define PACKAGE "xmlrpc-c"
+ /*----------------------------------*/
+@@ -72,6 +74,7 @@
+ #define HAVE_WCHAR_H 1
+ #define HAVE_SYS_FILIO_H 0
+ #define HAVE_SYS_IOCTL_H 0
++#define HAVE_SYS_SELECT_H 0
+ #define VA_LIST_IS_ARRAY 0
+@@ -127,11 +130,41 @@
+ #endif
+ #if MSVCRT
++  #define HAVE_WINDOWS_THREAD 1
++#else
++  #define HAVE_WINDOWS_THREAD 0
++#endif
++
++/* Some people have and use pthreads on Windows.  See
++   http://sourceware.org/pthreads-win32 .  For that case, we can set
++   HAVE_PTHREAD to 1.  The builder prefers to use pthreads if it has
++   a choice.
++*/
++#define HAVE_PTHREAD 0
++
++/* Note that the return value of XMLRPC_VSNPRINTF is int on Windows,
++   ssize_t on POSIX.
++*/
++#if MSVCRT
+   #define XMLRPC_VSNPRINTF _vsnprintf
+ #else
+   #define XMLRPC_VSNPRINTF vsnprintf
+ #endif
++#if MSVCRT
++  #define HAVE_REGEX 0
++#else
++  #define HAVE_REGEX 1
++#endif
++
++#if MSVCRT
++  #define XMLRPC_SOCKETPAIR xmlrpc_win32_socketpair
++  #define XMLRPC_CLOSESOCKET closesocket
++#else
++  #define XMLRPC_SOCKETPAIR socketpair
++  #define XMLRPC_CLOSESOCKET close
++#endif
++
+ #if defined(_MSC_VER) && (_MSC_VER >= 1400)
+ /* Starting with MSVC 8, the runtime library defines various POSIX functions
+    such as strdup() whose names violate the ISO C standard (the standard
+@@ -149,10 +182,42 @@
+ */
+ #pragma warning(disable:4996)
+ #endif
++/* Warning C4090 is "different 'const' qualifiers".
++
++   We disable this warning because MSVC erroneously issues it when there is
++   in fact no difference in const qualifiers:
++
++     const char ** p;
++     void * q;
++     q = p;
++
++   Note that both p and q are pointers to non-const.
++
++   We have seen this in MSVC 7.1, 8, and 9 (but not 6).
++*/
++#pragma warning(disable:4090)
++
++#if HAVE_STRTOLL
++  # define XMLRPC_STRTOLL strtoll
++#elif HAVE_STRTOQ
++  # define XMLRPC_STRTOLL strtoq /* Interix */
++#elif HAVE___STRTOLL
++  # define XMLRPC_STRTOLL __strtoll /* HP-UX <= 11.11 */
++#elif HAVE__STRTOUI64
++  #define XMLRPC_STRTOLL _strtoui64  /* Windows MSVC */
++#endif
++
++#if HAVE_STRTOULL
++  # define XMLRPC_STRTOULL strtoull
++#elif HAVE_STRTOUQ
++  # define XMLRPC_STRTOULL strtouq /* Interix */
++#elif HAVE___STRTOULL
++  # define XMLRPC_STRTOULL __strtoull /* HP-UX <= 11.11 */
++#elif HAVE__STRTOUI64
++  #define XMLRPC_STRTOULL _strtoui64  /* Windows MSVC */
++#endif
+ #define snprintf _snprintf
+ #define popen _popen
+-#define strtoll _strtoui64
+-#define strtoull _strtoui64
+ #endif
+diff --git a/libs/xmlrpc-c/Windows/xmlrpccpp.dsp b/libs/xmlrpc-c/Windows/xmlrpccpp.dsp
+index fedf4e2..0ee50de 100644
+--- a/libs/xmlrpc-c/Windows/xmlrpccpp.dsp
++++ b/libs/xmlrpc-c/Windows/xmlrpccpp.dsp
+@@ -1,179 +1,182 @@
+-# Microsoft Developer Studio Project File - Name="xmlrpccpp" - Package Owner=<4>\r
+-# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
+-# ** DO NOT EDIT **\r
+-\r
+-# TARGTYPE "Win32 (x86) Static Library" 0x0104\r
+-\r
+-CFG=xmlrpccpp - Win32 Debug\r
+-!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
+-!MESSAGE use the Export Makefile command and run\r
+-!MESSAGE \r
+-!MESSAGE NMAKE /f "xmlrpccpp.mak".\r
+-!MESSAGE \r
+-!MESSAGE You can specify a configuration when running NMAKE\r
+-!MESSAGE by defining the macro CFG on the command line. For example:\r
+-!MESSAGE \r
+-!MESSAGE NMAKE /f "xmlrpccpp.mak" CFG="xmlrpccpp - Win32 Debug"\r
+-!MESSAGE \r
+-!MESSAGE Possible choices for configuration are:\r
+-!MESSAGE \r
+-!MESSAGE "xmlrpccpp - Win32 Release" (based on "Win32 (x86) Static Library")\r
+-!MESSAGE "xmlrpccpp - Win32 Debug" (based on "Win32 (x86) Static Library")\r
+-!MESSAGE \r
+-\r
+-# Begin Project\r
+-# PROP AllowPerConfigDependencies 0\r
+-CPP=cl.exe\r
+-RSC=rc.exe\r
+-\r
+-!IF  "$(CFG)" == "xmlrpccpp - Win32 Release"\r
+-\r
+-# PROP BASE Use_MFC 0\r
+-# PROP BASE Use_Debug_Libraries 0\r
+-# PROP BASE Output_Dir "Release"\r
+-# PROP BASE Intermediate_Dir "Release"\r
+-# PROP BASE Target_Dir ""\r
+-# PROP Use_MFC 0\r
+-# PROP Use_Debug_Libraries 0\r
+-# PROP Output_Dir "Release\xmlrpccpp"\r
+-# PROP Intermediate_Dir "Release\xmlrpccpp"\r
+-# PROP Target_Dir ""\r
+-LINK32=link.exe -lib\r
+-MTL=midl.exe\r
+-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c\r
+-# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "../lib" /I "../lib/curl_transport" /I "../lib/util/include" /I "../include" /I ".." /I "../lib/expat/xmlparse" /I "../lib/abyss/src" /I "../lib/wininet_transport" /I "../.." /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /YX /FD /c\r
+-# ADD BASE RSC /l 0x409 /d "NDEBUG"\r
+-# ADD RSC /l 0x409 /d "NDEBUG"\r
+-BSC32=bscmake.exe\r
+-# ADD BASE BSC32 /nologo\r
+-# ADD BSC32 /nologo\r
+-LIB32=link.exe -lib\r
+-# ADD BASE LIB32 /nologo\r
+-# ADD LIB32 /nologo /out:"..\lib\xmlrpccpp.lib"\r
+-\r
+-!ELSEIF  "$(CFG)" == "xmlrpccpp - Win32 Debug"\r
+-\r
+-# PROP BASE Use_MFC 0\r
+-# PROP BASE Use_Debug_Libraries 1\r
+-# PROP BASE Output_Dir "Debug"\r
+-# PROP BASE Intermediate_Dir "Debug"\r
+-# PROP BASE Target_Dir ""\r
+-# PROP Use_MFC 0\r
+-# PROP Use_Debug_Libraries 1\r
+-# PROP Output_Dir "Debug\xmlrpccpp"\r
+-# PROP Intermediate_Dir "Debug\xmlrpccpp"\r
+-# PROP Target_Dir ""\r
+-LINK32=link.exe -lib\r
+-MTL=midl.exe\r
+-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c\r
+-# ADD CPP /nologo /MTd /W3 /GR /Gm /GX /ZI /Od /I "../lib" /I "../lib/curl_transport" /I "../lib/util/include" /I "../include" /I ".." /I "../lib/expat/xmlparse" /I "../lib/abyss/src" /I "../lib/wininet_transport" /I "../.." /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /YX /FD /GZ /c\r
+-# ADD BASE RSC /l 0x409 /d "_DEBUG"\r
+-# ADD RSC /l 0x409 /d "_DEBUG"\r
+-BSC32=bscmake.exe\r
+-# ADD BASE BSC32 /nologo\r
+-# ADD BSC32 /nologo\r
+-LIB32=link.exe -lib\r
+-# ADD BASE LIB32 /nologo\r
+-# ADD LIB32 /nologo /out:"..\lib\xmlrpccppD.lib"\r
+-\r
+-!ENDIF \r
+-\r
+-# Begin Target\r
+-\r
+-# Name "xmlrpccpp - Win32 Release"\r
+-# Name "xmlrpccpp - Win32 Debug"\r
+-# Begin Group "Source Files"\r
+-\r
+-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;cc"\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\base64.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\client.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\client_simple.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\curl.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\env_wrap.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\fault.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\girerr.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\girmem.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\libwww.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\outcome.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\packetsocket.cpp\r
+-# PROP Exclude_From_Build 1\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\param_list.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\pstream.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\registry.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\server_abyss.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\server_pstream.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\value.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\wininet.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\xml.cpp\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\XmlRpcCpp.cpp\r
+-# End Source File\r
+-# End Group\r
+-# Begin Group "Header Files"\r
+-\r
+-# PROP Default_Filter "h;hpp;hxx;hm;inl"\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\src\cpp\env_wrap.hpp\r
+-# End Source File\r
+-# End Group\r
+-# End Target\r
+-# End Project\r
++# Microsoft Developer Studio Project File - Name="xmlrpccpp" - Package Owner=<4>
++# Microsoft Developer Studio Generated Build File, Format Version 6.00
++# ** DO NOT EDIT **
++
++# TARGTYPE "Win32 (x86) Static Library" 0x0104
++
++CFG=xmlrpccpp - Win32 Debug
++!MESSAGE This is not a valid makefile. To build this project using NMAKE,
++!MESSAGE use the Export Makefile command and run
++!MESSAGE 
++!MESSAGE NMAKE /f "xmlrpccpp.mak".
++!MESSAGE 
++!MESSAGE You can specify a configuration when running NMAKE
++!MESSAGE by defining the macro CFG on the command line. For example:
++!MESSAGE 
++!MESSAGE NMAKE /f "xmlrpccpp.mak" CFG="xmlrpccpp - Win32 Debug"
++!MESSAGE 
++!MESSAGE Possible choices for configuration are:
++!MESSAGE 
++!MESSAGE "xmlrpccpp - Win32 Release" (based on "Win32 (x86) Static Library")
++!MESSAGE "xmlrpccpp - Win32 Debug" (based on "Win32 (x86) Static Library")
++!MESSAGE 
++
++# Begin Project
++# PROP AllowPerConfigDependencies 0
++CPP=cl.exe
++RSC=rc.exe
++
++!IF  "$(CFG)" == "xmlrpccpp - Win32 Release"
++
++# PROP BASE Use_MFC 0
++# PROP BASE Use_Debug_Libraries 0
++# PROP BASE Output_Dir "Release"
++# PROP BASE Intermediate_Dir "Release"
++# PROP BASE Target_Dir ""
++# PROP Use_MFC 0
++# PROP Use_Debug_Libraries 0
++# PROP Output_Dir "Release\xmlrpccpp"
++# PROP Intermediate_Dir "Release\xmlrpccpp"
++# PROP Target_Dir ""
++LINK32=link.exe -lib
++MTL=midl.exe
++# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
++# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "../lib" /I "../lib/curl_transport" /I "../lib/util/include" /I "../include" /I ".." /I "../lib/expat/xmlparse" /I "../lib/abyss/src" /I "../lib/wininet_transport" /I "../.." /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /YX /FD /c
++# ADD BASE RSC /l 0x409 /d "NDEBUG"
++# ADD RSC /l 0x409 /d "NDEBUG"
++BSC32=bscmake.exe
++# ADD BASE BSC32 /nologo
++# ADD BSC32 /nologo
++LIB32=link.exe -lib
++# ADD BASE LIB32 /nologo
++# ADD LIB32 /nologo /out:"..\lib\xmlrpccpp.lib"
++
++!ELSEIF  "$(CFG)" == "xmlrpccpp - Win32 Debug"
++
++# PROP BASE Use_MFC 0
++# PROP BASE Use_Debug_Libraries 1
++# PROP BASE Output_Dir "Debug"
++# PROP BASE Intermediate_Dir "Debug"
++# PROP BASE Target_Dir ""
++# PROP Use_MFC 0
++# PROP Use_Debug_Libraries 1
++# PROP Output_Dir "Debug\xmlrpccpp"
++# PROP Intermediate_Dir "Debug\xmlrpccpp"
++# PROP Target_Dir ""
++LINK32=link.exe -lib
++MTL=midl.exe
++# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
++# ADD CPP /nologo /MTd /W3 /GR /Gm /GX /ZI /Od /I "../lib" /I "../lib/curl_transport" /I "../lib/util/include" /I "../include" /I ".." /I "../lib/expat/xmlparse" /I "../lib/abyss/src" /I "../lib/wininet_transport" /I "../.." /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "ABYSS_WIN32" /D "CURL_STATICLIB" /YX /FD /GZ /c
++# ADD BASE RSC /l 0x409 /d "_DEBUG"
++# ADD RSC /l 0x409 /d "_DEBUG"
++BSC32=bscmake.exe
++# ADD BASE BSC32 /nologo
++# ADD BSC32 /nologo
++LIB32=link.exe -lib
++# ADD BASE LIB32 /nologo
++# ADD LIB32 /nologo /out:"..\lib\xmlrpccppD.lib"
++
++!ENDIF 
++
++# Begin Target
++
++# Name "xmlrpccpp - Win32 Release"
++# Name "xmlrpccpp - Win32 Debug"
++# Begin Group "Source Files"
++
++# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;cc"
++# Begin Source File
++
++SOURCE=..\src\cpp\base64.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\client.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\client_simple.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\curl.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\env_wrap.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\fault.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\girerr.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\girmem.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\libwww.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\outcome.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\packetsocket.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\param_list.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\pstream.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\registry.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\server_abyss.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\server_pstream.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\server_pstream_conn.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\value.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\wininet.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\xml.cpp
++# End Source File
++# Begin Source File
++
++SOURCE=..\src\cpp\XmlRpcCpp.cpp
++# End Source File
++# End Group
++# Begin Group "Header Files"
++
++# PROP Default_Filter "h;hpp;hxx;hm;inl"
++# Begin Source File
++
++SOURCE=..\src\cpp\env_wrap.hpp
++# End Source File
++# End Group
++# End Target
++# End Project
+diff --git a/libs/xmlrpc-c/Windows/xmltok.2008.vcproj b/libs/xmlrpc-c/Windows/xmltok.2008.vcproj
+deleted file mode 100644
+index 0935ede..0000000
+--- a/libs/xmlrpc-c/Windows/xmltok.2008.vcproj
++++ /dev/null
+@@ -1,455 +0,0 @@
+-<?xml version="1.0" encoding="Windows-1252"?>\r
+-<VisualStudioProject\r
+-      ProjectType="Visual C++"\r
+-      Version="9.00"\r
+-      Name="xmltok"\r
+-      ProjectGUID="{B535402E-38D2-4D54-8360-423ACBD17192}"\r
+-      RootNamespace="xmltok"\r
+-      TargetFrameworkVersion="131072"\r
+-      >\r
+-      <Platforms>\r
+-              <Platform\r
+-                      Name="Win32"\r
+-              />\r
+-              <Platform\r
+-                      Name="x64"\r
+-              />\r
+-      </Platforms>\r
+-      <ToolFiles>\r
+-      </ToolFiles>\r
+-      <Configurations>\r
+-              <Configuration\r
+-                      Name="Debug|Win32"\r
+-                      OutputDirectory=".\Debug\xmltok"\r
+-                      IntermediateDirectory=".\Debug\xmltok"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="0"\r
+-                              AdditionalIncludeDirectories="..,."\r
+-                              PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;XML_DTD;XML_NS;_LIB"\r
+-                              MinimalRebuild="true"\r
+-                              BasicRuntimeChecks="3"\r
+-                              RuntimeLibrary="3"\r
+-                              PrecompiledHeaderFile=".\Debug\xmltok/xmltok.pch"\r
+-                              AssemblerListingLocation=".\Debug\xmltok/"\r
+-                              ObjectFile=".\Debug\xmltok/"\r
+-                              ProgramDataBaseFileName=".\Debug\xmltok/"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                              DebugInformationFormat="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="_DEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\xmltokD.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Debug\xmltok/xmltok.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-              <Configuration\r
+-                      Name="Debug|x64"\r
+-                      OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                              TargetEnvironment="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="0"\r
+-                              AdditionalIncludeDirectories="..,."\r
+-                              PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;XML_DTD;XML_NS;_LIB"\r
+-                              MinimalRebuild="true"\r
+-                              BasicRuntimeChecks="3"\r
+-                              RuntimeLibrary="3"\r
+-                              PrecompiledHeaderFile=".\Debug\xmltok/xmltok.pch"\r
+-                              ObjectFile="$(IntDir)\xmltok\"\r
+-                              ProgramDataBaseFileName="$(IntDir)\xmltok\vc90.pdb"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                              DebugInformationFormat="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="_DEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\$(PlatformName)\$(ConfigurationName)\xmltokD.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Debug\xmltok/xmltok.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-              <Configuration\r
+-                      Name="Release|Win32"\r
+-                      OutputDirectory=".\Release\xmltok"\r
+-                      IntermediateDirectory=".\Release\xmltok"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="2"\r
+-                              InlineFunctionExpansion="1"\r
+-                              AdditionalIncludeDirectories="..,."\r
+-                              PreprocessorDefinitions="NDEBUG;XML_NS;WIN32;_WINDOWS;XML_DTD;_LIB"\r
+-                              StringPooling="true"\r
+-                              RuntimeLibrary="0"\r
+-                              EnableFunctionLevelLinking="true"\r
+-                              PrecompiledHeaderFile=".\Release\xmltok/xmltok.pch"\r
+-                              AssemblerListingLocation=".\Release\xmltok/"\r
+-                              ObjectFile=".\Release\xmltok/"\r
+-                              ProgramDataBaseFileName=".\Release\xmltok/"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="NDEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\xmltok.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Release\xmltok/xmltok.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-              <Configuration\r
+-                      Name="Release|x64"\r
+-                      OutputDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"\r
+-                      ConfigurationType="4"\r
+-                      InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"\r
+-                      UseOfMFC="0"\r
+-                      ATLMinimizesCRunTimeLibraryUsage="false"\r
+-                      CharacterSet="2"\r
+-                      >\r
+-                      <Tool\r
+-                              Name="VCPreBuildEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCustomBuildTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXMLDataGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCWebServiceProxyGeneratorTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCMIDLTool"\r
+-                              TargetEnvironment="3"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCCLCompilerTool"\r
+-                              Optimization="2"\r
+-                              InlineFunctionExpansion="1"\r
+-                              AdditionalIncludeDirectories="..,."\r
+-                              PreprocessorDefinitions="NDEBUG;XML_NS;WIN32;_WINDOWS;XML_DTD;_LIB"\r
+-                              StringPooling="true"\r
+-                              RuntimeLibrary="0"\r
+-                              EnableFunctionLevelLinking="true"\r
+-                              PrecompiledHeaderFile=".\Release\xmltok/xmltok.pch"\r
+-                              ObjectFile="$(IntDir)\xmltok\"\r
+-                              ProgramDataBaseFileName="$(IntDir)\xmltok\vc90.pdb"\r
+-                              WarningLevel="3"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCManagedResourceCompilerTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCResourceCompilerTool"\r
+-                              PreprocessorDefinitions="NDEBUG"\r
+-                              Culture="1033"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPreLinkEventTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCLibrarianTool"\r
+-                              OutputFile="..\lib\$(PlatformName)\$(ConfigurationName)\xmltok.lib"\r
+-                              SuppressStartupBanner="true"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCALinkTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCXDCMakeTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCBscMakeTool"\r
+-                              SuppressStartupBanner="true"\r
+-                              OutputFile=".\Release\xmltok/xmltok.bsc"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCFxCopTool"\r
+-                      />\r
+-                      <Tool\r
+-                              Name="VCPostBuildEventTool"\r
+-                      />\r
+-              </Configuration>\r
+-      </Configurations>\r
+-      <References>\r
+-      </References>\r
+-      <Files>\r
+-              <Filter\r
+-                      Name="Source Files"\r
+-                      Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90"\r
+-                      >\r
+-                      <File\r
+-                              RelativePath="..\lib\expat\xmltok\xmlrole.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\expat\xmltok\xmltok.c"\r
+-                              >\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Debug|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|Win32"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                              <FileConfiguration\r
+-                                      Name="Release|x64"\r
+-                                      >\r
+-                                      <Tool\r
+-                                              Name="VCCLCompilerTool"\r
+-                                              AdditionalIncludeDirectories=""\r
+-                                              PreprocessorDefinitions=""\r
+-                                      />\r
+-                              </FileConfiguration>\r
+-                      </File>\r
+-              </Filter>\r
+-              <Filter\r
+-                      Name="Header Files"\r
+-                      Filter="h;hpp;hxx;hm;inl;fi;fd"\r
+-                      >\r
+-                      <File\r
+-                              RelativePath="..\lib\expat\xmltok\asciitab.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\expat\xmltok\iasciitab.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\expat\xmltok\latin1tab.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\expat\xmltok\nametab.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\expat\xmltok\utf8tab.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\expat\xmltok\xmldef.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\expat\xmltok\xmlrole.h"\r
+-                              >\r
+-                      </File>\r
+-                      <File\r
+-                              RelativePath="..\lib\expat\xmltok\xmltok.h"\r
+-                              >\r
+-                      </File>\r
+-              </Filter>\r
+-              <Filter\r
+-                      Name="Resource Files"\r
+-                      Filter="ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"\r
+-                      >\r
+-              </Filter>\r
+-      </Files>\r
+-      <Globals>\r
+-      </Globals>\r
+-</VisualStudioProject>\r
+diff --git a/libs/xmlrpc-c/Windows/xmltok.2010.vcxproj b/libs/xmlrpc-c/Windows/xmltok.2010.vcxproj
+deleted file mode 100644
+index a34b3f1..0000000
+--- a/libs/xmlrpc-c/Windows/xmltok.2010.vcxproj
++++ /dev/null
+@@ -1,213 +0,0 @@
+-<?xml version="1.0" encoding="utf-8"?>\r
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+-  <ItemGroup Label="ProjectConfigurations">\r
+-    <ProjectConfiguration Include="Debug|Win32">\r
+-      <Configuration>Debug</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Debug|x64">\r
+-      <Configuration>Debug</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release|Win32">\r
+-      <Configuration>Release</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release|x64">\r
+-      <Configuration>Release</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-  </ItemGroup>\r
+-  <PropertyGroup Label="Globals">\r
+-    <ProjectName>xmltok</ProjectName>\r
+-    <ProjectGuid>{B535402E-38D2-4D54-8360-423ACBD17192}</ProjectGuid>\r
+-    <RootNamespace>xmltok</RootNamespace>\r
+-  </PropertyGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+-    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+-    <UseOfMfc>false</UseOfMfc>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+-  <ImportGroup Label="ExtensionSettings">\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />\r
+-    <Import Project="..\..\..\w32\extlib.props" />\r
+-  </ImportGroup>\r
+-  <PropertyGroup Label="UserMacros" />\r
+-  <PropertyGroup>\r
+-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(PlatformName)\xmltok\$(Configuration)\</IntDir>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(PlatformName)\xmltok\$(Configuration)\</IntDir>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(PlatformName)\xmltok\$(Configuration)\</IntDir>\r
+-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(PlatformName)\xmltok\$(Configuration)\</IntDir>\r
+-  </PropertyGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+-    <ClCompile>\r
+-      <Optimization>Disabled</Optimization>\r
+-      <AdditionalIncludeDirectories>..;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;XML_DTD;XML_NS;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <MinimalRebuild>true</MinimalRebuild>\r
+-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Debug\xmltok/xmltok.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <Optimization>Disabled</Optimization>\r
+-      <AdditionalIncludeDirectories>..;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;XML_DTD;XML_NS;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <MinimalRebuild>true</MinimalRebuild>\r
+-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Debug\xmltok/xmltok.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+-    <ClCompile>\r
+-      <Optimization>MaxSpeed</Optimization>\r
+-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+-      <AdditionalIncludeDirectories>..;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>NDEBUG;XML_NS;WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <StringPooling>true</StringPooling>\r
+-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r
+-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Release\xmltok/xmltok.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <Optimization>MaxSpeed</Optimization>\r
+-      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+-      <AdditionalIncludeDirectories>..;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>NDEBUG;XML_NS;WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <StringPooling>true</StringPooling>\r
+-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>\r
+-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </ClCompile>\r
+-    <ResourceCompile>\r
+-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <Culture>0x0409</Culture>\r
+-    </ResourceCompile>\r
+-    <Lib>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-    </Lib>\r
+-    <Bscmake>\r
+-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
+-      <OutputFile>.\Release\xmltok/xmltok.bsc</OutputFile>\r
+-    </Bscmake>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemGroup>\r
+-    <ClCompile Include="..\lib\expat\xmltok\xmlrole.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-    <ClCompile Include="..\lib\expat\xmltok\xmltok.c">\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-    </ClCompile>\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <ClInclude Include="..\lib\expat\xmltok\asciitab.h" />\r
+-    <ClInclude Include="..\lib\expat\xmltok\iasciitab.h" />\r
+-    <ClInclude Include="..\lib\expat\xmltok\latin1tab.h" />\r
+-    <ClInclude Include="..\lib\expat\xmltok\nametab.h" />\r
+-    <ClInclude Include="..\lib\expat\xmltok\utf8tab.h" />\r
+-    <ClInclude Include="..\lib\expat\xmltok\xmldef.h" />\r
+-    <ClInclude Include="..\lib\expat\xmltok\xmlrole.h" />\r
+-    <ClInclude Include="..\lib\expat\xmltok\xmltok.h" />\r
+-  </ItemGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+-  <ImportGroup Label="ExtensionTargets">\r
+-  </ImportGroup>\r
+-</Project>
+\ No newline at end of file
+diff --git a/libs/xmlrpc-c/Windows/xmltok.dsp b/libs/xmlrpc-c/Windows/xmltok.dsp
+index eaaebde..3c69d64 100644
+--- a/libs/xmlrpc-c/Windows/xmltok.dsp
++++ b/libs/xmlrpc-c/Windows/xmltok.dsp
+@@ -1,138 +1,138 @@
+-# Microsoft Developer Studio Project File - Name="xmltok" - Package Owner=<4>\r
+-# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
+-# ** DO NOT EDIT **\r
+-\r
+-# TARGTYPE "Win32 (x86) Static Library" 0x0104\r
+-\r
+-CFG=xmltok - Win32 Release\r
+-!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
+-!MESSAGE use the Export Makefile command and run\r
+-!MESSAGE \r
+-!MESSAGE NMAKE /f "xmltok.mak".\r
+-!MESSAGE \r
+-!MESSAGE You can specify a configuration when running NMAKE\r
+-!MESSAGE by defining the macro CFG on the command line. For example:\r
+-!MESSAGE \r
+-!MESSAGE NMAKE /f "xmltok.mak" CFG="xmltok - Win32 Release"\r
+-!MESSAGE \r
+-!MESSAGE Possible choices for configuration are:\r
+-!MESSAGE \r
+-!MESSAGE "xmltok - Win32 Release" (based on "Win32 (x86) Static Library")\r
+-!MESSAGE "xmltok - Win32 Debug" (based on "Win32 (x86) Static Library")\r
+-!MESSAGE \r
+-\r
+-# Begin Project\r
+-# PROP AllowPerConfigDependencies 0\r
+-CPP=cl.exe\r
+-RSC=rc.exe\r
+-\r
+-!IF  "$(CFG)" == "xmltok - Win32 Release"\r
+-\r
+-# PROP BASE Use_MFC 0\r
+-# PROP BASE Use_Debug_Libraries 0\r
+-# PROP BASE Output_Dir ".\Release"\r
+-# PROP BASE Intermediate_Dir ".\Release"\r
+-# PROP BASE Target_Dir "."\r
+-# PROP Use_MFC 0\r
+-# PROP Use_Debug_Libraries 0\r
+-# PROP Output_Dir "Release\xmltok"\r
+-# PROP Intermediate_Dir "Release\xmltok"\r
+-# PROP Target_Dir "."\r
+-MTL=midl.exe\r
+-LINK32=link.exe -lib\r
+-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /YX /FD /c\r
+-# ADD CPP /nologo /MT /W3 /GX /O2 /I ".." /D "NDEBUG" /D "XML_NS" /D "WIN32" /D "_WINDOWS" /D "XML_DTD" /D "_MBCS" /D "_LIB" /YX /FD /c\r
+-# ADD BASE RSC /l 0x409 /d "NDEBUG"\r
+-# ADD RSC /l 0x409 /d "NDEBUG"\r
+-BSC32=bscmake.exe\r
+-# ADD BASE BSC32 /nologo\r
+-# ADD BSC32 /nologo\r
+-LIB32=link.exe -lib\r
+-# ADD BASE LIB32 /nologo\r
+-# ADD LIB32 /nologo /out:"..\lib\xmltok.lib"\r
+-\r
+-!ELSEIF  "$(CFG)" == "xmltok - Win32 Debug"\r
+-\r
+-# PROP BASE Use_MFC 0\r
+-# PROP BASE Use_Debug_Libraries 1\r
+-# PROP BASE Output_Dir ".\Debug"\r
+-# PROP BASE Intermediate_Dir ".\Debug"\r
+-# PROP BASE Target_Dir "."\r
+-# PROP Use_MFC 0\r
+-# PROP Use_Debug_Libraries 1\r
+-# PROP Output_Dir "Debug\xmltok"\r
+-# PROP Intermediate_Dir "Debug\xmltok"\r
+-# PROP Target_Dir "."\r
+-MTL=midl.exe\r
+-LINK32=link.exe -lib\r
+-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c\r
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I ".." /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "XML_DTD" /D "XML_NS" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c\r
+-# ADD BASE RSC /l 0x409 /d "_DEBUG"\r
+-# ADD RSC /l 0x409 /d "_DEBUG"\r
+-BSC32=bscmake.exe\r
+-# ADD BASE BSC32 /nologo\r
+-# ADD BSC32 /nologo\r
+-LIB32=link.exe -lib\r
+-# ADD BASE LIB32 /nologo\r
+-# ADD LIB32 /nologo /out:"..\lib\xmltokD.lib"\r
+-\r
+-!ENDIF \r
+-\r
+-# Begin Target\r
+-\r
+-# Name "xmltok - Win32 Release"\r
+-# Name "xmltok - Win32 Debug"\r
+-# Begin Group "Source Files"\r
+-\r
+-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90"\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\expat\xmltok\xmlrole.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\expat\xmltok\xmltok.c\r
+-# End Source File\r
+-# End Group\r
+-# Begin Group "Header Files"\r
+-\r
+-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\expat\xmltok\asciitab.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\expat\xmltok\iasciitab.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\expat\xmltok\latin1tab.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\expat\xmltok\nametab.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\expat\xmltok\utf8tab.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\expat\xmltok\xmldef.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\expat\xmltok\xmlrole.h\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=..\lib\expat\xmltok\xmltok.h\r
+-# End Source File\r
+-# End Group\r
+-# Begin Group "Resource Files"\r
+-\r
+-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"\r
+-# End Group\r
+-# End Target\r
+-# End Project\r
++# Microsoft Developer Studio Project File - Name="xmltok" - Package Owner=<4>
++# Microsoft Developer Studio Generated Build File, Format Version 6.00
++# ** DO NOT EDIT **
++
++# TARGTYPE "Win32 (x86) Static Library" 0x0104
++
++CFG=xmltok - Win32 Release
++!MESSAGE This is not a valid makefile. To build this project using NMAKE,
++!MESSAGE use the Export Makefile command and run
++!MESSAGE 
++!MESSAGE NMAKE /f "xmltok.mak".
++!MESSAGE 
++!MESSAGE You can specify a configuration when running NMAKE
++!MESSAGE by defining the macro CFG on the command line. For example:
++!MESSAGE 
++!MESSAGE NMAKE /f "xmltok.mak" CFG="xmltok - Win32 Release"
++!MESSAGE 
++!MESSAGE Possible choices for configuration are:
++!MESSAGE 
++!MESSAGE "xmltok - Win32 Release" (based on "Win32 (x86) Static Library")
++!MESSAGE "xmltok - Win32 Debug" (based on "Win32 (x86) Static Library")
++!MESSAGE 
++
++# Begin Project
++# PROP AllowPerConfigDependencies 0
++CPP=cl.exe
++RSC=rc.exe
++
++!IF  "$(CFG)" == "xmltok - Win32 Release"
++
++# PROP BASE Use_MFC 0
++# PROP BASE Use_Debug_Libraries 0
++# PROP BASE Output_Dir ".\Release"
++# PROP BASE Intermediate_Dir ".\Release"
++# PROP BASE Target_Dir "."
++# PROP Use_MFC 0
++# PROP Use_Debug_Libraries 0
++# PROP Output_Dir "Release\xmltok"
++# PROP Intermediate_Dir "Release\xmltok"
++# PROP Target_Dir "."
++MTL=midl.exe
++LINK32=link.exe -lib
++# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /YX /FD /c
++# ADD CPP /nologo /MT /W3 /GX /O2 /I ".." /I "..\lib\util\include" /D "NDEBUG" /D "XML_NS" /D "WIN32" /D "_WINDOWS" /D "XML_DTD" /D "_MBCS" /D "_LIB" /YX /FD /c
++# ADD BASE RSC /l 0x409 /d "NDEBUG"
++# ADD RSC /l 0x409 /d "NDEBUG"
++BSC32=bscmake.exe
++# ADD BASE BSC32 /nologo
++# ADD BSC32 /nologo
++LIB32=link.exe -lib
++# ADD BASE LIB32 /nologo
++# ADD LIB32 /nologo /out:"..\lib\xmltok.lib"
++
++!ELSEIF  "$(CFG)" == "xmltok - Win32 Debug"
++
++# PROP BASE Use_MFC 0
++# PROP BASE Use_Debug_Libraries 1
++# PROP BASE Output_Dir ".\Debug"
++# PROP BASE Intermediate_Dir ".\Debug"
++# PROP BASE Target_Dir "."
++# PROP Use_MFC 0
++# PROP Use_Debug_Libraries 1
++# PROP Output_Dir "Debug\xmltok"
++# PROP Intermediate_Dir "Debug\xmltok"
++# PROP Target_Dir "."
++MTL=midl.exe
++LINK32=link.exe -lib
++# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
++# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I ".." /I "..\lib\util\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "XML_DTD" /D "XML_NS" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
++# ADD BASE RSC /l 0x409 /d "_DEBUG"
++# ADD RSC /l 0x409 /d "_DEBUG"
++BSC32=bscmake.exe
++# ADD BASE BSC32 /nologo
++# ADD BSC32 /nologo
++LIB32=link.exe -lib
++# ADD BASE LIB32 /nologo
++# ADD LIB32 /nologo /out:"..\lib\xmltokD.lib"
++
++!ENDIF 
++
++# Begin Target
++
++# Name "xmltok - Win32 Release"
++# Name "xmltok - Win32 Debug"
++# Begin Group "Source Files"
++
++# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90"
++# Begin Source File
++
++SOURCE=..\lib\expat\xmltok\xmlrole.c
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\expat\xmltok\xmltok.c
++# End Source File
++# End Group
++# Begin Group "Header Files"
++
++# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
++# Begin Source File
++
++SOURCE=..\lib\expat\xmltok\asciitab.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\expat\xmltok\iasciitab.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\expat\xmltok\latin1tab.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\expat\xmltok\nametab.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\expat\xmltok\utf8tab.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\expat\xmltok\xmldef.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\expat\xmltok\xmlrole.h
++# End Source File
++# Begin Source File
++
++SOURCE=..\lib\expat\xmltok\xmltok.h
++# End Source File
++# End Group
++# Begin Group "Resource Files"
++
++# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
++# End Group
++# End Target
++# End Project
+diff --git a/libs/xmlrpc-c/common.mk b/libs/xmlrpc-c/common.mk
+index 5b89fa1..a20bf42 100644
+--- a/libs/xmlrpc-c/common.mk
++++ b/libs/xmlrpc-c/common.mk
+@@ -9,7 +9,7 @@
+ # SRCDIR:  Name of directory which is the top of the Xmlrpc-c source tree.
+ # BLDDIR: Name of directory which is the top of the Xmlrpc-c build tree.
+-include $(SRCDIR)/Makefile.version
++include $(SRCDIR)/version.mk
+ # .DELETE_ON_ERROR is a special predefined Make target that says to delete
+ # the target if a command in the rule for it fails.  That's important,
+@@ -17,13 +17,27 @@ include $(SRCDIR)/Makefile.version
+ # fully made.
+ .DELETE_ON_ERROR:
+-GCC_WARNINGS = -Wall -Wundef -Wimplicit -W -Winline -Wundef
++GCC_WARNINGS = -Wall -W -Wno-uninitialized -Wundef -Wimplicit -Winline \
++  -Wno-unknown-pragmas
+   # We need -Wwrite-strings after we fix all the missing consts
++  #
++  # -Wuninitialized catches some great bugs, but it also flags a whole lot
++  # of perfectly good code that can't be written any better.  Too bad there's
++  # no way to annotate particular variables as being OK, so we could turn
++  # on -Wuninitialized for all the others.
+ GCC_C_WARNINGS = $(GCC_WARNINGS) \
+   -Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes
+-GCC_CXX_WARNINGS = $(GCC_WARNINGS) -Woverloaded-virtual -Wsynth
++GCC_CXX_WARNINGS = $(GCC_WARNINGS)  -Wsynth
++
++# Before 09.05.20, we had -Woverloaded-virtual, but it doesn't seem to do
++# anything useful.  It causes a warning that a method was hidden, but
++# experiments show nothing is actually hidden.  The GCC manual's description
++# of what it does does not match empirical evidence.  The option causes
++# warnings when a derived class of xmlrpc_c::method2 overrides one of the
++# execute() methods and not the other (as cpp/test/registry.cpp does), but the
++# code works fine.
+ # The NDEBUG macro says not to build code that assumes there are no bugs.
+ # This makes the code go faster.  The main thing it does is tell the C library
+@@ -55,12 +69,21 @@ ifeq ($(CURDIR)x,x)
+   CURDIR := $(shell /bin/pwd)
+ endif
++# The package XmlRpc++ on Sourceforge includes a library named
++# libxmlrpc++ just as Xmlrpc-c does.  To use them both, you may need
++# to rename one.  To rename the Xmlrpc-c one, set the make variable
++# LIBXMLRPCPP_NAME, e.g. on the 'make' command line.
++
++ifeq ($(LIBXMLRPCPP_NAME),)
++  LIBXMLRPCPP_NAME := xmlrpc++
++endif
++
+ ##############################################################################
+ #                        STATIC LINK LIBRARY RULES                           #
+ ##############################################################################
+-# To use this rule, the including make file must set a target_specific
++# To use this rule, the including make file must set a target-specific
+ # variable LIBOBJECTS (and declare dependencies that include LIBOBJECTS).
+ # Example:
+ #   FOO_OBJECTS = foo1.o foo2.o
+@@ -81,19 +104,19 @@ $(TARGET_STATIC_LIBRARIES):
+ ##############################################################################
+ ifeq ($(SHARED_LIB_TYPE),unix)
+-  include $(SRCDIR)/unix-common.make
++  include $(SRCDIR)/unix-common.mk
+   endif
+ ifeq ($(SHARED_LIB_TYPE),irix)
+-  include $(SRCDIR)/irix-common.make
++  include $(SRCDIR)/irix-common.mk
+   endif
+ ifeq ($(SHARED_LIB_TYPE),dll)
+-  include $(SRCDIR)/dll-common.make
++  include $(SRCDIR)/dll-common.mk
+   endif
+ ifeq ($(SHARED_LIB_TYPE),dylib)
+-  include $(SRCDIR)/dylib-common.make
++  include $(SRCDIR)/dylib-common.mk
+   endif
+ ifeq ($(SHARED_LIB_TYPE),NONE)
+@@ -127,10 +150,10 @@ endif
+ #------ the actual rules ----------------------------------------------------
+ $(TARGET_SHARED_LIBRARIES) dummyshlib:
+-      $(CCLD) $(LDFLAGS_SHLIB) $(LIBDEP) -o $@ $(LIBOBJECTS) $(LADD)
++      $(CCLD) $(LADD) $(LDFLAGS_SHLIB) $(LIBOBJECTS) $(LIBDEP) -o $@  
+ $(TARGET_SHARED_LIBS_PP) dummyshlibpp:
+-      $(CXXLD) $(LDFLAGS_SHLIB) $(LIBDEP) -o $@ $(LIBOBJECTS) $(LADD)
++      $(CXXLD) $(LADD) $(LDFLAGS_SHLIB) $(LIBOBJECTS) $(LIBDEP) -o $@  
+ #----------------------------------------------------------------------------
+ LIBXMLRPC_UTIL_DIR = $(BLDDIR)/lib/libutil
+@@ -186,7 +209,6 @@ LIBXMLRPC_ABYSS          = \
+ LIBXMLRPC_ABYSS_A        = $(LIBXMLRPC_ABYSS_DIR)/libxmlrpc_abyss.a
+ endif
+-ifneq ($(OMIT_CPP_LIB_RULES),Y)
+ LIBXMLRPC_CPP              = \
+   $(call shliblefn, $(BLDDIR)/src/cpp/libxmlrpc_cpp)
+ LIBXMLRPC_CPP_A            = $(BLDDIR)/src/cpp/libxmlrpc_cpp.a
+@@ -208,7 +230,6 @@ LIBXMLRPC_SERVER_ABYSSPP_A = $(BLDDIR)/src/cpp/libxmlrpc_server_abyss++.a
+ LIBXMLRPC_SERVER_PSTREAMPP = \
+   $(call shliblefn, $(BLDDIR)/src/cpp/libxmlrpc_server_pstream++)
+ LIBXMLRPC_SERVER_PSTREAMPP_A = $(BLDDIR)/src/cpp/libxmlrpc_server_pstream++.a
+-endif
+ # LIBXMLRPC_XML is the list of Xmlrpc-c libraries we need to parse
+ # XML.  If we're using an external library to parse XML, this is null.
+@@ -239,31 +260,41 @@ endif
+ #   foo.o foo.osh: INCLUDES = -Iinclude -I/usr/include/foostuff
+ #   bar.o bar.osh: INCLUDES = -Iinclude -I/usr/include/barstuff
+ #
+-#   include Makefile.common
++#   include common.mk
+ #
+ # The above generates rules to build foo.o, bar.o, foo.osh, and bar.osh
+ #
+ # For C++ source files, use TARGET_MODS_PP instead.
+-# CFLAGS and CXXFLAGS are designed to be overridden on the make command
+-# line.  We pile all the options except -I into these variables so the
+-# user can override them all if he wants.
++# CFLAGS and CXXFLAGS are designed to be picked up as environment
++# variables.  The user may use them to add inclusion search directories
++# (-I) or control 32/64 bitness or the like.  Using these is always
++# iffy, because the options one might include can interact in unpredictable
++# ways with what the make file is trying to do.  But at least some users
++# get useful results.
++
++CFLAGS_ALL = $(CFLAGS_COMMON) $(CFLAGS_LOCAL) $(CFLAGS) \
++  $(INCLUDES) $(CFLAGS_PERSONAL) $(CADD)
++
++CXXFLAGS_ALL = $(CXXFLAGS_COMMON) $(CFLAGS_LOCAL) $(CXXFLAGS) \
++  $(INCLUDES) $(CFLAGS_PERSONAL) $(CADD)
++
+ $(TARGET_MODS:%=%.o):%.o:%.c
+-      $(CC) -c -o $@ $(INCLUDES) $(CFLAGS) $<
++      $(CC) -c -o $@ $(CFLAGS_ALL) $<
+ $(TARGET_MODS:%=%.osh): CFLAGS_COMMON += $(CFLAGS_SHLIB)
+ $(TARGET_MODS:%=%.osh):%.osh:%.c
+-      $(CC) -c -o $@ $(INCLUDES) $(CFLAGS) $(CFLAGS_SHLIB) $<
++      $(CC) -c -o $@ $(INCLUDES) $(CFLAGS_ALL) $(CFLAGS_SHLIB) $<
+ $(TARGET_MODS_PP:%=%.o):%.o:%.cpp
+-      $(CXX) -c -o $@ $(INCLUDES) $(CXXFLAGS) $<
++      $(CXX) -c -o $@ $(INCLUDES) $(CXXFLAGS_ALL) $<
+ $(TARGET_MODS_PP:%=%.osh): CXXFLAGS_COMMON += $(CFLAGS_SHLIB)
+ $(TARGET_MODS_PP:%=%.osh):%.osh:%.cpp
+-      $(CXX) -c -o $@ $(INCLUDES) $(CXXFLAGS) $<
++      $(CXX) -c -o $@ $(INCLUDES) $(CXXFLAGS_ALL) $<
+ ##############################################################################
+@@ -278,11 +309,6 @@ $(TARGET_MODS_PP:%=%.osh):%.osh:%.cpp
+ # to rebuild the symbolic link.  So we don't make $(SRCDIR) a
+ # dependency of 'srcdir'.
+-# We should do the same for 'blddir'.  We did once before, then undid
+-# it in an erroneous effort to enable parallel make.  It's a little harder
+-# with blddir; when we did it before, we had to use the non-symlink
+-# version in a few places.
+-
+ srcdir:
+       $(LN_S) $(SRCDIR) $@
+ blddir:
+@@ -343,6 +369,12 @@ endif
+ ifneq ($(OMIT_CURL_TRANSPORT_RULE),Y)
+ $(BLDDIR)/lib/curl_transport/xmlrpc_curl_transport.o \
+ $(BLDDIR)/lib/curl_transport/xmlrpc_curl_transport.osh \
++$(BLDDIR)/lib/curl_transport/curltransaction.o \
++$(BLDDIR)/lib/curl_transport/curltransaction.osh \
++$(BLDDIR)/lib/curl_transport/curlmulti.o \
++$(BLDDIR)/lib/curl_transport/curlmulti.osh \
++$(BLDDIR)/lib/curl_transport/lock_pthread.o \
++$(BLDDIR)/lib/curl_transport/lock_pthread.osh \
+ : FORCE
+       $(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/curl_transport/Makefile \
+           $(notdir $@)
+@@ -385,6 +417,8 @@ $(LIBXMLRPC_ABYSS) $(LIBXMLRPC_ABYSS_A): FORCE
+       $(MAKE) -C $(dir $@) -f $(SRCDIR)/lib/abyss/src/Makefile \
+           $(notdir $@)
++ifneq ($(OMIT_CPP_LIB_RULES),Y)
++
+ $(LIBXMLRPCPP) $(LIBXMLRPCPP_A) \
+ $(LIBXMLRPC_PACKETSOCKET) $(LIBXMLRPC_PACKETSOCKET_A) \
+ $(LIBXMLRPC_CLIENTPP) $(LIBXMLRPC_CLIENTPP_A) \
+@@ -394,6 +428,7 @@ $(LIBXMLRPC_SERVER_PSTREAMPP) $(LIBXMLRPC_SERVER_PSTREAMPP_A) \
+ $(LIBXMLRPC_CPP) $(LIBXMLRPC_CPP_A) : FORCE
+       $(MAKE) -C $(dir $@) -f $(SRCDIR)/src/cpp/Makefile \
+           $(notdir $@)
++endif
+ # For the following utilities, we don't bother with a library -- we
+ # just explicitly link the object file we need.  This is to save
+@@ -421,12 +456,12 @@ CASPRINTF = $(UTIL_DIR)/casprintf.o
+ # About version.h:  This is a built header file, which means it is a supreme
+ # pain in the ass.  The biggest problem is that when we automatically make
+-# dependencies (Makefile.depend), it doesn't exist yet.  This means Gcc
++# dependencies (depend.mk), it doesn't exist yet.  This means Gcc
+ # generates a dependency on it being in the local directory.  Therefore,
+ # we generate it in the local directory, as a symbolic link, wherever it
+ # is needed.  But the original is always in the top level directory,
+ # generated by a rule in that directory's make file.  Problem 2 is that
+-# the top directory's make file includes Makefile.common, so the rules
++# the top directory's make file includes common.mk, so the rules
+ # below conflict with it.  That's what OMIT_VERSION_H is for.
+ ifneq ($(OMIT_VERSION_H),Y)
+@@ -471,10 +506,10 @@ $(SUBDIRS:%=$(CURDIR)/%):
+ MKINSTALLDIRS = $(SHELL) $(SRCDIR)/mkinstalldirs
+-.PHONY: install-common install-ltlibraries install-headers install-bin
++.PHONY: install-common install-headers install-bin install-man
+ install-common: \
+-  install-ltlibraries install-static-libraries install-shared-libraries \
+-  install-headers install-bin
++  install-static-libraries install-shared-libraries \
++  install-headers install-bin install-man
+ INSTALL_LIB_CMD = $(INSTALL_DATA) $$p $(DESTDIR)$(LIBINST_DIR)/$$p
+ RANLIB_CMD = $(RANLIB) $(DESTDIR)$(LIBINST_DIR)/$$p
+@@ -520,6 +555,16 @@ install-bin: $(PROGRAMS_TO_INSTALL) $(DESTDIR)$(PROGRAMINST_DIR)
+ $(DESTDIR)$(PROGRAMINST_DIR):
+       $(MKINSTALLDIRS) $@
++MANDESTDIR = $(DESTDIR)$(MANINST_DIR)
++INSTALL_MAN_CMD = $(INSTALL_DATA) $$p $(MANDESTDIR)/$$p
++
++install-man: $(MAN_FILES_TO_INSTALL)
++      $(MKINSTALLDIRS) $(MANDESTDIR)
++      @list='$(MAN_FILES_TO_INSTALL)'; \
++         for p in $$list; do \
++         echo "$(MAN_FILES_TO_INSTALL)"; \
++         $(INSTALL_MAN_CMD); \
++       done
+ ##############################################################################
+ #                           MISCELLANEOUS RULES                              #
+@@ -536,29 +581,30 @@ endif
+ .PHONY: distclean-common
+ distclean-common:
+-# Makefile.depend is generated by 'make dep' and contains only dependencies
++# depend.mk is generated by 'make dep' and contains only dependencies
+ # that make parts get _rebuilt_ when parts upon which they depend change.
+ # It does not contain dependencies that are necessary to cause a part to
+ # get built in the first place.  E.g. if foo.c uses bar.h and bar.h gets built
+ # by a make rule, you must put the dependency of foo.c on bar.h somewhere
+-# besides Makefile.depend.
++# besides depend.mk.
+ #
+-# Because of this, a user doesn't need Makefile.depend, because he
++# Because of this, a user doesn't need depend.mk, because he
+ # doesn't modify source files.  A developer, on the other hand, must make his
+-# own Makefile.depend, because 'make dep' creates Makefile.depend with 
++# own depend.mk, because 'make dep' creates depend.mk with 
+ # absolute pathnames, specific to the developer's system.
+ #
+-# So we obliterate Makefile.depend here.  The build will automatically
+-# create an empty Makefile.depend when it is needed for the user.  The
++# So we obliterate depend.mk here.  The build will automatically
++# create an empty depend.mk when it is needed for the user.  The
+ # developer must do 'make dep' if he wants to edit and rebuild.
+ #
+ # Other projects have the build automatically build a true
+-# Makefile.depend, suitable for a developer.  We have found that to be
++# depend.mk, suitable for a developer.  We have found that to be
+ # an utter disaster -- it's way too complicated and prone to failure,
+ # especially with built .h files.  Better not to burden the user, who
+ # gains nothing from it, with that.
+ #
+-      rm -f Makefile.depend
++      rm -f depend.mk
++      rm -f Makefile.depend  # We used to create a file by this name
+       rm -f srcdir blddir
+ .PHONY: distdir-common
+@@ -589,17 +635,17 @@ dep-common: FORCE
+ ifneq ($(DEP_SOURCES)x,x)
+       -$(CC) -MM -MG -I. $(INCLUDES) $(DEP_SOURCES) | \
+         $(DEPEND_MASSAGER) \
+-        >Makefile.depend
++        >depend.mk
+ endif
+-Makefile.depend:
++depend.mk:
+       cat /dev/null >$@
+ # The automatic dependency generation is a pain in the butt and
+ # totally unnecessary for people just installing the distributed code,
+ # so to avoid needless failures in the field and a complex build, the
+-# 'distclean' target simply makes Makefile.depend an empty file.  A
+-# developer may do 'make dep' to create a Makefile.depend full of real
++# 'distclean' target simply makes depend.mk an empty file.  A
++# developer may do 'make dep' to create a depend.mk full of real
+ # dependencies.
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+diff --git a/libs/xmlrpc-c/conf/abyss_root/conf/abyss.conf b/libs/xmlrpc-c/conf/abyss_root/conf/abyss.conf
+deleted file mode 100644
+index f9c09f2..0000000
+--- a/libs/xmlrpc-c/conf/abyss_root/conf/abyss.conf
++++ /dev/null
+@@ -1,56 +0,0 @@
+-# ABYSS Web Server configuration file
+-# (C) Moez Mahfoudh - 2000
+-
+-# Cases in option names are ignored, 
+-# that means that PORT=port=PoRT=..
+-
+-# When writing paths, do not worry about / or \ use.
+-# ABYSS will substitute / with \ on Win32 systems.
+-
+-# Options which are system specific (such as User) are
+-# ignored on systems which do not handle them.
+-
+-# The Port option tells the server on which TCP port to listen.
+-# default is 80
+-Port 8080
+-
+-# The name or #number of the user to run the server as if it is 
+-# launched as root (UNIX specific)
+-User nobody
+-
+-# The Server Root (UNIX systems style)
+-ServerRoot conf/abyss_root
+-
+-# The Server Root (Win32 systems style)
+-# ServerRoot G:\XML\xmlrpc-c-0.9.5\conf\abyss_root
+-
+-# The Path option specifies the web files path.
+-Path htdocs
+-
+-# The Default option contains the name of the files the server should
+-# look for when only a path is given (e.g. http://myserver/info/).
+-Default index.html index.htm INDEX.HTM INDEX.HTML
+-
+-# The KeepAlive option is used to set the maximum number of requests
+-# served using the same persistent connection.
+-KeepAlive 10
+-
+-# The TimeOut option tells the server how much seconds to wait for
+-# an idle connection before closing it.
+-TimeOut 10
+-
+-# The MimeTypes option specifies the location of the file
+-# containing the mapping of MIME types and files extensions
+-MimeTypes conf/mime.types
+-
+-# The path of the log file
+-LogFile log/access.log
+-
+-# The file where the pid of the server is logged (UNIX specific)
+-PidFile log/abyss.pid
+-
+-# If AdvertiseServer if set to no, then no server field would be
+-# appended to the responses. This is the way to make the server
+-# identity unknown to some malicious people which can profit from
+-# well known security holes in the software to crash it.
+-AdvertiseServer yes
+diff --git a/libs/xmlrpc-c/conf/abyss_root/conf/mime.types b/libs/xmlrpc-c/conf/abyss_root/conf/mime.types
+deleted file mode 100644
+index d53db0f..0000000
+--- a/libs/xmlrpc-c/conf/abyss_root/conf/mime.types
++++ /dev/null
+@@ -1,276 +0,0 @@
+-# This is a comment. I love comments.
+-
+-# This file controls what Internet media types are sent to the client for
+-# given file extension(s).  Sending the correct media type to the client
+-# is important so they know how to handle the content of the file.
+-# Extra types can either be added here or by using an AddType directive
+-# in your config files. For more information about Internet media types,
+-# please read RFC 2045, 2046, 2047, 2048, and 2077.  The Internet media type
+-# registry is at <ftp://ftp.iana.org/in-notes/iana/assignments/media-types/>.
+-
+-# MIME type                   Extension
+-application/EDI-Consent
+-application/EDI-X12
+-application/EDIFACT
+-application/activemessage
+-application/andrew-inset      ez
+-application/applefile
+-application/atomicmail
+-application/cals-1840
+-application/commonground
+-application/cybercash
+-application/dca-rft
+-application/dec-dx
+-application/eshop
+-application/hyperstudio
+-application/iges
+-application/mac-binhex40      hqx
+-application/mac-compactpro    cpt
+-application/macwriteii
+-application/marc
+-application/mathematica
+-application/msword            doc
+-application/news-message-id
+-application/news-transmission
+-application/octet-stream      bin dms lha lzh exe class
+-application/oda                       oda
+-application/pdf                       pdf
+-application/pgp-encrypted
+-application/pgp-keys
+-application/pgp-signature
+-application/pkcs10
+-application/pkcs7-mime
+-application/pkcs7-signature
+-application/postscript                ai eps ps
+-application/prs.alvestrand.titrax-sheet
+-application/prs.cww
+-application/prs.nprend
+-application/remote-printing
+-application/riscos
+-application/rtf                       rtf
+-application/set-payment
+-application/set-payment-initiation
+-application/set-registration
+-application/set-registration-initiation
+-application/sgml
+-application/sgml-open-catalog
+-application/slate
+-application/smil              smi smil
+-application/vemmi
+-application/vnd.3M.Post-it-Notes
+-application/vnd.FloGraphIt
+-application/vnd.acucobol
+-application/vnd.anser-web-certificate-issue-initiation
+-application/vnd.anser-web-funds-transfer-initiation
+-application/vnd.audiograph
+-application/vnd.businessobjects
+-application/vnd.claymore
+-application/vnd.comsocaller
+-application/vnd.dna
+-application/vnd.dxr
+-application/vnd.ecdis-update
+-application/vnd.ecowin.chart
+-application/vnd.ecowin.filerequest
+-application/vnd.ecowin.fileupdate
+-application/vnd.ecowin.series
+-application/vnd.ecowin.seriesrequest
+-application/vnd.ecowin.seriesupdate
+-application/vnd.enliven
+-application/vnd.epson.salt
+-application/vnd.fdf
+-application/vnd.ffsns
+-application/vnd.framemaker
+-application/vnd.fujitsu.oasys
+-application/vnd.fujitsu.oasys2
+-application/vnd.fujitsu.oasys3
+-application/vnd.fujitsu.oasysgp
+-application/vnd.fujitsu.oasysprs
+-application/vnd.fujixerox.docuworks
+-application/vnd.hp-HPGL
+-application/vnd.hp-PCL
+-application/vnd.hp-PCLXL
+-application/vnd.hp-hps
+-application/vnd.ibm.MiniPay
+-application/vnd.ibm.modcap
+-application/vnd.intercon.formnet
+-application/vnd.intertrust.digibox
+-application/vnd.intertrust.nncp
+-application/vnd.is-xpr
+-application/vnd.japannet-directory-service
+-application/vnd.japannet-jpnstore-wakeup
+-application/vnd.japannet-payment-wakeup
+-application/vnd.japannet-registration
+-application/vnd.japannet-registration-wakeup
+-application/vnd.japannet-setstore-wakeup
+-application/vnd.japannet-verification
+-application/vnd.japannet-verification-wakeup
+-application/vnd.koan
+-application/vnd.lotus-1-2-3
+-application/vnd.lotus-approach
+-application/vnd.lotus-freelance
+-application/vnd.lotus-organizer
+-application/vnd.lotus-screencam
+-application/vnd.lotus-wordpro
+-application/vnd.meridian-slingshot
+-application/vnd.mif           mif
+-application/vnd.minisoft-hp3000-save
+-application/vnd.mitsubishi.misty-guard.trustweb
+-application/vnd.ms-artgalry
+-application/vnd.ms-asf
+-application/vnd.ms-excel      xls
+-application/vnd.ms-powerpoint ppt
+-application/vnd.ms-project
+-application/vnd.ms-tnef
+-application/vnd.ms-works
+-application/vnd.music-niff
+-application/vnd.musician
+-application/vnd.netfpx
+-application/vnd.noblenet-directory
+-application/vnd.noblenet-sealer
+-application/vnd.noblenet-web
+-application/vnd.novadigm.EDM
+-application/vnd.novadigm.EDX
+-application/vnd.novadigm.EXT
+-application/vnd.osa.netdeploy
+-application/vnd.powerbuilder6
+-application/vnd.powerbuilder6-s
+-application/vnd.rapid
+-application/vnd.seemail
+-application/vnd.shana.informed.formtemplate
+-application/vnd.shana.informed.interchange
+-application/vnd.shana.informed.package
+-application/vnd.street-stream
+-application/vnd.svd
+-application/vnd.swiftview-ics
+-application/vnd.truedoc
+-application/vnd.visio
+-application/vnd.webturbo
+-application/vnd.wrq-hp3000-labelled
+-application/vnd.wt.stf
+-application/vnd.xara
+-application/vnd.yellowriver-custom-menu
+-application/wita
+-application/wordperfect5.1
+-application/x-bcpio           bcpio
+-application/x-cdlink          vcd
+-application/x-chess-pgn               pgn
+-application/x-compress
+-application/x-cpio            cpio
+-application/x-csh             csh
+-application/x-director                dcr dir dxr
+-application/x-dvi             dvi
+-application/x-futuresplash    spl
+-application/x-gtar            gtar
+-application/x-gzip
+-application/x-hdf             hdf
+-application/x-javascript      js
+-application/x-koan            skp skd skt skm
+-application/x-latex           latex
+-application/x-netcdf          nc cdf
+-application/x-sh              sh
+-application/x-shar            shar
+-application/x-shockwave-flash swf
+-application/x-stuffit         sit
+-application/x-sv4cpio         sv4cpio
+-application/x-sv4crc          sv4crc
+-application/x-tar             tar
+-application/x-tcl             tcl
+-application/x-tex             tex
+-application/x-texinfo         texinfo texi
+-application/x-troff           t tr roff
+-application/x-troff-man               man
+-application/x-troff-me                me
+-application/x-troff-ms                ms
+-application/x-ustar           ustar
+-application/x-wais-source     src
+-application/x400-bp
+-application/xml
+-application/zip                       zip
+-audio/32kadpcm
+-audio/basic                   au snd
+-audio/midi                    mid midi kar
+-audio/mpeg                    mpga mp2 mp3
+-audio/vnd.qcelp
+-audio/x-aiff                  aif aiff aifc
+-audio/x-pn-realaudio          ram rm
+-audio/x-pn-realaudio-plugin   rpm
+-audio/x-realaudio             ra
+-audio/x-wav                   wav
+-chemical/x-pdb                        pdb xyz
+-image/bmp                     bmp
+-image/cgm
+-image/g3fax
+-image/gif                     gif
+-image/ief                     ief
+-image/jpeg                    jpeg jpg jpe
+-image/naplps
+-image/png                     png
+-image/prs.btif
+-image/tiff                    tiff tif
+-image/vnd.dwg
+-image/vnd.dxf
+-image/vnd.fpx
+-image/vnd.net-fpx
+-image/vnd.svf
+-image/vnd.xiff
+-image/x-cmu-raster            ras
+-image/x-portable-anymap               pnm
+-image/x-portable-bitmap               pbm
+-image/x-portable-graymap      pgm
+-image/x-portable-pixmap               ppm
+-image/x-rgb                   rgb
+-image/x-xbitmap                       xbm
+-image/x-xpixmap                       xpm
+-image/x-xwindowdump           xwd
+-message/delivery-status
+-message/disposition-notification
+-message/external-body
+-message/http
+-message/news
+-message/partial
+-message/rfc822
+-model/iges                    igs iges
+-model/mesh                    msh mesh silo
+-model/vnd.dwf
+-model/vrml                    wrl vrml
+-multipart/alternative
+-multipart/appledouble
+-multipart/byteranges
+-multipart/digest
+-multipart/encrypted
+-multipart/form-data
+-multipart/header-set
+-multipart/mixed
+-multipart/parallel
+-multipart/related
+-multipart/report
+-multipart/signed
+-multipart/voice-message
+-text/css                      css
+-text/directory
+-text/enriched
+-text/html                     html htm
+-text/plain                    asc txt
+-text/prs.lines.tag
+-text/rfc822-headers
+-text/richtext                 rtx
+-text/rtf                      rtf
+-text/sgml                     sgml sgm
+-text/tab-separated-values     tsv
+-text/uri-list
+-text/vnd.abc
+-text/vnd.flatland.3dml
+-text/vnd.fmi.flexstor
+-text/vnd.in3d.3dml
+-text/vnd.in3d.spot
+-text/vnd.latex-z
+-text/x-setext                 etx
+-text/xml                      xml
+-video/mpeg                    mpeg mpg mpe
+-video/quicktime                       qt mov
+-video/vnd.motorola.video
+-video/vnd.motorola.videop
+-video/vnd.vivo
+-video/x-msvideo                       avi
+-video/x-sgi-movie             movie
+-x-conference/x-cooltalk               ice
+diff --git a/libs/xmlrpc-c/conf/abyss_root/htdocs/index.htm b/libs/xmlrpc-c/conf/abyss_root/htdocs/index.htm
+deleted file mode 100644
+index f0369a5..0000000
+--- a/libs/xmlrpc-c/conf/abyss_root/htdocs/index.htm
++++ /dev/null
+@@ -1,21 +0,0 @@
+-<HTML>
+-<HEAD>
+-<TITLE>ABYSS is working !!!</TITLE>
+-</HEAD>
+-<BODY bgColor=#80a0f0 text=#000000>
+-<H1 align=center>Congratulations, ABYSS is working !!!</H1>
+-<BR>
+-<P>
+-<B>ABYSS</B> Web Server is working correctly on your system. You should now change this
+-page with yours.
+-<BR>
+-Please include in your web pages (at least the first), the <b><i>'Powered by ABYSS'</i></b>
+-banner to promote the use of <B>ABYSS</B>.
+-</P>
+-<hr>
+-<P>
+-<CENTER><FONT size=-1>
+-Copyright Â© 2000 <A href="mailto:mmoez@bigfoot.com">Moez Mahfoudh</A>. All rights reserved.
+-</FONT>
+-<BR><BR><A href="http://abyss.linuxave.net/"><IMG border=0 src="pwrabyss.gif"></A></center></P>
+-</BODY></HTML>
+diff --git a/libs/xmlrpc-c/config.mk.in b/libs/xmlrpc-c/config.mk.in
+index b583e6e..bebfa54 100644
+--- a/libs/xmlrpc-c/config.mk.in
++++ b/libs/xmlrpc-c/config.mk.in
+@@ -27,16 +27,15 @@ ENABLE_LIBXML2_BACKEND = @ENABLE_LIBXML2_BACKEND@
+ MUST_BUILD_WININET_CLIENT = @MUST_BUILD_WININET_CLIENT@
+ MUST_BUILD_CURL_CLIENT    = @MUST_BUILD_CURL_CLIENT@
+ MUST_BUILD_LIBWWW_CLIENT  = @MUST_BUILD_LIBWWW_CLIENT@
++BUILD_TOOLS  = @BUILD_TOOLS@
++BUILD_XMLRPC_PSTREAM  = @BUILD_XMLRPC_PSTREAM@
+ LSOCKET = @LSOCKET@
+ WININET_LDADD = @WININET_LDADD@
+-WININET_RPATH = @WININET_RPATH@
+-WININET_WL_RPATH = @WININET_WL_RPATH@
++WININET_LIBDIR = @WININET_LIBDIR@
+ CURL_LDADD = @CURL_LDADD@
+-CURL_RPATH = @CURL_RPATH@
+-CURL_WL_RPATH = @CURL_WL_RPATH@
++CURL_LIBDIR = @CURL_LIBDIR@
+ LIBWWW_LDADD = @LIBWWW_LDADD@
+-LIBWWW_RPATH = @LIBWWW_RPATH@
+-LIBWWW_WL_RPATH = @LIBWWW_WL_RPATH@
++LIBWWW_LIBDIR = @LIBWWW_LIBDIR@
+ FEATURE_LIST = @FEATURE_LIST@
+ ABS_SRCDIR = @abs_srcdir@
+ PREFIX = @prefix@
+@@ -164,7 +163,10 @@ MUST_BUILD_SHLIBLE = N
+ shlibfn = $(1:%=%.shlibdummy)
+ shliblefn = $(1:%=%.shlibledummy)
+-ifeq ($(HOST_OS),linux-gnu)
++# HOST_OS is usually has a version number suffix, e.g. "aix5.3.0.0", so
++# we compare based on prefix.
++
++ifeq ($(patsubst linux-gnu%,linux-gnu,$(HOST_OS)),linux-gnu)
+   # Assume linker is GNU Compiler (gcc)
+   SHARED_LIB_TYPE = unix
+   MUST_BUILD_SHLIB = Y
+@@ -177,20 +179,28 @@ ifeq ($(HOST_OS),linux-gnu)
+   CFLAGS_SHLIB=-fPIC
+ endif
+-ifeq ($(findstring solaris,$(HOST_OS)),solaris)
++ifeq ($(patsubst solaris%,solaris,$(HOST_OS)),solaris)
+   SHARED_LIB_TYPE = unix
+   MUST_BUILD_SHLIB = Y
+   MUST_BUILD_SHLIBLE = Y
+   SHLIB_SUFFIX = so
+   shlibfn = $(1:%=%.$(SHLIB_SUFFIX).$(MAJ).$(MIN))
+   shliblefn = $(1:%=%.$(SHLIB_SUFFIX))
++  # We assume Sun compiler and linker here.  It isn't clear what to do
++  # about a user who uses GNU compiler and Ld instead.  For that, the
++  # options should be the same as "linux-gnu" platform, above, except
++  # with NEED_WL_RPATH.  If the user uses the GNU compiler but the Sun
++  # linker, it's even more complicated: we need an rpath option of the
++  # form -Wl,-R .
++
+   # Solaris compiler (Sun C 5.5) can't take multiple ld options as
+   # -Wl,-a,-b .  Ld sees -a,-b in that case.
+   LDFLAGS_SHLIB = -Wl,-Bdynamic -Wl,-G -Wl,-h -Wl,$(SONAME)
+   CFLAGS_SHLIB = -Kpic
++  NEED_RPATH=yes
+ endif
+-ifeq ($(HOST_OS),aix)
++ifeq ($(patsubst aix%,aix,$(HOST_OS)),aix)
+   SHARED_LIB_TYPE = unix
+   MUST_BUILD_SHLIB = Y
+   MUST_BUILD_SHLIBLE = Y
+@@ -200,7 +210,7 @@ ifeq ($(HOST_OS),aix)
+   LDFLAGS_SHLIB = -qmkshrobj
+ endif
+-ifeq ($(HOST_OS),hpux)
++ifeq ($(patsubst hpux%,hpux,$(HOST_OS)),hpux)
+   SHARED_LIB_TYPE = unix
+   MUST_BUILD_SHLIB = Y
+   MUST_BUILD_SHLIBLE = Y
+@@ -210,7 +220,7 @@ ifeq ($(HOST_OS),hpux)
+   LDFLAGS_SHLIB: -shared -fPIC
+ endif
+-ifeq ($(HOST_OS),osf)
++ifeq ($(patsubst osf%,osf,$(HOST_OS)),osf)
+   SHARED_LIB_TYPE = unix
+   MUST_BUILD_SHLIB = Y
+   MUST_BUILD_SHLIBLE = Y
+@@ -220,7 +230,7 @@ ifeq ($(HOST_OS),osf)
+   LDFLAGS_SHLIB = -shared -expect_unresolved
+ endif
+-ifeq ($(findstring netbsd,$(HOST_OS)),netbsd)
++ifeq ($(patsubst netbsd%,netbsd,$(HOST_OS)),netbsd)
+   SHARED_LIB_TYPE = unix
+   SHLIB_SUFFIX = so
+   MUST_BUILD_SHLIB = Y
+@@ -232,7 +242,31 @@ ifeq ($(findstring netbsd,$(HOST_OS)),netbsd)
+   NEED_WL_RPATH=yes
+ endif
+-ifeq ($(HOST_OS),dragonfly)
++ifeq ($(patsubst freebsd%,freebsd,$(HOST_OS)),freebsd)
++  SHARED_LIB_TYPE = unix
++  SHLIB_SUFFIX = so
++  MUST_BUILD_SHLIB = Y
++  MUST_BUILD_SHLIBLE = Y
++  shlibfn = $(1:%=%.$(SHLIB_SUFFIX).$(MAJ).$(MIN))
++  shliblefn = $(1:%=%.$(SHLIB_SUFFIX))
++  CFLAGS_SHLIB = -fpic
++  LDFLAGS_SHLIB = -shared -Wl,-soname,$(SONAME) $(SHLIB_CLIB)
++  NEED_WL_RPATH=yes
++endif
++
++ifeq ($(findstring interix,$(HOST_OS)),interix)
++  SHARED_LIB_TYPE = unix
++  SHLIB_SUFFIX = so
++  MUST_BUILD_SHLIB = Y
++  MUST_BUILD_SHLIBLE = Y
++  shlibfn = $(1:%=%.$(SHLIB_SUFFIX).$(MAJ).$(MIN))
++  shliblefn = $(1:%=%.$(SHLIB_SUFFIX))
++  CFLAGS_SHLIB =
++  LDFLAGS_SHLIB = -shared -Wl,-soname,$(SONAME) $(SHLIB_CLIB)
++  NEED_WL_RPATH=yes
++endif
++
++ifeq ($(patsubst dragonfly%,dragonfly,$(HOST_OS)),dragonfly)
+   SHARED_LIB_TYPE = unix
+   MUST_BUILD_SHLIB = Y
+   MUST_BUILD_SHLIBLE = Y
+@@ -243,7 +277,7 @@ ifeq ($(HOST_OS),dragonfly)
+   LDFLAGS_SHLIB = -shared -Wl,-soname,$(SONAME) $(SHLIB_CLIB)
+ endif
+-ifeq ($(HOST_OS),beos)
++ifeq ($(patsubst beos%,beos,$(HOST_OS)),beos)
+   SHARED_LIB_TYPE = unix
+   MUST_BUILD_SHLIB = Y
+   MUST_BUILD_SHLIBLE = Y
+@@ -253,18 +287,18 @@ ifeq ($(HOST_OS),beos)
+   LDFLAGS_SHLIB = -nostart
+ endif
+-ifeq ($(patsubst darwin%, darwin, $(HOST_OS)), darwin)
+-  # (I once saw a system that generated 'darwin8.10.1').
++ifeq ($(patsubst darwin%,darwin,$(HOST_OS)),darwin)
+   SHARED_LIB_TYPE = dylib
+   MUST_BUILD_SHLIB = Y
+   MUST_BUILD_SHLIBLE = Y
+   SHLIB_SUFFIX = dylib
+   shlibfn = $(1:%=%.$(MAJ).$(MIN).$(SHLIB_SUFFIX))
+   shliblefn = $(1:%=%.$(SHLIB_SUFFIX))
+-  LDFLAGS_SHLIB = -shared -Wl,-soname,$(SONAME) $(SHLIB_CLIB)
++  LDFLAGS_SHLIB = -dynamiclib -undefined suppress -single_module \
++      -flat_namespace $(SHLIB_CLIB)
+ endif
+-ifeq ($(HOST_OS),irix)
++ifeq ($(patsubst irix%,irix,$(HOST_OS)),irix)
+   SHARED_LIB_TYPE = irix
+   MUST_BUILD_SHLIB = Y
+   MUST_BUILD_SHLIBLE = Y
+@@ -278,13 +312,13 @@ ifeq ($(HOST_OS),irix)
+     -set_version $(shell perl -e '$(VERSIONPERLPROG)') -lc
+ endif
+-ifeq ($(HOST_OS),cygwin)
++ifeq ($(patsubst cygwin%,cygwin,$(HOST_OS)),cygwin)
+   SHARED_LIB_TYPE = dll
+   MUST_BUILD_SHLIB = Y
+   MUST_BUILD_SHLIBLE = N
+   SHLIB_SUFFIX = dll
+-  shlibfn = $(1:lib%=$(SHLIB_PREFIX)%.$(SHLIB_SUFFIX).$(MAJ).$(MIN))
+-  shliblefn = $(1:%=%.shlibledummy)
++  shlibfn = $(1:%=%.$(SHLIB_SUFFIX))
++  shliblefn = $(1:%=%.$(SHLIB_SUFFIX))
+   LDFLAGS_SHLIB = -shared -Wl,-soname,$(SONAME) $(SHLIB_CLIB)
+ endif
+@@ -293,12 +327,12 @@ endif
+ ##############################################################################
+ # BUILDTOOL_CC is the compiler to use to generate build tools, which we
+-# will then run to build product.  The typical reason this would be
++# will then run to build the product.  The typical reason this would be
+ # different from CC is that you're cross-compiling: the product will run
+ # in Environment A, but you're building in Environment B, so you must
+-# build the build toos for Environment B.
++# build the build tools for Environment B.
+-# The cross compiling user can update Makefile.config or override
++# The cross compiling user can update config.mk or override
+ # BUILDTOOL_CC on a make command.
+ BUILDTOOL_CC = $(CC)
+@@ -316,9 +350,18 @@ INSTALL_SCRIPT = $(INSTALL) -c -m 755
+ # PREFIX is designed to be overridden at make time if the user decides
+ # he doesn't like the default specified at 'configure' time.
+-LIBINST_DIR = $(PREFIX)/lib
+-HEADERINST_DIR = $(PREFIX)/include
+-PROGRAMINST_DIR = $(PREFIX)/bin
++prefix = $(PREFIX)
++
++#datarootdir is the new Autoconf(2.60) name for datadir, which is still
++#accepted, but a warning is issued if datarootdir is not also used.
++
++exec_prefix = @exec_prefix@
++DATAROOT_DIR = @datarootdir@
++DATAINST_DIR = @datadir@
++LIBINST_DIR = @libdir@
++HEADERINST_DIR = @includedir@
++PROGRAMINST_DIR = @bindir@
++MANINST_DIR = @mandir@/man1
+ # DESTDIR is designed to be overridden at make time in order to relocate
+ # the entire install into a subdirectory.
+diff --git a/libs/xmlrpc-c/configure.gnu b/libs/xmlrpc-c/configure.gnu
+deleted file mode 100644
+index dda9b7d..0000000
+--- a/libs/xmlrpc-c/configure.gnu
++++ /dev/null
+@@ -1,4 +0,0 @@
+-#! /bin/sh
+-srcpath=$(dirname $0 2>/dev/null )  || srcpath="." 
+-$srcpath/configure "$@" --disable-cplusplus --disable-wininet-client --disable-libwww-client --disable-shared --with-pic --disable-curl-client
+-
+diff --git a/libs/xmlrpc-c/configure.in b/libs/xmlrpc-c/configure.in
+index 231a1d3..8fbe80a 100644
+--- a/libs/xmlrpc-c/configure.in
++++ b/libs/xmlrpc-c/configure.in
+@@ -86,10 +86,45 @@ AC_MSG_RESULT($MUST_BUILD_LIBWWW_CLIENT)
+ AC_SUBST(MUST_BUILD_LIBWWW_CLIENT)
++AC_ARG_ENABLE(tools,
++  [  --enable-tools            Build the tools], , 
++[enable_tools=no])
++
++# The first AC_CHECK_LIB has to be in unconditional code because as a
++# side effect, it determines what the object file suffix is on this system,
++# and if it is statically present even though not actually executed, Autoconf
++# later thinks it has already computed the object file suffix and uses it
++# without computing it.  This was with Autoconf 2.59
++AC_CHECK_LIB(ncurses, main, [have_libncurses=yes], [have_libncurses=no])
++AC_CHECK_LIB(readline, main, [have_libreadline=yes], [have_libreadline=no])
++
++AC_MSG_CHECKING(whether to build tools)
++
++BUILD_XMLRPC_PSTREAM=no
++
++if test $enable_tools = yes; then
++  if ! test "$MUST_BUILD_WININET_CLIENT $MUST_BUILD_CURL_CLIENT $MUST_BUILD_LIBWWW_CLIENT" = "no no no"; then
++    if test $have_libreadline = yes && test $have_libncurses = yes; then
++      BUILD_XMLRPC_PSTREAM=yes
++    fi
++    BUILD_TOOLS=yes
++  fi
++else
++  BUILD_TOOLS=$enable_tools
++fi
++
++AC_MSG_RESULT($BUILD_TOOLS)
++AC_SUBST(BUILD_TOOLS)
++
++if test $BUILD_TOOLS = yes; then
++  AC_MSG_CHECKING(whether to build the xmlrpc_pstream tool)
++  AC_MSG_RESULT($BUILD_XMLRPC_PSTREAM)
++  AC_SUBST(BUILD_XMLRPC_PSTREAM)
++fi
++
++
+ dnl Set up the appropriate Makefile substitutions.
+-LIBXMLRPC_CLIENT_LA=libxmlrpc_client.la
+-AC_SUBST(LIBXMLRPC_CLIENT_LA)
+ CLIENTTEST=clienttest
+ AC_SUBST(CLIENTTEST)
+ XMLRPC_CLIENT_H=xmlrpc_client.h
+@@ -126,7 +161,6 @@ AC_SUBST(ENABLE_ABYSS_SERVER)
+ dnl Set up the appropriate Makefile substitutions.
+ ABYSS_SUBDIR=
+-LIBXMLRPC_ABYSS_SERVER_LA=
+ SERVERTEST=
+ VALIDATEE=
+ XMLRPC_ABYSS_H=
+@@ -134,14 +168,12 @@ SERVER=
+ if test x"$enable_abyss_server" != xno; then
+     FEATURE_LIST="abyss-server $FEATURE_LIST"
+     ABYSS_SUBDIR=abyss
+-    LIBXMLRPC_ABYSS_SERVER_LA=libxmlrpc_abyss_server.la
+     SERVERTEST=servertest
+     VALIDATEE=validatee
+     XMLRPC_ABYSS_H=xmlrpc_abyss.h
+     SERVER=server
+ fi
+ AC_SUBST(ABYSS_SUBDIR)
+-AC_SUBST(LIBXMLRPC_ABYSS_SERVER_LA)
+ AC_SUBST(SERVERTEST)
+ AC_SUBST(VALIDATEE)
+ AC_SUBST(XMLRPC_ABYSS_H)
+@@ -198,7 +230,9 @@ dnl Checks for programs.
+ dnl =======================================================================
+ AC_PROG_CC
+-AC_PROG_CXX
++if test x"$enable_cplusplus" != xno; then
++    AC_PROG_CXX
++fi
+ dnl =======================================================================
+@@ -272,6 +306,14 @@ else
+ fi
+ AC_SUBST(HAVE_SYS_IOCTL_H_DEFINE)
++AC_CHECK_HEADERS(sys/select.h)
++if test x"$ac_cv_header_sys_select_h" = xyes; then
++  HAVE_SYS_SELECT_H_DEFINE=1
++else
++  HAVE_SYS_SELECT_H_DEFINE=0
++fi
++AC_SUBST(HAVE_SYS_SELECT_H_DEFINE)
++
+ AC_CHECK_HEADERS(stdarg.h, , [
+ AC_MSG_ERROR(stdarg.h is required to build this library)
+@@ -329,7 +371,7 @@ AC_CHECK_FUNCS(setgroups)
+ AC_CHECK_FUNCS(asprintf)
+-AC_CHECK_FUNCS(setenv)
++AC_CHECK_FUNCS(setenv strtoll strtoull strtoq strtouq __strtoll __strtoull)
+ dnl uclib doesn't have pselect
+ AC_CHECK_FUNCS(pselect)
+@@ -380,22 +422,22 @@ dnl you will need to configure this way..
+ if test $MUST_BUILD_WININET_CLIENT = yes; then
+-    dnl You can control which of these gets chosen by fooling around with PATH.
++    dnl You can control which of these gets chosen by controlling PATH.
+     AC_PATH_PROGS(WININET_CONFIG, wininet-xmlrpc-config wininet-config, no)
+     if test "x$WININET_CONFIG" = "xno"; then
+-        AC_MSG_ERROR(wininet lib not found; see './configure --help')
++        AC_MSG_ERROR(Configure INTERNAL ERROR - first wininet-config found, then not found)
+     fi
+     dnl Get our wininet version.
+     dnl Adapted from a macro which called gtk-config.
+     AC_MSG_CHECKING(for wininet version >= 1.0.0)
+-    W3VER=`$WININET_CONFIG --version`
++    W3VER=$($WININET_CONFIG --version)
+     WININET_MAJOR=\
+-`echo $W3VER|sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
++$(echo $W3VER|sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/')
+     WININET_MINOR=\
+-`echo $W3VER|sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
++$(echo $W3VER|sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/')
+     WININET_MICRO=\
+-`echo $W3VER|sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
++$(echo $W3VER|sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/')
+     AC_MSG_RESULT($WININET_MAJOR.$WININET_MINOR.$WININET_MICRO)
+     dnl Check to make sure our version is OK.
+@@ -417,61 +459,44 @@ if test $MUST_BUILD_WININET_CLIENT = yes; then
+     fi
+     dnl Get the necessary CFLAGS, and merge them into our master list.
+-    WININET_CFLAGS="`$WININET_CONFIG --cflags`"
++    WININET_CFLAGS=$($WININET_CONFIG --cflags)
+     AC_SUBST(WININET_CFLAGS)
+     CFLAGS="$CFLAGS $WININET_CFLAGS" 
+     dnl Get the huge list of libraries we need to link against.
+-    WININET_LDADD="`$WININET_CONFIG --libs`"
++    WININET_LDADD=$($WININET_CONFIG --libs)
+     AC_SUBST(WININET_LDADD)
+-    dnl Oh, such massive brain damage! Because there may be another copy
+-    dnl of libwww in the default dynamic loader search path, we need to
+-    dnl adjust the search patch manually. Just gag me with a backquote, OK?
+     AC_MSG_CHECKING(for wininet library directory)
+-    if $WININET_CONFIG --rpath-dir > /dev/null 2>&1; then
+-       dnl Yay! We're using our smart version of wininet.
+-       WININET_LIBDIR="`$WININET_CONFIG --rpath-dir`"
+-    else
+-       dnl Yawn. We're using the regular boring version.
+-       WININET_LIBDIR="`$WININET_CONFIG --prefix`/lib"
+-    fi
++    WININET_LIBDIR="$($WININET_CONFIG --prefix)/lib"
+     AC_MSG_RESULT($WININET_LIBDIR)
+     AC_SUBST(WININET_LIBDIR)
+-    WININET_RPATH="-rpath $WININET_LIBDIR"
+-    AC_SUBST(WININET_RPATH)
+-    WININET_WL_RPATH="-Wl,--rpath -Wl,$WININET_LIBDIR"
+-    AC_SUBST(WININET_WL_RPATH)
+ fi # MUST_BUILD_WININET_CLIENT
+ dnl =======================================================================
+ dnl Finding w3c-libwww
+ dnl =======================================================================
+-dnl Once upon a time, we used a patched copy of libwww that needed to
+-dnl co-exist with the system copy of libwww. We have some vestigal function
+-dnl for keeping track of libwww's rpath, although this is no longer really
+-dnl necessary.
+ if test $MUST_BUILD_LIBWWW_CLIENT = yes; then
+-    dnl First of all, locate the semi-broken libwww config program.
+-    dnl You can control which of these gets chosen by fooling around with PATH.
++    dnl First of all, locate the libwww config program.
++    dnl You can control which of these gets chosen by controlling PATH.
+     AC_PATH_PROGS(LIBWWW_CONFIG, libwww-xmlrpc-config libwww-config, no)
+     if test "x$LIBWWW_CONFIG" = "xno"; then
+-        AC_MSG_ERROR(w3c-libwww not found; see './configure --help')
++        AC_MSG_ERROR(Configure INTERNAL ERROR - first libwww-config found, then not found)
+     fi
+     dnl Get our libwww version.
+     dnl Adapted from a macro which called gtk-config.
+     AC_MSG_CHECKING(for w3c-libwww version >= 5.2.8)
+-    W3VER=`$LIBWWW_CONFIG --version`
++    W3VER=$($LIBWWW_CONFIG --version)
+     LIBWWW_MAJOR=\
+-`echo $W3VER|sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
++$(echo $W3VER|sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/')
+     LIBWWW_MINOR=\
+-`echo $W3VER|sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
++$(echo $W3VER|sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/')
+     LIBWWW_MICRO=\
+-`echo $W3VER|sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
++$(echo $W3VER|sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/')
+     AC_MSG_RESULT($LIBWWW_MAJOR.$LIBWWW_MINOR.$LIBWWW_MICRO)
+     dnl Check to make sure our version is OK.
+@@ -493,78 +518,46 @@ if test $MUST_BUILD_LIBWWW_CLIENT = yes; then
+     fi
+     dnl Get the huge list of libraries we need to link against.
+-    LIBWWW_LDADD="`$LIBWWW_CONFIG --libs`"
++    LIBWWW_LDADD=$(LIBWWW_CONFIG --libs)
+     AC_SUBST(LIBWWW_LDADD)
+-    dnl Oh, such massive brain damage! Because there may be another copy
+-    dnl of libwww in the default dynamic loader search path, we need to
+-    dnl adjust the search patch manually. Just gag me with a backquote, OK?
+     AC_MSG_CHECKING(for libwww library directory)
+-    if $LIBWWW_CONFIG --rpath-dir > /dev/null 2>&1; then
+-       dnl Yay! We're using our smart version of libwww.
+-       LIBWWW_LIBDIR="`$LIBWWW_CONFIG --rpath-dir`"
+-    else
+-       dnl Yawn. We're using the regular boring version.
+-       LIBWWW_LIBDIR="`$LIBWWW_CONFIG --prefix`/lib"
+-    fi
++    LIBWWW_LIBDIR="$(LIBWWW_CONFIG --prefix)/lib"
+     AC_MSG_RESULT($LIBWWW_LIBDIR)
+     AC_SUBST(LIBWWW_LIBDIR)
+-    # Some ancient rpath stuff, now disabled.  I turned this off because it
+-    # breaks Debian (and Mandrake?) policy, and we don't use it anymore.
+-    # If you have multiple copies of w3c-libwww lying around, you can turn
+-    # it back on.
+-    #LIBWWW_RPATH="-rpath $LIBWWW_LIBDIR"
+-    LIBWWW_RPATH=""
+-    AC_SUBST(LIBWWW_RPATH)
+-    #LIBWWW_WL_RPATH="-Wl,--rpath -Wl,$LIBWWW_LIBDIR"
+-    LIBWWW_WL_RPATH=""
+-    AC_SUBST(LIBWWW_WL_RPATH)
+-
+ fi # MUST_BUILD_LIBWWW_CLIENT
+ dnl =======================================================================
+-dnl Finding cURL
++dnl Finding Curl
+ dnl =======================================================================
+ if test $MUST_BUILD_CURL_CLIENT = yes; then
+-    dnl First of all, locate the curl config program.
+-    dnl You can control which of these gets chosen by fooling around with PATH.
++    dnl First of all, locate the Curl config program.
++    dnl You can control which of these gets chosen by controlling PATH.
+     AC_PATH_PROGS(CURL_CONFIG, curl-xmlrpc-config curl-config, no)
+     if test "x$CURL_CONFIG" = "xno"; then
+-        AC_MSG_ERROR(cURL not found; see './configure --help')
++        AC_MSG_ERROR(Configure INTERNAL ERROR - first curl-config found, then not found)
+     fi
+     
+     dnl There used to be code here to check the Curl version and make sure
+     dnl it is at least 7.8.  But there were bugs both in the code and in 
+-    dnl curl (curl-config --vernum, at least in older versios of Curl,
++    dnl curl (curl-config --vernum, at least in older versions of Curl,
+     dnl omits the leading zero).  So it didn't work.  Plus, checking version
+     dnl numbers isn't a good idea.  Better to check for feature presence.
+     dnl So we don't do any check now.  If we find out there's a problem with
+     dnl older Curls, we will revisit that.
+-    dnl Get the huge list of libraries we need to link against.
+-    dnl MRB-20010516-For some reason, curl-config
+-    dnl does not list itself '-lcurl'.  2004.12.12.  It seems to do so
+-    dnl now.
+-    CURL_LDADD=`$CURL_CONFIG --libs`
++    CURL_LDADD=$($CURL_CONFIG --libs)
+     AC_SUBST(CURL_LDADD)
+-    dnl Oh, such massive brain damage! Because there may be another copy
+-    dnl of curl in the default dynamic loader search path, we need to
+-    dnl adjust the search path manually. Just gag me with a backquote, OK?
+-    AC_MSG_CHECKING(for curl library directory)
+-    dnl Yawn. We're using the regular boring version.
+-    CURL_LIBDIR="`$CURL_CONFIG --prefix`/lib"
++    AC_MSG_CHECKING(for Curl library directory)
++    CURL_LIBDIR="$($CURL_CONFIG --prefix)/lib"
+     AC_MSG_RESULT($CURL_LIBDIR)
+     AC_SUBST(CURL_LIBDIR)
+-    CURL_RPATH="-rpath $CURL_LIBDIR"
+-    AC_SUBST(CURL_RPATH)
+-    CURL_WL_RPATH="-Wl,--rpath -Wl,$CURL_LIBDIR"
+-    AC_SUBST(CURL_WL_RPATH)
+ fi # MUST_BUILD_CURL_CLIENT
+@@ -620,7 +613,7 @@ CPP_WARN_FLAGS=
+ AC_SUBST(CPP_WARN_FLAGS)
+-BUILDDIR=`pwd`
++BUILDDIR=$(pwd)
+ AC_SUBST(BUILDDIR)
+@@ -632,7 +625,7 @@ dnl Note that AM_CONFIG_HEADER at the top of this file outputs another
+ dnl result: xmlrpc_amconfig.h .
+ AC_OUTPUT( \
+-          Makefile.srcdir \
++          srcdir.mk \
+           config.mk \
+           xmlrpc_config.h \
+           )
+@@ -647,7 +640,9 @@ fi
+ if test "$MUST_BUILD_WININET_CLIENT $MUST_BUILD_CURL_CLIENT $MUST_BUILD_LIBWWW_CLIENT" = "no no no"; then
+-  AC_MSG_NOTICE([\n\n==>We are not building any client XML transport (see earlier messages explaining why), therefore WE WILL NOT BUILD THE CLIENT LIBRARY.])
++  AC_MSG_NOTICE([==>])
++  AC_MSG_NOTICE([==>We are not building any client XML transport (see earlier messages explaining why), therefore WE WILL NOT BUILD THE CLIENT LIBRARY.])
++  AC_MSG_NOTICE([==>])
+ fi
+diff --git a/libs/xmlrpc-c/debian/README.Debian b/libs/xmlrpc-c/debian/README.Debian
+deleted file mode 100644
+index 830df77..0000000
+--- a/libs/xmlrpc-c/debian/README.Debian
++++ /dev/null
+@@ -1,7 +0,0 @@
+-xmlrpc-c for Debian
+--------------------
+-
+-This is my first attempt at porting my RPM packages to Debian.  User
+-beware!
+-
+- -- Eric Kidd <eric.kidd@pobox.com>, Tue, 26 Jun 2001 12:39:39 -0400
+diff --git a/libs/xmlrpc-c/debian/changelog b/libs/xmlrpc-c/debian/changelog
+deleted file mode 100644
+index 848fac8..0000000
+--- a/libs/xmlrpc-c/debian/changelog
++++ /dev/null
+@@ -1,22 +0,0 @@
+-xmlrpc-c (0.9.10-1) unstable; urgency=low
+-
+-  * Updated from new upstream release.
+-
+- -- Eric Kidd <eric.kidd@pobox.com>  Sun,  1 Jul 2001 10:45:51 -0400
+-
+-xmlrpc-c (0.9.9-2) unstable; urgency=low
+-
+-  * Added man pages.
+-  * Improved depends for xmlrpc-c-dev.
+-
+- -- Eric Kidd <eric.kidd@pobox.com>  Wed, 27 Jun 2001 12:25:52 -0400
+-
+-xmlrpc-c (0.9.9-1) unstable; urgency=low
+-
+-  * Initial Release.
+-
+- -- Eric Kidd <eric.kidd@pobox.com>  Tue, 26 Jun 2001 12:39:39 -0400
+-
+-Local variables:
+-mode: debian-changelog
+-End:
+diff --git a/libs/xmlrpc-c/debian/control b/libs/xmlrpc-c/debian/control
+deleted file mode 100644
+index 45bd020..0000000
+--- a/libs/xmlrpc-c/debian/control
++++ /dev/null
+@@ -1,30 +0,0 @@
+-Source: xmlrpc-c
+-Section: devel
+-Priority: optional
+-Maintainer: Eric Kidd <eric.kidd@pobox.com>
+-Build-Depends: debhelper (>> 3.0.0), libwww0 (>= 5.3.2), libwww-dev (>= 5.3.2)
+-Standards-Version: 3.5.2
+-
+-Package: xmlrpc-c0
+-Architecture: any
+-Depends: ${shlibs:Depends}
+-Description: A library implementing XML-based remote procedure calls
+- XML-RPC is a lightweight RPC protocol based on XML and HTTP. This package
+- is used by XML-RPC clients and servers written in C and C++. 
+-
+-Package: xmlrpc-c-dev
+-Architecture: any
+-Depends: xmlrpc-c0 (= ${Source-Version}), libc6-dev, libstdc++-dev, libfrontier-rpc-perl
+-Description: Libraries and header files for developing XML-RPC applications
+- Static libraries and header files for writing XML-RPC applications in C and
+- C++.
+-
+-Package: xmlrpc-c-apps
+-Architecture: any
+-Depends: xmlrpc-c0 (= ${Source-Version}), ${shlibs:Depends}
+-Description: Sample XML-RPC applications
+- Some handy XML-RPC demo applications based on the Meerkat Open Wire Service
+- (found at http://www.oreillynet.com/meerkat/). You can use 'query-meerkat' to
+- perform a regex search on recent news items, or 'meerkat-app-list' to get
+- a list of recent Linux software releases.
+-
+diff --git a/libs/xmlrpc-c/debian/copyright b/libs/xmlrpc-c/debian/copyright
+deleted file mode 100644
+index 8873b9d..0000000
+--- a/libs/xmlrpc-c/debian/copyright
++++ /dev/null
+@@ -1,128 +0,0 @@
+-This software package is covered by the XML-RPC C Library License.
+-Additionally, certain parts of this library are derived from pre-existing
+-code, which may carry its own license.
+-
+-In particular, the Expat Licence applies to the contents of the directory
+-lib/expat, the ABYSS Web Server License applies to the contents of the
+-directory lib/abyss and parts of the file src/xmlrpc_abyss.c, and the
+-Python 1.5.2 license applies to parts of the file src/xmlrpc_base64.c.
+-
+-And as for the tools/ directory, you'll have to examine the licenses on
+-your own.
+-
+-
+-                     XML-RPC C Library License
+-                     -------------------------
+-
+-Copyright (C) 2001 by First Peer, Inc. All rights reserved.
+-Copyright (C) 2001 by Eric Kidd. All rights reserved.
+-
+-Redistribution and use in source and binary forms, with or without
+-modification, are permitted provided that the following conditions
+-are met:
+-1. Redistributions of source code must retain the above copyright
+-   notice, this list of conditions and the following disclaimer.
+-2. Redistributions in binary form must reproduce the above copyright
+-   notice, this list of conditions and the following disclaimer in the
+-   documentation and/or other materials provided with the distribution.
+-3. The name of the author may not be used to endorse or promote products
+-   derived from this software without specific prior written permission. 
+- 
+-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-SUCH DAMAGE.
+-
+-
+-                     Expat License
+-                     -------------
+-
+-Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
+-
+-Permission is hereby granted, free of charge, to any person obtaining
+-a copy of this software and associated documentation files (the
+-"Software"), to deal in the Software without restriction, including
+-without limitation the rights to use, copy, modify, merge, publish,
+-distribute, sublicense, and/or sell copies of the Software, and to
+-permit persons to whom the Software is furnished to do so, subject to
+-the following conditions:
+-
+-The above copyright notice and this permission notice shall be included
+-in all copies or substantial portions of the Software.
+-
+-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+-
+-
+-                     ABYSS Web Server License
+-                     ------------------------
+-
+-Copyright (C) 2000 by Moez Mahfoudh <mmoez@bigfoot.com>. All rights reserved.
+-
+-Redistribution and use in source and binary forms, with or without
+-modification, are permitted provided that the following conditions
+-are met:
+-1. Redistributions of source code must retain the above copyright
+-   notice, this list of conditions and the following disclaimer.
+-2. Redistributions in binary form must reproduce the above copyright
+-   notice, this list of conditions and the following disclaimer in the
+-   documentation and/or other materials provided with the distribution.
+-3. The name of the author may not be used to endorse or promote products
+-   derived from this software without specific prior written permission. 
+- 
+-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-SUCH DAMAGE.
+-
+-
+-
+-                     Python 1.5.2 License
+-                     --------------------
+-
+-Copyright 1991, 1992, 1993, 1994 by Stichting Mathematisch Centrum,
+-Amsterdam, The Netherlands.
+-
+-                        All Rights Reserved
+-
+-Permission to use, copy, modify, and distribute this software and its
+-documentation for any purpose and without fee is hereby granted,
+-provided that the above copyright notice appear in all copies and that
+-both that copyright notice and this permission notice appear in
+-supporting documentation, and that the names of Stichting Mathematisch
+-Centrum or CWI or Corporation for National Research Initiatives or
+-CNRI not be used in advertising or publicity pertaining to
+-distribution of the software without specific, written prior
+-permission.
+-
+-While CWI is the initial source for this software, a modified version
+-is made available by the Corporation for National Research Initiatives
+-(CNRI) at the Internet address ftp://ftp.python.org.
+-
+-STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH
+-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
+-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH
+-CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
+-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+-PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+-PERFORMANCE OF THIS SOFTWARE.
+diff --git a/libs/xmlrpc-c/debian/postinst b/libs/xmlrpc-c/debian/postinst
+deleted file mode 100644
+index a7b0408..0000000
+--- a/libs/xmlrpc-c/debian/postinst
++++ /dev/null
+@@ -1,47 +0,0 @@
+-#! /bin/sh
+-# postinst script for xmlrpc-c
+-#
+-# see: dh_installdeb(1)
+-
+-set -e
+-
+-# summary of how this script can be called:
+-#        * <postinst> `configure' <most-recently-configured-version>
+-#        * <old-postinst> `abort-upgrade' <new version>
+-#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+-#          <new-version>
+-#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+-#          <failed-install-package> <version> `removing'
+-#          <conflicting-package> <version>
+-# for details, see /usr/share/doc/packaging-manual/
+-#
+-# quoting from the policy:
+-#     Any necessary prompting should almost always be confined to the
+-#     post-installation script, and should be protected with a conditional
+-#     so that unnecessary prompting doesn't happen if a package's
+-#     installation fails and the `postinst' is called with `abort-upgrade',
+-#     `abort-remove' or `abort-deconfigure'.
+-
+-case "$1" in
+-    configure)
+-    ldconfig
+-    ;;
+-
+-    abort-upgrade|abort-remove|abort-deconfigure)
+-
+-    ;;
+-
+-    *)
+-        echo "postinst called with unknown argument \`$1'" >&2
+-        exit 0
+-    ;;
+-esac
+-
+-# dh_installdeb will replace this with shell code automatically
+-# generated by other debhelper scripts.
+-
+-#DEBHELPER#
+-
+-exit 0
+-
+-
+diff --git a/libs/xmlrpc-c/debian/postrm b/libs/xmlrpc-c/debian/postrm
+deleted file mode 100644
+index 3294e0a..0000000
+--- a/libs/xmlrpc-c/debian/postrm
++++ /dev/null
+@@ -1,39 +0,0 @@
+-#! /bin/sh
+-# postrm script for xmlrpc-c
+-#
+-# see: dh_installdeb(1)
+-
+-set -e
+-
+-# summary of how this script can be called:
+-#        * <postrm> `remove'
+-#        * <postrm> `purge'
+-#        * <old-postrm> `upgrade' <new-version>
+-#        * <new-postrm> `failed-upgrade' <old-version>
+-#        * <new-postrm> `abort-install'
+-#        * <new-postrm> `abort-install' <old-version>
+-#        * <new-postrm> `abort-upgrade' <old-version>
+-#        * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+-# for details, see /usr/share/doc/packaging-manual/
+-
+-case "$1" in
+-    remove)
+-      ldconfig
+-        ;;
+-   
+-    purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+-
+-        ;;
+-
+-    *)
+-        echo "postrm called with unknown argument \`$1'" >&2
+-        exit 0
+-
+-esac
+-
+-# dh_installdeb will replace this with shell code automatically
+-# generated by other debhelper scripts.
+-
+-#DEBHELPER#
+-
+-
+diff --git a/libs/xmlrpc-c/debian/rules b/libs/xmlrpc-c/debian/rules
+deleted file mode 100644
+index c7c728c..0000000
+--- a/libs/xmlrpc-c/debian/rules
++++ /dev/null
+@@ -1,97 +0,0 @@
+-#!/usr/bin/make -f
+-# Sample debian/rules that uses debhelper.
+-# GNU copyright 1997 to 1999 by Joey Hess.
+-
+-# Uncomment this to turn on verbose mode.
+-#export DH_VERBOSE=1
+-
+-# This is the debhelper compatability version to use.
+-export DH_COMPAT=3
+-
+-# shared library versions, option 1
+-#version=2.0.5
+-#major=2
+-# option 2, assuming the library is created as src/.libs/libfoo.so.2.0.5 or so
+-version=`ls src/.libs/lib*.so.* | \
+- awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
+-major=`ls src/.libs/lib*.so.* | \
+- awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`
+-
+-configure: configure-stamp
+-configure-stamp:
+-      dh_testdir
+-      # Add here commands to configure the package.
+-      ./configure --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info
+-
+-      touch configure-stamp
+-
+-build: configure-stamp build-stamp
+-build-stamp:
+-      dh_testdir
+-
+-      # Add here commands to compile the package.
+-      $(MAKE)
+-      $(MAKE) check
+-
+-      touch build-stamp
+-
+-clean:
+-      dh_testdir
+-      dh_testroot
+-      rm -f build-stamp configure-stamp
+-
+-      # Add here commands to clean up after the build process.
+-      -$(MAKE) distclean
+-
+-      dh_clean
+-
+-install: build
+-      dh_testdir
+-      dh_testroot
+-      dh_clean -k
+-      dh_installdirs
+-
+-      # Add here commands to install the package into debian/tmp
+-      $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+-
+-
+-# Build architecture-independent files here.
+-binary-indep: build install
+-# We have nothing to do by default.
+-
+-# Build architecture-dependent files here.
+-binary-arch: build install
+-      dh_testdir
+-      dh_testroot
+-      dh_movefiles
+-
+-#     dh_installdebconf       
+-      dh_installdocs
+-      dh_installexamples
+-      dh_installmenu
+-#     dh_installlogrotate
+-#     dh_installemacsen
+-#     dh_installpam
+-#     dh_installmime
+-#     dh_installinit
+-      dh_installcron
+-#     dh_installman debian/xmlrpc-c.7
+-#     dh_installman -p xmlrpc-c-dev debian/xml-rpc-api2cpp.1 debian/xml-rpc-api2txt.1 debian/xmlrpc-c-config.1
+-#     dh_installman -p xmlrpc-c-apps debian/meerkat-app-list.1 debian/query-meerkat.1
+-      dh_installinfo
+-#     dh_undocumented
+-      dh_installchangelogs 
+-      dh_link
+-      dh_strip
+-      dh_compress
+-      dh_fixperms
+-      dh_makeshlibs
+-      dh_installdeb
+-#     dh_perl
+-      dh_shlibdeps -l"$(CURDIR)/debian/xmlrpc-c0/usr/lib/:$$LD_LIBRARY_PATH"
+-      dh_gencontrol
+-      dh_md5sums
+-      dh_builddeb
+-
+-binary: binary-indep binary-arch
+-.PHONY: build clean binary-indep binary-arch binary install configure
+diff --git a/libs/xmlrpc-c/debian/xmlrpc-c-apps.files b/libs/xmlrpc-c/debian/xmlrpc-c-apps.files
+deleted file mode 100644
+index 3f005c6..0000000
+--- a/libs/xmlrpc-c/debian/xmlrpc-c-apps.files
++++ /dev/null
+@@ -1,4 +0,0 @@
+-usr/bin/query-meerkat
+-usr/bin/meerkat-app-list
+-usr/share/man/man1/query-meerkat.1
+-usr/share/man/man1/meerkat-app-list.1
+diff --git a/libs/xmlrpc-c/debian/xmlrpc-c-dev.files b/libs/xmlrpc-c/debian/xmlrpc-c-dev.files
+deleted file mode 100644
+index f1cc55d..0000000
+--- a/libs/xmlrpc-c/debian/xmlrpc-c-dev.files
++++ /dev/null
+@@ -1,10 +0,0 @@
+-usr/bin/xmlrpc-c-config
+-usr/bin/xml-rpc-api2txt
+-usr/bin/xml-rpc-api2cpp
+-usr/include/*
+-usr/lib/lib*.a
+-usr/lib/lib*.la
+-usr/lib/lib*.so
+-usr/share/man/man1/xmlrpc-c-config.1
+-usr/share/man/man1/xml-rpc-api2txt.1
+-usr/share/man/man1/xml-rpc-api2cpp.1
+diff --git a/libs/xmlrpc-c/debian/xmlrpc-c0.docs b/libs/xmlrpc-c/debian/xmlrpc-c0.docs
+deleted file mode 100644
+index 6df52b9..0000000
+--- a/libs/xmlrpc-c/debian/xmlrpc-c0.docs
++++ /dev/null
+@@ -1,6 +0,0 @@
+-BUGS
+-NEWS
+-README
+-CREDITS
+-SECURITY
+-doc/*.txt
+diff --git a/libs/xmlrpc-c/debian/xmlrpc-c0.examples b/libs/xmlrpc-c/debian/xmlrpc-c0.examples
+deleted file mode 100644
+index d510cc5..0000000
+--- a/libs/xmlrpc-c/debian/xmlrpc-c0.examples
++++ /dev/null
+@@ -1,3 +0,0 @@
+-examples/*.c
+-examples/*.cc
+-conf
+diff --git a/libs/xmlrpc-c/debian/xmlrpc-c0.files b/libs/xmlrpc-c/debian/xmlrpc-c0.files
+deleted file mode 100644
+index 6f82592..0000000
+--- a/libs/xmlrpc-c/debian/xmlrpc-c0.files
++++ /dev/null
+@@ -1,2 +0,0 @@
+-usr/lib/lib*.so.*
+-usr/share/man/man7/xmlrpc-c.7
+diff --git a/libs/xmlrpc-c/dll-common.make b/libs/xmlrpc-c/dll-common.make
+deleted file mode 100644
+index 0d53c17..0000000
+--- a/libs/xmlrpc-c/dll-common.make
++++ /dev/null
+@@ -1,22 +0,0 @@
+-# -*-makefile-*-    <-- an Emacs control
+-
+-# See unix-common.make for an explanation of this file.  This file is
+-# analogous to unix-common.make, but is for a Windows system
+-
+-SONAME = $@
+-IMPLIB = $(@:%:%.dll.a)
+-
+-SHLIB_CMD = $(CCLD) $(LDFLAGS_SHLIB) -o $@ $^ $(LADD)
+-
+-.PHONY: $(SHLIB_INSTALL_TARGETS)
+-.PHONY: install-shared-libraries
+-
+-SHLIB_INSTALL_TARGETS = $(SHARED_LIBS_TO_INSTALL:%=%/install)
+-
+-#SHLIB_INSTALL_TARGETS is like "libfoo/install libbar/install"
+-
+-install-shared-libraries: $(SHLIB_INSTALL_TARGETS)
+-
+-$(SHLIB_INSTALL_TARGETS):lib%/install:$(SHLIB_PREFIX)%.$(SHLIB_SUFFIX).$(MAJ).$(MIN)
+-# $< is a library file name, e.g. cygfoo.so.3.1 .
+-      $(INSTALL_SHLIB) $< $(DESTDIR)$(LIBINST_DIR)/$<
+diff --git a/libs/xmlrpc-c/doc/INSTALL b/libs/xmlrpc-c/doc/INSTALL
+index 76881fa..2790010 100644
+--- a/libs/xmlrpc-c/doc/INSTALL
++++ b/libs/xmlrpc-c/doc/INSTALL
+@@ -82,6 +82,48 @@ you have to have a -f option and set SRCDIR and BLDDIR on your 'make'
+ command.
++CROSS-COMPILING
++---------------
++
++Cross compiling is building code on one machine to be run on another,
++particularly when the two machines are different enough that it matters,
++e.g. one executes x86 instructions and the other executes PowerPC
++instructions.
++
++The machine that will run the code is called the target machine.  The one
++that will build the code is the build machine.
++
++To cross-compile, you set up nearly all of the build environment for the
++target machine (that includes such things as the default include file search
++path for the compiler and library search path for the linker).  On your
++'configure' command, you use a --host option to identify the kind of target
++machine (rather than let it default to the kind of machine on which
++'configure' is running).  It's a nontrivial task, and beyond the scope of
++this document as it is not specific to Xmlrpc-c.
++
++There is one area that requires special attention and is specific to Xmlrpc-c:
++The Xmlrpc-c build does part of its job by compiling a program from C source
++code and running that program as part of the build.  That compile, unlike all
++the regular ones, must be done for the build machine, not the target
++machine.
++
++To facilitate that, there are the BUILDTOOL_CC and BUILDTOOL_CCLD make
++variables.  BUILDTOOL_CC is the command name for the appropriate compiler
++which which to build a build tool, i.e. a compiler that generates code to run
++on the build system.  BUILDTOOL_CCLD is similarly for the linker, and should
++be the kind of linker command that invokes a combined compiler/linker,
++e.g. "gcc" instead of "ld".
++
++You can set these make variables on the Make command line, or if you prefer,
++by modifying the file 'config.mk' after 'configure' creates it.  The default
++value of these variables (as set in 'config.mk') is the same compile and link
++commands as for building target code.
++
++(There is probably a way to do this with GNU Autoconf facilities and avoid the
++BUILDTOOL_CC complication.  If you know how (without using Automake), tell the
++Xmlrpc-c maintainer and he will change the build system to use it).
++
++
+ COMMON PROBLEMS
+ ---------------
+@@ -135,7 +177,7 @@ to have it.  The make file obviously specifies the path to the current
+ libraries that the user just built in the link library search order,
+ but the link is picking up the old system version instead.  Why?
+ Because the link options say to search /usr/lib _before_ the local
+-build directory.  And it does that because curl-config erroneously
++build directory.  And they do that because curl-config erroneously
+ says that you need a -L /usr/lib link option to find the Curl library.
+diff --git a/libs/xmlrpc-c/dylib-common.make b/libs/xmlrpc-c/dylib-common.make
+deleted file mode 100644
+index a72d416..0000000
+--- a/libs/xmlrpc-c/dylib-common.make
++++ /dev/null
+@@ -1,37 +0,0 @@
+-# -*-makefile-*-    <-- an Emacs control
+-
+-# See unix-common.make for an explanation of this file.  This file is
+-# analogous to unix-common.make, but is for an Irix system.
+-
+-SONAME = $(@:%.$(MIN)=%)
+-
+-SHLIB_CMD = $(CCLD) $(LDFLAGS_SHLIB) -o $@ $^ $(LADD)
+-
+-SHLIBPP_CMD = $(CXXLD) $(LDFLAGS_SHLIB) -o $@ $^ $(LADD)
+-
+-SHLIB_LE_TARGETS = $(call shliblefn, $(SHARED_LIBS_TO_BUILD))
+-
+-$(SHLIB_LE_TARGETS):%.$(SHLIB_SUFFIX):%.$(MAJ).$(MIN).$(SHLIB_SUFFIX)
+-      rm -f $@
+-      $(LN_S) $< $@
+-
+-
+-.PHONY: $(SHLIB_INSTALL_TARGETS)
+-.PHONY: install-shared-libraries
+-
+-SHLIB_INSTALL_TARGETS = $(SHARED_LIBS_TO_INSTALL:%=%/install)
+-
+-#SHLIB_INSTALL_TARGETS is like "libfoo/install libbar/install"
+-
+-install-shared-libraries: $(SHLIB_INSTALL_TARGETS)
+-
+-$(SHLIB_INSTALL_TARGETS):%/install:%.$(MAJ).$(MIN).$(SHLIB_SUFFIX)
+-# $< is a library file name, e.g. libfoo.so.3.1 .
+-      $(INSTALL_SHLIB) $< $(DESTDIR)$(LIBINST_DIR)/$<
+-      cd $(DESTDIR)$(LIBINST_DIR); \
+-        rm -f $(<:%.$(MIN).$(SHLIB_SUFFIX)=%.$(SHLIB_SUFFIX)); \
+-        $(LN_S) $< $(<:%.$(MIN).$(SHLIB_SUFFIX)=%.$(SHLIB_SUFFIX))
+-      cd $(DESTDIR)$(LIBINST_DIR); \
+-        rm -f $(<:%.$(MAJ).$(MIN).$(SHLIB_SUFFIX)=%.$(SHLIB_SUFFIX)); \
+-        $(LN_S) $(<:%.$(MIN).$(SHLIB_SUFFIX)=%.$(SHLIB_SUFFIX)) \
+-          $(<:%.$(MAJ).$(MIN).$(SHLIB_SUFFIX)=%.$(SHLIB_SUFFIX))
+diff --git a/libs/xmlrpc-c/examples/.cvsignore b/libs/xmlrpc-c/examples/.cvsignore
+deleted file mode 100644
+index 792265c..0000000
+--- a/libs/xmlrpc-c/examples/.cvsignore
++++ /dev/null
+@@ -1,11 +0,0 @@
+-gen_sample_add_xml
+-meerkat-app-list
+-query-meerkat
+-synch_client
+-xmlrpc_asynch_client
+-auth_client
+-xmlrpc_loop_server
+-xmlrpc_sample_add_client
+-xmlrpc_sample_add_server
+-xmlrpc_server_validatee
+-*.cgi
+diff --git a/libs/xmlrpc-c/examples/Makefile b/libs/xmlrpc-c/examples/Makefile
+index 5a9fd19..c441c9f 100644
+--- a/libs/xmlrpc-c/examples/Makefile
++++ b/libs/xmlrpc-c/examples/Makefile
+@@ -1,8 +1,8 @@
+-# Since the programs in this directories are examples for the user, this
+-# make file should be as ordinary as possible.  It should not rely heavily
+-# on included make files or configuration parameters.  It should not use
+-# libtool.  Also, we don't try to build or rebuild the libraries on which
+-# these programs depend.
++# Since the programs in this directory are examples for the user, this make
++# file should be as ordinary as possible.  It should not rely heavily on
++# included make files or configuration parameters.  Also, we don't try to
++# build or rebuild the libraries on which these programs depend or even
++# recognize that they've changed on their own.
+ ifeq ($(SRCDIR),)
+@@ -15,8 +15,8 @@ include $(BLDDIR)/config.mk
+ default: all
+-CFLAGS = $(CFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
+-LDFLAGS = $(LADD)
++CFLAGS = $(CFLAGS_PERSONAL) $(CADD)
++LDFLAGS += $(LADD)
+ # If this were a real application, working from an installed copy of
+ # Xmlrpc-c, XMLRPC_C_CONFIG would just be 'xmlrpc-c-config'.  It would be
+@@ -25,6 +25,7 @@ XMLRPC_C_CONFIG = $(BLDDIR)/xmlrpc-c-config.test
+ CLIENTPROGS = \
+   auth_client \
++  compound_value_client \
+   synch_client \
+   xmlrpc_sample_add_client \
+   xmlrpc_asynch_client \
+@@ -37,6 +38,7 @@ SERVERPROGS_CGI = \
+   xmlrpc_sample_add_server.cgi
+ SERVERPROGS_ABYSS = \
++  compound_value_server \
+   interrupted_server \
+   xmlrpc_inetd_server \
+   xmlrpc_socket_server \
+@@ -44,15 +46,19 @@ SERVERPROGS_ABYSS = \
+   xmlrpc_sample_add_server \
+   xmlrpc_server_validatee \
++BASIC_PROGS = \
++  json \
++  gen_sample_add_xml \
++
+ # Build up PROGS:
+ PROGS = 
++PROGS += $(BASIC_PROGS)
++
+ ifeq ($(ENABLE_ABYSS_SERVER),yes)
+   PROGS += $(SERVERPROGS_ABYSS)
+ endif
+-PROGS += gen_sample_add_xml
+-
+ ifeq ($(MUST_BUILD_CLIENT),yes)
+   PROGS += $(CLIENTPROGS)
+ endif
+@@ -63,17 +69,17 @@ endif
+ INCLUDES = -I. $(shell $(XMLRPC_C_CONFIG) client abyss-server --cflags)
+-LDADD_CLIENT = \
+-  $(shell $(XMLRPC_C_CONFIG) client --ldadd)
++LIBS_CLIENT = \
++  $(shell $(XMLRPC_C_CONFIG) client --libs)
+-LDADD_SERVER_ABYSS = \
+-  $(shell $(XMLRPC_C_CONFIG) abyss-server --ldadd)
++LIBS_SERVER_ABYSS = \
++  $(shell $(XMLRPC_C_CONFIG) abyss-server --libs)
+-LDADD_SERVER_CGI = \
+-  $(shell $(XMLRPC_C_CONFIG) cgi-server --ldadd)
++LIBS_SERVER_CGI = \
++  $(shell $(XMLRPC_C_CONFIG) cgi-server --libs)
+-LDADD_BASE = \
+-  $(shell $(XMLRPC_C_CONFIG) --ldadd)
++LIBS_BASE = \
++  $(shell $(XMLRPC_C_CONFIG) --libs)
+ all: $(PROGS)
+@@ -90,16 +96,17 @@ $(BLDDIR)/examples/cpp:
+       mkdir $@
+ $(CLIENTPROGS):%:%.o
+-      $(CCLD) -o $@ $(LDFLAGS) $^ $(LDADD_CLIENT)
++      $(CCLD) -o $@ $^ $(LIBS_CLIENT) $(LDFLAGS)
+ $(SERVERPROGS_CGI):%.cgi:%_cgi.o
+-      $(CCLD) -o $@ $(LDFLAGS) $^ $(LDADD_SERVER_CGI)
++      $(CCLD) -o $@ $^ $(LIBS_SERVER_CGI) $(LDFLAGS)
+ $(SERVERPROGS_ABYSS):%:%.o
+-      $(CCLD) -o $@ $(LDFLAGS) $^ $(LDADD_SERVER_ABYSS)
++      $(CCLD) -o $@ $^ $(LIBS_SERVER_ABYSS) $(LDFLAGS)
++
++$(BASIC_PROGS):%:%.o
++      $(CCLD) -o $@ $^ $(LIBS_BASE) $(LDFLAGS) 
+-gen_sample_add_xml:%:%.o
+-      $(CCLD) -o $@ $(LDFLAGS) $^ $(LDADD_BASE)
+ OBJECTS = $(patsubst %,%.o,$(patsubst %.cgi,%_cgi,$(PROGS)))
+@@ -119,11 +126,9 @@ config.h:
+ xmlrpc_amconfig.h:
+       $(LN_S) $(BLDDIR)/$@ .
+-include $(SRCDIR)/common.mk
+-
+ .PHONY: clean
+-clean: clean-common
+-      rm -f $(PROGS) config.h xmlrpc_amconfig.h
++clean:
++      rm -f $(PROGS) *.o config.h xmlrpc_amconfig.h
+       $(MAKE) -C cpp clean
+ .PHONY: distclean
+diff --git a/libs/xmlrpc-c/examples/README b/libs/xmlrpc-c/examples/README
+index 46b02b4..6691f8a 100644
+--- a/libs/xmlrpc-c/examples/README
++++ b/libs/xmlrpc-c/examples/README
+@@ -1,15 +1,12 @@
+ This directory contains working examples of uses of XML-RPC-c.  There
+ are XML-RPC servers and XML-RPC clients that use the Xmlrpc-c libraries.
+-The simplest example is the 'query-meerkat' program, which contacts an
+-XML-RPC server that O'Reilly operates on the Internet called Meerkat.
+-Meerkat provides an RPC that returns a list of new articles that match
+-a specified search pattern.  Run 'query-meerkat' like this example:
+-
+-  $ ./query-meerkat Linux
+-
+-This responds with a list of new articles that contain the work "Linux",
+-according to O'reilly's Meerkat service.
++The make file is a combination of an example of how to build programs
++that use Xmlrpc-c libraries and something that actually does build the
++programs in this directory.  As such, it isn't perfect for either of
++those purposes.  To build the examples, you must first build the
++libraries (make dependencies will not take care of that for you).  Then
++you can issue a simple 'make' in this directory.
+ The simplest server program is 'xmlrpc_sample_add_server'.  This
+diff --git a/libs/xmlrpc-c/examples/auth_client.c b/libs/xmlrpc-c/examples/auth_client.c
+index 50047f4..fbbd0a9 100644
+--- a/libs/xmlrpc-c/examples/auth_client.c
++++ b/libs/xmlrpc-c/examples/auth_client.c
+@@ -35,7 +35,7 @@ die_if_fault_occurred(xmlrpc_env * const envP) {
+ int 
+ main(int           const argc, 
+-     const char ** const argv ATTR_UNUSED) {
++     const char ** const argv) {
+     xmlrpc_env env;
+     xmlrpc_server_info * serverP;
+diff --git a/libs/xmlrpc-c/examples/cpp/.cvsignore b/libs/xmlrpc-c/examples/cpp/.cvsignore
+deleted file mode 100644
+index fedad6b..0000000
+--- a/libs/xmlrpc-c/examples/cpp/.cvsignore
++++ /dev/null
+@@ -1,4 +0,0 @@
+-meerkat-app-list
+-xmlrpc_sample_add_server
+-xmlrpc_sample_add_client
+-sample_add_client_complex
+diff --git a/libs/xmlrpc-c/examples/cpp/Makefile b/libs/xmlrpc-c/examples/cpp/Makefile
+index 1c8b930..18798cb 100644
+--- a/libs/xmlrpc-c/examples/cpp/Makefile
++++ b/libs/xmlrpc-c/examples/cpp/Makefile
+@@ -15,8 +15,8 @@ include $(BLDDIR)/config.mk
+ default: all
+-CXXFLAGS = $(CXXFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
+-LDFLAGS = $(LADD)
++CXXFLAGS = $(CFLAGS_PERSONAL) $(CADD)
++LDFLAGS += $(LADD)
+ # If this were a real application, working from an installed copy of
+ # Xmlrpc-c, XMLRPC_C_CONFIG would just be 'xmlrpc-c-config'.  It would be
+@@ -24,10 +24,14 @@ LDFLAGS = $(LADD)
+ XMLRPC_C_CONFIG = $(BLDDIR)/xmlrpc-c-config.test
++SERVERPROGS_CGI = \
++  xmlrpc_sample_add_server.cgi
++
+ SERVERPROGS_ABYSS = \
+   xmlrpc_inetd_server \
+   xmlrpc_loop_server \
+   xmlrpc_sample_add_server \
++  callinfo_abyss_server \
+ CLIENTPROGS = \
+   xmlrpc_sample_add_client \
+@@ -45,7 +49,11 @@ ifeq ($(MUST_BUILD_CLIENT),yes)
+   PROGS += $(CLIENTPROGS)
+ endif
+-PROGS += pstream_inetd_server
++ifeq ($(ENABLE_CGI_SERVER),yes)
++  PROGS += $(SERVERPROGS_CGI) 
++endif
++
++PROGS += pstream_inetd_server pstream_serial_server
+ ifeq ($(MUST_BUILD_CLIENT),yes)
+   PROGS += pstream_client
+@@ -53,37 +61,43 @@ endif
+ INCLUDES = -I. $(shell $(XMLRPC_C_CONFIG) c++2 client abyss-server --cflags)
+-LDADD_SERVER_ABYSS = \
+-  $(shell $(XMLRPC_C_CONFIG) c++2 abyss-server --ldadd)
++LIBS_SERVER_ABYSS = \
++  $(shell $(XMLRPC_C_CONFIG) c++2 abyss-server --libs)
+-LDADD_CLIENT = \
+-  $(shell $(XMLRPC_C_CONFIG) c++2 client --ldadd)
++LIBS_SERVER_CGI = \
++  $(shell $(XMLRPC_C_CONFIG) c++2 cgi-server --libs)
+-LDADD_BASE = \
+-  $(shell $(XMLRPC_C_CONFIG) c++2 --ldadd)
++LIBS_CLIENT = \
++  $(shell $(XMLRPC_C_CONFIG) c++2 client --libs)
++
++LIBS_BASE = \
++  $(shell $(XMLRPC_C_CONFIG) c++2 --libs)
+ all: $(PROGS)
++$(SERVERPROGS_CGI):%.cgi:%_cgi.o
++      $(CXXLD) -o $@ $^ $(LIBS_SERVER_CGI) $(LDFLAGS)
++
+ $(SERVERPROGS_ABYSS):%:%.o
+-      $(CXXLD) -o $@ $(LDFLAGS) $^ $(LDADD_SERVER_ABYSS)
++      $(CXXLD) -o $@ $^ $(LIBS_SERVER_ABYSS) $(LDFLAGS)
+ $(CLIENTPROGS):%:%.o
+-      $(CXXLD) -o $@ $(LDFLAGS) $^ $(LDADD_CLIENT)
++      $(CXXLD) -o $@ $^ $(LIBS_CLIENT) $(LDFLAGS)
+-LDADD_PSTREAM_CLIENT = \
+-  $(shell $(XMLRPC_C_CONFIG) c++2 client --ldadd)
++LIBS_PSTREAM_CLIENT = \
++  $(shell $(XMLRPC_C_CONFIG) c++2 client --libs)
+ pstream_client:%:%.o
+-      $(CXXLD) -o $@ $(LDFLAGS) $^ $(LDADD_PSTREAM_CLIENT)
++      $(CXXLD) -o $@ $^ $(LIBS_PSTREAM_CLIENT) $(LDFLAGS)
+-LDADD_PSTREAM_SERVER = \
+-  $(shell $(XMLRPC_C_CONFIG) c++2 pstream-server --ldadd)
++LIBS_PSTREAM_SERVER = \
++  $(shell $(XMLRPC_C_CONFIG) c++2 pstream-server --libs)
+-pstream_inetd_server:%:%.o
+-      $(CXXLD) -o $@ $(LDFLAGS) $^ $(LDADD_PSTREAM_SERVER)
++pstream_inetd_server pstream_serial_server:%:%.o
++      $(CXXLD) -o $@ $^ $(LIBS_PSTREAM_SERVER) $(LDFLAGS)
+-OBJECTS = $(PROGS:%=%.o)
++OBJECTS = $(patsubst %,%.o,$(patsubst %.cgi,%_cgi,$(PROGS)))
+ $(OBJECTS):%.o:%.cpp
+       $(CXX) -c $(INCLUDES) $(CXXFLAGS) $<
+@@ -97,11 +111,9 @@ config.h:
+ xmlrpc_amconfig.h:
+       $(LN_S) $(BLDDIR)/$@ .
+-include $(SRCDIR)/common.mk
+-
+ .PHONY: clean
+-clean: clean-common
+-      rm -f $(PROGS) config.h xmlrpc_amconfig.h
++clean:
++      rm -f $(PROGS) *.o config.h xmlrpc_amconfig.h
+ .PHONY: distclean
+ distclean: clean
+diff --git a/libs/xmlrpc-c/examples/cpp/meerkat-app-list.cpp b/libs/xmlrpc-c/examples/cpp/meerkat-app-list.cpp
+deleted file mode 100644
+index c2bd1e3..0000000
+--- a/libs/xmlrpc-c/examples/cpp/meerkat-app-list.cpp
++++ /dev/null
+@@ -1,108 +0,0 @@
+-// List recently-released Linux applications. (Written in C++.)
+-// For more details about O'Reilly's excellent Meerkat news service, see:
+-// http://www.oreillynet.com/pub/a/rss/2000/11/14/meerkat_xmlrpc.html */
+-
+-#include <iostream>
+-#include <sstream>
+-#include <string>
+-
+-using namespace std;
+-
+-#include <xmlrpc-c/oldcppwrapper.hpp>
+-
+-#define NAME           "XML-RPC C++ Meerkat Query Demo"
+-#define VERSION        "0.1"
+-#define MEERKAT_URL    "http://www.oreillynet.com/meerkat/xml-rpc/server.php"
+-#define SOFTWARE_LINUX (6)
+-
+-static void list_apps (int hours) {
+-
+-    // Build our time_period parameter.
+-    ostringstream time_period_stream;
+-    time_period_stream << hours << "HOUR";
+-    string time_period = time_period_stream.str();
+-
+-    // Assemble our meerkat query recipe.
+-    XmlRpcValue recipe = XmlRpcValue::makeStruct();
+-    recipe.structSetValue("category", XmlRpcValue::makeInt(SOFTWARE_LINUX));
+-    recipe.structSetValue("time_period", XmlRpcValue::makeString(time_period));
+-    recipe.structSetValue("descriptions", XmlRpcValue::makeInt(76));
+-
+-    // Build our parameter array.
+-    XmlRpcValue param_array = XmlRpcValue::makeArray();
+-    param_array.arrayAppendItem(recipe);
+-
+-    // Create a client pointing to Meerkat.
+-    XmlRpcClient meerkat (MEERKAT_URL);
+-
+-    // Perform the query.
+-    XmlRpcValue apps = meerkat.call("meerkat.getItems", param_array);
+-
+-    // Print our results.
+-    int first = 1;
+-    size_t app_count = apps.arraySize();
+-    for (size_t i = 0; i < app_count; i++) {
+-      XmlRpcValue app = apps.arrayGetItem(i);
+-
+-      // Get some information about our application.
+-      string title       = app.structGetValue("title").getString();
+-      string link        = app.structGetValue("link").getString();
+-      string description = app.structGetValue("description").getString();
+-      
+-      // Print a separator line if necessary.
+-      if (first)
+-          first = 0;
+-      else
+-          cout << endl;
+-
+-      // Print this application entry.
+-      if (description.size() > 0) {
+-          cout << title << endl << description << endl << link << endl;
+-      } else {
+-          cout << title << endl << description << endl << link << endl;
+-      }
+-    }
+-}
+-
+-// Print out a usage message.
+-static void usage (void)
+-{
+-    cerr << "Usage: meekat-app-list [hours]" << endl;
+-    cerr << "Data from <http://www.oreillynet.com/meerkat/>." << endl;
+-    exit(1);
+-}
+-
+-int main (int argc, char **argv) {
+-    int status = 0;
+-    int hours = 25;
+-
+-    // Parse our command-line arguments.
+-    if (argc == 1) {
+-      // Use default value for hours.
+-    } else if (argc == 2) {
+-      hours = atoi(argv[1]);
+-    }
+-    if (hours == 0)
+-      usage();
+-    if (hours > 49) {
+-        cerr << "It's not nice to ask for > 49 hours at once." << endl;
+-        exit(1);      
+-    }
+-
+-    // Start up our client library.
+-    XmlRpcClient::Initialize(NAME, VERSION);
+-
+-    // Call our implementation, and watch out for faults.
+-    try {
+-      list_apps(hours);
+-    } catch (XmlRpcFault& fault) {
+-      cerr << argv[0] << ": XML-RPC fault #" << fault.getFaultCode()
+-           << ": " << fault.getFaultString() << endl;
+-      status = 1;
+-    }
+-
+-    // Shut down our client library.
+-    XmlRpcClient::Terminate();
+-
+-    return status;
+-}
+diff --git a/libs/xmlrpc-c/examples/cpp/pstream_client.cpp b/libs/xmlrpc-c/examples/cpp/pstream_client.cpp
+index 7a8f322..738e8ba 100644
+--- a/libs/xmlrpc-c/examples/cpp/pstream_client.cpp
++++ b/libs/xmlrpc-c/examples/cpp/pstream_client.cpp
+@@ -25,7 +25,7 @@
+ #include <string>
+ #include <iostream>
+ #include <unistd.h>
+-#include <sys/signal.h>
++#include <signal.h>
+ #include <xmlrpc-c/girerr.hpp>
+ #include <xmlrpc-c/base.hpp>
+ #include <xmlrpc-c/client.hpp>
+diff --git a/libs/xmlrpc-c/examples/cpp/pstream_inetd_server.cpp b/libs/xmlrpc-c/examples/cpp/pstream_inetd_server.cpp
+index 65f1aa5..00d930c 100644
+--- a/libs/xmlrpc-c/examples/cpp/pstream_inetd_server.cpp
++++ b/libs/xmlrpc-c/examples/cpp/pstream_inetd_server.cpp
+@@ -22,7 +22,7 @@
+ #endif
+ #include <cassert>
+ #include <iostream>
+-#include <sys/signal.h>
++#include <signal.h>
+ #include <xmlrpc-c/base.hpp>
+ #include <xmlrpc-c/registry.hpp>
+@@ -76,12 +76,7 @@ main(int           const,
+             .socketFd(STDIN_FILENO)
+             .registryP(&myRegistry));
+-        for (bool clientHasDisconnected = false; !clientHasDisconnected;)
+-            server.runOnce(&clientHasDisconnected);
+-                // This reads one packet (containing an XML-RPC call message)
+-                // from Standard Input, executes the indicated RPC, and writes
+-                // one packet containing the XML-RPC response message to
+-                // Standard Input.
++        server.run();
+     } catch (exception const& e) {
+         cerr << "Something threw an error: " << e.what() << endl;
+diff --git a/libs/xmlrpc-c/examples/cpp/xmlrpc_inetd_server.cpp b/libs/xmlrpc-c/examples/cpp/xmlrpc_inetd_server.cpp
+index 0dd902a..3bfe186 100644
+--- a/libs/xmlrpc-c/examples/cpp/xmlrpc_inetd_server.cpp
++++ b/libs/xmlrpc-c/examples/cpp/xmlrpc_inetd_server.cpp
+@@ -1,6 +1,25 @@
+ /* A simple XML-RPC server that runs under Inetd.  I.e. it lets the invoking
+    program handle all the connection switching and simply processes one
+    RPC on the provided connection (Standard Input) and exits.
++
++   A typical example of where this would be useful is with an Inetd
++   "super server."
++
++   xmlrpc_sample_add_server.cpp is a server that does the same thing,
++   but you give it a TCP port number and it listens for TCP connections
++   and processes RPCs ad infinitum.  xmlrpc_socket_server.c is halfway
++   in between those -- you give it an already bound and listening
++   socket, and it listens for TCP connections and processes RPCs ad
++   infinitum.
++
++   Here is an easy way to test this program:
++
++     socketexec --accept --local_port=8080 --stdin -- ./xmlrpc_inetd_server
++
++   Now run the client program 'xmlrpc_sample_add_client'.  Socketexec
++   will accept the connection that the client program requests and pass it
++   to this program on Standard Input.  This program will perform the RPC,
++   respond to the client, then exit.
+ */
+ #ifndef WIN32
+@@ -49,10 +68,8 @@ main(int           const,
+     myRegistry.addMethod("sample.add", sampleAddMethodP);
+     xmlrpc_c::serverAbyss myAbyssServer(
+-        myRegistry,
+-        8080,              // TCP port on which to listen
+-        "/tmp/xmlrpc_log"  // Log file
+-        );
++         xmlrpc_c::serverAbyss::constrOpt()
++         .registryP(&myRegistry));
+     myAbyssServer.runConn(STDIN_FILENO);
+         /* This reads the HTTP POST request from Standard Input and
+diff --git a/libs/xmlrpc-c/examples/cpp/xmlrpc_sample_add_server.cpp b/libs/xmlrpc-c/examples/cpp/xmlrpc_sample_add_server.cpp
+index ff96ae2..f499e5a 100644
+--- a/libs/xmlrpc-c/examples/cpp/xmlrpc_sample_add_server.cpp
++++ b/libs/xmlrpc-c/examples/cpp/xmlrpc_sample_add_server.cpp
+@@ -62,10 +62,9 @@ main(int           const,
+         myRegistry.addMethod("sample.add", sampleAddMethodP);
+         
+         xmlrpc_c::serverAbyss myAbyssServer(
+-            myRegistry,
+-            8080,              // TCP port on which to listen
+-            "/tmp/xmlrpc_log"  // Log file
+-            );
++            xmlrpc_c::serverAbyss::constrOpt()
++            .registryP(&myRegistry)
++            .portNumber(8080));
+         
+         myAbyssServer.run();
+         // xmlrpc_c::serverAbyss.run() never returns
+diff --git a/libs/xmlrpc-c/examples/gen_sample_add_xml.c b/libs/xmlrpc-c/examples/gen_sample_add_xml.c
+index 736d822..dd65699 100644
+--- a/libs/xmlrpc-c/examples/gen_sample_add_xml.c
++++ b/libs/xmlrpc-c/examples/gen_sample_add_xml.c
+@@ -28,7 +28,7 @@ die_if_fault_occurred(xmlrpc_env * const envP) {
+ int 
+ main(int           const argc, 
+-     const char ** const argv ATTR_UNUSED) {
++     const char ** const argv) {
+     char * const methodName = "sample.add";
+diff --git a/libs/xmlrpc-c/examples/interrupted_client.c b/libs/xmlrpc-c/examples/interrupted_client.c
+index 89cd4e8..1652be2 100644
+--- a/libs/xmlrpc-c/examples/interrupted_client.c
++++ b/libs/xmlrpc-c/examples/interrupted_client.c
+@@ -2,6 +2,7 @@
+    both by timeout and by control-C.
+ */
++#define _XOPEN_SOURCE 600
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <stdio.h>
+@@ -110,7 +111,7 @@ addInterruptibly(xmlrpc_client * const clientP,
+ int 
+ main(int           const argc, 
+-     const char ** const argv ATTR_UNUSED) {
++     const char ** const argv) {
+     const char * const serverUrl = "http://localhost:8080/RPC2";
+diff --git a/libs/xmlrpc-c/examples/interrupted_server.c b/libs/xmlrpc-c/examples/interrupted_server.c
+index 9d5c593..56bac81 100644
+--- a/libs/xmlrpc-c/examples/interrupted_server.c
++++ b/libs/xmlrpc-c/examples/interrupted_server.c
+@@ -1,4 +1,4 @@
+-/* A simple standalone XML-RPC server based on Abyss.
++/* A simple standalone XML-RPC server program based on Abyss.
+    You can terminate this server in controlled fashion with a SIGTERM
+    signal.
+@@ -7,6 +7,7 @@
+    simpler code, but it is not interruptible with SIGTERM.
+ */
++#define _XOPEN_SOURCE 600
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <signal.h>
+@@ -36,7 +37,7 @@ dieIfFailed(const char * const description,
+ static xmlrpc_server_abyss_t * serverToTerminateP;
+ static void 
+-sigtermHandler(int const signalClass ATTR_UNUSED) {
++sigtermHandler(int const signalClass) {
+     
+     xmlrpc_env env;
+@@ -82,8 +83,8 @@ restoreSigtermHandler(void){
+ static xmlrpc_value *
+ sample_add(xmlrpc_env *   const envP, 
+            xmlrpc_value * const paramArrayP,
+-           void *         const serverInfo ATTR_UNUSED,
+-           void *         const channelInfo ATTR_UNUSED) {
++           void *         const serverInfo,
++           void *         const channelInfo) {
+     
+     xmlrpc_int x, y, z;
+@@ -105,6 +106,11 @@ int
+ main(int           const argc, 
+      const char ** const argv) {
++    struct xmlrpc_method_info3 const methodInfo = {
++        .methodName     = "sample.add",
++        .methodFunction = &sample_add,
++        .serverInfo = NULL
++    };
+     xmlrpc_server_abyss_parms serverparm;
+     xmlrpc_server_abyss_t * serverP;
+     xmlrpc_registry * registryP;
+@@ -126,8 +132,7 @@ main(int           const argc,
+     registryP = xmlrpc_registry_new(&env);
+     dieIfFailed("xmlrpc_registry_new", env);
+-    xmlrpc_registry_add_method2(
+-        &env, registryP, "sample.add", &sample_add, NULL, NULL, NULL);
++    xmlrpc_registry_add_method3(&env, registryP, &methodInfo);
+     dieIfFailed("xmlrpc_registry_add_method2", env);
+     serverparm.config_file_name = NULL;
+diff --git a/libs/xmlrpc-c/examples/query-meerkat.c b/libs/xmlrpc-c/examples/query-meerkat.c
+deleted file mode 100644
+index e566654..0000000
+--- a/libs/xmlrpc-c/examples/query-meerkat.c
++++ /dev/null
+@@ -1,156 +0,0 @@
+-/* A simple news-searcher, written in C to demonstrate how to use the
+-   xmplrpc-c client library.
+-
+-   This program connects to an XMLRPC server that O'Reilly runs on the
+-   Internet, gets some information, and displays it on Standard Output.
+-   
+-   Note that that server is not in any way designed specifically for xmlrpc-c.
+-   It simply implements the XMLRPC protocol, and works with any client that
+-   implements XMLRPC.
+-   
+-   The service that the aforementioned server provides is that it gives you
+-   a list of news articles that match a certain regular expression.  You give
+-   that regular expression an argument to this client program.
+-
+-   For more details about O'Reilly's excellent Meerkat news service, see:
+-   http://www.oreillynet.com/pub/a/rss/2000/11/14/meerkat_xmlrpc.html
+-*/
+-
+-#include <stdlib.h>
+-#include <stdio.h>
+-#include <string.h>
+-
+-#include <xmlrpc-c/base.h>
+-#include <xmlrpc-c/client.h>
+-
+-#include "config.h"  /* information about this build environment */
+-
+-#define NAME        "XML-RPC C Meerkat Query Demo"
+-#define VERSION     "1.0"
+-#define MEERKAT_URL "http://www.oreillynet.com/meerkat/xml-rpc/server.php"
+-
+-struct cmdline {
+-    const char * searchArg;
+-    int hours;
+-};
+-
+-
+-static void
+-parseCommandLine(int              const argc, 
+-                 const char **    const argv,
+-                 struct cmdline * const cmdlineP) {
+-
+-    if (argc-1 < 1) {
+-        fprintf(stderr, "Need at least one argument:  "
+-                "A mysql regular expression "
+-                "search pattern.  Try 'query-meerkat Linux'\n");
+-        exit(1);
+-    } else {
+-        cmdlineP->searchArg = argv[1];
+-
+-        if (argc-1 < 2) {
+-            cmdlineP->hours = 24;
+-        } else {
+-            cmdlineP->hours = atoi(argv[2]);
+-            if (cmdlineP->hours > 49) {
+-                fprintf(stderr, "It's not nice to ask for > 49 hours "
+-                        "at once.\n");
+-                exit(1);    
+-            }
+-            if (argc-1 > 2) {
+-                fprintf(stderr, "There are at most 2 arguments: "
+-                        "search pattern "
+-                        "and number of hours.");
+-                exit(1);
+-            }
+-        }
+-    }
+-}
+-
+-
+-
+-static void 
+-die_if_fault_occurred(xmlrpc_env * const env) {
+-    /* We're a command-line utility, so we abort if an error occurs. */
+-    if (env->fault_occurred) {
+-        fprintf(stderr, "XML-RPC Fault #%d: %s\n",
+-                env->fault_code, env->fault_string);
+-        exit(1);
+-    }
+-}
+-
+-
+-
+-/* Hey! We fit in one function. */
+-int 
+-main(int          const argc, 
+-     const char** const argv) {
+-
+-    struct cmdline cmdline;
+-    char time_period[16];
+-    xmlrpc_env env;
+-    xmlrpc_value *stories, *story;
+-    size_t size, i;
+-    int first;
+-
+-    parseCommandLine(argc, argv, &cmdline);
+-
+-    snprintf(time_period, sizeof(time_period), "%dHOUR", cmdline.hours);
+-
+-    xmlrpc_env_init(&env);
+-
+-    /* Set up our client. */
+-    xmlrpc_client_init2(&env, XMLRPC_CLIENT_NO_FLAGS, NAME, VERSION, NULL, 0);
+-
+-    die_if_fault_occurred(&env);
+-
+-    /* Ask Meerkat to look for matching stories. */
+-    stories = xmlrpc_client_call(&env, MEERKAT_URL,
+-                                 "meerkat.getItems", "({s:s,s:i,s:s})",
+-                                 "search", cmdline.searchArg,
+-                                 "descriptions", (xmlrpc_int32) 76,
+-                                 "time_period", time_period);
+-    die_if_fault_occurred(&env);
+-    
+-    /* Loop over the stories. */
+-    size = xmlrpc_array_size(&env, stories);
+-    die_if_fault_occurred(&env);
+-    first = 1;
+-    for (i = 0; i < size; i++) {
+-        const char * title;
+-        const char * link;
+-        const char * description;
+-
+-        /* Extract the useful information from our story. */
+-        story = xmlrpc_array_get_item(&env, stories, i);
+-        die_if_fault_occurred(&env);
+-        xmlrpc_decompose_value(&env, story, "{s:s,s:s,s:s,*}",
+-                               "title", &title,
+-                               "link", &link,
+-                               "description", &description);
+-        die_if_fault_occurred(&env);
+-
+-        /* Print a separator line if necessary. */
+-        if (first)
+-            first = 0;
+-        else
+-            printf("\n");
+-
+-        /* Print the story. */
+-        if (strlen(description) > 0) {
+-            printf("%s\n%s\n%s\n", title, description, link);
+-        } else {
+-            printf("%s\n%s\n", title, link);
+-        }
+-        free((char*)title);
+-        free((char*)link);
+-        free((char*)description);
+-    }
+-    
+-    /* Shut down our client. */
+-    xmlrpc_DECREF(stories);
+-    xmlrpc_env_clean(&env);
+-    xmlrpc_client_cleanup();
+-
+-    return 0;
+-}
+diff --git a/libs/xmlrpc-c/examples/synch_client.c b/libs/xmlrpc-c/examples/synch_client.c
+index 589aa7b..b9b62a2 100644
+--- a/libs/xmlrpc-c/examples/synch_client.c
++++ b/libs/xmlrpc-c/examples/synch_client.c
+@@ -1,4 +1,4 @@
+-/* A simple synchronous XML-RPC client written in C. */
++/* A simple synchronous XML-RPC client program written in C. */
+ #include <stdlib.h>
+ #include <stdio.h>
+@@ -24,7 +24,7 @@ die_if_fault_occurred(xmlrpc_env * const envP) {
+ int 
+ main(int           const argc, 
+-     const char ** const argv ATTR_UNUSED) {
++     const char ** const argv) {
+     xmlrpc_env env;
+     xmlrpc_value * resultP;
+diff --git a/libs/xmlrpc-c/examples/xmlrpc_asynch_client.c b/libs/xmlrpc-c/examples/xmlrpc_asynch_client.c
+index ec3bd31..ff56dfd 100644
+--- a/libs/xmlrpc-c/examples/xmlrpc_asynch_client.c
++++ b/libs/xmlrpc-c/examples/xmlrpc_asynch_client.c
+@@ -1,4 +1,4 @@
+-/* A simple asynchronous XML-RPC client written in C, as an example of
++/* A simple asynchronous XML-RPC client program written in C, as an example of
+    Xmlrpc-c asynchronous RPC facilities.  This is the same as the 
+    simpler synchronous client xmlprc_sample_add_client.c, except that
+    it adds 3 different pairs of numbers with the summation RPCs going on
+@@ -35,7 +35,7 @@ static void
+ handle_sample_add_response(const char *   const serverUrl,
+                            const char *   const methodName,
+                            xmlrpc_value * const paramArrayP,
+-                           void *         const user_data ATTR_UNUSED,
++                           void *         const user_data,
+                            xmlrpc_env *   const faultP,
+                            xmlrpc_value * const resultP) {
+@@ -70,7 +70,7 @@ handle_sample_add_response(const char *   const serverUrl,
+ int 
+ main(int           const argc, 
+-     const char ** const argv ATTR_UNUSED) {
++     const char ** const argv) {
+     const char * const serverUrl = "http://localhost:8080/RPC2";
+     const char * const methodName = "sample.add";
+diff --git a/libs/xmlrpc-c/examples/xmlrpc_inetd_server.c b/libs/xmlrpc-c/examples/xmlrpc_inetd_server.c
+index 196b42a..8b1bb48 100644
+--- a/libs/xmlrpc-c/examples/xmlrpc_inetd_server.c
++++ b/libs/xmlrpc-c/examples/xmlrpc_inetd_server.c
+@@ -1,4 +1,4 @@
+-/* A simple standalone XML-RPC server based on Abyss that processes a
++/* A simple standalone XML-RPC server program based on Abyss that processes a
+    single RPC from an existing TCP connection on Standard Input.
+    A typical example of where this would be useful is with an Inetd
+@@ -21,6 +21,7 @@
+    respond to the client, then exit.
+ */
++#define _XOPEN_SOURCE 600
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <signal.h>
+@@ -63,8 +64,8 @@ setupSignalHandlers(void) {
+ static xmlrpc_value *
+ sample_add(xmlrpc_env *   const envP, 
+            xmlrpc_value * const paramArrayP,
+-           void *         const serverInfo ATTR_UNUSED,
+-           void *         const channelInfo ATTR_UNUSED) {
++           void *         const serverInfo,
++           void *         const channelInfo) {
+     
+     xmlrpc_int x, y, z;
+@@ -86,6 +87,11 @@ int
+ main(int           const argc, 
+      const char ** const argv) {
++    struct xmlrpc_method_info3 const methodInfo = {
++        .methodName     = "sample.add",
++        .methodFunction = &sample_add,
++        .serverInfo = NULL
++    };
+     TServer abyssServer;
+     xmlrpc_registry * registryP;
+     xmlrpc_env env;
+@@ -101,8 +107,7 @@ main(int           const argc,
+     registryP = xmlrpc_registry_new(&env);
+-    xmlrpc_registry_add_method2(
+-        &env, registryP, "sample.add", &sample_add, NULL, NULL, NULL);
++    xmlrpc_registry_add_method3(&env, registryP, &methodInfo);
+     ServerCreateNoAccept(&abyssServer, "XmlRpcServer", NULL, NULL);
+     
+diff --git a/libs/xmlrpc-c/examples/xmlrpc_loop_server.c b/libs/xmlrpc-c/examples/xmlrpc_loop_server.c
+index 2553ea6..af0c750 100644
+--- a/libs/xmlrpc-c/examples/xmlrpc_loop_server.c
++++ b/libs/xmlrpc-c/examples/xmlrpc_loop_server.c
+@@ -1,11 +1,14 @@
+-/* A simple standalone XML-RPC server based on Abyss that contains a
++/* A simple standalone XML-RPC server program based on Abyss that contains a
+    simple one-thread request processing loop.  
++   This uses the "provide your own Abyss server" mode of operation.
++
+    xmlrpc_sample_add_server.c is a server that does the same thing, but
+    does it by running a full Abyss daemon in the background, so it has
+    less control over how the requests are served.
+ */
++#define _XOPEN_SOURCE 600
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <signal.h>
+@@ -66,7 +69,7 @@ printPeerIpAddr(TSession * const abyssSessionP) {
+ static xmlrpc_value *
+ sample_add(xmlrpc_env *   const envP, 
+            xmlrpc_value * const paramArrayP,
+-           void *         const serverInfo ATTR_UNUSED,
++           void *         const serverInfo,
+            void *         const channelInfo) {
+     
+     xmlrpc_int x, y, z;
+@@ -117,6 +120,11 @@ int
+ main(int           const argc, 
+      const char ** const argv) {
++    struct xmlrpc_method_info3 const methodInfo = {
++        .methodName     = "sample.add",
++        .methodFunction = &sample_add,
++        .serverInfo = NULL
++    };
+     TServer abyssServer;
+     xmlrpc_registry * registryP;
+     xmlrpc_env env;
+@@ -136,8 +144,7 @@ main(int           const argc,
+     registryP = xmlrpc_registry_new(&env);
+-    xmlrpc_registry_add_method2(
+-        &env, registryP, "sample.add", &sample_add, NULL, NULL, NULL);
++    xmlrpc_registry_add_method3(&env, registryP, &methodInfo);
+     xmlrpc_registry_set_shutdown(registryP,
+                                  &requestShutdown, &terminationRequested);
+diff --git a/libs/xmlrpc-c/examples/xmlrpc_sample_add_client.c b/libs/xmlrpc-c/examples/xmlrpc_sample_add_client.c
+index f675a92..3a219dd 100644
+--- a/libs/xmlrpc-c/examples/xmlrpc_sample_add_client.c
++++ b/libs/xmlrpc-c/examples/xmlrpc_sample_add_client.c
+@@ -1,7 +1,10 @@
+-/* A simple synchronous XML-RPC client written in C, as an example of
++/* A simple synchronous XML-RPC client program written in C, as an example of
+    an Xmlrpc-c client.  This invokes the sample.add procedure that the
+-   Xmlrpc-c example server.c server provides.  I.e. it adds to numbers
+-   together, the hard way.
++   Xmlrpc-c example xmlrpc_sample_add_server.c server provides.  I.e. it adds
++   two numbers together, the hard way.
++
++   This sends the RPC to the server running on the local system ("localhost"),
++   HTTP Port 8080.
+ */
+ #include <stdlib.h>
+@@ -16,9 +19,9 @@
+ #define VERSION "1.0"
+ static void 
+-die_if_fault_occurred (xmlrpc_env * const envP) {
++dieIfFaultOccurred (xmlrpc_env * const envP) {
+     if (envP->fault_occurred) {
+-        fprintf(stderr, "XML-RPC Fault: %s (%d)\n",
++        fprintf(stderr, "ERROR: %s (%d)\n",
+                 envP->fault_string, envP->fault_code);
+         exit(1);
+     }
+@@ -28,7 +31,7 @@ die_if_fault_occurred (xmlrpc_env * const envP) {
+ int 
+ main(int           const argc, 
+-     const char ** const argv ATTR_UNUSED) {
++     const char ** const argv) {
+     xmlrpc_env env;
+     xmlrpc_value * resultP;
+@@ -46,7 +49,7 @@ main(int           const argc,
+     /* Start up our XML-RPC client library. */
+     xmlrpc_client_init2(&env, XMLRPC_CLIENT_NO_FLAGS, NAME, VERSION, NULL, 0);
+-    die_if_fault_occurred(&env);
++    dieIfFaultOccurred(&env);
+     printf("Making XMLRPC call to server url '%s' method '%s' "
+            "to request the sum "
+@@ -55,11 +58,11 @@ main(int           const argc,
+     /* Make the remote procedure call */
+     resultP = xmlrpc_client_call(&env, serverUrl, methodName,
+                                  "(ii)", (xmlrpc_int32) 5, (xmlrpc_int32) 7);
+-    die_if_fault_occurred(&env);
++    dieIfFaultOccurred(&env);
+     
+     /* Get our sum and print it out. */
+     xmlrpc_read_int(&env, resultP, &sum);
+-    die_if_fault_occurred(&env);
++    dieIfFaultOccurred(&env);
+     printf("The sum is %d\n", sum);
+     
+     /* Dispose of our result value. */
+diff --git a/libs/xmlrpc-c/examples/xmlrpc_sample_add_server.c b/libs/xmlrpc-c/examples/xmlrpc_sample_add_server.c
+index dbd2861..a4a4370 100644
+--- a/libs/xmlrpc-c/examples/xmlrpc_sample_add_server.c
++++ b/libs/xmlrpc-c/examples/xmlrpc_sample_add_server.c
+@@ -1,4 +1,24 @@
+-/* A simple standalone XML-RPC server written in C. */
++/* A simple standalone XML-RPC server program written in C. */
++
++/* This server knows one RPC class (besides the system classes):
++   "sample.add".
++
++   The program takes one argument: the HTTP port number on which the server
++   is to accept connections, in decimal.
++
++   You can use the example program 'xmlrpc_sample_add_client' to send an RPC
++   to this server.
++
++   Example:
++
++   $ ./xmlrpc_sample_add_server 8080&
++   $ ./xmlrpc_sample_add_client
++
++   For more fun, run client and server in separate terminals and turn on
++   tracing for each:
++
++   $ export XMLRPC_TRACE_XML=1
++*/
+ #include <stdlib.h>
+ #include <stdio.h>
+@@ -25,8 +45,8 @@
+ static xmlrpc_value *
+ sample_add(xmlrpc_env *   const envP,
+            xmlrpc_value * const paramArrayP,
+-           void *         const serverInfo ATTR_UNUSED,
+-           void *         const channelInfo ATTR_UNUSED) {
++           void *         const serverInfo,
++           void *         const channelInfo) {
+     xmlrpc_int32 x, y, z;
+@@ -54,6 +74,10 @@ int
+ main(int           const argc, 
+      const char ** const argv) {
++    struct xmlrpc_method_info3 const methodInfo = {
++        /* .methodName     = */ "sample.add",
++        /* .methodFunction = */ &sample_add,
++    };
+     xmlrpc_server_abyss_parms serverparm;
+     xmlrpc_registry * registryP;
+     xmlrpc_env env;
+@@ -70,8 +94,7 @@ main(int           const argc,
+     registryP = xmlrpc_registry_new(&env);
+-    xmlrpc_registry_add_method2(
+-        &env, registryP, "sample.add", &sample_add, NULL, NULL, NULL);
++    xmlrpc_registry_add_method3(&env, registryP, &methodInfo);
+     /* In the modern form of the Abyss API, we supply parameters in memory
+        like a normal API.  We select the modern form by setting
+diff --git a/libs/xmlrpc-c/examples/xmlrpc_sample_add_server_cgi.c b/libs/xmlrpc-c/examples/xmlrpc_sample_add_server_cgi.c
+index fa476a7..e34c4d7 100644
+--- a/libs/xmlrpc-c/examples/xmlrpc_sample_add_server_cgi.c
++++ b/libs/xmlrpc-c/examples/xmlrpc_sample_add_server_cgi.c
+@@ -1,4 +1,22 @@
+-/* A simple standalone XML-RPC server written in C. */
++/* A CGI script written in C to effect a simple XML-RPC server.
++
++   Example of use:
++
++     - Compile this as the executable 'xmlrpc_sample_add_server.cgi'
++
++     - Place the .cgi file in web server www.example.com's /cgi-bin
++       directory.
++
++     - Configure the web server to permit CGI scripts in /cgi-bin
++       (Apache ExecCgi directory option).
++
++     - Configure the web server to recognize this .cgi file as a CGI
++       script (Apache "AddHandler cgi-script ..." or ScriptAlias).
++
++     - $ xmlrpc http://www.example.com/cgi-bin/xmlrpc_sample_add_server.cgi \
++           sample.add i/5 i/7
++*/
++
+ #include <stdlib.h>
+ #include <stdio.h>
+@@ -12,7 +30,7 @@
+ static xmlrpc_value *
+ sample_add(xmlrpc_env *   const envP,
+            xmlrpc_value * const paramArrayP,
+-           void *         const user_data ATTR_UNUSED) {
++           void *         const user_data) {
+     xmlrpc_int32 x, y, z;
+diff --git a/libs/xmlrpc-c/examples/xmlrpc_server_validatee.c b/libs/xmlrpc-c/examples/xmlrpc_server_validatee.c
+index 927da8a..ad613a8 100644
+--- a/libs/xmlrpc-c/examples/xmlrpc_server_validatee.c
++++ b/libs/xmlrpc-c/examples/xmlrpc_server_validatee.c
+@@ -66,7 +66,7 @@
+ static xmlrpc_value *
+ array_of_structs(xmlrpc_env *   const envP, 
+                  xmlrpc_value * const paramArrayP, 
+-                 void *         const user_data ATTR_UNUSED) {
++                 void *         const user_data) {
+     xmlrpc_value * arrayP;
+     xmlrpc_value * retval;
+@@ -114,7 +114,7 @@ array_of_structs(xmlrpc_env *   const envP,
+ static xmlrpc_value *
+ count_entities(xmlrpc_env *   const envP,
+                xmlrpc_value * const paramArrayP, 
+-               void *         const user_data ATTR_UNUSED) {
++               void *         const user_data) {
+     const char * str;
+     size_t len, i;
+@@ -154,7 +154,7 @@ count_entities(xmlrpc_env *   const envP,
+ static xmlrpc_value *
+ easy_struct(xmlrpc_env *   const envP,
+             xmlrpc_value * const paramArrayP,
+-            void *         const user_data ATTR_UNUSED) {
++            void *         const user_data) {
+     xmlrpc_int32 larry, moe, curly;
+@@ -179,7 +179,7 @@ easy_struct(xmlrpc_env *   const envP,
+ static xmlrpc_value *
+ echo_struct(xmlrpc_env *   const envP,
+             xmlrpc_value * const paramArrayP, 
+-            void *         const user_data ATTR_UNUSED) {
++            void *         const user_data) {
+     xmlrpc_value * sP;
+@@ -198,9 +198,9 @@ echo_struct(xmlrpc_env *   const envP,
+ */
+ static xmlrpc_value *
+-many_types(xmlrpc_env *   const env ATTR_UNUSED, 
++many_types(xmlrpc_env *   const env, 
+            xmlrpc_value * const param_array, 
+-           void *         const user_data ATTR_UNUSED) {
++           void *         const user_data) {
+     /* Create another reference to our argument array and return it as is. */
+     xmlrpc_INCREF(param_array);
+@@ -244,7 +244,7 @@ concatenate(xmlrpc_env *    const envP,
+ static xmlrpc_value *
+ moderate_array(xmlrpc_env *   const envP,
+                xmlrpc_value * const paramArrayP,
+-               void *         const user_data ATTR_UNUSED) {
++               void *         const user_data) {
+     xmlrpc_value * retval;
+     xmlrpc_value * arrayP;
+@@ -295,7 +295,7 @@ moderate_array(xmlrpc_env *   const envP,
+ static xmlrpc_value *
+ nested_struct(xmlrpc_env *   const envP,
+               xmlrpc_value * const paramArrayP,
+-              void *         const user_data ATTR_UNUSED) {
++              void *         const user_data) {
+     xmlrpc_value * yearsP;
+     xmlrpc_value * retval;
+@@ -333,7 +333,7 @@ nested_struct(xmlrpc_env *   const envP,
+ static xmlrpc_value *
+ struct_return(xmlrpc_env *   const envP,
+               xmlrpc_value * const paramArrayP,
+-              void *         const user_data ATTR_UNUSED) {
++              void *         const user_data) {
+     xmlrpc_int32 i;
+diff --git a/libs/xmlrpc-c/examples/xmlrpc_socket_server.c b/libs/xmlrpc-c/examples/xmlrpc_socket_server.c
+index 2e2cd8b..9cbc5aa 100644
+--- a/libs/xmlrpc-c/examples/xmlrpc_socket_server.c
++++ b/libs/xmlrpc-c/examples/xmlrpc_socket_server.c
+@@ -1,5 +1,5 @@
+-/* A simple standalone XML-RPC server written in C as an example of use of
+-   the Xmlrpc-c libraries.
++/* A simple standalone XML-RPC server program written in C as an example of
++   use of the Xmlrpc-c libraries.
+    This example expects an already bound socket on Standard Input, ready to
+    be listened on for client connections.  Also see xmlrpc_sample_add_server,
+@@ -7,7 +7,11 @@
+    creates the socket itself.  Also see xmlrpc_inetd_server.c, which is
+    the same thing except you give it a socket which is already connected
+    to a client.
+- */
++
++   Example:
++
++   $ socketexec -local_port=8080 ./xmlrpc_socket_server
++*/
+ #include <stdlib.h>
+ #include <stdio.h>
+@@ -33,7 +37,8 @@
+ static xmlrpc_value *
+ sample_add(xmlrpc_env *   const envP,
+            xmlrpc_value * const paramArrayP,
+-           void *         const user_data ATTR_UNUSED) {
++           void *         const serverInfo,
++           void *         const channelInfo) {
+     xmlrpc_int32 x, y, z;
+@@ -61,6 +66,11 @@ int
+ main(int           const argc, 
+      const char ** const argv) {
++    struct xmlrpc_method_info3 const methodInfo = {
++        .methodName     = "sample.add",
++        .methodFunction = &sample_add,
++        .serverInfo = NULL
++    };
+     xmlrpc_server_abyss_parms serverparm;
+     xmlrpc_registry * registryP;
+     xmlrpc_env env;
+@@ -77,8 +87,7 @@ main(int           const argc,
+     registryP = xmlrpc_registry_new(&env);
+-    xmlrpc_registry_add_method(
+-        &env, registryP, NULL, "sample.add", &sample_add, NULL);
++    xmlrpc_registry_add_method3(&env, registryP, &methodInfo);
+     /* In the modern form of the Abyss API, we supply parameters in memory
+        like a normal API.  We select the modern form by setting
+diff --git a/libs/xmlrpc-c/include/Makefile b/libs/xmlrpc-c/include/Makefile
+index d396ca7..28fd00b 100644
+--- a/libs/xmlrpc-c/include/Makefile
++++ b/libs/xmlrpc-c/include/Makefile
+@@ -36,18 +36,22 @@ xmlrpc-c/config.h: $(BLDDIR)/$(SUBDIR)/xmlrpc-c
+       @echo '  #define XMLRPC_SOCKET SOCKET'                            >>$@
+       @echo '  #define XMLRPC_HAVE_TIMEVAL 0'                           >>$@
+       @echo '  #define XMLRPC_HAVE_TIMESPEC 0'                          >>$@
++      @echo '  #define XMLRPC_HAVE_PTHREAD 0'                           >>$@
+       @echo '#else'                                                     >>$@
+       @echo '  #define XMLRPC_SOCKET int'                               >>$@
+       @echo '  #define XMLRPC_HAVE_TIMEVAL 1'                           >>$@
+       @echo '  #define XMLRPC_HAVE_TIMESPEC 1'                          >>$@
++      @echo '  #define XMLRPC_HAVE_PTHREAD 1'                           >>$@
+       @echo '#endif'                                                    >>$@
+       @echo ''                                                          >>$@
+       @echo '#if defined(_MSC_VER)'                                     >>$@
+       @echo '  /* Newer MSVC has long long, but MSVC 6 does not */'     >>$@
+       @echo '  #define XMLRPC_INT64 __int64'                            >>$@
++      @echo '  #define XMLRPC_PRId64 "I64"'                             >>$@
+       @echo '  #define XMLRPC_INT32 __int32'                            >>$@
+       @echo '#else'                                                     >>$@
+       @echo '  #define XMLRPC_INT64 long long'                          >>$@
++      @echo '  #define XMLRPC_PRId64 "lld"'                             >>$@
+       @echo '  #define XMLRPC_INT32 int'                                >>$@
+       @echo '#endif'                                                    >>$@
+       @echo '#endif'                                                    >>$@
+@@ -58,7 +62,7 @@ $(BLDDIR)/$(SUBDIR)/xmlrpc-c:
+ COMPAT_LINK_CMDS = \
+   $(LN_S) xmlrpc-c/oldxmlrpc.h         xmlrpc.h; \
+   $(LN_S) xmlrpc-c/server.h            xmlrpc_server.h; \
+-  $(LN_S) xmlrpc-c/server_abyss.h      xmlrpc_server_abyss.h; \
++  $(LN_S) xmlrpc-c/server_abyss.h      xmlrpc_abyss.h; \
+   $(LN_S) xmlrpc-c/server_w32httpsys.h xmlrpc_server_w32httpsys.h; \
+ HEADERS_TO_INSTALL = \
+@@ -67,6 +71,7 @@ HEADERS_TO_INSTALL = \
+   xmlrpc-c/c_util.h \
+   xmlrpc-c/util.h \
+   xmlrpc-c/base.h \
++  xmlrpc-c/json.h \
+   xmlrpc-c/abyss.h \
+   xmlrpc-c/abyss_unixsock.h \
+   xmlrpc-c/abyss_winsock.h \
+@@ -119,22 +124,25 @@ default: all
+ all:
+ .PHONY: install-compat-hdr
+-install-compat-hdr:
++install-compat-hdr: install-headers
+ # Install old names of header files for backward compatibility
+       cd $(DESTDIR)$(HEADERINST_DIR); \
+         rm -f xmlrpc.h xmlrpc_client.h xmlrpc_server.h xmlrpc_cgi.h \
+-                xmlrpc_server_abyss.h xmlrpc_server_w32httpsys.h \
++                xmlrpc_server_abyss.h xmlrpc_abyss.h \
++              xmlrpc_server_w32httpsys.h \
+               XmlRpcCpp.h; \
+         $(COMPAT_LINK_CMDS)
+ .PHONY: install
+ install: install-common install-compat-hdr
+-.PHONY: clean distclean dep
++.PHONY: clean
+ clean:
+-distclean:
+       rm -f xmlrpc-c/config.h
++.PHONY: distclean
++distclean: clean
++
+ .PHONY: check
+ check:
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/abyss.h b/libs/xmlrpc-c/include/xmlrpc-c/abyss.h
+index e044008..627e872 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/abyss.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/abyss.h
+@@ -21,6 +21,7 @@ extern "C" {
+ #include <sys/types.h>
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/inttypes.h>
+ /****************************************************************************
+@@ -33,9 +34,11 @@ typedef int abyss_bool;
+   GLOBAL (STATIC) PROGRAM STUFF
+ ****************************************************************************/
++XMLRPC_DLLEXPORT
+ void
+ AbyssInit(const char ** const errorP);
++XMLRPC_DLLEXPORT
+ void
+ AbyssTerm(void);
+@@ -45,23 +48,29 @@ AbyssTerm(void);
+ typedef struct MIMEType MIMEType;
++XMLRPC_DLLEXPORT
+ MIMEType *
+ MIMETypeCreate(void);
++XMLRPC_DLLEXPORT
+ void
+ MIMETypeDestroy(MIMEType * const MIMETypeP);
++XMLRPC_DLLEXPORT
+ void
+ MIMETypeInit(void);
++XMLRPC_DLLEXPORT
+ void
+ MIMETypeTerm(void);
++XMLRPC_DLLEXPORT
+ abyss_bool
+ MIMETypeAdd2(MIMEType *   const MIMETypeP,
+              const char * const type,
+              const char * const ext);
++XMLRPC_DLLEXPORT
+ abyss_bool
+ MIMETypeAdd(const char * const type,
+             const char * const ext);
+@@ -81,9 +90,11 @@ typedef struct _TSocket TSocket;
+   #include <xmlrpc-c/abyss_unixsock.h>
+ #endif
++XMLRPC_DLLEXPORT
+ void
+ ChanSwitchInit(const char ** const errorP);
++XMLRPC_DLLEXPORT
+ void
+ ChanSwitchTerm(void);
+@@ -92,18 +103,23 @@ ChanSwitchTerm(void);
+    in abyss_unixsock.h, etc.
+ */
++XMLRPC_DLLEXPORT
+ void
+ ChanSwitchDestroy(TChanSwitch * const chanSwitchP);
++XMLRPC_DLLEXPORT
+ void
+ ChannelInit(const char ** const errorP);
++XMLRPC_DLLEXPORT
+ void
+ ChannelTerm(void);
++XMLRPC_DLLEXPORT
+ void
+ ChannelDestroy(TChannel * const channelP);
++XMLRPC_DLLEXPORT
+ void
+ SocketDestroy(TSocket * const socketP);
+@@ -120,6 +136,7 @@ typedef struct {
+ typedef struct _TSession TSession;
++XMLRPC_DLLEXPORT
+ abyss_bool
+ ServerCreate(TServer *       const serverP,
+              const char *    const name,
+@@ -127,11 +144,13 @@ ServerCreate(TServer *       const serverP,
+              const char *    const filespath,
+              const char *    const logfilename);
++XMLRPC_DLLEXPORT
+ void
+ ServerCreateSwitch(TServer *     const serverP,
+                    TChanSwitch * const chanSwitchP,
+                    const char ** const errorP);
++XMLRPC_DLLEXPORT
+ abyss_bool
+ ServerCreateSocket(TServer *    const serverP,
+                    const char * const name,
+@@ -140,71 +159,87 @@ ServerCreateSocket(TServer *    const serverP,
+                    const char * const logfilename);
+ #define HAVE_SERVER_CREATE_SOCKET_2
++XMLRPC_DLLEXPORT
+ void
+ ServerCreateSocket2(TServer *     const serverP,
+                     TSocket *     const socketP,
+                     const char ** const errorP);
++XMLRPC_DLLEXPORT
+ abyss_bool
+ ServerCreateNoAccept(TServer *    const serverP,
+                      const char * const name,
+                      const char * const filespath,
+                      const char * const logfilename);
++XMLRPC_DLLEXPORT
+ void
+ ServerFree(TServer * const serverP);
++XMLRPC_DLLEXPORT
+ void
+ ServerSetName(TServer *    const serverP,
+               const char * const name);
++XMLRPC_DLLEXPORT
+ void
+ ServerSetFilesPath(TServer *    const serverP,
+                    const char * const filesPath);
++XMLRPC_DLLEXPORT
+ void
+ ServerSetLogFileName(TServer *    const serverP,
+                      const char * const logFileName);
+ #define HAVE_SERVER_SET_KEEPALIVE_TIMEOUT 1
++XMLRPC_DLLEXPORT
+ void
+ ServerSetKeepaliveTimeout(TServer *       const serverP,
+                           xmlrpc_uint32_t const keepaliveTimeout);
+ #define HAVE_SERVER_SET_KEEPALIVE_MAX_CONN 1
++XMLRPC_DLLEXPORT
+ void
+ ServerSetKeepaliveMaxConn(TServer *       const serverP,
+                           xmlrpc_uint32_t const keepaliveMaxConn);
+ #define HAVE_SERVER_SET_TIMEOUT 1
++XMLRPC_DLLEXPORT
+ void
+ ServerSetTimeout(TServer *       const serverP,
+                  xmlrpc_uint32_t const timeout);
+ #define HAVE_SERVER_SET_ADVERTISE 1
++XMLRPC_DLLEXPORT
+ void
+ ServerSetAdvertise(TServer *  const serverP,
+                    abyss_bool const advertise);
+ #define HAVE_SERVER_SET_MIME_TYPE 1
++XMLRPC_DLLEXPORT
+ void
+ ServerSetMimeType(TServer *  const serverP,
+                   MIMEType * const MIMETypeP);
++XMLRPC_DLLEXPORT
+ int
+ ServerInit(TServer * const serverP);
++XMLRPC_DLLEXPORT
+ void
+ ServerRun(TServer * const serverP);
++XMLRPC_DLLEXPORT
+ void
+ ServerRunOnce(TServer * const serverP);
+ /* ServerRunOnce2() is obsolete.  See user's guide. */
++XMLRPC_DLLEXPORT
+ void
+ ServerRunOnce2(TServer *           const serverP,
+                enum abyss_foreback const foregroundBackground);
++XMLRPC_DLLEXPORT
+ void
+ ServerRunChannel(TServer *     const serverP,
+                  TChannel *    const channelP,
+@@ -212,24 +247,30 @@ ServerRunChannel(TServer *     const serverP,
+                  const char ** const errorP);
+ #define HAVE_SERVER_RUN_CONN_2
++XMLRPC_DLLEXPORT
+ void
+ ServerRunConn2(TServer *     const serverP,
+                TSocket *     const connectedSocketP,
+                const char ** const errorP);
++XMLRPC_DLLEXPORT
+ void
+ ServerRunConn(TServer * const serverP,
+               TOsSocket const connectedSocket);
++XMLRPC_DLLEXPORT
+ void
+ ServerDaemonize(TServer * const serverP);
++XMLRPC_DLLEXPORT
+ void
+ ServerTerminate(TServer * const serverP);
++XMLRPC_DLLEXPORT
+ void
+ ServerResetTerminate(TServer * const serverP);
++XMLRPC_DLLEXPORT
+ void
+ ServerUseSigchld(TServer * const serverP);
+@@ -242,15 +283,31 @@ typedef abyss_bool (*URIHandler) (TSession *); /* deprecated */
+ struct URIHandler2;
+-typedef void (*initHandlerFn)(struct URIHandler2 *,
+-                              abyss_bool *);
++typedef void (*initHandlerFn)(struct URIHandler2 *, abyss_bool *);
+ typedef void (*termHandlerFn)(void *);
++typedef void (*handleReq3Fn)(void *,
++                             TSession *,
++                             abyss_bool *);
++
+ typedef void (*handleReq2Fn)(struct URIHandler2 *,
+                              TSession *,
+                              abyss_bool *);
++struct ServerReqHandler3 {
++    termHandlerFn term;
++    handleReq3Fn  handleReq;
++    void *        userdata;
++    size_t        handleReqStackSize; /* zero = default */
++};
++
++XMLRPC_DLLEXPORT
++void
++ServerAddHandler3(TServer *                        const serverP,
++                  const struct ServerReqHandler3 * const handlerP,
++                  abyss_bool *                     const successP);
++
+ typedef struct URIHandler2 {
+     initHandlerFn init;
+     termHandlerFn term;
+@@ -259,11 +316,13 @@ typedef struct URIHandler2 {
+     void *        userdata;
+ } URIHandler2;
++XMLRPC_DLLEXPORT
+ void
+ ServerAddHandler2(TServer *     const srvP,
+                   URIHandler2 * const handlerP,
+                   abyss_bool *  const successP);
++XMLRPC_DLLEXPORT
+ abyss_bool
+ ServerAddHandler(TServer * const srvP,
+                  URIHandler const handler);
+@@ -274,6 +333,7 @@ typedef abyss_bool (*THandlerDflt) (TSession *);
+    for the same type
+ */
++XMLRPC_DLLEXPORT
+ void
+ ServerDefaultHandler(TServer *    const srvP,
+                      THandlerDflt const handler);
+@@ -283,10 +343,12 @@ ServerDefaultHandler(TServer *    const srvP,
+    inappropriate for an API.
+ */
++XMLRPC_DLLEXPORT
+ abyss_bool
+ ConfReadServerFile(const char * const filename,
+                    TServer *    const srvP);
++XMLRPC_DLLEXPORT
+ void
+ LogWrite(TServer *    const srvP,
+          const char * const c);
+@@ -309,7 +371,7 @@ typedef struct {
+     const char * query;
+         /* The query part of the URI (stuff after '?').  NULL if none. */
+     const char * host;
+-        /* NOT the value of the host: header.  Rather, the name of the
++        /* NOT the value of the host: header field.  Rather, the name of the
+            target host (could be part of the host: value; could be from the
+            URI).  No port number.  NULL if request does not specify a host
+            name.
+@@ -319,7 +381,7 @@ typedef struct {
+     const char * referer;
+     const char * requestline;
+     const char * user;
+-        /* Requesting user (from authorization: header).  NULL if
++        /* Requesting user (from authorization: header field).  NULL if
+            request doesn't specify or handler has not authenticated it.
+         */
+     xmlrpc_uint16_t port;
+@@ -329,98 +391,157 @@ typedef struct {
+     abyss_bool keepalive;
+ } TRequestInfo;
++XMLRPC_DLLEXPORT
+ abyss_bool
+ SessionRefillBuffer(TSession * const sessionP);
++XMLRPC_DLLEXPORT
+ size_t
+ SessionReadDataAvail(TSession * const sessionP);
++XMLRPC_DLLEXPORT
+ void
+ SessionGetReadData(TSession *    const sessionP, 
+                    size_t        const max, 
+                    const char ** const outStartP, 
+                    size_t *      const outLenP);
++XMLRPC_DLLEXPORT
+ void
+ SessionGetRequestInfo(TSession *            const sessionP,
+                       const TRequestInfo ** const requestInfoPP);
++XMLRPC_DLLEXPORT
+ void
+ SessionGetChannelInfo(TSession * const sessionP,
+                       void **    const channelInfoPP);
++XMLRPC_DLLEXPORT
+ void *
+ SessionGetDefaultHandlerCtx(TSession * const sessionP);
++XMLRPC_DLLEXPORT
+ char *
+ RequestHeaderValue(TSession *   const sessionP,
+                    const char * const name);
++XMLRPC_DLLEXPORT
+ abyss_bool
+ ResponseAddField(TSession *   const sessionP,
+                  const char * const name,
+                  const char * const value);
+-void
++XMLRPC_DLLEXPORT
++abyss_bool
+ ResponseWriteStart(TSession * const sessionP);
+ /* For backward compatibility: */
+ #define ResponseWrite ResponseWriteStart
++XMLRPC_DLLEXPORT
+ abyss_bool
+ ResponseWriteBody(TSession *      const sessionP,
+                   const char *    const data,
+                   xmlrpc_uint32_t const len);
++XMLRPC_DLLEXPORT
+ abyss_bool
+ ResponseWriteEnd(TSession * const sessionP);
++XMLRPC_DLLEXPORT
+ abyss_bool
+ ResponseChunked(TSession * const sessionP);
++XMLRPC_DLLEXPORT
+ xmlrpc_uint16_t
+ ResponseStatusFromErrno(int const errnoArg);
++XMLRPC_DLLEXPORT
+ void
+ ResponseStatus(TSession *      const sessionP,
+                xmlrpc_uint16_t const code);
++XMLRPC_DLLEXPORT
+ void
+ ResponseStatusErrno(TSession * const sessionP);
++XMLRPC_DLLEXPORT
+ abyss_bool
+ ResponseContentType(TSession *   const serverP,
+                     const char * const type);
++XMLRPC_DLLEXPORT
+ abyss_bool
+ ResponseContentLength(TSession *      const sessionP,
+                       xmlrpc_uint64_t const len);
++typedef struct {
++/*----------------------------------------------------------------------------
++   These are parameters to control the HTTP "Access Control functions.  That's
++   where the client asks whether it is OK to send a request that some other
++   server asked the client to send (e.g. a person web browses a page at
++   a.example.com, and it sends a script that executes on the user's computer
++   and tries to perform an XML-RPC RPC on b.example.com.  The user's browser
++   first asks b.example.com if it is OK to do an RPC that is really initiated
++   by a.example.com.
++-----------------------------------------------------------------------------*/
++    const char * allowOrigin;
++        /* This tells what original servers (a.example.com in the example
++           above) are allowed to submit RPCs indirectly to us.  The value is a
++           verbatim value for an HTTP Access-Control-Allow-Origin header field
++           (just the value part of the field, not the whole field).  "*"
++           therefore means everyone is allowed.  "" means no one.
++    
++           NULL means not to say anything about access control to the client.
++        */
++    abyss_bool expires;
++        /* The permissions herein expire after a certain period from now.
++           'maxAge' is that period.
++        */
++    unsigned int maxAge;
++        /* Meaningful only when 'expires' is true.  The expiration period
++           in seconds.  Zero is valid.
++        */
++} ResponseAccessCtl;
++
++XMLRPC_DLLEXPORT
++void
++ResponseAccessControl(TSession *        const abyssSessionP, 
++                      ResponseAccessCtl const accessControl);
++
++XMLRPC_DLLEXPORT
+ void
+ ResponseError2(TSession *   const sessionP,
+                const char * const explanation);
++XMLRPC_DLLEXPORT
+ void
+ ResponseError(TSession * const sessionP);
++XMLRPC_DLLEXPORT
+ const char *
+ MIMETypeFromExt(const char * const ext);
++XMLRPC_DLLEXPORT
+ const char *
+ MIMETypeFromExt2(MIMEType *   const MIMETypeP,
+                  const char * const ext);
++XMLRPC_DLLEXPORT
+ const char *
+ MIMETypeFromFileName2(MIMEType *   const MIMETypeP,
+                       const char * const fileName);
++XMLRPC_DLLEXPORT
+ const char *
+ MIMETypeFromFileName(const char * const fileName);
++XMLRPC_DLLEXPORT
+ const char *
+ MIMETypeGuessFromFile2(MIMEType *   const MIMETypeP,
+                        const char * const fileName);
++XMLRPC_DLLEXPORT
+ const char *
+ MIMETypeGuessFromFile(const char * const filename);
+@@ -460,7 +581,7 @@ MIMETypeGuessFromFile(const char * const filename);
+ ** Maximum number of simultaneous connections
+ *********************************************************************/
+-#define MAX_CONN 100000
++#define MAX_CONN    16
+ /*********************************************************************
+ ** General purpose definitions
+@@ -482,26 +603,21 @@ MIMETypeGuessFromFile(const char * const filename);
+ ** Range
+ *********************************************************************/
++XMLRPC_DLLEXPORT
+ abyss_bool
+ RangeDecode(char *            const str,
+             xmlrpc_uint64_t   const filesize,
+             xmlrpc_uint64_t * const start,
+             xmlrpc_uint64_t * const end);
++XMLRPC_DLLEXPORT
+ abyss_bool DateInit(void);
+ /*********************************************************************
+-** Base64
+-*********************************************************************/
+-
+-void
+-Base64Encode(const char * const chars,
+-             char *       const base64);
+-
+-/*********************************************************************
+ ** Session
+ *********************************************************************/
++XMLRPC_DLLEXPORT
+ abyss_bool SessionLog(TSession * const s);
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/abyss_winsock.h b/libs/xmlrpc-c/include/xmlrpc-c/abyss_winsock.h
+index f376446..8aeb782 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/abyss_winsock.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/abyss_winsock.h
+@@ -7,17 +7,19 @@ struct abyss_win_chaninfo {
+     struct sockaddr peerAddr;
+ };
+-
++XMLRPC_DLLEXPORT
+ void
+ ChanSwitchWinCreate(unsigned short const portNumber,
+                     TChanSwitch ** const chanSwitchPP,
+                     const char **  const errorP);
++XMLRPC_DLLEXPORT
+ void
+ ChanSwitchWinCreateWinsock(SOCKET         const winsock,
+                            TChanSwitch ** const chanSwitchPP,
+                            const char **  const errorP);
++XMLRPC_DLLEXPORT
+ void
+ ChannelWinCreateWinsock(SOCKET                       const fd,
+                         TChannel **                  const channelPP,
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/base.h b/libs/xmlrpc-c/include/xmlrpc-c/base.h
+index a68a4f1..cdc9161 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/base.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/base.h
+@@ -6,26 +6,40 @@
+ #include <stddef.h>
+ #include <stdarg.h>
+ #include <time.h>
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/util.h>
+ #include <xmlrpc-c/config.h>
+-  /* Defines XMLRPC_HAVE_WCHAR, XMLRPC_INT64 */
++  /* Defines XMLRPC_HAVE_WCHAR, XMLRPC_INT64, XMLRPC_HAVE_TIMEVAL */
+ #if XMLRPC_HAVE_WCHAR
+ #include <wchar.h>
+ #endif
++#if XMLRPC_HAVE_TIMEVAL
++#include <sys/time.h>
++#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+-
+ /*=========================================================================
+ **  Version of libxmlrpc
+ **=======================================================================*/
++
++/* These are for backward compatibility -- they can't be exported from a
++   Windows DLL.  xmlrpc_server_version() is preferred.
++*/
+ extern unsigned int const xmlrpc_version_major;
+ extern unsigned int const xmlrpc_version_minor;
+ extern unsigned int const xmlrpc_version_point;
++XMLRPC_DLLEXPORT
++void
++xmlrpc_version(unsigned int * const majorP,
++               unsigned int * const minorP,
++               unsigned int * const pointP);
++
+ /*=========================================================================
+ **  C types equivalent to XML-RPC types
+ **=======================================================================*/
+@@ -50,6 +64,19 @@ typedef double xmlrpc_double;
+        so it's probably clearer just to use that.  This typedef is here 
+        for mathematical completeness.
+     */
++typedef struct {
++    /* A datetime of the type defined by XML-RPC <dateTime.iso8601> with
++       a few extensions.  I.e. in the range 1-9999 AD with microsecond
++       resolution.
++    */
++        unsigned int Y;   /* 1-? */
++        unsigned int M;   /* 1-12 */
++        unsigned int D;   /* 1-31 */
++        unsigned int h;   /* 0-23 */
++        unsigned int m;   /* 0-59 */
++        unsigned int s;   /* 0-59 */
++        unsigned int u;   /* 0-999999 */
++} xmlrpc_datetime;
+ /* xmlrpc_socket is just for backward compatibility, in case someone decided
+    to use this in user code.  New code should use the native type for a
+@@ -89,12 +116,13 @@ typedef enum {
+ #define XMLRPC_HAVE_I8 1
+-/* These are *always* allocated on the heap. No exceptions. */
+ typedef struct _xmlrpc_value xmlrpc_value;
++XMLRPC_DLLEXPORT
+ const char *
+ xmlrpc_type_name(xmlrpc_type const type);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_abort_if_array_bad(xmlrpc_value * const arrayP);
+@@ -102,109 +130,193 @@ xmlrpc_abort_if_array_bad(xmlrpc_value * const arrayP);
+     xmlrpc_abort_if_array_bad(val)
+ /* Increment the reference count of an xmlrpc_value. */
+-extern void xmlrpc_INCREF (xmlrpc_value* const value);
++XMLRPC_DLLEXPORT
++extern void xmlrpc_INCREF(xmlrpc_value* const value);
+ /* Decrement the reference count of an xmlrpc_value. If there
+ ** are no more references, free it. */
+-extern void xmlrpc_DECREF (xmlrpc_value* const value);
++XMLRPC_DLLEXPORT
++extern void xmlrpc_DECREF(xmlrpc_value* const value);
+ /* Get the type of an XML-RPC value. */
++XMLRPC_DLLEXPORT
+ extern xmlrpc_type xmlrpc_value_type (xmlrpc_value* const value);
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_int_new(xmlrpc_env * const envP,
+                int          const intValue);
++XMLRPC_DLLEXPORT
++void 
++xmlrpc_read_int(xmlrpc_env *         const envP,
++                const xmlrpc_value * const valueP,
++                int *                const intValueP);
++
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_i8_new(xmlrpc_env * const envP, 
+               xmlrpc_int64 const value);
++XMLRPC_DLLEXPORT
+ void 
+-xmlrpc_read_int(xmlrpc_env *         const envP,
+-                const xmlrpc_value * const valueP,
+-                int *                const intValueP);
++xmlrpc_read_i8(xmlrpc_env *         const envP,
++               const xmlrpc_value * const valueP,
++               xmlrpc_int64 *       const intValueP);
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_bool_new(xmlrpc_env * const envP,
+                 xmlrpc_bool  const boolValue);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_bool(xmlrpc_env *         const envP,
+                  const xmlrpc_value * const valueP,
+                  xmlrpc_bool *        const boolValueP);
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_double_new(xmlrpc_env * const envP,
+                   double       const doubleValue);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_double(xmlrpc_env *         const envP,
+                    const xmlrpc_value * const valueP,
+                    xmlrpc_double *      const doubleValueP);
++XMLRPC_DLLEXPORT
++xmlrpc_value *
++xmlrpc_datetime_new(xmlrpc_env *    const envP, 
++                    xmlrpc_datetime const dt);
++
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_datetime_new_str(xmlrpc_env * const envP,
+                         const char * const value);
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_datetime_new_sec(xmlrpc_env * const envP, 
+                         time_t       const value);
++XMLRPC_DLLEXPORT
++xmlrpc_value*
++xmlrpc_datetime_new_usec(xmlrpc_env * const envP,
++                         time_t       const secs,
++                         unsigned int const usecs);
++
++#if XMLRPC_HAVE_TIMEVAL
++XMLRPC_DLLEXPORT
++xmlrpc_value *
++xmlrpc_datetime_new_timeval(xmlrpc_env *   const envP, 
++                            struct timeval const value);
++#endif
++
++#if XMLRPC_HAVE_TIMESPEC
++XMLRPC_DLLEXPORT
++xmlrpc_value *
++xmlrpc_datetime_new_timespec(xmlrpc_env *    const envP, 
++                             struct timespec const value);
++#endif
++
++void
++XMLRPC_DLLEXPORT
++xmlrpc_read_datetime(xmlrpc_env *         const envP,
++                     const xmlrpc_value * const valueP,
++                     xmlrpc_datetime *    const dtP);
++
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_datetime_str(xmlrpc_env *         const envP,
+                          const xmlrpc_value * const valueP,
+                          const char **        const stringValueP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_datetime_sec(xmlrpc_env *         const envP,
+                          const xmlrpc_value * const valueP,
+                          time_t *             const timeValueP);
++XMLRPC_DLLEXPORT
++void
++xmlrpc_read_datetime_usec(xmlrpc_env *         const envP,
++                          const xmlrpc_value * const valueP,
++                          time_t *             const secsP,
++                          unsigned int *       const usecsP);
++
++#if XMLRPC_HAVE_TIMEVAL
++XMLRPC_DLLEXPORT
++void
++xmlrpc_read_datetime_timeval(xmlrpc_env *         const envP,
++                             const xmlrpc_value * const valueP,
++                             struct timeval *     const timeValueP);
++#endif
++
++#if XMLRPC_HAVE_TIMESPEC
++XMLRPC_DLLEXPORT
++void
++xmlrpc_read_datetime_timespec(xmlrpc_env *         const envP,
++                              const xmlrpc_value * const valueP,
++                              struct timespec *    const timeValueP);
++#endif
++
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_string_new(xmlrpc_env * const envP,
+                   const char * const stringValue);
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_string_new_lp(xmlrpc_env * const envP, 
+                      size_t       const length,
+                      const char * const stringValue);
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_string_new_va(xmlrpc_env * const envP,
+                      const char * const format,
+                      va_list            args);
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_string_new_f(xmlrpc_env * const envP,
+                     const char * const format,
+                     ...);
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_string_new_lp_cr(xmlrpc_env * const envP, 
+                         size_t       const length,
+                         const char * const value);
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_string_new_cr(xmlrpc_env * const envP,
+                      const char * const value);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_string(xmlrpc_env *         const envP,
+                    const xmlrpc_value * const valueP,
+                    const char **        const stringValueP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_string_crlf(xmlrpc_env *         const envP,
+                         const xmlrpc_value * const valueP,
+                         const char **        const stringValueP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_string_lp_crlf(xmlrpc_env *         const envP,
+                            const xmlrpc_value * const valueP,
+                            size_t *             const lengthP,
+                            const char **        const stringValueP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_string_lp(xmlrpc_env *         const envP,
+                       const xmlrpc_value * const valueP,
+@@ -212,80 +324,93 @@ xmlrpc_read_string_lp(xmlrpc_env *         const envP,
+                       const char **        const stringValueP);
+ #if XMLRPC_HAVE_WCHAR
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_string_w_new(xmlrpc_env *    const envP,
+                     const wchar_t * const stringValue);
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_string_w_new_lp(xmlrpc_env *    const envP, 
+                        size_t          const length,
+                        const wchar_t * const stringValue);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_string_w(xmlrpc_env *     const envP,
+                      xmlrpc_value *   const valueP,
+                      const wchar_t ** const stringValueP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_string_w_crlf(xmlrpc_env *     const envP,
+                           xmlrpc_value *   const valueP,
+                           const wchar_t ** const stringValueP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_string_w_lp(xmlrpc_env *     const envP,
+                         xmlrpc_value *   const valueP,
+                         size_t *         const lengthP,
+                         const wchar_t ** const stringValueP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_string_w_lp_crlf(xmlrpc_env *     const envP,
+                              xmlrpc_value *   const valueP,
+                              size_t *         const lengthP,
+                              const wchar_t ** const stringValueP);
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_string_w_new_lp_cr(xmlrpc_env *    const envP, 
+                           size_t          const length,
+                           const wchar_t * const value);
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_string_w_new_cr(xmlrpc_env *    const envP,
+                        const wchar_t * const value);
+ #endif /* XMLRPC_HAVE_WCHAR */
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_base64_new(xmlrpc_env *          const envP, 
+                   size_t                const length,
+                   const unsigned char * const value);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_base64(xmlrpc_env *           const envP,
+                    const xmlrpc_value *   const valueP,
+                    size_t *               const lengthP,
+                    const unsigned char ** const bytestringValueP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_base64_size(xmlrpc_env *           const envP,
+                         const xmlrpc_value *   const valueP,
+                         size_t *               const lengthP);
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_array_new(xmlrpc_env * const envP);
+ /* Return the number of elements in an XML-RPC array.
+ ** Sets XMLRPC_TYPE_ERROR if 'array' is not an array. */
++XMLRPC_DLLEXPORT
+ int 
+ xmlrpc_array_size(xmlrpc_env *         const env, 
+                   const xmlrpc_value * const array);
+-/* Append an item to an XML-RPC array.
+-** Sets XMLRPC_TYPE_ERROR if 'array' is not an array. */
+-extern void
+-xmlrpc_array_append_item (xmlrpc_env   * const envP,
+-                          xmlrpc_value * const arrayP,
+-                          xmlrpc_value * const valueP);
++XMLRPC_DLLEXPORT
++void
++xmlrpc_array_append_item(xmlrpc_env   * const envP,
++                         xmlrpc_value * const arrayP,
++                         xmlrpc_value * const valueP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_array_read_item(xmlrpc_env *         const envP,
+                        const xmlrpc_value * const arrayP,
+@@ -299,30 +424,35 @@ xmlrpc_array_read_item(xmlrpc_env *         const envP,
+    Sets XMLRPC_TYPE_ERROR if 'array' is not an array.
+    Sets XMLRPC_INDEX_ERROR if 'index' is out of bounds.
+ */
++XMLRPC_DLLEXPORT
+ xmlrpc_value * 
+ xmlrpc_array_get_item(xmlrpc_env *         const envP,
+                       const xmlrpc_value * const arrayP,
+                       int                  const index);
+ /* Not implemented--we don't need it yet.
+-extern 
+-int xmlrpc_array_set_item (xmlrpc_env* env,
+-xmlrpc_value* array,
+-int index,
+-                                  xmlrpc_value* value);
++XMLRPC_DLLEXPORT
++int
++xmlrpc_array_set_item(xmlrpc_env *   const envP,
++                      xmlrpc_value * const arrayP,
++                      unsigned int   const index,
++                      xmlrpc_value * const valueP);
+ */
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_struct_new(xmlrpc_env * const env);
+ /* Return the number of key/value pairs in a struct.
+ ** Sets XMLRPC_TYPE_ERROR if 'strct' is not a struct. */
++XMLRPC_DLLEXPORT
+ int
+-xmlrpc_struct_size (xmlrpc_env   * env, 
+-                    xmlrpc_value * strct);
++xmlrpc_struct_size (xmlrpc_env   * const env, 
++                    xmlrpc_value * const strct);
+ /* Returns true iff 'strct' contains 'key'.
+ ** Sets XMLRPC_TYPE_ERROR if 'strct' is not a struct. */
++XMLRPC_DLLEXPORT
+ int 
+ xmlrpc_struct_has_key(xmlrpc_env *   const envP,
+                       xmlrpc_value * const strctP,
+@@ -332,6 +462,7 @@ xmlrpc_struct_has_key(xmlrpc_env *   const envP,
+    Deprecated.  xmlrpc_struct_get_value_v() is more general, and this
+    case is not common enough to warrant a shortcut.
+ */
++XMLRPC_DLLEXPORT
+ int 
+ xmlrpc_struct_has_key_n(xmlrpc_env   * const envP,
+                         xmlrpc_value * const strctP,
+@@ -340,6 +471,7 @@ xmlrpc_struct_has_key_n(xmlrpc_env   * const envP,
+ #if 0
+ /* Not implemented yet, but needed for completeness. */
++XMLRPC_DLLEXPORT
+ int
+ xmlrpc_struct_has_key_v(xmlrpc_env *   env, 
+                         xmlrpc_value * strct,
+@@ -347,6 +479,7 @@ xmlrpc_struct_has_key_v(xmlrpc_env *   env,
+ #endif
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_struct_find_value(xmlrpc_env *    const envP,
+                          xmlrpc_value *  const structP,
+@@ -354,18 +487,21 @@ xmlrpc_struct_find_value(xmlrpc_env *    const envP,
+                          xmlrpc_value ** const valuePP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_struct_find_value_v(xmlrpc_env *    const envP,
+                            xmlrpc_value *  const structP,
+                            xmlrpc_value *  const keyP,
+                            xmlrpc_value ** const valuePP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_struct_read_value(xmlrpc_env *    const envP,
+                          xmlrpc_value *  const structP,
+                          const char *    const key,
+                          xmlrpc_value ** const valuePP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_struct_read_value_v(xmlrpc_env *    const envP,
+                            xmlrpc_value *  const structP,
+@@ -375,6 +511,7 @@ xmlrpc_struct_read_value_v(xmlrpc_env *    const envP,
+ /* The "get_value" functions are deprecated.  Use the "find_value"
+    and "read_value" functions instead.
+ */
++XMLRPC_DLLEXPORT
+ xmlrpc_value * 
+ xmlrpc_struct_get_value(xmlrpc_env *   const envP,
+                         xmlrpc_value * const strctP,
+@@ -384,6 +521,7 @@ xmlrpc_struct_get_value(xmlrpc_env *   const envP,
+    Deprecated.  xmlrpc_struct_get_value_v() is more general, and this
+    case is not common enough to warrant a shortcut.
+ */
++XMLRPC_DLLEXPORT
+ xmlrpc_value * 
+ xmlrpc_struct_get_value_n(xmlrpc_env *   const envP,
+                           xmlrpc_value * const strctP,
+@@ -393,6 +531,7 @@ xmlrpc_struct_get_value_n(xmlrpc_env *   const envP,
+ /* Set the value associated with 'key' in 'strct' to 'value'.
+    Sets XMLRPC_TYPE_ERROR if 'strct' is not a struct. 
+ */
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_struct_set_value(xmlrpc_env *   const env,
+                         xmlrpc_value * const strct,
+@@ -403,6 +542,7 @@ xmlrpc_struct_set_value(xmlrpc_env *   const env,
+    The general way to set a structure value is xmlrpc_struct_set_value_v(),
+    and this case is not common enough to deserve a shortcut.
+ */
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_struct_set_value_n(xmlrpc_env *    const env,
+                           xmlrpc_value *  const strct,
+@@ -412,6 +552,7 @@ xmlrpc_struct_set_value_n(xmlrpc_env *    const env,
+ /* The same as above, but the key must be an XML-RPC string.
+ ** Fails with XMLRPC_TYPE_ERROR if 'keyval' is not a string. */
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_struct_set_value_v(xmlrpc_env *   const env,
+                           xmlrpc_value * const strct,
+@@ -423,6 +564,7 @@ xmlrpc_struct_set_value_v(xmlrpc_env *   const env,
+ ** Fails with XMLRPC_TYPE_ERROR if 'struct' is not a struct.
+ ** Fails with XMLRPC_INDEX_ERROR if 'index' is out of bounds. */
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_struct_read_member(xmlrpc_env *    const envP,
+                           xmlrpc_value *  const structP,
+@@ -436,6 +578,7 @@ xmlrpc_struct_read_member(xmlrpc_env *    const envP,
+    Deprecated.  Use xmlrpc_struct_read_member() instead.
+ */
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_struct_get_key_and_value(xmlrpc_env *    const env,
+                                 xmlrpc_value *  const strct,
+@@ -443,38 +586,55 @@ xmlrpc_struct_get_key_and_value(xmlrpc_env *    const env,
+                                 xmlrpc_value ** const out_keyval,
+                                 xmlrpc_value ** const out_value);
++/* The "C pointer" type has no relation to XML-RPC.  It is here for the
++   convenience of programs that use xmlrpc_value for XML-RPC purposes
++   and can benefit from using it for non-XML-RPC purposes as well.
++
++   Also, some people use libxmlrpc for xmlrpc_value alone, because sometimes
++   you need to work with basic data types in richer ways than the C types
++   (int, time_t, etc) allow.
++*/
++
++XMLRPC_DLLEXPORT
++xmlrpc_value *
++xmlrpc_cptr_new(xmlrpc_env * const envP,
++                void *       const value);
++
++typedef void (*xmlrpc_cptr_dtor_fn)(void *, void *);
++
++XMLRPC_DLLEXPORT
++xmlrpc_value *
++xmlrpc_cptr_new_dtor(xmlrpc_env *        const envP,
++                     void *              const value,
++                     xmlrpc_cptr_dtor_fn const dtor,
++                     void *              const dtorContext);
++
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_cptr(xmlrpc_env *         const envP,
+                  const xmlrpc_value * const valueP,
+                  void **              const ptrValueP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_nil(xmlrpc_env *   const envP,
+                 xmlrpc_value * const valueP);
+                 
+-
+-void 
+-xmlrpc_read_i8(xmlrpc_env *         const envP,
+-               const xmlrpc_value * const valueP,
+-               xmlrpc_int64 *       const intValueP);
+-
+-
+-xmlrpc_value *
+-xmlrpc_cptr_new(xmlrpc_env * const envP,
+-                void *       const value);
+-
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_nil_new(xmlrpc_env * const envP);
+ /* Build an xmlrpc_value from a format string. */
++XMLRPC_DLLEXPORT
+ xmlrpc_value * 
+ xmlrpc_build_value(xmlrpc_env * const env,
+                    const char * const format, 
+                    ...);
+ /* The same as the above, but using a va_list and more general */
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_build_value_va(xmlrpc_env *    const env,
+                       const char *    const format,
+@@ -482,12 +642,14 @@ xmlrpc_build_value_va(xmlrpc_env *    const env,
+                       xmlrpc_value ** const valPP,
+                       const char **   const tailP);
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_decompose_value(xmlrpc_env *   const envP,
+                        xmlrpc_value * const value,
+                        const char *   const format, 
+                        ...);
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_decompose_value_va(xmlrpc_env *   const envP,
+                           xmlrpc_value * const value,
+@@ -501,6 +663,7 @@ xmlrpc_decompose_value_va(xmlrpc_env *   const envP,
+    These are deprecated.  Use xmlrpc_decompose_value... instead.
+ */
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_parse_value(xmlrpc_env *   const envP,
+                    xmlrpc_value * const value,
+@@ -508,6 +671,7 @@ xmlrpc_parse_value(xmlrpc_env *   const envP,
+                    ...);
+ /* The same as the above, but using a va_list. */
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_parse_value_va(xmlrpc_env *   const envP,
+                       xmlrpc_value * const value,
+@@ -523,28 +687,33 @@ typedef enum xmlrpc_dialect {
+     xmlrpc_dialect_apache
+ } xmlrpc_dialect;
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_serialize_value2(xmlrpc_env *       const envP,
+                         xmlrpc_mem_block * const outputP,
+                         xmlrpc_value *     const valueP,
+                         xmlrpc_dialect     const dialect);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_serialize_value(xmlrpc_env *       const envP,
+                        xmlrpc_mem_block * const outputP,
+                        xmlrpc_value *     const valueP);
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_serialize_params2(xmlrpc_env *       const envP,
+                          xmlrpc_mem_block * const outputP,
+                          xmlrpc_value *     const paramArrayP,
+                          xmlrpc_dialect     const dialect);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_serialize_params(xmlrpc_env *       const envP,
+                         xmlrpc_mem_block * const outputP,
+                         xmlrpc_value *     const paramArrayP);
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_serialize_call2(xmlrpc_env *       const envP,
+                        xmlrpc_mem_block * const outputP,
+@@ -552,23 +721,27 @@ xmlrpc_serialize_call2(xmlrpc_env *       const envP,
+                        xmlrpc_value *     const paramArrayP,
+                        xmlrpc_dialect     const dialect);
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_serialize_call(xmlrpc_env *       const envP,
+                       xmlrpc_mem_block * const outputP,
+                       const char *       const methodName,
+                       xmlrpc_value *     const paramArrayP);
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_serialize_response2(xmlrpc_env *       const envP,
+                            xmlrpc_mem_block * const outputP,
+                            xmlrpc_value *     const valueP,
+                            xmlrpc_dialect     const dialect);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_serialize_response(xmlrpc_env *       const envP,
+                           xmlrpc_mem_block * const outputP,
+                           xmlrpc_value *     const valueP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_serialize_fault(xmlrpc_env *       const envP,
+                        xmlrpc_mem_block * const outputP,
+@@ -579,17 +752,22 @@ xmlrpc_serialize_fault(xmlrpc_env *       const envP,
+ **  Decoding XML
+ **=======================================================================*/
+-/* Parse an XML-RPC call. If an error occurs, set a fault and set
+-** the output variables to NULL.
+-** The caller is responsible for calling free(*out_method_name) and
+-** xmlrpc_DECREF(*out_param_array). */
++XMLRPC_DLLEXPORT
++void
++xmlrpc_parse_value_xml(xmlrpc_env *    const envP,
++                       const char *    const xmlData,
++                       size_t          const xmlDataLen,
++                       xmlrpc_value ** const valuePP);
++
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_parse_call(xmlrpc_env *    const envP,
+-                  const char *    const xml_data,
+-                  size_t          const xml_len,
+-                  const char **   const out_method_name,
+-                  xmlrpc_value ** const out_param_array);
++                  const char *    const xmlData,
++                  size_t          const xmlDataLen,
++                  const char **   const methodNameP,
++                  xmlrpc_value ** const paramArrayP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_parse_response2(xmlrpc_env *    const envP,
+                        const char *    const xmlData,
+@@ -601,6 +779,7 @@ xmlrpc_parse_response2(xmlrpc_env *    const envP,
+ /* xmlrpc_parse_response() is for backward compatibility */
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_parse_response(xmlrpc_env * const envP, 
+                       const char * const xmlData, 
+@@ -616,23 +795,26 @@ xmlrpc_parse_response(xmlrpc_env * const envP,
+ /* This routine inserts newlines every 76 characters, as required by the
+ ** Base64 specification. */
++XMLRPC_DLLEXPORT
+ xmlrpc_mem_block *
+-xmlrpc_base64_encode(xmlrpc_env *    env,
+-                     unsigned char * bin_data,
+-                     size_t          bin_len);
++xmlrpc_base64_encode(xmlrpc_env *          const envP,
++                     const unsigned char * const binData,
++                     size_t                const binLen);
+ /* This routine encodes everything in one line. This is needed for HTTP
+ ** authentication and similar tasks. */
++XMLRPC_DLLEXPORT
+ xmlrpc_mem_block *
+-xmlrpc_base64_encode_without_newlines(xmlrpc_env *    env,
+-                                      unsigned char * bin_data,
+-                                      size_t          bin_len);
++xmlrpc_base64_encode_without_newlines(xmlrpc_env *          const envP,
++                                      const unsigned char * const binData,
++                                      size_t                const binLen);
+ /* This decodes Base64 data with or without newlines. */
++XMLRPC_DLLEXPORT
+ extern xmlrpc_mem_block *
+ xmlrpc_base64_decode(xmlrpc_env * const envP,
+-                     const char * const ascii_data,
+-                     size_t       const ascii_len);
++                     const char * const asciiData,
++                     size_t       const asciiLen);
+ /*=========================================================================
+@@ -645,10 +827,12 @@ xmlrpc_base64_decode(xmlrpc_env * const envP,
+ **  a cookie replacement of basic authentication.)
+ **/
++XMLRPC_DLLEXPORT
+ extern void xmlrpc_authcookie_set(xmlrpc_env * const env,
+                                   const char * const username,
+                                   const char * const password);
++XMLRPC_DLLEXPORT
+ char *xmlrpc_authcookie(void);
+ /*=========================================================================
+@@ -677,9 +861,11 @@ char *xmlrpc_authcookie(void);
+ #define XMLRPC_XML_SIZE_LIMIT_DEFAULT (512*1024)
+ /* Set a specific limit to the specified value. */
++XMLRPC_DLLEXPORT
+ extern void xmlrpc_limit_set (int const limit_id, size_t const value);
+ /* Get the value of a specified limit. */
++XMLRPC_DLLEXPORT
+ extern size_t xmlrpc_limit_get (int const limit_id);
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/base.hpp b/libs/xmlrpc-c/include/xmlrpc-c/base.hpp
+index ab6fe3e..6f93e38 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/base.hpp
++++ b/libs/xmlrpc-c/include/xmlrpc-c/base.hpp
+@@ -1,19 +1,24 @@
+ #ifndef XMLRPC_BASE_HPP_INCLUDED
+ #define XMLRPC_BASE_HPP_INCLUDED
++#include <xmlrpc-c/config.h>
++
+ #include <climits>
+ #include <cfloat>
+ #include <ctime>
+ #include <vector>
+ #include <map>
+ #include <string>
++#if XMLRPC_HAVE_TIMEVAL
++#include <sys/time.h>
++#endif
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/base.h>
+ namespace xmlrpc_c {
+-
+-class value {
++class XMLRPC_DLLEXPORT value {
+     // This is a handle.  You don't want to create a pointer to this;
+     // it is in fact a pointer itself.
+ public:
+@@ -26,6 +31,8 @@ public:
+     ~value();
+     enum type_t {
++        // These are designed to be identical to the values for
++        // enum xmlrpc_type in the C library.
+         TYPE_INT        = 0,
+         TYPE_BOOLEAN    = 1,
+         TYPE_DOUBLE     = 2,
+@@ -62,6 +69,8 @@ public:
+     xmlrpc_value *
+     cValue() const;
++        // Not to be confused with public 'cvalue' method that all the derived
++        // classes have.
+     value(xmlrpc_value * const valueP);
+@@ -72,33 +81,42 @@ public:
+     xmlrpc_value * cValueP;
+         // NULL means this is merely a placeholder object.
++
++protected:
++    void
++    validateInstantiated() const;
+ };
++std::ostream& operator<<(std::ostream& out,
++                         xmlrpc_c::value::type_t const& type);
++
+-class value_int : public value {
++class XMLRPC_DLLEXPORT value_int : public value {
+ public:
+     value_int(int const cvalue);
+     value_int(xmlrpc_c::value const baseValue);
+     operator int() const;
+-};
++    int cvalue() const;
++};
+-class value_boolean : public value {
++class XMLRPC_DLLEXPORT value_boolean : public value {
+ public:
+     value_boolean(bool const cvalue);
+     value_boolean(xmlrpc_c::value const baseValue);
+     operator bool() const;
+-};
++    bool cvalue() const;
++};
+-class value_string : public value {
++class XMLRPC_DLLEXPORT value_string : public value {
+ public:
+     enum nlCode {nlCode_all, nlCode_lf};
+@@ -113,103 +131,274 @@ public:
+     crlfValue() const;
+     operator std::string() const;
+-};
++    std::string cvalue() const;
++};
+-class value_double : public value {
++class XMLRPC_DLLEXPORT value_double : public value {
+ public:
+     value_double(double const cvalue);
+     value_double(xmlrpc_c::value const baseValue);
+     operator double() const;
+-};
++    double cvalue() const;
++};
+-class value_datetime : public value {
++class XMLRPC_DLLEXPORT value_datetime : public value {
+ public:
+     value_datetime(std::string const cvalue);
+     value_datetime(time_t const cvalue);
+ #if XMLRPC_HAVE_TIMEVAL
+     value_datetime(struct timeval const& cvalue);
++    operator timeval() const;
+ #endif
+ #if XMLRPC_HAVE_TIMESPEC
+     value_datetime(struct timespec const& cvalue);
++    operator timespec() const;
+ #endif
+     value_datetime(xmlrpc_c::value const baseValue);
+     operator time_t() const;
++
++    time_t cvalue() const;
+ };
++typedef std::vector<unsigned char> cbytestring;
+-class value_bytestring : public value {
++class XMLRPC_DLLEXPORT value_bytestring : public value {
+ public:
+-    value_bytestring(std::vector<unsigned char> const& cvalue);
++    value_bytestring(cbytestring const& cvalue);
+     value_bytestring(xmlrpc_c::value const baseValue);
+     // You can't cast to a vector because the compiler can't tell which
+     // constructor to use (complains about ambiguity).  So we have this:
+-    std::vector<unsigned char>
++    cbytestring
+     vectorUcharValue() const;
++    cbytestring cvalue() const;
++
+     size_t
+     length() const;
+ };
+-class value_struct : public value {
++typedef std::map<std::string, xmlrpc_c::value> cstruct;
++
++class XMLRPC_DLLEXPORT value_struct : public value {
+ public:
+-    value_struct(std::map<std::string, xmlrpc_c::value> const& cvalue);
++    value_struct(cstruct const& cvalue);
+     value_struct(xmlrpc_c::value const baseValue);
+-    operator std::map<std::string, xmlrpc_c::value>() const;
++    operator cstruct() const;
++
++    cstruct cvalue() const;
+ };
+-class value_array : public value {
++typedef std::vector<xmlrpc_c::value> carray;
++
++class XMLRPC_DLLEXPORT value_array : public value {
+ public:
+-    value_array(std::vector<xmlrpc_c::value> const& cvalue);
++    value_array(carray const& cvalue);
+     value_array(xmlrpc_c::value const baseValue);
+-    std::vector<xmlrpc_c::value>
++    // You can't cast to a vector because the compiler can't tell which
++    // constructor to use (complains about ambiguity).  So we have this:
++    carray
+     vectorValueValue() const;
++    carray cvalue() const;
++
+     size_t
+     size() const;
+ };
+-class value_nil : public value {
++template<class InputIterator> xmlrpc_c::value_array
++arrayValueSlice(InputIterator begin,
++                InputIterator end) {
++/*----------------------------------------------------------------------------
++  convert C++ iterator pair to XML-RPC array
++-----------------------------------------------------------------------------*/
++    carray ret;
++    for (InputIterator p = begin; p != end; ++p) {
++        ret.push_back(toValue(*p));
++    }
++    return xmlrpc_c::value_array(ret);
++}
++
++template<class MemberClass> inline xmlrpc_c::value_array
++arrayValueArray(const MemberClass * const in,
++                size_t              const size) {
++/*----------------------------------------------------------------------------
++  convert C++ array to XML-RPC array
++-----------------------------------------------------------------------------*/
++    return arrayValueSlice(in, in + size);
++}
++
++class XMLRPC_DLLEXPORT value_nil : public value {
+ public:
+     value_nil();
+     value_nil(xmlrpc_c::value const baseValue);
+-};
++    void * cvalue() const;
++};
+-class value_i8 : public value {
++class XMLRPC_DLLEXPORT value_i8 : public value {
+ public:
+     value_i8(xmlrpc_int64 const cvalue);
+     value_i8(xmlrpc_c::value const baseValue);
+     operator xmlrpc_int64() const;
++
++    xmlrpc_int64 cvalue() const;
+ };
++inline xmlrpc_c::value_string
++toValue(const char * const x) {
++    return xmlrpc_c::value_string(x);
++}
++
++inline xmlrpc_c::value_string
++toValue(std::string const& x) {
++    return xmlrpc_c::value_string(x);
++}
++
++inline xmlrpc_c::value_int
++toValue(int const x) {
++    return xmlrpc_c::value_int(x);
++}
++
++inline xmlrpc_c::value_boolean
++toValue(bool const x) {
++    return xmlrpc_c::value_boolean(x);
++}
++
++inline xmlrpc_c::value_double
++toValue(double const x) {
++    return xmlrpc_c::value_double(x);
++}
++
++inline xmlrpc_c::value_bytestring
++    toValue(cbytestring const& x) {
++    return xmlrpc_c::value_bytestring(x);
++}
++
++inline const xmlrpc_c::value &
++toValue(xmlrpc_c::value const& v) {
++/*----------------------------------------------------------------------------
++  This does a null conversion; you use it to catch all the XML-RPC types that
++  have no usable C++ equivalent, so you can do a toValue() of any XML-RPC
++  type at all.  In particular: 'value_datetime', 'value_nil'.
++-----------------------------------------------------------------------------*/
++    return v;
++}
+-class fault {
++template<class K, class V> xmlrpc_c::value_struct
++toValue(std::map<K, V> const& in) {
++/*----------------------------------------------------------------------------
++  convert C++ map to XML-RPC structure
++-----------------------------------------------------------------------------*/
++    cstruct ret;
++    for (typename std::map<std::string, V>::const_iterator p = in.begin();
++         p != in.end();
++         ++p) {
++        ret[p->first] = toValue(p->second);
++    }
++    return xmlrpc_c::value_struct(ret);
++}
++
++template<class T> inline xmlrpc_c::value_array
++toValue(std::vector<T> const& in) {
++/*----------------------------------------------------------------------------
++  convert C++ vector to XML-RPC array
++-----------------------------------------------------------------------------*/
++    return arrayValueSlice(in.begin(), in.end());
++}
++
++// fromValue() returns via reference argument instead of by return value
++// so the compiler can tell which version of it to invoke based on the
++// desired output type.
++
++inline void
++fromValue(std::string & y, xmlrpc_c::value const& x) {
++    y = xmlrpc_c::value_string(x);
++}
++
++inline void
++fromValue(int & y, xmlrpc_c::value const& x) {
++    y = xmlrpc_c::value_int(x);
++}
++
++inline void
++fromValue(bool & y, xmlrpc_c::value const& x) {
++    y = xmlrpc_c::value_boolean(x);
++}
++
++inline void
++fromValue(double & y, xmlrpc_c::value const& x) {
++    y = xmlrpc_c::value_double(x);
++}
++
++inline void
++fromValue(cbytestring & y, xmlrpc_c::value const& x) {
++    y = xmlrpc_c::value_bytestring(x).vectorUcharValue();
++}
++
++inline void
++fromValue(xmlrpc_c::value & y, xmlrpc_c::value const& x) {
++/*----------------------------------------------------------------------------
++  This does a null conversion; it's so you can use fromValue() with
++  an XML-RPC value or C++ value without having to know which it is.
++  One reason you would have an XML-RPC value lying around with C++ values
++  is that some XML-RPC values don't have a common C++ equivalent.
++-----------------------------------------------------------------------------*/
++    y = x;
++}
++
++template<class K, class V> inline void
++fromValue(std::map<K, V> & y, xmlrpc_c::value const& x) {
++/*----------------------------------------------------------------------------
++   Convert XML-RPC structure to C++ map.
++-----------------------------------------------------------------------------*/
++    cstruct m = xmlrpc_c::value_struct(x);
++    y.clear();
++    for (std::map<std::string, xmlrpc_c::value>::const_iterator p = m.begin();
++         p != m.end();
++         ++p) {
++        fromValue(y[p->first], p->second);
++    }
++}
++
++template<class T> inline void
++fromValue(std::vector<T> & y, xmlrpc_c::value const& x) {
++/*----------------------------------------------------------------------------
++   Convert XML-RPC array to C++ vector.
++-----------------------------------------------------------------------------*/
++    carray v = xmlrpc_c::value_array(x).vectorValueValue();
++    y.resize(v.size());
++    for (unsigned int i = 0; i < v.size(); ++i) {
++        fromValue(y[i], v[i]);
++    }
++}
++
++class XMLRPC_DLLEXPORT fault {
+ /*----------------------------------------------------------------------------
+    This is an XML-RPC fault.
+@@ -253,7 +442,7 @@ private:
+     std::string             description;
+ };
+-class rpcOutcome {
++class XMLRPC_DLLEXPORT rpcOutcome {
+ /*----------------------------------------------------------------------------
+   The outcome of a validly executed RPC -- either an XML-RPC fault
+   or an XML-RPC value of the result.
+@@ -275,7 +464,7 @@ private:
+     xmlrpc_c::fault fault;   // valid if not 'succeeded'
+ };
+-class paramList {
++class XMLRPC_DLLEXPORT paramList {
+ /*----------------------------------------------------------------------------
+    A parameter list of an XML-RPC call.
+ -----------------------------------------------------------------------------*/
+@@ -288,6 +477,11 @@ public:
+     paramList&
+     addx(xmlrpc_c::value const param);
++    template<class T > paramList& addc(const T & x) {
++        xmlrpc_c::paramList::add(toValue(x));
++        return *this;
++    }
++
+     unsigned int
+     size() const;
+@@ -316,15 +510,15 @@ public:
+     std::string
+     getString(unsigned int const paramNumber) const;
+-    std::vector<unsigned char>
++    cbytestring
+     getBytestring(unsigned int const paramNumber) const;
+-    std::vector<xmlrpc_c::value>
++    carray
+     getArray(unsigned int const paramNumber,
+              unsigned int const minSize = 0,
+              unsigned int const maxSize = UINT_MAX) const;
+-    std::map<std::string, xmlrpc_c::value>
++    cstruct
+     getStruct(unsigned int const paramNumber) const;
+     void
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/base64.hpp b/libs/xmlrpc-c/include/xmlrpc-c/base64.hpp
+index a884225..4ef06aa 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/base64.hpp
++++ b/libs/xmlrpc-c/include/xmlrpc-c/base64.hpp
+@@ -4,18 +4,21 @@
+ #include <string>
+ #include <vector>
++#include <xmlrpc-c/c_util.h>
++
+ namespace xmlrpc_c {
+ enum newlineCtl {NEWLINE_NO, NEWLINE_YES};
++XMLRPC_DLLEXPORT
+ std::string
+ base64FromBytes(
+     std::vector<unsigned char> const& bytes,
+     xmlrpc_c::newlineCtl       const  newlineCtl = xmlrpc_c::NEWLINE_YES);
+-
++XMLRPC_DLLEXPORT
+ std::vector<unsigned char>
+ bytesFromBase64(std::string const& base64);
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/base_int.h b/libs/xmlrpc-c/include/xmlrpc-c/base_int.h
+index be45cfd..cff8773 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/base_int.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/base_int.h
+@@ -18,14 +18,14 @@
+ #include "bool.h"
+ #include "int.h"
+-#include <xmlrpc-c/base.h>
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/util_int.h>
++#include <xmlrpc-c/base.h>
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+-
+ struct _xmlrpc_value {
+     xmlrpc_type _type;
+     int _refcount;
+@@ -36,8 +36,13 @@ struct _xmlrpc_value {
+         xmlrpc_int64 i8;
+         xmlrpc_bool b;
+         double d;
+-        /* time_t t */
+-        void * c_ptr;
++        xmlrpc_datetime dt;
++           /* NOTE: may be invalid! e.g. February 30 */
++        struct {
++            void *              objectP;
++            xmlrpc_cptr_dtor_fn dtor;   // NULL if none
++            void *              dtorContext;
++        } cptr;
+     } _value;
+     
+     /* Other data types use a memory block.
+@@ -77,6 +82,15 @@ struct _xmlrpc_value {
+            This member is always NULL on a system that does not have
+            Unicode wchar functions.
+         */
++    void * _cache;
++        /* This is a hack to support the old style memory management in which
++           one gets a pointer into memory that belongs to the xmlrpc_value
++           object; i.e. the caller of xmlrpc_read_datetime_str_old() doesn't
++           get memory that he is responsible for freeing.
++
++           This is essentially a cached value of the result of a
++           xmlrpc_read_datetime_str_old().  NULL means nothing cached.
++        */
+ };
+ #define XMLRPC_ASSERT_VALUE_OK(val) \
+@@ -97,24 +111,34 @@ typedef struct {
+ } _struct_member;
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_createXmlrpcValue(xmlrpc_env *    const envP,
+                          xmlrpc_value ** const valPP);
++XMLRPC_DLLEXPORT
+ const char *
+ xmlrpc_typeName(xmlrpc_type const type);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_traceXml(const char * const label, 
+                 const char * const xml,
+-                unsigned int const xmlLength);
++                size_t       const xmlLength);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_destroyString(xmlrpc_value * const stringP);
++XMLRPC_DLLEXPORT
++void
++xmlrpc_destroyDatetime(xmlrpc_value * const datetimeP);
++
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_destroyStruct(xmlrpc_value * const structP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_destroyArrayContents(xmlrpc_value * const arrayP);
+@@ -130,16 +154,19 @@ xmlrpc_destroyArrayContents(xmlrpc_value * const arrayP);
+    new memory for them.
+ -----------------------------------------------------------------------------*/
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_datetime_str_old(xmlrpc_env *         const envP,
+                              const xmlrpc_value * const valueP,
+                              const char **        const stringValueP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_string_old(xmlrpc_env *         const envP,
+                        const xmlrpc_value * const valueP,
+                        const char **        const stringValueP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_string_lp_old(xmlrpc_env *         const envP,
+                           const xmlrpc_value * const valueP,
+@@ -147,11 +174,13 @@ xmlrpc_read_string_lp_old(xmlrpc_env *         const envP,
+                           const char **        const stringValueP);
+ #if XMLRPC_HAVE_WCHAR
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_string_w_old(xmlrpc_env *     const envP,
+                          xmlrpc_value *   const valueP,
+                          const wchar_t ** const stringValueP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_string_w_lp_old(xmlrpc_env *     const envP,
+                             xmlrpc_value *   const valueP,
+@@ -159,6 +188,7 @@ xmlrpc_read_string_w_lp_old(xmlrpc_env *     const envP,
+                             const wchar_t ** const stringValueP);
+ #endif
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_read_base64_old(xmlrpc_env *           const envP,
+                        const xmlrpc_value *   const valueP,
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/c_util.h b/libs/xmlrpc-c/include/xmlrpc-c/c_util.h
+index 8cc72e9..b8635e6 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/c_util.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/c_util.h
+@@ -1,14 +1,31 @@
+ #ifndef XMLRPC_C_C_UTIL_H_INCLUDED
+ #define XMLRPC_C_C_UTIL_H_INCLUDED
+-/* GNU_PRINTF_ATTR lets the GNU compiler check printf-type
++/* C language stuff.  Doesn't involve any libraries that aren't part of
++   the compiler.
++*/
++
++#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
++
++/* XMLRPC_PRINTF_ATTR lets the GNU compiler check printf-type
+    calls to be sure the arguments match the format string, thus preventing
+    runtime segmentation faults and incorrect messages.
+ */
+ #ifdef __GNUC__
+-#define GNU_PRINTF_ATTR(a,b) __attribute__ ((format (printf, a, b)))
++#define XMLRPC_PRINTF_ATTR(a,b) __attribute__ ((format (printf, a, b)))
++#define XMLRPC_NORETURN_ATTR __attribute__((noreturn))
++#else
++#define XMLRPC_PRINTF_ATTR(a,b)
++#define XMLRPC_NORETURN_ATTR
++#endif
++
++/* XMLRPC_DLLEXPORT is an attribute of an external symbols that says it
++   is to be exported from a library that contains it.
++*/
++#if defined(_DLL) &&  defined(_MSC_VER) && _MSC_VER >= 1500
++#define XMLRPC_DLLEXPORT __declspec(dllexport)
+ #else
+-#define GNU_PRINTF_ATTR(a,b)
++#define XMLRPC_DLLEXPORT
+ #endif
+ #endif
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/client.h b/libs/xmlrpc-c/include/xmlrpc-c/client.h
+index c2e2e61..f4166e3 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/client.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/client.h
+@@ -10,6 +10,8 @@
+ #ifndef  XMLRPC_CLIENT_H_INCLUDED
+ #define  XMLRPC_CLIENT_H_INCLUDED
++#include <stdarg.h>
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/base.h>
+ #ifdef __cplusplus
+@@ -39,8 +41,11 @@ typedef struct xmlrpc_client_transport_ops xmlrpc_client_transport_ops;
+    so now we just use void * as a base class pointer.
+ */
++XMLRPC_DLLEXPORT
+ extern struct xmlrpc_client_transport_ops xmlrpc_libwww_transport_ops;
++XMLRPC_DLLEXPORT
+ extern struct xmlrpc_client_transport_ops xmlrpc_wininet_transport_ops;
++XMLRPC_DLLEXPORT
+ extern struct xmlrpc_client_transport_ops xmlrpc_curl_transport_ops;
+ enum xmlrpc_sslversion {
+@@ -50,6 +55,29 @@ enum xmlrpc_sslversion {
+     XMLRPC_SSLVERSION_SSLv3
+ };
++
++enum xmlrpc_httpauthtype {
++    /* These are just constants.  They can be or'ed as integers to create
++       a set.
++    */
++    XMLRPC_HTTPAUTH_BASIC         = (1<<0),
++    XMLRPC_HTTPAUTH_DIGEST        = (1<<1),
++    XMLRPC_HTTPAUTH_GSSNEGOTIATE  = (1<<2),
++    XMLRPC_HTTPAUTH_NTLM          = (1<<3), 
++};
++
++/* The following are useful combinations of the HTTP authentication types
++   above.
++*/
++#define XMLRPC_HTTPAUTH_NONE 0
++#define XMLRPC_HTTPAUTH_ANY  ~0
++#define XMLRPC_HTTPAUTH_ANYSAFE (~XMLRPC_HTTPAUTH_BASIC)
++
++enum xmlrpc_httpproxytype {
++    XMLRPC_HTTPPROXY_HTTP   = 0,
++    XMLRPC_HTTPPROXY_SOCKS5 = 5
++};
++
+ struct xmlrpc_curl_xportparms {
+     /* This is designed so that zero values are always the defaults. */
+     const char * network_interface;
+@@ -71,6 +99,15 @@ struct xmlrpc_curl_xportparms {
+     const char * egdsocket;
+     const char * ssl_cipher_list;
+     unsigned int timeout;
++    xmlrpc_bool dont_advertise;
++    const char * proxy;
++    unsigned int proxy_port;
++    enum xmlrpc_httpproxytype proxy_type;
++    unsigned int proxy_auth;
++        /* A set of authentication schemes -- an OR of
++           enum xmlrpc_httpproxyauth values
++        */
++    const char * proxy_userpwd;
+ };
+@@ -88,6 +125,19 @@ struct xmlrpc_wininet_xportparms {
+ /* XMLRPC_WXPSIZE(xyz) is analogous to XMLRPC_CPSIZE, below */
++struct xmlrpc_transfer_progress {
++    double total;
++    double now;
++};
++
++struct xmlrpc_progress_data {
++    struct xmlrpc_transfer_progress call;
++    struct xmlrpc_transfer_progress response;
++};
++
++typedef void xmlrpc_progress_fn(void * const,
++                                struct xmlrpc_progress_data const);
++
+ struct xmlrpc_clientparms {
+     /* (transport, transportparmsP, transportparm_size) and
+        (transportOpsP, transportP) are mutually exclusive.
+@@ -100,6 +150,7 @@ struct xmlrpc_clientparms {
+     const struct xmlrpc_client_transport_ops * transportOpsP;
+     xmlrpc_client_transport *  transportP;
+     xmlrpc_dialect             dialect;
++    xmlrpc_progress_fn *       progressFn;
+ };
+ #define XMLRPC_CPSIZE(mbrname) \
+@@ -112,23 +163,24 @@ struct xmlrpc_clientparms {
+    not the caller is new enough to have supplied a certain parameter.
+ */
++XMLRPC_DLLEXPORT
+ const char * 
+ xmlrpc_client_get_default_transport(xmlrpc_env * const env);
+ /* A callback function to handle the response to an asynchronous call.
+ ** If 'fault->fault_occurred' is true, then response will be NULL. All
+-** arguments except 'user_data' will be deallocated internally; please do
++** arguments except 'userHandle' will be deallocated internally; please do
+ ** not free any of them yourself.
+-** WARNING: param_array may (or may not) be NULL if fault->fault_occurred
++** WARNING: 'paramArray' may (or may not) be NULL if fault->fault_occurred
+ ** is true, and you set up the call using xmlrpc_client_call_asynch.
+ ** WARNING: If asynchronous calls are still pending when the library is
+ ** shut down, your handler may (or may not) be called with a fault. */
+-typedef void (*xmlrpc_response_handler) (const char *server_url,
+-                                         const char *method_name,
+-                                         xmlrpc_value *param_array,
+-                                         void *user_data,
+-                                         xmlrpc_env *fault,
+-                                         xmlrpc_value *result);
++typedef void xmlrpc_response_handler(const char *   serverUrl,
++                                     const char *   methodName,
++                                     xmlrpc_value * paramArray,
++                                     void *         userHandle,
++                                     xmlrpc_env *   fault,
++                                     xmlrpc_value * result);
+ /*=========================================================================
+@@ -147,73 +199,98 @@ typedef void (*xmlrpc_response_handler) (const char *server_url,
+ typedef struct _xmlrpc_server_info xmlrpc_server_info;
+ /* Create a new server info record, pointing to the specified server. */
++XMLRPC_DLLEXPORT
+ xmlrpc_server_info *
+ xmlrpc_server_info_new(xmlrpc_env * const envP,
+                        const char * const serverUrl);
+ /* Create a new server info record, with a copy of the old server. */
++XMLRPC_DLLEXPORT
+ extern xmlrpc_server_info * 
+ xmlrpc_server_info_copy(xmlrpc_env *         const envP,
+                         xmlrpc_server_info * const srcP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_info_free(xmlrpc_server_info * const serverP);
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_server_info_set_user(xmlrpc_env *         const envP,
+                             xmlrpc_server_info * const serverInfoP,
+                             const char *         const username,
+                             const char *         const password);
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_server_info_set_basic_auth(xmlrpc_env *         const envP,
+                                   xmlrpc_server_info * const serverP,
+                                   const char *         const username,
+                                   const char *         const password);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_info_allow_auth_basic(xmlrpc_env *         const envP,
+                                     xmlrpc_server_info * const sP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_info_disallow_auth_basic(xmlrpc_env *         const envP,
+                                        xmlrpc_server_info * const sP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_info_allow_auth_digest(xmlrpc_env *         const envP,
+                                      xmlrpc_server_info * const sP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_info_disallow_auth_digest(xmlrpc_env *         const envP,
+                                         xmlrpc_server_info * const sP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_info_allow_auth_negotiate(xmlrpc_env *         const envP,
+                                         xmlrpc_server_info * const sP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_info_disallow_auth_negotiate(xmlrpc_env *         const envP,
+                                            xmlrpc_server_info * const sP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_info_allow_auth_ntlm(xmlrpc_env *         const envP,
+                                    xmlrpc_server_info * const sP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_info_disallow_auth_ntlm(xmlrpc_env *         const envP,
+                                       xmlrpc_server_info * const sP);
++/* These are for backward compatibility -- they can't be exported from a
++   Windows DLL.  xmlrpc_server_version() is preferred.
++*/
+ extern unsigned int const xmlrpc_client_version_major;
+ extern unsigned int const xmlrpc_client_version_minor;
+ extern unsigned int const xmlrpc_client_version_point;
++XMLRPC_DLLEXPORT
++void
++xmlrpc_client_version(unsigned int * const majorP,
++                      unsigned int * const minorP,
++                      unsigned int * const pointP);
++
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_client_setup_global_const(xmlrpc_env * const envP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_client_teardown_global_const(void);
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_client_create(xmlrpc_env *                      const envP,
+                      int                               const flags,
+@@ -223,9 +300,11 @@ xmlrpc_client_create(xmlrpc_env *                      const envP,
+                      unsigned int                      const parmSize,
+                      xmlrpc_client **                  const clientPP);
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_client_destroy(xmlrpc_client * const clientP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_client_transport_call2(
+     xmlrpc_env *               const envP,
+@@ -234,6 +313,7 @@ xmlrpc_client_transport_call2(
+     xmlrpc_mem_block *         const callXmlP,
+     xmlrpc_mem_block **        const respXmlPP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_client_call2(xmlrpc_env *               const envP,
+                     struct xmlrpc_client *     const clientP,
+@@ -242,6 +322,7 @@ xmlrpc_client_call2(xmlrpc_env *               const envP,
+                     xmlrpc_value *             const paramArrayP,
+                     xmlrpc_value **            const resultPP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_client_call2f(xmlrpc_env *    const envP,
+                      xmlrpc_client * const clientP,
+@@ -251,32 +332,58 @@ xmlrpc_client_call2f(xmlrpc_env *    const envP,
+                      const char *    const format,
+                      ...);
++XMLRPC_DLLEXPORT
++void
++xmlrpc_client_call2f_va(xmlrpc_env *               const envP,
++                        xmlrpc_client *            const clientP,
++                        const char *               const serverUrl,
++                        const char *               const methodName,
++                        const char *               const format,
++                        xmlrpc_value **            const resultPP,
++                        va_list                          args);
++
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_client_event_loop_finish(xmlrpc_client * const clientP);
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_client_event_loop_finish_timeout(xmlrpc_client * const clientP,
+                                         unsigned long   const milliseconds);
++XMLRPC_DLLEXPORT
+ void
+-xmlrpc_client_start_rpc(xmlrpc_env *             const envP,
+-                        struct xmlrpc_client *   const clientP,
+-                        xmlrpc_server_info *     const serverInfoP,
+-                        const char *             const methodName,
+-                        xmlrpc_value *           const argP,
+-                        xmlrpc_response_handler        responseHandler,
+-                        void *                   const userData);
+-
++xmlrpc_client_start_rpc(xmlrpc_env *               const envP,
++                        struct xmlrpc_client *     const clientP,
++                        const xmlrpc_server_info * const serverInfoP,
++                        const char *               const methodName,
++                        xmlrpc_value *             const paramArrayP,
++                        xmlrpc_response_handler          responseHandler,
++                        void *                     const userData);
++
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_client_start_rpcf(xmlrpc_env *    const envP,
+                          xmlrpc_client * const clientP,
+                          const char *    const serverUrl,
+                          const char *    const methodName,
+-                         xmlrpc_response_handler callback,
++                         xmlrpc_response_handler responseHandler,
+                          void *          const userData,
+                          const char *    const format,
+                          ...);
++XMLRPC_DLLEXPORT
++void
++xmlrpc_client_start_rpcf_va(xmlrpc_env *    const envP,
++                            xmlrpc_client * const clientP,
++                            const char *    const serverUrl,
++                            const char *    const methodName,
++                            xmlrpc_response_handler responseHandler,
++                            void *          const userData,
++                            const char *    const format,
++                            va_list               args);
++
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_client_set_interrupt(xmlrpc_client * const clientP,
+                             int *           const interruptP);
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/client.hpp b/libs/xmlrpc-c/include/xmlrpc-c/client.hpp
+index de6d073..f757b6a 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/client.hpp
++++ b/libs/xmlrpc-c/include/xmlrpc-c/client.hpp
+@@ -5,6 +5,7 @@
+ #include <vector>
+ #include <memory>
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/girerr.hpp>
+ #include <xmlrpc-c/girmem.hpp>
+ #include <xmlrpc-c/base.hpp>
+@@ -13,9 +14,9 @@
+ namespace xmlrpc_c {
+-class clientTransactionPtr;
++class XMLRPC_DLLEXPORT clientTransactionPtr;
+-class clientTransaction : public girmem::autoObject {
++class XMLRPC_DLLEXPORT clientTransaction : public girmem::autoObject {
+     friend class clientTransactionPtr;
+@@ -26,11 +27,14 @@ public:
+     virtual void
+     finishErr(girerr::error const& error) = 0;
++    virtual void
++    progress(struct xmlrpc_progress_data const& progressData) const = 0;
++
+ protected:
+     clientTransaction();
+ };
+-class clientTransactionPtr : public girmem::autoObjectPtr {
++class XMLRPC_DLLEXPORT clientTransactionPtr : public girmem::autoObjectPtr {
+     
+ public:
+     clientTransactionPtr();
+@@ -43,9 +47,9 @@ public:
+     operator->() const;
+ };
+-class clientPtr;
++class XMLRPC_DLLEXPORT clientPtr;
+-class client : public girmem::autoObject {
++class XMLRPC_DLLEXPORT client : public girmem::autoObject {
+ /*----------------------------------------------------------------------------
+    A generic client -- a means of performing an RPC.  This is so generic
+    that it can be used for clients that are not XML-RPC.
+@@ -77,7 +81,7 @@ public:
+     setInterrupt(int *);
+ };
+-class clientPtr : public girmem::autoObjectPtr {
++class XMLRPC_DLLEXPORT clientPtr : public girmem::autoObjectPtr {
+ public:
+     clientPtr();
+@@ -90,7 +94,7 @@ public:
+     get() const;
+ };
+-class serverAccessor : public girmem::autoObject {
++class XMLRPC_DLLEXPORT serverAccessor : public girmem::autoObject {
+     
+ public:
+     serverAccessor(xmlrpc_c::clientPtr       const clientP,
+@@ -106,7 +110,7 @@ private:
+     xmlrpc_c::carriageParmPtr const carriageParmP;
+ };
+-class serverAccessorPtr : public girmem::autoObjectPtr {
++class XMLRPC_DLLEXPORT serverAccessorPtr : public girmem::autoObjectPtr {
+ public:
+     serverAccessorPtr();
+@@ -120,7 +124,7 @@ public:
+     get() const;
+ };
+-class connection {
++class XMLRPC_DLLEXPORT connection {
+ /*----------------------------------------------------------------------------
+    A nexus of a particular client and a particular server, along with
+    carriage parameters for performing RPCs between the two.
+@@ -140,7 +144,7 @@ public:
+     xmlrpc_c::carriageParm * carriageParmP;
+ };
+-class client_xml : public xmlrpc_c::client {
++class XMLRPC_DLLEXPORT client_xml : public xmlrpc_c::client {
+ /*----------------------------------------------------------------------------
+    A client that uses XML-RPC XML in the RPC.  This class does not define
+    how the XML gets transported, though (i.e. does not require HTTP).
+@@ -180,7 +184,7 @@ private:
+     struct client_xml_impl * implP;
+ };
+-class xmlTransaction_client : public xmlrpc_c::xmlTransaction {
++class XMLRPC_DLLEXPORT xmlTransaction_client : public xmlrpc_c::xmlTransaction {
+ public:
+     xmlTransaction_client(xmlrpc_c::clientTransactionPtr const& tranP);
+@@ -190,11 +194,15 @@ public:
+     void
+     finishErr(girerr::error const& error) const;
++
++    void
++    progress(xmlrpc_progress_data const& progressData) const;
++
+ private:
+     xmlrpc_c::clientTransactionPtr const tranP;
+ };
+-class xmlTransaction_clientPtr : public xmlTransactionPtr {
++class XMLRPC_DLLEXPORT xmlTransaction_clientPtr : public xmlTransactionPtr {
+ public:
+     xmlTransaction_clientPtr();
+     
+@@ -206,21 +214,23 @@ public:
+ class rpcPtr;
+-class rpc : public clientTransaction {
++class XMLRPC_DLLEXPORT rpc : public clientTransaction {
+ /*----------------------------------------------------------------------------
+    An RPC.  An RPC consists of method name, parameters, and result.  It
+    does not specify in any way how the method name and parameters get
+    turned into a result.  It does not presume XML or HTTP.
+-
+-   You don't create an object of this class directly.  All references to
+-   an rpc object should be by an rpcPtr object.  Create a new RPC by
+-   creating a new rpcPtr.  Accordingly, our constructors and destructors
+-   are protected, but available to our friend class rpcPtr.
+-
++  
++   You don't normally create or reference an object of this class directly,
++   but rather via an 'rpcPtr' object.  That takes care of deleting the object
++   when you are done with it (but not before).  This is critical if you plan
++   to use the 'start' method, because without an rpcPtr reference, the system
++   will destroy the object under the covers when the RPC finishes, and there
++   is no way for you to guarantee you won't still access it after it finishes
++   (because of accesses within Xmlrpc-c calls such as the call that finishes
++   the RPC or just rpc::start).
++ 
+    In order to do asynchronous RPCs, you normally have to create a derived
+-   class that defines a useful notifyComplete().  If you do that, you'll
+-   want to make sure the derived class objects get accessed only via rpcPtrs
+-   as well.
++   class that defines a useful notifyComplete().
+ -----------------------------------------------------------------------------*/
+     friend class xmlrpc_c::rpcPtr;
+@@ -248,6 +258,9 @@ public:
+     virtual void
+     notifyComplete();
++    virtual void
++    progress(struct xmlrpc_progress_data const& progressData) const;
++
+     bool
+     isFinished() const;
+@@ -269,7 +282,7 @@ private:
+     struct rpc_impl * implP;
+ };
+-class rpcPtr : public clientTransactionPtr {
++class XMLRPC_DLLEXPORT rpcPtr : public clientTransactionPtr {
+ public:
+     rpcPtr();
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/client_global.h b/libs/xmlrpc-c/include/xmlrpc-c/client_global.h
+index 4f388fc..7d7a11b 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/client_global.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/client_global.h
+@@ -1,6 +1,9 @@
+ #ifndef CLIENT_GLOBAL_H_INCLUDED
+ #define CLIENT_GLOBAL_H_INCLUDED
++#include <xmlrpc-c/c_util.h>
++#include <xmlrpc-c/client.h>
++
+ /*=========================================================================
+ **  Initialization and Shutdown
+ **=========================================================================
+@@ -12,11 +15,13 @@
+ #define XMLRPC_CLIENT_NO_FLAGS         (0)
+ #define XMLRPC_CLIENT_SKIP_LIBWWW_INIT (1)
++XMLRPC_DLLEXPORT
+ extern void
+ xmlrpc_client_init(int          const flags,
+                    const char * const appname,
+                    const char * const appversion);
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_client_init2(xmlrpc_env *                      const env,
+                     int                               const flags,
+@@ -25,6 +30,7 @@ xmlrpc_client_init2(xmlrpc_env *                      const env,
+                     const struct xmlrpc_clientparms * const clientparms,
+                     unsigned int                      const parm_size);
++XMLRPC_DLLEXPORT
+ extern void
+ xmlrpc_client_cleanup(void);
+@@ -35,6 +41,7 @@ xmlrpc_client_cleanup(void);
+ **  functions from inside an asynchronous callback!
+ */
++XMLRPC_DLLEXPORT
+ xmlrpc_value * 
+ xmlrpc_client_call(xmlrpc_env * const envP,
+                    const char * const server_url,
+@@ -42,12 +49,14 @@ xmlrpc_client_call(xmlrpc_env * const envP,
+                    const char * const format,
+                    ...);
++XMLRPC_DLLEXPORT
+ xmlrpc_value * 
+ xmlrpc_client_call_params(xmlrpc_env *   const envP,
+                           const char *   const serverUrl,
+                           const char *   const methodName,
+                           xmlrpc_value * const paramArrayP);
++XMLRPC_DLLEXPORT
+ xmlrpc_value * 
+ xmlrpc_client_call_server(xmlrpc_env *               const envP,
+                           const xmlrpc_server_info * const server,
+@@ -55,6 +64,7 @@ xmlrpc_client_call_server(xmlrpc_env *               const envP,
+                           const char *               const format, 
+                           ...);
++XMLRPC_DLLEXPORT
+ xmlrpc_value *
+ xmlrpc_client_call_server_params(
+     xmlrpc_env *               const envP,
+@@ -62,6 +72,7 @@ xmlrpc_client_call_server_params(
+     const char *               const method_name,
+     xmlrpc_value *             const paramArrayP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_client_transport_call(
+     xmlrpc_env *               const envP,
+@@ -83,6 +94,7 @@ xmlrpc_client_transport_call(
+ ** to run the event loop somehow; see below.
+ ** WARNING: If an error occurs while building the argument, the
+ ** response handler will be called with a NULL param_array. */
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_client_call_asynch(const char * const server_url,
+                           const char * const method_name,
+@@ -93,6 +105,7 @@ xmlrpc_client_call_asynch(const char * const server_url,
+ /* As above, but use an xmlrpc_server_info object. The server object can be
+ ** safely destroyed as soon as this function returns. */
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_client_call_server_asynch(xmlrpc_server_info * const server,
+                                  const char *         const method_name,
+@@ -104,6 +117,7 @@ xmlrpc_client_call_server_asynch(xmlrpc_server_info * const server,
+ /* As above, but the parameter list is supplied as an xmlrpc_value
+ ** containing an array.
+ */
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_client_call_asynch_params(const char *   const server_url,
+                                  const char *   const method_name,
+@@ -113,6 +127,7 @@ xmlrpc_client_call_asynch_params(const char *   const server_url,
+     
+ /* As above, but use an xmlrpc_server_info object. The server object can be
+ ** safely destroyed as soon as this function returns. */
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_client_call_server_asynch_params(
+     xmlrpc_server_info * const server,
+@@ -130,11 +145,13 @@ xmlrpc_client_call_server_asynch_params(
+ /* Finish all outstanding asynchronous calls. Alternatively, the loop
+ ** will exit if someone calls xmlrpc_client_event_loop_end. */
++XMLRPC_DLLEXPORT
+ extern void
+ xmlrpc_client_event_loop_finish_asynch(void);
+ /* Finish all outstanding asynchronous calls. */
++XMLRPC_DLLEXPORT
+ extern void
+ xmlrpc_client_event_loop_finish_asynch_timeout(unsigned long const milliseconds);
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/client_int.h b/libs/xmlrpc-c/include/xmlrpc-c/client_int.h
+index dabdcaf..79f7ade 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/client_int.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/client_int.h
+@@ -86,6 +86,35 @@ xmlrpc_client_event_loop_end (void);
+ extern int
+ xmlrpc_client_asynch_calls_are_unfinished (void);
++
++
++/*=========================================================================
++** Interface between global client and general client functions.
++** (These are necessary because there are some global client functions
++** that don't have exported private client versions because we don't like
++** them and have them for global functions only for backward compatibility.
++** The global client functions existed before any private client ones did).
++**========================================================================= */
++void
++xmlrpc_client_call_server2_va(xmlrpc_env *               const envP,
++                              struct xmlrpc_client *     const clientP,
++                              const xmlrpc_server_info * const serverInfoP,
++                              const char *               const methodName,
++                              const char *               const format,
++                              va_list                          args,
++                              xmlrpc_value **            const resultPP);
++
++void
++xmlrpc_client_start_rpcf_server_va(
++    xmlrpc_env *               const envP,
++    struct xmlrpc_client *     const clientP,
++    const xmlrpc_server_info * const serverInfoP,
++    const char *               const methodName,
++    xmlrpc_response_handler responseHandler,
++    void *                     const userData,
++    const char *               const format,
++    va_list                    args);
++
+ /* Copyright (C) 2001 by First Peer, Inc. All rights reserved.
+ **
+ ** Redistribution and use in source and binary forms, with or without
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/client_simple.hpp b/libs/xmlrpc-c/include/xmlrpc-c/client_simple.hpp
+index 52e6c2b..5252363 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/client_simple.hpp
++++ b/libs/xmlrpc-c/include/xmlrpc-c/client_simple.hpp
+@@ -3,13 +3,13 @@
+ #include <string>
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/base.hpp>
+ #include <xmlrpc-c/client.hpp>
+ namespace xmlrpc_c {
+-
+-class clientSimple {
++class XMLRPC_DLLEXPORT clientSimple {
+ public:
+     clientSimple();
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/client_transport.hpp b/libs/xmlrpc-c/include/xmlrpc-c/client_transport.hpp
+index 8d6053d..ddeabf5 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/client_transport.hpp
++++ b/libs/xmlrpc-c/include/xmlrpc-c/client_transport.hpp
+@@ -3,6 +3,8 @@
+ #include <string>
+ #include <vector>
++
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/util.h>
+ #include <xmlrpc-c/client.h>
+ #include <xmlrpc-c/girerr.hpp>
+@@ -11,9 +13,9 @@
+ namespace xmlrpc_c {
+-class carriageParmPtr;
++class XMLRPC_DLLEXPORT carriageParmPtr;
+-class carriageParm : public girmem::autoObject {
++class XMLRPC_DLLEXPORT carriageParm : public girmem::autoObject {
+ /*----------------------------------------------------------------------------
+    The parameter to a client for an individual RPC.  It tells specifics
+    of how to carry the call to the server and the response back.  For
+@@ -30,7 +32,7 @@ protected:
+     carriageParm();
+ };
+-class carriageParmPtr : public girmem::autoObjectPtr {
++class XMLRPC_DLLEXPORT carriageParmPtr : public girmem::autoObjectPtr {
+ public:
+     carriageParmPtr();
+@@ -46,9 +48,9 @@ public:
+ //----------------------------------------------------------------------------
+-class xmlTransactionPtr;
++class XMLRPC_DLLEXPORT xmlTransactionPtr;
+-class xmlTransaction : public girmem::autoObject {
++class XMLRPC_DLLEXPORT xmlTransaction : public girmem::autoObject {
+     friend class xmlTransactionPtr;
+@@ -59,11 +61,14 @@ public:
+     virtual void
+     finishErr(girerr::error const& error) const;
++    virtual void
++    progress(struct xmlrpc_progress_data const& progressData) const;
++
+ protected:
+     xmlTransaction();
+ };
+-class xmlTransactionPtr : public girmem::autoObjectPtr {
++class XMLRPC_DLLEXPORT xmlTransactionPtr : public girmem::autoObjectPtr {
+ public:
+     xmlTransactionPtr();
+@@ -75,7 +80,7 @@ public:
+ //----------------------------------------------------------------------------
+-class clientXmlTransport : public girmem::autoObject {
++class XMLRPC_DLLEXPORT clientXmlTransport : public girmem::autoObject {
+ /*----------------------------------------------------------------------------
+    An object which transports XML to and from an XML-RPC server for an
+    XML-RPC client.
+@@ -105,11 +110,16 @@ public:
+         xmlrpc_mem_block *        const responseXmlMP,
+         xmlrpc_env                const transportEnv);
++    static void
++    progress(
++        struct xmlrpc_call_info *   const callInfoP,
++        struct xmlrpc_progress_data const progressData);
++
+     virtual void
+     setInterrupt(int * const interruptP);
+ };
+-class clientXmlTransportPtr : public girmem::autoObjectPtr {
++class XMLRPC_DLLEXPORT clientXmlTransportPtr : public girmem::autoObjectPtr {
+     
+ public:
+     clientXmlTransportPtr();
+@@ -127,7 +137,7 @@ public:
+                            HTTP
+ ===========================================================================*/
+-class carriageParm_http0 : public xmlrpc_c::carriageParm {
++class XMLRPC_DLLEXPORT carriageParm_http0 : public xmlrpc_c::carriageParm {
+ public:
+     carriageParm_http0(std::string const serverUrl);
+@@ -179,7 +189,7 @@ protected:
+     instantiate(std::string const serverUrl);
+ };
+-class carriageParm_http0Ptr : public xmlrpc_c::carriageParmPtr {
++class XMLRPC_DLLEXPORT carriageParm_http0Ptr : public xmlrpc_c::carriageParmPtr {
+ public:
+     carriageParm_http0Ptr();
+@@ -189,7 +199,7 @@ public:
+     operator->() const;
+ };
+-class clientXmlTransport_http : public xmlrpc_c::clientXmlTransport {
++class XMLRPC_DLLEXPORT clientXmlTransport_http : public xmlrpc_c::clientXmlTransport {
+ /*----------------------------------------------------------------------------
+    A base class for client XML transports that use the simple, classic
+    C HTTP transports.
+@@ -230,13 +240,13 @@ protected:
+                            curl
+ ===========================================================================*/
+-class carriageParm_curl0 : public xmlrpc_c::carriageParm_http0 {
++class XMLRPC_DLLEXPORT carriageParm_curl0 : public xmlrpc_c::carriageParm_http0 {
+ public:
+     carriageParm_curl0(std::string const serverUrl);
+ };
+-class carriageParm_curl0Ptr : public xmlrpc_c::carriageParm_http0Ptr {
++class XMLRPC_DLLEXPORT carriageParm_curl0Ptr : public xmlrpc_c::carriageParm_http0Ptr {
+ public:
+     carriageParm_curl0Ptr();
+@@ -246,16 +256,21 @@ public:
+     operator->() const;
+ };
+-class clientXmlTransport_curl : public xmlrpc_c::clientXmlTransport_http {
++class XMLRPC_DLLEXPORT clientXmlTransport_curl : public xmlrpc_c::clientXmlTransport_http {
+ public:
++    struct constrOpt_impl;
++
+     class constrOpt {
+     public:
+         constrOpt();
++        ~constrOpt();
++        constrOpt(constrOpt&);
+         constrOpt & network_interface (std::string  const& arg);
+         constrOpt & no_ssl_verifypeer (bool         const& arg);
+         constrOpt & no_ssl_verifyhost (bool         const& arg);
++        constrOpt & dont_advertise    (bool         const& arg);
+         constrOpt & user_agent        (std::string  const& arg);
+         constrOpt & ssl_cert          (std::string  const& arg);
+         constrOpt & sslcerttype       (std::string  const& arg);
+@@ -272,49 +287,15 @@ public:
+         constrOpt & egdsocket         (std::string  const& arg);
+         constrOpt & ssl_cipher_list   (std::string  const& arg);
+         constrOpt & timeout           (unsigned int const& arg);
+-
+-        struct {
+-            std::string  network_interface;
+-            bool         no_ssl_verifypeer;
+-            bool         no_ssl_verifyhost;
+-            std::string  user_agent;
+-            std::string  ssl_cert;
+-            std::string  sslcerttype;
+-            std::string  sslcertpasswd;
+-            std::string  sslkey;
+-            std::string  sslkeytype;
+-            std::string  sslkeypasswd;
+-            std::string  sslengine;
+-            bool         sslengine_default;
+-            xmlrpc_sslversion sslversion;
+-            std::string  cainfo;
+-            std::string  capath;
+-            std::string  randomfile;
+-            std::string  egdsocket;
+-            std::string  ssl_cipher_list;
+-            unsigned int timeout;
+-        } value;
+-        struct {
+-            bool network_interface;
+-            bool no_ssl_verifypeer;
+-            bool no_ssl_verifyhost;
+-            bool user_agent;
+-            bool ssl_cert;
+-            bool sslcerttype;
+-            bool sslcertpasswd;
+-            bool sslkey;
+-            bool sslkeytype;
+-            bool sslkeypasswd;
+-            bool sslengine;
+-            bool sslengine_default;
+-            bool sslversion;
+-            bool cainfo;
+-            bool capath;
+-            bool randomfile;
+-            bool egdsocket;
+-            bool ssl_cipher_list;
+-            bool timeout;
+-        } present;
++        constrOpt & proxy             (std::string  const& arg);
++        constrOpt & proxy_port        (unsigned int const& arg);
++        constrOpt & proxy_auth        (unsigned int const& arg);
++        constrOpt & proxy_userpwd     (std::string  const& arg);
++        constrOpt & proxy_type        (xmlrpc_httpproxytype const& arg);
++
++    private:
++        struct constrOpt_impl * implP;
++        friend class clientXmlTransport_curl;
+     };
+     clientXmlTransport_curl(constrOpt const& opt);
+@@ -335,14 +316,14 @@ private:
+                            libwww
+ ===========================================================================*/
+-class carriageParm_libwww0 : public xmlrpc_c::carriageParm_http0 {
++class XMLRPC_DLLEXPORT carriageParm_libwww0 : public xmlrpc_c::carriageParm_http0 {
+ public:
+     carriageParm_libwww0(std::string const serverUrl);
+ };
+-class carriageParm_libwww0Ptr : public xmlrpc_c::carriageParm_http0Ptr {
++class XMLRPC_DLLEXPORT carriageParm_libwww0Ptr : public xmlrpc_c::carriageParm_http0Ptr {
+ public:
+     carriageParm_libwww0Ptr();
+@@ -352,7 +333,7 @@ public:
+     operator->() const;
+ };
+-class clientXmlTransport_libwww : public xmlrpc_c::clientXmlTransport_http {
++class XMLRPC_DLLEXPORT clientXmlTransport_libwww : public xmlrpc_c::clientXmlTransport_http {
+     
+ public:
+     clientXmlTransport_libwww(std::string const appname = "",
+@@ -365,14 +346,14 @@ public:
+                            wininet
+ ===========================================================================*/
+-class carriageParm_wininet0 : public xmlrpc_c::carriageParm_http0 {
++class XMLRPC_DLLEXPORT carriageParm_wininet0 : public xmlrpc_c::carriageParm_http0 {
+ public:
+     carriageParm_wininet0(std::string const serverUrl);
+ };
+-class carriageParm_wininet0Ptr : public xmlrpc_c::carriageParm_http0Ptr {
++class XMLRPC_DLLEXPORT carriageParm_wininet0Ptr : public xmlrpc_c::carriageParm_http0Ptr {
+ public:
+     carriageParm_wininet0Ptr();
+@@ -382,7 +363,7 @@ public:
+     operator->() const;
+ };
+-class clientXmlTransport_wininet : public xmlrpc_c::clientXmlTransport_http {
++class XMLRPC_DLLEXPORT clientXmlTransport_wininet : public xmlrpc_c::clientXmlTransport_http {
+ public:
+     clientXmlTransport_wininet(bool const allowInvalidSslCerts = false);
+@@ -394,15 +375,15 @@ public:
+                            pstream
+ ===========================================================================*/
+-class packetSocket;
++class XMLRPC_DLLEXPORT packetSocket;
+-class carriageParm_pstream : public xmlrpc_c::carriageParm {
++class XMLRPC_DLLEXPORT carriageParm_pstream : public xmlrpc_c::carriageParm {
+     // There are no parameters for carrying an RPC on a packet stream.
+     // There's only one way to carry it.
+ };
+-class carriageParm_pstreamPtr : public xmlrpc_c::carriageParmPtr {
++class XMLRPC_DLLEXPORT carriageParm_pstreamPtr : public xmlrpc_c::carriageParmPtr {
+ public:
+     carriageParm_pstreamPtr();
+@@ -413,21 +394,22 @@ public:
+     operator->() const;
+ };
+-class clientXmlTransport_pstream : public xmlrpc_c::clientXmlTransport {
++class XMLRPC_DLLEXPORT clientXmlTransport_pstream : public xmlrpc_c::clientXmlTransport {
+ public:
++    struct constrOpt_impl;
++
+     class constrOpt {
+     public:
+         constrOpt();
++        ~constrOpt();
++        constrOpt(constrOpt&);
+         constrOpt & fd                (int         const& arg);
+-        struct {
+-            int         fd;
+-        } value;
+-        struct {
+-            bool fd;
+-        } present;
++    private:
++        struct constrOpt_impl * implP;
++        friend class clientXmlTransport_pstream;
+     };
+     clientXmlTransport_pstream(constrOpt const& opt);
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/config.h.in b/libs/xmlrpc-c/include/xmlrpc-c/config.h.in
+deleted file mode 100644
+index 2575010..0000000
+--- a/libs/xmlrpc-c/include/xmlrpc-c/config.h.in
++++ /dev/null
+@@ -1,37 +0,0 @@
+-#ifndef XMLRPC_C_CONFIG_H_INCLUDED
+-#define XMLRPC_C_CONFIG_H_INCLUDED
+-
+-/* This file, part of XML-RPC For C/C++, is meant to 
+-   define characteristics of this particular installation 
+-   that the other <xmlrpc-c/...> header files need in 
+-   order to compile correctly when #included in Xmlrpc-c
+-   user code.
+-
+-   Those header files #include this one.
+-
+-   This file was created by a make rule.
+-*/
+-#define XMLRPC_HAVE_WCHAR @HAVE_WCHAR_H_DEFINE@
+-#ifdef WIN32
+-  /* SOCKET is a type defined by <winsock.h>.  Anyone who
+-     uses XMLRPC_SOCKET on a WIN32 system must #include
+-     <winsock.h>
+-  */
+-  #define XMLRPC_SOCKET SOCKET
+-  #define XMLRPC_HAVE_TIMEVAL 0
+-  #define XMLRPC_HAVE_TIMESPEC 0
+-#else
+-  #define XMLRPC_SOCKET int
+-  #define XMLRPC_HAVE_TIMEVAL 1
+-  #define XMLRPC_HAVE_TIMESPEC 1
+-#endif
+-
+-#if defined(_MSC_VER)
+-  /* Newer MSVC has long long, but MSVC 6 does not */
+-  #define XMLRPC_INT64 __int64
+-  #define XMLRPC_INT32 __int32
+-#else
+-  #define XMLRPC_INT64 long long
+-  #define XMLRPC_INT32 int
+-#endif
+-#endif
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/girerr.hpp b/libs/xmlrpc-c/include/xmlrpc-c/girerr.hpp
+index 1008722..62fd677 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/girerr.hpp
++++ b/libs/xmlrpc-c/include/xmlrpc-c/girerr.hpp
+@@ -4,11 +4,13 @@
+ #include <string>
+ #include <exception>
++#include <xmlrpc-c/c_util.h>
++
+ #define HAVE_GIRERR_ERROR
+ namespace girerr {
+-class error : public std::exception {
++class XMLRPC_DLLEXPORT error : public std::exception {
+ public:
+     error(std::string const& what_arg) : _what(what_arg) {}
+@@ -23,8 +25,11 @@ private:
+ // throwf() always throws a girerr::error .
++XMLRPC_DLLEXPORT
+ void
+-throwf(const char * const format, ...);
++throwf(const char * const format, ...)
++  XMLRPC_PRINTF_ATTR(1,2)
++  XMLRPC_NORETURN_ATTR;
+ } // namespace
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/girmem.hpp b/libs/xmlrpc-c/include/xmlrpc-c/girmem.hpp
+index 2eed408..80ef8fc 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/girmem.hpp
++++ b/libs/xmlrpc-c/include/xmlrpc-c/girmem.hpp
+@@ -1,6 +1,8 @@
+ #ifndef GIRMEM_HPP_INCLUDED
+ #define GIRMEM_HPP_INCLUDED
++#include <xmlrpc-c/config.h>
++#include <xmlrpc-c/c_util.h>
+ /* The following pthread crap mirrors what is in pthreadx.h, which is
+    what girmem.cpp uses to declare the lock interface.  We can't simply
+@@ -15,7 +17,7 @@
+    a pthread_mutex_t member, and on Windows, there's no such type.
+ */
+    
+-#ifndef WIN32
++#if XMLRPC_HAVE_PTHREAD
+ #  include <pthread.h>
+    typedef pthread_mutex_t girmem_lock;
+ #else
+@@ -25,9 +27,9 @@
+ namespace girmem {
+-class autoObjectPtr;
++class XMLRPC_DLLEXPORT autoObjectPtr;
+-class autoObject {
++class XMLRPC_DLLEXPORT autoObject {
+     friend class autoObjectPtr;
+ public:
+@@ -43,7 +45,7 @@ private:
+     unsigned int refcount;
+ };
+-class autoObjectPtr {
++class XMLRPC_DLLEXPORT autoObjectPtr {
+ public:
+     autoObjectPtr();
+     autoObjectPtr(girmem::autoObject * objectP);
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/inttypes.h b/libs/xmlrpc-c/include/xmlrpc-c/inttypes.h
+index fe1feb5..1e470e5 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/inttypes.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/inttypes.h
+@@ -9,6 +9,9 @@ typedef unsigned __int64  xmlrpc_uint64_t;
+ #else
+ #include <inttypes.h>
++#ifdef __INTERIX
++#  include <stdint.h>
++#endif
+ typedef uint16_t xmlrpc_uint16_t;
+ typedef uint32_t xmlrpc_uint32_t;
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/oldcppwrapper.hpp b/libs/xmlrpc-c/include/xmlrpc-c/oldcppwrapper.hpp
+index 78a9c51..858fdd3 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/oldcppwrapper.hpp
++++ b/libs/xmlrpc-c/include/xmlrpc-c/oldcppwrapper.hpp
+@@ -27,17 +27,18 @@
+ #include <cstdlib>
+ #include <string>
++
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/base.h>
+ #include <xmlrpc-c/client.h>
+ #include <xmlrpc-c/server.h>
+-
+ //=========================================================================
+ //  XmlRpcFault
+ //=========================================================================
+ //  A C++ exception class representing an XML-RPC fault.
+-class XmlRpcFault {
++class XMLRPC_DLLEXPORT XmlRpcFault {
+ private:
+     xmlrpc_env   mFault;
+@@ -51,9 +52,9 @@ public:
+     XmlRpcFault (const xmlrpc_env *env);
+     ~XmlRpcFault (void);
+-    int          getFaultCode (void) const;
+-    std::string  getFaultString (void) const;
+-    xmlrpc_env  *getFaultEnv (void);
++    inline int getFaultCode (void) const;
++    std::string getFaultString (void) const;
++    inline xmlrpc_env * getFaultEnv (void);
+ };
+ inline int XmlRpcFault::getFaultCode (void) const {
+@@ -74,7 +75,7 @@ inline xmlrpc_env *XmlRpcFault::getFaultEnv (void) {
+ //    xmlrpc_parse_value(env, v, "(i)", &i);
+ //    env.throwIfFaultOccurred();        
+-class XmlRpcEnv {
++class XMLRPC_DLLEXPORT XmlRpcEnv {
+ private:
+     xmlrpc_env   mEnv;
+@@ -128,7 +129,7 @@ inline void XmlRpcEnv::throwIfFaultOccurred (void) const {
+ //
+ //  So reference counting for the xmlrpc_value is quite a nightmare.
+-class XmlRpcValue {
++class XMLRPC_DLLEXPORT XmlRpcValue {
+ private:
+     xmlrpc_value *mValue;
+@@ -257,7 +258,7 @@ inline xmlrpc_value *XmlRpcValue::borrowReference (void) const {
+ //  XmlRpcClient
+ //=========================================================================
+-class XmlRpcClient {
++class XMLRPC_DLLEXPORT XmlRpcClient {
+ private:
+     std::string mServerUrl;
+@@ -344,7 +345,7 @@ inline XmlRpcValue XmlRpcClient::call (std::string method_name,
+ //  XmlRpcGenSrv
+ //=========================================================================
+-class XmlRpcGenSrv {
++class XMLRPC_DLLEXPORT XmlRpcGenSrv {
+ private:
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/packetsocket.hpp b/libs/xmlrpc-c/include/xmlrpc-c/packetsocket.hpp
+index 64b7221..2ad7a46 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/packetsocket.hpp
++++ b/libs/xmlrpc-c/include/xmlrpc-c/packetsocket.hpp
+@@ -15,20 +15,21 @@
+ #include <string>
+ #include <queue>
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/girmem.hpp>
+ namespace xmlrpc_c {
+-class packet : public girmem::autoObject {
++class XMLRPC_DLLEXPORT packet : public girmem::autoObject {
+ public:
+     packet();
+     packet(const unsigned char * const data,
+-                   size_t                const dataLength);
++           size_t                const dataLength);
+     packet(const char * const data,
+-                   size_t       const dataLength);
++           size_t       const dataLength);
+     ~packet();
+@@ -54,7 +55,7 @@ private:
+-class packetPtr: public girmem::autoObjectPtr {
++class XMLRPC_DLLEXPORT packetPtr: public girmem::autoObjectPtr {
+ public:
+     packetPtr();
+@@ -67,7 +68,9 @@ public:
+-class packetSocket {
++class XMLRPC_DLLEXPORT packetSocket_impl;
++
++class XMLRPC_DLLEXPORT packetSocket {
+ /*----------------------------------------------------------------------------
+    This is an Internet communication vehicle that transmits individual
+    variable-length packets of text.
+@@ -106,56 +109,7 @@ public:
+              packetPtr * const packetPP);
+ private:
+-    int sockFd;
+-        // The kernel stream socket we use.
+-    bool eof;
+-        // The packet socket is at end-of-file for reads.
+-        // 'readBuffer' is empty and there won't be any more data to fill
+-        // it because the underlying stream socket is closed.
+-    std::queue<packetPtr> readBuffer;
+-    packetPtr packetAccumP;
+-        // The receive packet we're currently accumulating; it will join
+-        // 'readBuffer' when we've received the whole packet (and we've
+-        // seen the END escape sequence so we know we've received it all).
+-        // If we're not currently accumulating a packet (haven't seen a
+-        // PKT escape sequence), this points to nothing.
+-    bool inEscapeSeq;
+-        // In our trek through the data read from the underlying stream
+-        // socket, we are after an ESC character and before the end of the
+-        // escape sequence.  'escAccum' shows what of the escape sequence
+-        // we've seen so far.
+-    bool inPacket;
+-        // We're now receiving packet data from the underlying stream
+-        // socket.  We've seen a complete PKT escape sequence, but have not
+-        // seen a complete END escape sequence since.
+-    struct {
+-        unsigned char bytes[3];
+-        size_t len;
+-    } escAccum;
+-
+-    void
+-    bufferFinishedPacket();
+-
+-    void
+-    takeSomeEscapeSeq(const unsigned char * const buffer,
+-                                    size_t                const length,
+-                                    size_t *              const bytesTakenP);
+-
+-    void
+-    takeSomePacket(const unsigned char * const buffer,
+-                   size_t                const length,
+-                   size_t *              const bytesTakenP);
+-
+-    void
+-    verifyNothingAccumulated();
+-
+-    void
+-    processBytesRead(const unsigned char * const buffer,
+-                     size_t                const bytesRead);
+-
+-    void
+-    readFromFile();
+-
++    packetSocket_impl * implP;
+ };
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/registry.hpp b/libs/xmlrpc-c/include/xmlrpc-c/registry.hpp
+index 1182b86..81db5b0 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/registry.hpp
++++ b/libs/xmlrpc-c/include/xmlrpc-c/registry.hpp
+@@ -1,10 +1,12 @@
+ #ifndef REGISTRY_HPP_INCLUDED
+ #define REGISTRY_HPP_INCLUDED
++#include <sys/types.h>
+ #include <string>
+ #include <vector>
+ #include <list>
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/server.h>
+ #include <xmlrpc-c/girmem.hpp>
+ #include <xmlrpc-c/base.hpp>
+@@ -12,7 +14,20 @@
+ namespace xmlrpc_c {
+-class method : public girmem::autoObject {
++class XMLRPC_DLLEXPORT callInfo {
++/*----------------------------------------------------------------------------
++   Information about how an XML-RPC call arrived.
++
++   This base class carries no information; Servers that don't have any
++   call information to provide might use this.  Servers that do have call
++   information to provide define a derived class of this that contains
++   information pertinent to that kind of server.
++-----------------------------------------------------------------------------*/
++public:
++    virtual ~callInfo() {};  // This makes it polymorphic
++};
++
++class XMLRPC_DLLEXPORT method : public girmem::autoObject {
+ /*----------------------------------------------------------------------------
+    An XML-RPC method.
+@@ -68,7 +83,34 @@ protected:
+ */
+-class methodPtr : public girmem::autoObjectPtr {
++class XMLRPC_DLLEXPORT method2 : public method {
++/*----------------------------------------------------------------------------
++   An XML-RPC method.
++
++   This base class is abstract.  You can't create an object in it.
++   Define a useful method with this as a base class, with an
++   execute() method.
++
++   This differs from class 'method' in that the execute() method gets
++   call information ('callInfo').
++-----------------------------------------------------------------------------*/
++public:
++    method2();
++
++    virtual ~method2();
++
++    virtual void
++    execute(xmlrpc_c::paramList        const& paramList,
++            const xmlrpc_c::callInfo * const  callInfoP,
++            xmlrpc_c::value *          const  resultP) = 0;
++
++    void
++    execute(xmlrpc_c::paramList const& paramList,
++            xmlrpc_c::value *   const  resultP);
++
++};
++
++class XMLRPC_DLLEXPORT methodPtr : public girmem::autoObjectPtr {
+ public:
+     methodPtr(xmlrpc_c::method * const methodP);
+@@ -77,7 +119,7 @@ public:
+     operator->() const;
+ };
+-class defaultMethod : public girmem::autoObject {
++class XMLRPC_DLLEXPORT defaultMethod : public girmem::autoObject {
+ public:
+     virtual ~defaultMethod();
+@@ -88,7 +130,7 @@ public:
+             xmlrpc_c::value *   const  resultP) = 0;
+ };
+-class defaultMethodPtr : public girmem::autoObjectPtr {
++class XMLRPC_DLLEXPORT defaultMethodPtr : public girmem::autoObjectPtr {
+ public:
+     defaultMethodPtr();
+@@ -102,9 +144,9 @@ public:
+     get() const;
+ };
++struct registry_impl;
+-
+-class registry : public girmem::autoObject {
++class XMLRPC_DLLEXPORT registry : public girmem::autoObject {
+ /*----------------------------------------------------------------------------
+    An Xmlrpc-c server method registry.  An Xmlrpc-c server transport
+    (e.g.  an HTTP server) uses this object to process an incoming
+@@ -126,7 +168,7 @@ public:
+     void
+     disableIntrospection();
+-    class shutdown {
++    class XMLRPC_DLLEXPORT shutdown {
+     public:
+         virtual ~shutdown() = 0;
+         virtual void
+@@ -141,36 +183,24 @@ public:
+     setDialect(xmlrpc_dialect const dialect);
+     
+     void
+-    processCall(std::string   const& body,
+-                std::string * const  responseP) const;
++    processCall(std::string   const& callXml,
++                std::string * const  responseXmlP) const;
+-    xmlrpc_registry *
+-    c_registry() const;
+-        /* This is meant to be private except to other objects in the
+-           Xmlrpc-c library.
+-        */
++    void
++    processCall(std::string                const& callXml,
++                const xmlrpc_c::callInfo * const callInfoP,
++                std::string *              const  responseXmlP) const;
++        
++    size_t
++    maxStackSize() const;
+ private:
+-    xmlrpc_registry * c_registryP;
+-        // Pointer to the C registry object we use to implement this
+-        // object.
+-
+-    std::list<xmlrpc_c::methodPtr> methodList;
+-        // This is a list of all the method objects (actually, pointers
+-        // to them).  But since the real registry is the C registry object,
+-        // all this list is for is to maintain references to the objects
+-        // to which the C registry points so that they continue to exist.
+-
+-    xmlrpc_c::defaultMethodPtr defaultMethodP;
+-        // The real identifier of the default method is the C registry
+-        // object; this member exists only to maintain a reference to the
+-        // object to which the C registry points so that it will continue
+-        // to exist.
++    registry_impl * implP;
+ };
+-class registryPtr : public girmem::autoObjectPtr {
++class XMLRPC_DLLEXPORT registryPtr : public girmem::autoObjectPtr {
+ public:
+     registryPtr();
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/select_int.h b/libs/xmlrpc-c/include/xmlrpc-c/select_int.h
+index 3b42a1d..7a43ec3 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/select_int.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/select_int.h
+@@ -1,11 +1,12 @@
+ #ifndef SELECT_INT_H_INCLUDED
+ #define SELECT_INT_H_INCLUDED
+-#ifndef WIN32
++#if HAVE_SYS_SELECT_H
+ #include <sys/select.h>
+ #endif
+ #include <signal.h>
++#include "xmlrpc-c/c_util.h"
+ #include "xmlrpc-c/time_int.h"
+ #ifdef WIN32
+ #ifndef sigset_t
+@@ -13,6 +14,7 @@ typedef int sigset_t;
+ #endif
+ #endif
++XMLRPC_DLLEXPORT
+ int
+ xmlrpc_pselect(int                     const n,
+                fd_set *                const readfdsP,
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/server.h b/libs/xmlrpc-c/include/xmlrpc-c/server.h
+index 70d4896..11256fe 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/server.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/server.h
+@@ -3,6 +3,7 @@
+ #ifndef  XMLRPC_SERVER_H_INCLUDED
+ #define  XMLRPC_SERVER_H_INCLUDED
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/base.h>
+ #ifdef __cplusplus
+@@ -37,19 +38,32 @@ typedef xmlrpc_value *
+                          xmlrpc_value * const paramArrayP,
+                          void *         const serverInfo);
++/* These are for backward compatibility -- they can't be exported from a
++   Windows DLL.  xmlrpc_server_version() is preferred.
++*/
+ extern unsigned int const xmlrpc_server_version_major;
+ extern unsigned int const xmlrpc_server_version_minor;
+ extern unsigned int const xmlrpc_server_version_point;
++XMLRPC_DLLEXPORT
++void
++xmlrpc_server_version(unsigned int * const majorP,
++                      unsigned int * const minorP,
++                      unsigned int * const pointP);
++
++XMLRPC_DLLEXPORT
+ xmlrpc_registry *
+ xmlrpc_registry_new(xmlrpc_env * const envP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_registry_free(xmlrpc_registry * const registryP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_registry_disable_introspection(xmlrpc_registry * const registryP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_registry_add_method(xmlrpc_env *      const envP,
+                            xmlrpc_registry * const registryP,
+@@ -58,6 +72,7 @@ xmlrpc_registry_add_method(xmlrpc_env *      const envP,
+                            xmlrpc_method     const method,
+                            void *            const serverInfo);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_registry_add_method_w_doc(xmlrpc_env *      const envP,
+                                  xmlrpc_registry * const registryP,
+@@ -68,6 +83,7 @@ xmlrpc_registry_add_method_w_doc(xmlrpc_env *      const envP,
+                                  const char *      const signatureString,
+                                  const char *      const help);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_registry_add_method2(xmlrpc_env *      const envP,
+                             xmlrpc_registry * const registryP,
+@@ -77,12 +93,30 @@ xmlrpc_registry_add_method2(xmlrpc_env *      const envP,
+                             const char *      const help,
+                             void *            const serverInfo);
++struct xmlrpc_method_info3 {
++    const char *      methodName;
++    xmlrpc_method2    methodFunction;
++    void *            serverInfo;
++    size_t            stackSize;
++    const char *      signatureString;
++    const char *      help;
++};
++
++XMLRPC_DLLEXPORT
++void
++xmlrpc_registry_add_method3(
++    xmlrpc_env *                       const envP,
++    xmlrpc_registry *                  const registryP,
++    const struct xmlrpc_method_info3 * const infoP);
++
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_registry_set_default_method(xmlrpc_env *          const envP,
+                                    xmlrpc_registry *     const registryP,
+                                    xmlrpc_default_method const handler,
+                                    void *                const userData);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_registry_set_preinvoke_method(xmlrpc_env *            const envP,
+                                      xmlrpc_registry *       const registryP,
+@@ -95,11 +129,13 @@ typedef void xmlrpc_server_shutdown_fn(xmlrpc_env * const envP,
+                                        const char * const comment,
+                                        void *       const callInfo);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_registry_set_shutdown(xmlrpc_registry *           const registryP,
+                              xmlrpc_server_shutdown_fn * const shutdownFn,
+                              void *                      const context);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_registry_set_dialect(xmlrpc_env *      const envP,
+                             xmlrpc_registry * const registryP,
+@@ -109,6 +145,7 @@ xmlrpc_registry_set_dialect(xmlrpc_env *      const envP,
+    Lower interface -- services to be used by an HTTP request handler
+ -----------------------------------------------------------------------------*/
+                     
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_registry_process_call2(xmlrpc_env *        const envP,
+                               xmlrpc_registry *   const registryP,
+@@ -117,6 +154,7 @@ xmlrpc_registry_process_call2(xmlrpc_env *        const envP,
+                               void *              const callInfo,
+                               xmlrpc_mem_block ** const outputPP);
++XMLRPC_DLLEXPORT
+ xmlrpc_mem_block *
+ xmlrpc_registry_process_call(xmlrpc_env *      const envP,
+                              xmlrpc_registry * const registryP,
+@@ -124,6 +162,10 @@ xmlrpc_registry_process_call(xmlrpc_env *      const envP,
+                              const char *      const xmlData,
+                              size_t            const xmlLen);
++XMLRPC_DLLEXPORT
++size_t
++xmlrpc_registry_max_stackSize(xmlrpc_registry * const registryP);
++
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/server_abyss.h b/libs/xmlrpc-c/include/xmlrpc-c/server_abyss.h
+index 975fa0e..36bcb11 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/server_abyss.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/server_abyss.h
+@@ -16,6 +16,7 @@
+ #endif
+ #include <xmlrpc-c/config.h>  /* For XMLRPC_SOCKET */
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/abyss.h>
+ #include <xmlrpc-c/server.h>
+@@ -33,9 +34,11 @@ extern "C" {
+ **  of your program, when it is only one thread.
+ **=======================================================================*/
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_abyss_global_init(xmlrpc_env * const envP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_abyss_global_term(void);
+@@ -68,6 +71,9 @@ typedef struct {
+     const char *      uri_path;
+     xmlrpc_bool       chunk_response;
+     xmlrpc_bool       enable_shutdown;
++    const char *      allow_origin;
++    xmlrpc_bool       access_ctl_expires;
++    unsigned int      access_ctl_max_age;
+ } xmlrpc_server_abyss_parms;
+@@ -85,10 +91,11 @@ typedef struct {
+ **  Simple server with Abyss under the covers
+ **=======================================================================*/
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_abyss(xmlrpc_env *                      const envP,
+                     const xmlrpc_server_abyss_parms * const parms,
+-                    unsigned int                      const parm_size);
++                    unsigned int                      const parmSize);
+ /*=========================================================================
+ **  Object-oriented XML-RPC server with Abyss under the covers
+@@ -96,39 +103,47 @@ xmlrpc_server_abyss(xmlrpc_env *                      const envP,
+ typedef struct xmlrpc_server_abyss xmlrpc_server_abyss_t;
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_abyss_create(xmlrpc_env *                      const envP,
+                            const xmlrpc_server_abyss_parms * const parmsP,
+                            unsigned int                      const parmSize,
+                            xmlrpc_server_abyss_t **          const serverPP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_abyss_destroy(xmlrpc_server_abyss_t * const serverP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_abyss_run_server(xmlrpc_env *            const envP,
+                                xmlrpc_server_abyss_t * const serverP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_abyss_terminate(xmlrpc_env *            const envP,
+                               xmlrpc_server_abyss_t * const serverP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_abyss_reset_terminate(xmlrpc_env *            const envP,
+                                     xmlrpc_server_abyss_t * const serverP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_abyss_use_sigchld(xmlrpc_server_abyss_t * const serverP);
+ typedef struct xmlrpc_server_abyss_sig xmlrpc_server_abyss_sig;
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_abyss_setup_sig(
+     xmlrpc_env *               const envP,
+     xmlrpc_server_abyss_t *    const serverP,
+     xmlrpc_server_abyss_sig ** const oldHandlersPP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_abyss_restore_sig(
+     const xmlrpc_server_abyss_sig * const oldHandlersP);
+@@ -139,21 +154,78 @@ xmlrpc_server_abyss_restore_sig(
+ **  Functions to make an XML-RPC server out of your own Abyss server
+ **=======================================================================*/
++typedef void
++xmlrpc_call_processor(xmlrpc_env *        const envP,
++                      void *              const processorArg,
++                      const char *        const callXml,
++                      size_t              const callXmlLen,
++                      TSession *          const abyssSessionP,
++                      xmlrpc_mem_block ** const responseXmlPP);
++
++typedef struct {
++    xmlrpc_call_processor * xml_processor;
++    void *                  xml_processor_arg;
++    size_t                  xml_processor_max_stack;
++    const char *            uri_path;
++    xmlrpc_bool             chunk_response;
++    const char *            allow_origin;
++        /* NULL means don't answer HTTP access control query */
++    xmlrpc_bool             access_ctl_expires;
++    unsigned int            access_ctl_max_age;
++} xmlrpc_server_abyss_handler_parms;
++
++#define XMLRPC_AHPSIZE(MBRNAME) \
++    XMLRPC_STRUCTSIZE(xmlrpc_server_abyss_handler_parms, MBRNAME)
++
++/* XMLRPC_AHPSIZE(xyz) is the minimum size a struct
++   xmlrpc_server_abyss_handler_parms must be to include the 'xyz' member.
++   This is essential to forward and backward compatibility, as new members
++   will be added to the end of the struct in future releases.  This is how the
++   callee knows whether or not the caller is new enough to have supplied a
++   certain parameter.
++*/
++
++
++XMLRPC_DLLEXPORT
++void
++xmlrpc_server_abyss_set_handler3(
++    xmlrpc_env *                              const envP,
++    TServer *                                 const srvP,
++    const xmlrpc_server_abyss_handler_parms * const parms,
++    unsigned int                              const parmSize);
++
++XMLRPC_DLLEXPORT
++void
++xmlrpc_server_abyss_set_handler2(
++    TServer *         const srvP,
++    const char *      const uriPath,
++    xmlrpc_call_processor   xmlProcessor,
++    void *            const xmlProcessorArg,
++    size_t            const xmlProcessorMaxStackSize,
++    xmlrpc_bool       const chunkResponse);
++
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_abyss_set_handlers2(TServer *         const srvP,
+                                   const char *      const filename,
+                                   xmlrpc_registry * const registryP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_abyss_set_handlers(TServer *         const serverP,
+                                  xmlrpc_registry * const registryP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_abyss_set_handler(xmlrpc_env *      const envP,
+                                 TServer *         const serverP,
+                                 const char *      const filename,
+                                 xmlrpc_registry * const registryP);
++XMLRPC_DLLEXPORT
++void
++xmlrpc_server_abyss_set_default_handler(TServer * const serverP);
++
+ /*=========================================================================
+ **  Handy Abyss Extensions
+ **=======================================================================*/
+@@ -171,6 +243,7 @@ xmlrpc_server_abyss_set_handler(xmlrpc_env *      const envP,
+ ** Once you call this routine, it is illegal to modify the server any
+ ** more, including changing any method registry.
+ */
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_abyss_run(void);
+@@ -180,6 +253,7 @@ xmlrpc_server_abyss_run(void);
+ ** function.  'runfirstArg' is the argument the server passes to the runfirst
+ ** function.
+ **/
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_server_abyss_run_first(runfirstFn const runfirst,
+                               void *     const runfirstArg);
+@@ -200,29 +274,34 @@ xmlrpc_server_abyss_run_first(runfirstFn const runfirst,
+ ** Or use a regular method registry and call
+ ** xmlrpc_server_abyss_set_handlers().
+ **/
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_server_abyss_init(int          const flags, 
+                          const char * const config_file);
+ /* This is called automatically by xmlrpc_server_abyss_init. */
++XMLRPC_DLLEXPORT
+ void xmlrpc_server_abyss_init_registry (void);
+ /* Fetch the internal registry, if you happen to need it. 
+    If you're using this, you really shouldn't be using the built-in
+    registry at all.  It exists today only for backward compatibilty.
+ */
++XMLRPC_DLLEXPORT
+ extern xmlrpc_registry *
+ xmlrpc_server_abyss_registry (void);
+ /* A quick & easy shorthand for adding a method. Depending on
+ ** how you've configured your copy of Abyss, it's probably not safe to
+ ** call this method after calling xmlrpc_server_abyss_run. */
++XMLRPC_DLLEXPORT
+ void xmlrpc_server_abyss_add_method (char *        const method_name,
+                                      xmlrpc_method const method,
+                                      void *        const user_data);
+     
+ /* As above, but provide documentation (see xmlrpc_registry_add_method_w_doc
+ ** for more information). You should really use this one. */
++XMLRPC_DLLEXPORT
+ extern void
+ xmlrpc_server_abyss_add_method_w_doc (char *        const method_name,
+                                       xmlrpc_method const method,
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/server_abyss.hpp b/libs/xmlrpc-c/include/xmlrpc-c/server_abyss.hpp
+index 1ff9043..44636f9 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/server_abyss.hpp
++++ b/libs/xmlrpc-c/include/xmlrpc-c/server_abyss.hpp
+@@ -5,18 +5,25 @@
+ #include <winsock.h>   // For XMLRPC_SOCKET (= SOCKET)
+ #endif
+-#include "xmlrpc-c/config.h"  // For XMLRPC_SOCKET
+-#include "xmlrpc-c/base.hpp"
+-#include "abyss.h"
++#include <xmlrpc-c/config.h>  // For XMLRPC_SOCKET
++#include <xmlrpc-c/c_util.h>
++#include <xmlrpc-c/base.hpp>
++#include <xmlrpc-c/registry.hpp>
++#include <xmlrpc-c/abyss.h>
+ namespace xmlrpc_c {
+-class serverAbyss {
++struct serverAbyss_impl;
++
++class XMLRPC_DLLEXPORT serverAbyss {
+     
+ public:
+-    class constrOpt {
++    struct constrOpt_impl;
++
++    class XMLRPC_DLLEXPORT constrOpt {
+     public:
+         constrOpt();
++        ~constrOpt();
+         constrOpt & registryPtr       (xmlrpc_c::registryPtr      const& arg);
+         constrOpt & registryP         (const xmlrpc_c::registry * const& arg);
+@@ -29,33 +36,14 @@ public:
+         constrOpt & dontAdvertise     (bool           const& arg);
+         constrOpt & uriPath           (std::string    const& arg);
+         constrOpt & chunkResponse     (bool           const& arg);
++        constrOpt & allowOrigin       (std::string    const& arg);
++        constrOpt & accessCtlMaxAge (unsigned int const& arg);
++        constrOpt & serverOwnsSignals (bool           const& arg);
++        constrOpt & expectSigchld     (bool           const& arg);
+-        struct value {
+-            xmlrpc_c::registryPtr      registryPtr;
+-            const xmlrpc_c::registry * registryP;
+-            XMLRPC_SOCKET  socketFd;
+-            unsigned int   portNumber;
+-            std::string    logFileName;
+-            unsigned int   keepaliveTimeout;
+-            unsigned int   keepaliveMaxConn;
+-            unsigned int   timeout;
+-            bool           dontAdvertise;
+-            std::string    uriPath;
+-            bool           chunkResponse;
+-        } value;
+-        struct {
+-            bool registryPtr;
+-            bool registryP;
+-            bool socketFd;
+-            bool portNumber;
+-            bool logFileName;
+-            bool keepaliveTimeout;
+-            bool keepaliveMaxConn;
+-            bool timeout;
+-            bool dontAdvertise;
+-            bool uriPath;
+-            bool chunkResponse;
+-        } present;
++    private:
++        struct constrOpt_impl * implP;
++        friend class serverAbyss;
+     };
+     serverAbyss(constrOpt const& opt);
+@@ -82,10 +70,15 @@ public:
+     void
+     runConn(int const socketFd);
++#ifndef WIN32
++    void
++    sigchld(pid_t pid);
++#endif
++
+     void
+     terminate();
+     
+-    class shutdown : public xmlrpc_c::registry::shutdown {
++    class XMLRPC_DLLEXPORT shutdown : public xmlrpc_c::registry::shutdown {
+     public:
+         shutdown(xmlrpc_c::serverAbyss * const severAbyssP);
+         virtual ~shutdown();
+@@ -95,35 +88,64 @@ public:
+     };
+ private:
+-    // The user has the choice of supplying the registry by plain pointer
+-    // (and managing the object's existence himself) or by autoObjectPtr
+-    // (with automatic management).  'registryPtr' exists here only to
+-    // maintain a reference count in the case that the user supplied an
+-    // autoObjectPtr.  The object doesn't reference the C++ registry
+-    // object except during construction, because the C registry is the
+-    // real registry.
+-    xmlrpc_c::registryPtr registryPtr;
+-    TServer cServer;
+-
+-    void
+-    setAdditionalServerParms(constrOpt const& opt);
++    serverAbyss_impl * implP;
+     void
+     initialize(constrOpt const& opt);
+ };
++class XMLRPC_DLLEXPORT callInfo_serverAbyss : public xmlrpc_c::callInfo {
++/*----------------------------------------------------------------------------
++   This is information about how an XML-RPC call arrived via an Abyss server.
++   It is available to the user's XML-RPC method execute() method, so for
++   example an XML-RPC method might execute differently depending upon the
++   IP address of the client.
++
++   This is for a user of a xmlrpc_c::serverAbyss server.
++-----------------------------------------------------------------------------*/
++public:
++    callInfo_serverAbyss(xmlrpc_c::serverAbyss * const abyssServerP,
++                         TSession *              const abyssSessionP);
++
++    xmlrpc_c::serverAbyss * const serverAbyssP;
++        // The server that is processing the RPC.
++    TSession * const abyssSessionP;
++        // The HTTP transaction that embodies the RPC.  You can ask this
++        // object things like what the IP address of the client is.
++};
++
++class XMLRPC_DLLEXPORT callInfo_abyss : public xmlrpc_c::callInfo {
++/*----------------------------------------------------------------------------
++   This is information about how an XML-RPC call arrived via an Abyss server.
++   It is available to the user's XML-RPC method execute() method, so for
++   example an XML-RPC method might execute differently depending upon the
++   IP address of the client.
++
++   This is for a user with his own Abyss server, using
++   the "set_handlers" routines to make it into an XML-RPC server.
++-----------------------------------------------------------------------------*/
++public:
++    callInfo_abyss(TSession * const abyssSessionP);
++
++    TSession * abyssSessionP;
++        // The HTTP transaction that embodies the RPC.  You can ask this
++        // object things like what the IP address of the client is.
++};
++XMLRPC_DLLEXPORT
+ void
+ server_abyss_set_handlers(TServer *          const  srvP,
+                           xmlrpc_c::registry const& registry,
+                           std::string        const& uriPath = "/RPC2");
++XMLRPC_DLLEXPORT
+ void
+ server_abyss_set_handlers(TServer *                  const  srvP,
+                           const xmlrpc_c::registry * const  registryP,
+                           std::string                const& uriPath = "/RPC2");
++XMLRPC_DLLEXPORT
+ void
+ server_abyss_set_handlers(TServer *             const srvP,
+                           xmlrpc_c::registryPtr const registryPtr,
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/server_cgi.h b/libs/xmlrpc-c/include/xmlrpc-c/server_cgi.h
+index ad926aa..e43b9e7 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/server_cgi.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/server_cgi.h
+@@ -6,38 +6,45 @@
+ #ifndef  XMLRPC_CGI_H_INCLUDED
+ #define  XMLRPC_CGI_H_INCLUDED
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/server.h>
+ #ifdef __cplusplus
+ extern "C" {
+ #endif /* __cplusplus */
+-
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_cgi_process_call(xmlrpc_registry * const registryP);
+ #define XMLRPC_CGI_NO_FLAGS (0)
++XMLRPC_DLLEXPORT
+ extern void
+-xmlrpc_cgi_init (int flags);
++xmlrpc_cgi_init(int const flags);
++XMLRPC_DLLEXPORT
+ extern xmlrpc_registry *
+ xmlrpc_cgi_registry (void);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_cgi_add_method(const char *  const method_name,
+                       xmlrpc_method const method,
+                       void *        const user_data);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_cgi_add_method_w_doc(const char *  const method_name,
+                             xmlrpc_method const method,
+                             void *        const user_data,
+                             const char *  const signature,
+                             const char *  const help);
++XMLRPC_DLLEXPORT
+ extern void
+ xmlrpc_cgi_process_call (void);
++XMLRPC_DLLEXPORT
+ extern void
+ xmlrpc_cgi_cleanup (void);
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/server_pstream.hpp b/libs/xmlrpc-c/include/xmlrpc-c/server_pstream.hpp
+index b542532..c365f9a 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/server_pstream.hpp
++++ b/libs/xmlrpc-c/include/xmlrpc-c/server_pstream.hpp
+@@ -3,36 +3,36 @@
+ #ifdef WIN32
+ #include <winsock.h>  /* For XMLRPC_SOCKET (= SOCKET) */
++typedef int socklen_t;
++#else
++#include <sys/socket.h>
+ #endif
+ #include <xmlrpc-c/config.h>  /* For XMLRPC_SOCKET */
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/registry.hpp>
+ #include <xmlrpc-c/packetsocket.hpp>
+ namespace xmlrpc_c {
+-class serverPstreamConn {
++class XMLRPC_DLLEXPORT serverPstreamConn {
+ public:
+-    class constrOpt {
++    struct constrOpt_impl;
++
++    class XMLRPC_DLLEXPORT constrOpt {
+     public:
+         constrOpt();
++        ~constrOpt();
+         constrOpt & registryPtr       (xmlrpc_c::registryPtr      const& arg);
+         constrOpt & registryP         (const xmlrpc_c::registry * const& arg);
+         constrOpt & socketFd          (XMLRPC_SOCKET  const& arg);
+-        struct value {
+-            xmlrpc_c::registryPtr      registryPtr;
+-            const xmlrpc_c::registry * registryP;
+-            XMLRPC_SOCKET              socketFd;
+-        } value;
+-        struct {
+-            bool registryPtr;
+-            bool registryP;
+-            bool socketFd;
+-        } present;
++    private:
++        struct constrOpt_impl * implP;
++        friend class serverPstreamConn;
+     };
+     serverPstreamConn(constrOpt const& opt);
+@@ -40,33 +40,122 @@ public:
+     ~serverPstreamConn();
+     void
++    runOnce(xmlrpc_c::callInfo * const callInfoP,
++            volatile const int * const interruptP,
++            bool *               const eofP);
++
++    void
+     runOnce(volatile const int * const interruptP,
+             bool *               const eofP);
+     void
+     runOnce(bool * const eofP);
++    void
++    runOnceNoWait(callInfo * const callInfoP,
++                  bool *     const eofP,
++                  bool *     const didOneP);
++
++    void
++    runOnceNoWait(bool * const eofP,
++                  bool * const didOneP);
++
++    void
++    runOnceNoWait(bool * const eofP);
++
++    void
++    run(xmlrpc_c::callInfo * const callInfoP,
++        volatile const int * const interruptP);
++
++    void
++    run(volatile const int * const interruptP);
++
++    void
++    run();
++
+ private:
++    struct serverPstreamConn_impl * implP;
++};
+-    // 'registryP' is what we actually use; 'registryHolder' just holds a
+-    // reference to 'registryP' so the registry doesn't disappear while
+-    // this server exists.  But note that if the creator doesn't supply
+-    // a registryPtr, 'registryHolder' is just a placeholder variable and
+-    // the creator is responsible for making sure the registry doesn't
+-    // go anywhere while the server exists.
+-    registryPtr registryHolder;
+-    const registry * registryP;
++class XMLRPC_DLLEXPORT serverPstream {
+-    packetSocket * packetSocketP;
+-        // The packet socket over which we received RPCs.
+-        // This is permanently connected to our fixed client.
++public:
++
++    struct constrOpt_impl;
++
++    class XMLRPC_DLLEXPORT constrOpt {
++    public:
++        constrOpt();
++        ~constrOpt();
++
++        constrOpt & registryPtr       (xmlrpc_c::registryPtr      const& arg);
++        constrOpt & registryP         (const xmlrpc_c::registry * const& arg);
++        constrOpt & socketFd          (XMLRPC_SOCKET  const& arg);
++
++    private:
++        struct constrOpt_impl * implP;
++        friend class serverPstream;
++    };
++
++    serverPstream(constrOpt const& opt);
++
++    virtual ~serverPstream();  // This makes it polymorphic
+     void
+-    establishRegistry(constrOpt const& opt);
++    runSerial(volatile const int * const interruptP);
+     void
+-    establishPacketSocket(constrOpt const& opt);
++    runSerial();
++
++    void
++    terminate();
++    
++    class shutdown : public xmlrpc_c::registry::shutdown {
++    public:
++        shutdown(xmlrpc_c::serverPstream * const severAbyssP);
++        virtual ~shutdown();
++        void doit(std::string const& comment, void * const callInfo) const;
++    private:
++        xmlrpc_c::serverPstream * const serverPstreamP;
++    };
++
++private:
++    struct serverPstream_impl * implP;
++};
++
++// Note: there is no xmlrpc_c::callInfo_serverPstreamConn .  That's
++// because the serverPstreamConn server is so low-level that the user
++// defines his own derived class of xmlrpc_c::callInfo.  He creates an
++// object of that class and passes it to the 'runOnce' method.  The
++// server then passes it on through to the user's XML-RPC method 
++// execute() method.
++
++class XMLRPC_DLLEXPORT callInfo_serverPstream : public xmlrpc_c::callInfo {
++/*----------------------------------------------------------------------------
++   This is information about how an XML-RPC call arrived to the server.  It is
++   available to the user's XML-RPC method execute() method, so for example an
++   XML-RPC method might execute differently depending upon the IP address of
++   the client.
++
++   This is for a user of a xmlrpc_c::serverPstream server.
++-----------------------------------------------------------------------------*/
++public:
++    callInfo_serverPstream(
++        xmlrpc_c::serverPstream * const serverP,
++        struct sockaddr           const clientAddr,
++        socklen_t                 const clientAddrSize);
++
++    xmlrpc_c::serverPstream * const serverP;
++        // The server that is processing the RPC.
++    struct sockaddr const clientAddr;
++        // The address (typically, IP address and TCP port) of the XML-RPC
++        // client.  This is a Unix OS type.
++    socklen_t const clientAddrSize;
++        // Size in bytes of the valid part of 'clientAddr'.  (Usually implied
++        // by type of socket, as well as the address type member of
++        // 'clientAddr', but here because it's technically part of the POSIX
++        // socket interface).
+ };
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/server_w32httpsys.h b/libs/xmlrpc-c/include/xmlrpc-c/server_w32httpsys.h
+index 085f6e3..4c054c0 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/server_w32httpsys.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/server_w32httpsys.h
+@@ -38,6 +38,7 @@
+ #ifndef  _XMLRPC_SERVER_HTTPSYS_H_
+ #define  _XMLRPC_SERVER_HTTPSYS_H_ 1
++#include "c_util.h"
+ #include "transport_config.h"
+ #ifdef __cplusplus
+@@ -81,6 +82,7 @@ typedef struct {
+    not the caller is new enough to have supplied a certain parameter.
+ */
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_server_httpsys(
+       xmlrpc_env *                        const envP,
+@@ -92,4 +94,4 @@ xmlrpc_server_httpsys(
+ }
+ #endif /* __cplusplus */
+-#endif
+\ No newline at end of file
++#endif
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/sleep_int.h b/libs/xmlrpc-c/include/xmlrpc-c/sleep_int.h
+index be18e8f..369fd24 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/sleep_int.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/sleep_int.h
+@@ -1,7 +1,18 @@
+ #ifndef SLEEP_INT_H_INCLUDED
+ #define SLEEP_INT_H_INCLUDED
++#include "xmlrpc-c/c_util.h"
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_millisecond_sleep(unsigned int const milliseconds);
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/string_int.h b/libs/xmlrpc-c/include/xmlrpc-c/string_int.h
+index fa787cb..04ac8c7 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/string_int.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/string_int.h
+@@ -13,22 +13,37 @@
+ extern "C" {
+ #endif
+-extern const char * const xmlrpc_strsol;
++XMLRPC_DLLEXPORT
++bool
++xmlrpc_strnomem(const char * const string);
++XMLRPC_DLLEXPORT
++const char *
++xmlrpc_strnomemval(void);
++
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_vasprintf(const char ** const retvalP,
+                  const char *  const fmt,
+                  va_list             varargs);
+-void GNU_PRINTF_ATTR(2,3)
++XMLRPC_DLLEXPORT
++void XMLRPC_PRINTF_ATTR(2,3)
+ xmlrpc_asprintf(const char ** const retvalP, const char * const fmt, ...);
++XMLRPC_DLLEXPORT
+ const char *
+-xmlrpc_strdupnull(const char * const string);
++xmlrpc_strdupsol(const char * const string);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_strfree(const char * const string);
++XMLRPC_DLLEXPORT
++const char *
++xmlrpc_strdupnull(const char * const string);
++
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_strfreenull(const char * const string);
+@@ -46,6 +61,11 @@ xmlrpc_memeq(const void * const a,
+     return (memcmp(a, b, size) == 0);
+ }
++/* strcasecmp doesn't exist on some systems without _BSD_SOURCE, so
++   xmlrpc_strcaseeq() can't either.
++*/
++#ifdef _BSD_SOURCE
++
+ static __inline__ bool
+ xmlrpc_strcaseeq(const char * const a,
+                  const char * const b) {
+@@ -59,6 +79,7 @@ xmlrpc_strcaseeq(const char * const a,
+     #error "This platform has no known case-independent string compare fn"
+ #endif
+ }
++#endif
+ static __inline__ bool
+ xmlrpc_strneq(const char * const a,
+@@ -67,16 +88,42 @@ xmlrpc_strneq(const char * const a,
+     return (strncmp(a, b, len) == 0);
+ }
++XMLRPC_DLLEXPORT
+ const char * 
+ xmlrpc_makePrintable(const char * const input);
++XMLRPC_DLLEXPORT
+ const char *
+ xmlrpc_makePrintable_lp(const char * const input,
+                         size_t       const inputLength);
++XMLRPC_DLLEXPORT
+ const char *
+ xmlrpc_makePrintableChar(char const input);
++/*----------------------------------------------------------------*/
++/* Standard string functions with destination array size checking */
++/*----------------------------------------------------------------*/
++#define STRSCPY(A,B) \
++      (strncpy((A), (B), sizeof(A)), *((A)+sizeof(A)-1) = '\0')
++#define STRSCMP(A,B) \
++      (strncmp((A), (B), sizeof(A)))
++#define STRSCAT(A,B) \
++    (strncat((A), (B), sizeof(A)-strlen(A)), *((A)+sizeof(A)-1) = '\0')
++
++/* We could do this, but it works only in GNU C 
++#define SSPRINTF(TARGET, REST...) \
++  (snprintf(TARGET, sizeof(TARGET) , ## REST)) 
++
++Or this, but it works only in C99 compilers, which leaves out MSVC
++before 2005 and can't handle the zero variable argument case except
++by an MSVC extension:
++
++#define SSPRINTF(TARGET, ...) \
++  (snprintf(TARGET, sizeof(TARGET) , __VA_ARGS__)) 
++
++*/
++
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/time_int.h b/libs/xmlrpc-c/include/xmlrpc-c/time_int.h
+index 4db4537..705f2c8 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/time_int.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/time_int.h
+@@ -16,18 +16,22 @@
+   } xmlrpc_timespec;
+ #endif
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_gettimeofday(xmlrpc_timespec * const todP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_timegm(const struct tm  * const brokenTime,
+               time_t *           const timeValueP,
+               const char **      const errorP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_localtime(time_t      const datetime,
+                  struct tm * const tmP);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_gmtime(time_t      const datetime,
+               struct tm * const resultP);
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/timeout.hpp b/libs/xmlrpc-c/include/xmlrpc-c/timeout.hpp
+index ef347e5..1da4a2f 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/timeout.hpp
++++ b/libs/xmlrpc-c/include/xmlrpc-c/timeout.hpp
+@@ -1,13 +1,16 @@
+ #ifndef XMLRPC_TIMEOUT_H_INCLUDED
+ #define XMLRPC_TIMEOUT_H_INCLUDED
++#include <xmlrpc-c/c_util.h>
++
+ namespace xmlrpc_c {
+-struct timeout {
++struct XMLRPC_DLLEXPORT timeout {
+     timeout() : finite(false) {}
+-    timeout(unsigned int const duration) : duration(duration) {}
++    timeout(unsigned int const duration) :
++        finite(true), duration(duration) {}
+         // 'duration' is the timeout time in milliseconds
+     bool finite;
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/transport.h b/libs/xmlrpc-c/include/xmlrpc-c/transport.h
+index 13d901f..be53e18 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/transport.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/transport.h
+@@ -38,12 +38,17 @@ typedef void (*xmlrpc_transport_asynch_complete)(
+     xmlrpc_mem_block *        const responseXmlP,
+     xmlrpc_env                const env);
++typedef void (*xmlrpc_transport_progress)(
++    struct xmlrpc_call_info *   const callInfoP,
++    struct xmlrpc_progress_data const data);
++
+ typedef void (*xmlrpc_transport_send_request)(
+     xmlrpc_env *                     const envP, 
+     struct xmlrpc_client_transport * const clientTransportP,
+     const xmlrpc_server_info *       const serverP,
+     xmlrpc_mem_block *               const xmlP,
+     xmlrpc_transport_asynch_complete       complete,
++    xmlrpc_transport_progress              progress,
+     struct xmlrpc_call_info *        const callInfoP);
+ typedef void (*xmlrpc_transport_call)(
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/transport_int.h b/libs/xmlrpc-c/include/xmlrpc-c/transport_int.h
+deleted file mode 100644
+index 80b92ca..0000000
+--- a/libs/xmlrpc-c/include/xmlrpc-c/transport_int.h
++++ /dev/null
+@@ -1,42 +0,0 @@
+-/* Copyright information is at the end of the file */
+-#ifndef  XMLRPC_TRANSPORT_INT_H_INCLUDED
+-#define  XMLRPC_TRANSPORT_INT_H_INCLUDED
+-
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+-#include "pthreadx.h" /* For threading helpers. */
+-
+-/*=========================================================================
+-**  Transport Helper Functions and declarations.
+-**=========================================================================
+-*/
+-typedef struct _running_thread_info
+-{
+-    struct _running_thread_info * Next;
+-    struct _running_thread_info * Last;
+-
+-    pthread_t _thread;
+-} running_thread_info;
+-
+-
+-/* list of running Async callback functions. */
+-typedef struct _running_thread_list
+-{
+-    running_thread_info * AsyncThreadHead;
+-    running_thread_info * AsyncThreadTail;
+-} running_thread_list;
+-
+-/* MRB-WARNING: Only call when you have successfully
+-**     acquired the Lock/Unlock mutex! */
+-void register_asynch_thread (running_thread_list *list, pthread_t *thread);
+-
+-/* MRB-WARNING: Only call when you have successfully
+-**     acquired the Lock/Unlock mutex! */
+-void unregister_asynch_thread (running_thread_list *list, pthread_t *thread);
+-
+-
+-#ifdef __cplusplus
+-}
+-#endif
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/util.h b/libs/xmlrpc-c/include/xmlrpc-c/util.h
+index 2cad286..3a6404d 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/util.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/util.h
+@@ -4,7 +4,10 @@
+   This is the interface to the libxmlrpc_util library, which contains
+   utility routines that have nothing to do with XML-RPC.  The library
+-  exists because other Xmlrpc-c libraries use the utilities.
++  exists primarily because other Xmlrpc-c libraries use the utilities,
++  but the utilities are also documented for use by Xmlrpc-c users.
++  For use by Xmlrpc-c users, they are considered to be part of the
++  libxmlrpc library.  libxmlrpc_util is a prerequisite of libxmlrpc.
+   By Bryan Henderson, San Jose, CA 05.09.21.
+@@ -18,7 +21,7 @@
+ #include <stdarg.h>
+ #include <xmlrpc-c/config.h>  /* Defines XMLRPC_HAVE_WCHAR */
+-#include <xmlrpc-c/c_util.h>  /* for GNU_PRINTF_ATTR */
++#include <xmlrpc-c/c_util.h>  /* for XMLRPC_PRINTF_ATTR */
+ #if XMLRPC_HAVE_WCHAR
+ #include <wchar.h>
+@@ -28,7 +31,6 @@
+ extern "C" {
+ #endif
+-
+ /*=========================================================================
+ **  C struct size computations
+ **=======================================================================*/
+@@ -40,7 +42,7 @@ extern "C" {
+ */
+ #define _XMLRPC_STRUCT_MEMBER_OFFSET(TYPE, MBRNAME) \
+-  ((unsigned long)(char*)&((TYPE *)0)->MBRNAME)
++  ((size_t)(char*)&((TYPE *)0)->MBRNAME)
+ #define _XMLRPC_STRUCT_MEMBER_SIZE(TYPE, MBRNAME) \
+   sizeof(((TYPE *)0)->MBRNAME)
+ #define XMLRPC_STRUCTSIZE(TYPE, MBRNAME) \
+@@ -71,6 +73,7 @@ extern "C" {
+ #define XMLRPC_ASSERT(cond) while (0) {}
+ #endif
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_assertion_failed(const char * const fileName,
+                         int          const lineNumber);
+@@ -124,38 +127,44 @@ typedef struct _xmlrpc_env {
+ /* Initialize and destroy the contents of the provided xmlrpc_env object.
+ ** These functions will never fail. */
++XMLRPC_DLLEXPORT
+ void xmlrpc_env_init (xmlrpc_env* env);
++XMLRPC_DLLEXPORT
+ void xmlrpc_env_clean (xmlrpc_env* const env);
+ /* Fill out an xmlrpc_fault with the specified values, and set the
+ ** fault_occurred flag. This function will make a private copy of 'string',
+ ** so you retain responsibility for your copy. */
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_env_set_fault(xmlrpc_env * const env, 
+                      int          const faultCode, 
+                      const char * const faultDescription);
+ /* The same as the above, but using varargs */
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_set_fault_formatted_v(xmlrpc_env * const envP,
+                              int          const code,
+                              const char * const format,
+-                             va_list      const args);
++                             va_list            args);
+ /* The same as the above, but using a printf-style format string. */
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_env_set_fault_formatted(xmlrpc_env * const envP, 
+                                int          const code,
+                                const char * const format, 
+-                               ...) GNU_PRINTF_ATTR(3,4);
++                               ...) XMLRPC_PRINTF_ATTR(3,4);
+ /* This one infers XMLRPC_INTERNAL_ERROR and has a shorter name.
+    So a call takes up less source code space.
+ */
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_faultf(xmlrpc_env * const envP,
+               const char * const format,
+-              ...) GNU_PRINTF_ATTR(2,3);
++              ...) XMLRPC_PRINTF_ATTR(2,3);
+ /* A simple debugging assertion. */
+ #define XMLRPC_ASSERT_ENV_OK(envP) \
+@@ -223,32 +232,40 @@ typedef struct _xmlrpc_mem_block {
+ } xmlrpc_mem_block;
+ /* Allocate a new xmlrpc_mem_block. */
++XMLRPC_DLLEXPORT
+ xmlrpc_mem_block* xmlrpc_mem_block_new (xmlrpc_env* const env, size_t const size);
+ /* Destroy an existing xmlrpc_mem_block, and everything it contains. */
++XMLRPC_DLLEXPORT
+ void xmlrpc_mem_block_free (xmlrpc_mem_block* const block);
+ /* Initialize the contents of the provided xmlrpc_mem_block. */
++XMLRPC_DLLEXPORT
+ void xmlrpc_mem_block_init
+     (xmlrpc_env* const env, xmlrpc_mem_block* const block, size_t const size);
+ /* Deallocate the contents of the provided xmlrpc_mem_block, but not the
+ ** block itself. */
++XMLRPC_DLLEXPORT
+ void xmlrpc_mem_block_clean (xmlrpc_mem_block* const block);
+ /* Get the size and contents of the xmlrpc_mem_block. */
++XMLRPC_DLLEXPORT
+ size_t 
+ xmlrpc_mem_block_size(const xmlrpc_mem_block * const block);
++XMLRPC_DLLEXPORT
+ void * 
+ xmlrpc_mem_block_contents(const xmlrpc_mem_block * const block);
+ /* Resize an xmlrpc_mem_block, preserving as much of the contents as
+ ** possible. */
++XMLRPC_DLLEXPORT
+ void xmlrpc_mem_block_resize
+     (xmlrpc_env* const env, xmlrpc_mem_block* const block, size_t const size);
+ /* Append data to an existing xmlrpc_mem_block. */
++XMLRPC_DLLEXPORT
+ void xmlrpc_mem_block_append
+     (xmlrpc_env* const env, xmlrpc_mem_block* const block, const void * const data, size_t const len);
+@@ -295,12 +312,14 @@ void xmlrpc_mem_block_append
+ **  UTF-8 Encoding and Decoding
+ **=======================================================================*/
++XMLRPC_DLLEXPORT
+ void 
+ xmlrpc_validate_utf8(xmlrpc_env * const envP,
+                      const char * const utf8Data,
+                      size_t       const utf8Len);
+ /* Decode a UTF-8 string. */
++XMLRPC_DLLEXPORT
+ xmlrpc_mem_block *
+ xmlrpc_utf8_to_wcs(xmlrpc_env * const envP,
+                    const char * const utf8_data,
+@@ -309,15 +328,18 @@ xmlrpc_utf8_to_wcs(xmlrpc_env * const envP,
+ /* Encode a UTF-8 string. */
+ #if XMLRPC_HAVE_WCHAR
++XMLRPC_DLLEXPORT
+ xmlrpc_mem_block *
+ xmlrpc_wcs_to_utf8(xmlrpc_env *    const envP,
+                    const wchar_t * const wcsData,
+                    size_t          const wcsLen);
+ #endif
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_force_to_utf8(char * const buffer);
++XMLRPC_DLLEXPORT
+ void
+ xmlrpc_force_to_xml_chars(char * const buffer);
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/util_int.h b/libs/xmlrpc-c/include/xmlrpc-c/util_int.h
+index 8dbc11c..db5c5e9 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/util_int.h
++++ b/libs/xmlrpc-c/include/xmlrpc-c/util_int.h
+@@ -1,14 +1,19 @@
+ #ifndef XMLRPC_C_UTIL_INT_H_INCLUDED
+ #define XMLRPC_C_UTIL_INT_H_INCLUDED
++/* This file contains facilities for use by Xmlrpc-c code, but not intended
++   to be included in a user compilation.
++
++   Names in here might conflict with other names in a user's compilation
++   if included in a user compilation.
++
++   The facilities may change in future releases.
++*/
++
+ #include "util.h"
+-#ifndef MIN
+ #define MIN(a,b) ((a) < (b) ? (a) : (b))
+-#endif
+-#ifndef MAX
+ #define MAX(a,b) ((a) > (b) ? (a) : (b))
+-#endif
+ /* When we deallocate a pointer in a struct, we often replace it with
+ ** this and throw in a few assertions here and there. */
+diff --git a/libs/xmlrpc-c/include/xmlrpc-c/xml.hpp b/libs/xmlrpc-c/include/xmlrpc-c/xml.hpp
+index a77731f..9e6ca90 100644
+--- a/libs/xmlrpc-c/include/xmlrpc-c/xml.hpp
++++ b/libs/xmlrpc-c/include/xmlrpc-c/xml.hpp
+@@ -2,31 +2,53 @@
+ #define XML_HPP_INCLUDED
+ #include <string>
++#include <xmlrpc-c/c_util.h>
+ #include <xmlrpc-c/base.hpp>
+ namespace xmlrpc_c {
+ namespace xml {
++XMLRPC_DLLEXPORT
+ void
+ generateCall(std::string         const& methodName,
+              xmlrpc_c::paramList const& paramList,
+              std::string *       const  callXmlP);
+     
++XMLRPC_DLLEXPORT
+ void
+ generateCall(std::string         const& methodName,
+              xmlrpc_c::paramList const& paramList,
+              xmlrpc_dialect      const  dialect,
+              std::string *       const  callXmlP);
+     
++XMLRPC_DLLEXPORT
++void
++parseCall(std::string           const& callXml,
++          std::string *         const  methodNameP,
++          xmlrpc_c::paramList * const  paramListP);
++
++XMLRPC_DLLEXPORT
++void
++generateResponse(xmlrpc_c::rpcOutcome const& outcome,
++                 xmlrpc_dialect       const  dialect,
++                 std::string *        const  respXmlP);
++
++XMLRPC_DLLEXPORT
++void
++generateResponse(xmlrpc_c::rpcOutcome const& outcome,
++                 std::string *        const  respXmlP);
++
++XMLRPC_DLLEXPORT
+ void
+ parseSuccessfulResponse(std::string       const& responseXml,
+                         xmlrpc_c::value * const  resultP);
++XMLRPC_DLLEXPORT
+ void
+ parseResponse(std::string            const& responseXml,
+               xmlrpc_c::rpcOutcome * const  outcomeP);
+-
++XMLRPC_DLLEXPORT
+ void
+ trace(std::string const& label,
+       std::string const& xml);
+diff --git a/libs/xmlrpc-c/irix-common.make b/libs/xmlrpc-c/irix-common.make
+deleted file mode 100644
+index 9f4ac62..0000000
+--- a/libs/xmlrpc-c/irix-common.make
++++ /dev/null
+@@ -1,31 +0,0 @@
+-# -*-makefile-*-    <-- an Emacs control
+-
+-# See unix-common.make for an explanation of this file.  This file is
+-# analogous to unix-common.make, but is for an Irix system.
+-
+-SONAME = $(@:%.$(MAJ):%)
+-
+-SHLIB_CMD = $(CCLD) $(LDFLAGS_SHLIB) -o $@ $^ $(LADD)
+-
+-SHLIB_LE_TARGETS = $(call shliblefn, $(SHARED_LIBS_TO_BUILD))
+-
+-$(SHLIB_LE_TARGETS):%:%.$(MAJ)
+-      rm -f $@
+-      $(LN_S) $< $@
+-
+-
+-.PHONY: $(SHLIB_INSTALL_TARGETS)
+-.PHONY: install-shared-libraries
+-
+-SHLIB_INSTALL_TARGETS = $(SHARED_LIBS_TO_INSTALL:%=%/install)
+-
+-#SHLIB_INSTALL_TARGETS is like "libfoo/install libbar/install"
+-
+-install-shared-libraries: $(SHLIB_INSTALL_TARGETS)
+-
+-$(SHLIB_INSTALL_TARGETS):%/install:%.$(SHLIB_SUFFIX).$(MAJ)
+-# $< is a library file name, e.g. libfoo.so.3.1 .
+-      $(INSTALL_SHLIB) $< $(DESTDIR)$(LIBINST_DIR)/$<
+-      cd $(DESTDIR)$(LIBINST_DIR); \
+-        rm -f $< $(<:%.$(MAJ)=%); \
+-        $(LN_S) $< $(<:%.$(MAJ)=%)
+diff --git a/libs/xmlrpc-c/lib/abyss/change.log b/libs/xmlrpc-c/lib/abyss/change.log
+deleted file mode 100644
+index 2d32d1a..0000000
+--- a/libs/xmlrpc-c/lib/abyss/change.log
++++ /dev/null
+@@ -1,34 +0,0 @@
+-                     Change log for the ABYSS Web Server
+-                     -----------------------------------
+-
+-Version 0.3 (March 23,2000):
+-----------------------------
+-* Handles conditional GET requests (by date)
+-* Conforms to all the MUSTs of the RFC2616 (newer version of the HTTP/1.1 protocol draft)
+-* New configuration options (such as pidfile for UNIX systems...)
+-* Handles HEAD and OPTIONS methods
+-* Many bug fixes
+-* Tested on Sun-OS 5.7
+-* Second public release
+-
+-Version 0.2 beta (February 7,2000):
+------------------------------------
+-* Handles GET on static files
+-* Handles correctly range requests
+-* Conforms to 80% of the MUSTs of the RFC2068 (HTTP/1.1 protocol draft)
+-* Improved code portability (Win32 and UNIX platforms)
+-* Tested on Linux 2.2 and Win95/98
+-* First public release
+-
+-Version 0.1 (January 2000):
+----------------------------
+-* Completely rewritten in C
+-* Speed improvement
+-* New memory allocation scheme (using pools)
+-* Never released
+-
+-Version 0.0 (January 2000):
+----------------------------
+-* Initial version
+-* Written in C++
+-* Never released
+\ No newline at end of file
+diff --git a/libs/xmlrpc-c/lib/abyss/htdocs/index.htm b/libs/xmlrpc-c/lib/abyss/htdocs/index.htm
+deleted file mode 100644
+index f0369a5..0000000
+--- a/libs/xmlrpc-c/lib/abyss/htdocs/index.htm
++++ /dev/null
+@@ -1,21 +0,0 @@
+-<HTML>
+-<HEAD>
+-<TITLE>ABYSS is working !!!</TITLE>
+-</HEAD>
+-<BODY bgColor=#80a0f0 text=#000000>
+-<H1 align=center>Congratulations, ABYSS is working !!!</H1>
+-<BR>
+-<P>
+-<B>ABYSS</B> Web Server is working correctly on your system. You should now change this
+-page with yours.
+-<BR>
+-Please include in your web pages (at least the first), the <b><i>'Powered by ABYSS'</i></b>
+-banner to promote the use of <B>ABYSS</B>.
+-</P>
+-<hr>
+-<P>
+-<CENTER><FONT size=-1>
+-Copyright Â© 2000 <A href="mailto:mmoez@bigfoot.com">Moez Mahfoudh</A>. All rights reserved.
+-</FONT>
+-<BR><BR><A href="http://abyss.linuxave.net/"><IMG border=0 src="pwrabyss.gif"></A></center></P>
+-</BODY></HTML>
+diff --git a/libs/xmlrpc-c/lib/abyss/patch_notes.txt b/libs/xmlrpc-c/lib/abyss/patch_notes.txt
+deleted file mode 100644
+index 8ca4f77..0000000
+--- a/libs/xmlrpc-c/lib/abyss/patch_notes.txt
++++ /dev/null
+@@ -1,114 +0,0 @@
+-Notes about the Abyss Patch -- By: Rosimildo da Silva, Jan 31, 2001.
+--------------------------------------------------------------------
+-
+-This file contains some notes about the changes made to the
+-Abyss source tree. The changes were required to fix a few 
+-bugs, and port the base code to compile under CygWin,
+-and Borland C++ free compiler. The free compiler for 
+-Win32 from Borland can be downloaded from here:
+-
+-  http://www.borland.com/bcppbuilder/freecompiler/
+-
+-
+-What is new:
+-
+-    + Package should compile out of the box under CygWin
+-
+-    + Added makefiles and changes to use Borland C++ compiler
+-under WIN32 as well as VC++ 6.0
+-
+-    + Fix Abyss.dsp to use the proper thread safe libraries,
+-and updated to VC++ 6.0
+-
+-    + Fixed thread leaks ( handles )
+-
+-
+-
+-Applying the patch to Abyss-0.3.tar.gz
+---------------------------------------
+-
+-   + get archive from here:
+-      http://abyss.linuxave.net/abyss-0.3.tar.gz
+-WARNING: this site seems to be dead for the last two months.
+-
+-   + cd /work ( any dir )
+-     tar xzvf abyss-0.3.tar.gz
+-       cd abyss
+-       patch -p1 <abyss-0.3-20010131.patch
+-
+-
+-What to do next:
+-
+-
+-   a) Cygwin
+-
+-      cd abyss/src
+-      make
+-       
+-
+-   b) Borland C++
+-
+-      cd abyss\src
+-      set BCC_PATH=<location where your compiler is located>
+-      ( BCC_PATH=d:\bcb5 )
+-
+-      make -f makefile.bcc32
+-
+-   c) VC++ 6.0                        
+-      cd abyss\src
+-      msdev Abyss.dsp
+-      ( Or just open the workspace with Visual Studio, and you know
+-      the drill ).
+-NOTE: Under Cygwin, after I apply the patch, Visual Studio was unable to
+-recognize the workspace. ???
+-
+-
+-List of changes done to the ABYSS http server: ( ChangesLog )
+-----------------------------------------------
+-
+- + changed _WIN32 to ABYSS_WIN32. THis solve the problem that the
+-macro _WIN32 is defined under CygWin. CygWin has a unix like
+-api ( _UNIX ), so the macro _UNIX should be defined then.
+-Under CygWin we would have _UNIX and _WIN32 defined at the same
+-time.
+-
+-
+- + Theead API -- Added two extra functions: ThreadExit() and
+-ThreadClose(). These allows the resources of the threads to be
+-released when the thread has complete its duty serving the
+-request.
+-
+- + Added extra flag to TConn structure to make possible the
+-management of the worker threads by the server.
+-
+-
+- + Changed allocation of TConn array from stack to heap. This
+-would cause problems on certain system ( specially embedded systems ),
+-where the stack sizes arr not that large.
+-
+- + Changed ServerRun to free thread resources when the connection
+-for the thread is closed.
+-
+- + Changed main.c to make the sginal registration conforming with
+-the usage of the _FORK option.
+-
+- + Change ThreadCreate to be able to specify the "stack size" of the
+-worker's threads ( pthread ). Defined lable for it.
+-
+-
+- + Added flag _NO_USERS to disable check for users and groups.
+-This is useful for embedded systems where no users are available.
+-
+- + Updated VC++ workspace to version 6.0
+-
+-
+- + Changed the creation of the thread under WIN32 to use a RTL
+-function ( _beginthreadex ), as recommend by MS, instead of using 
+-the naked WIN32 API.
+-
+--- 
+-Rosimildo da Silva            rdasilva@connectel.com 
+-ConnectTel, Inc.              Austin, TX -- USA      
+-Phone : 512-338-1111          Fax : 512-918-0449     
+-Company Page:  http://www.connecttel.com             
+-Home Page:     http://members.nbci.com/rosimildo/
+diff --git a/libs/xmlrpc-c/lib/abyss/readme.txt b/libs/xmlrpc-c/lib/abyss/readme.txt
+deleted file mode 100644
+index c42ca1f..0000000
+--- a/libs/xmlrpc-c/lib/abyss/readme.txt
++++ /dev/null
+@@ -1,160 +0,0 @@
+-
+-
+-                              ABYSS Web Server
+-                             ------------------
+-
+-
+-About:
+-------
+-
+-ABYSS aims to be a fully HTTP/1.1 compliant web server. Its main design
+-goals are speed, low resource usage and portability. ABYSS works on most
+-UNIX based systems and on Win32 systems (Win95/98/2000/NT).
+-
+-Copyright:
+-----------
+-
+-Copyright (C) 2000 Moez Mahfoudh. All rights reserved.
+-
+-Status:
+--------
+-
+-ABYSS is still in development stage. Actual version is 0.3. Many features
+-are not implemented yet but the server core works well and seems to be
+-stable. It is fully reliable for serving static files on medium load sites.
+-In fact, primary benchmarks show that ABYSS is 70% as fast as Apache when
+-using the fork system. This rate jumps to 130% when using threads.
+-On UNIX platforms, some problems occurred because of the use of the Pthreads
+-library. This will be corrected in the future versions. That's why only the
+-fork system is usable under UNIX. This lowers performances but guarantees
+-stability.
+-CGI/1.1 support is still absent from the current version but will be
+-included in the near future.
+-
+-Change Log:
+------------
+-
+-   * Version 0.3 (March 23,2000):
+-        o Handles conditional GET requests (by date)
+-        o Conforms to all the MUSTs of the RFC2616 (newer version of the
+-          HTTP/1.1 protocol draft)
+-        o New configuration options (such as pidfile for UNIX systems...)
+-        o Handles HEAD and OPTIONS methods
+-        o Many bug fixes
+-        o Tested on Sun-OS 5.7
+-        o Second public release
+-
+-   * Version 0.2 beta (February 7,2000):
+-        o Handles GET on static files
+-        o Handles correctly range requests
+-        o Conforms to 80% of the MUSTs of the RFC2068 (HTTP/1.1 protocol
+-          draft)
+-        o Improved code portability (Win32 and UNIX platforms)
+-        o Tested on Linux 2.2 and Win95/98
+-        o First public release
+-
+-   * Version 0.1 (January 2000):
+-        o Completely rewritten in C
+-        o Speed improvement
+-        o New memory allocation scheme (using pools)
+-        o Never released
+-
+-   * Version 0.0 (January 2000):
+-        o Initial version
+-        o Written in C++
+-        o Never released
+-
+-Downloading:
+-------------
+-
+-   * Version 0.3 (current version):
+-        o UNIX package (source) abyss-0.3.tar.gz.
+-        o Win32 package is not available but you can extract source files
+-          from the UNIX package and compile them on Windows without any
+-          modification. (Sorry for this inconvenience: I have no Windows
+-          machine now to compile the program and to test it. If someone can
+-          do that, please email me the zipped package and I'll add it here).
+-
+-   * Version 0.2 beta:
+-        o UNIX package (source) abyss-0.2b.tar.gz.
+-        o Win32 package (source+binary) abyss-0.2b.zip.
+-
+-Installation:
+--------------
+-
+-   * For UNIX systems:
+-        o Untar/Ungzip the distribution package with a command like tar xvfz
+-          abyss-x.y.tar.gz
+-        o Edit the Makefile src/Makefile to meet your system requirements.
+-        o Go to directory src and execute make.
+-        o The server binary is generated and stored in the bin directory.
+-        o Edit the conf/abyss.conf to reflect your system configuration (At
+-          least change the paths).
+-        o Goto to the bin directory and start the server by typing ./abyss
+-          -c ../conf/abyss.conf
+-
+-   * For Win32 systems:
+-        o Unzip the distribution package.
+-        o An executable file is already present in the bin directory.
+-        o If you wish to recompile the server, open the src/abyss.dsw file
+-          with Microsoft Visual C++ 5.0 or higher and rebuild the project.
+-        o Edit the conf/abyss.conf to reflect your system configuration (At
+-          least change the paths).
+-        o Goto to the bin directory and start the server by typing ./abyss
+-          -c ../conf/abyss.conf
+-
+-Configuration:
+---------------
+-
+-Edit the conf/abyss.conf file and change the values of the available
+-options.
+-
+-Bugs:
+------
+-
+-Please email bug reports to mmoez@bigfoot.com
+-
+-To do:
+-------
+-
+-   * CGI/1.1 support
+-   * Web based configuration/administration
+-   * Speed improvement
+-   * File caching system
+-   * Throttling
+-   * PUT method handling
+-   * ...
+-
+-License:
+---------
+-
+-ABYSS Web Server is licensed under a modified BSD type license:
+-
+-     Copyright (C) 2000 Moez Mahfoudh. All rights reserved.
+-
+-     Redistribution and use in source and binary forms, with or without
+-     modification, are permitted provided that the following conditions
+-     are met:
+-
+-        * Redistributions of source code must retain the above
+-          copyright notice, this list of conditions and the following
+-          disclaimer.
+-        * Redistributions in binary form must reproduce the above
+-          copyright notice, this list of conditions and the following
+-          disclaimer in the documentation and/or other materials
+-          provided with the distribution.
+-        * The name of the author may not be used to endorse or promote
+-          products derived from this software without specific prior
+-          written permission.
+-
+-     THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+-     OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+-     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-     ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+-     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+-     DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+-     GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+-     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+-     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+-     NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+-     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+diff --git a/libs/xmlrpc-c/lib/abyss/src/Abyss.dsp b/libs/xmlrpc-c/lib/abyss/src/Abyss.dsp
+deleted file mode 100644
+index c989392..0000000
+--- a/libs/xmlrpc-c/lib/abyss/src/Abyss.dsp
++++ /dev/null
+@@ -1,136 +0,0 @@
+-# Microsoft Developer Studio Project File - Name="Abyss" - Package Owner=<4>\r
+-# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
+-# ** DO NOT EDIT **\r
+-\r
+-# TARGTYPE "Win32 (x86) Console Application" 0x0103\r
+-\r
+-CFG=Abyss - Win32 Debug\r
+-!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
+-!MESSAGE use the Export Makefile command and run\r
+-!MESSAGE \r
+-!MESSAGE NMAKE /f "Abyss.mak".\r
+-!MESSAGE \r
+-!MESSAGE You can specify a configuration when running NMAKE\r
+-!MESSAGE by defining the macro CFG on the command line. For example:\r
+-!MESSAGE \r
+-!MESSAGE NMAKE /f "Abyss.mak" CFG="Abyss - Win32 Debug"\r
+-!MESSAGE \r
+-!MESSAGE Possible choices for configuration are:\r
+-!MESSAGE \r
+-!MESSAGE "Abyss - Win32 Release" (based on "Win32 (x86) Console Application")\r
+-!MESSAGE "Abyss - Win32 Debug" (based on "Win32 (x86) Console Application")\r
+-!MESSAGE \r
+-\r
+-# Begin Project\r
+-# PROP AllowPerConfigDependencies 0\r
+-CPP=cl.exe\r
+-RSC=rc.exe\r
+-\r
+-!IF  "$(CFG)" == "Abyss - Win32 Release"\r
+-\r
+-# PROP BASE Use_MFC 0\r
+-# PROP BASE Use_Debug_Libraries 0\r
+-# PROP BASE Output_Dir "Release"\r
+-# PROP BASE Intermediate_Dir "Release"\r
+-# PROP BASE Target_Dir ""\r
+-# PROP Use_MFC 0\r
+-# PROP Use_Debug_Libraries 0\r
+-# PROP Output_Dir "../bin"\r
+-# PROP Intermediate_Dir "objs"\r
+-# PROP Ignore_Export_Lib 0\r
+-# PROP Target_Dir ""\r
+-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c\r
+-# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../../" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "ABYSS_WIN32" /YX /FD /c\r
+-# ADD BASE RSC /l 0x40c /d "NDEBUG"\r
+-# ADD RSC /l 0x40c /d "NDEBUG"\r
+-BSC32=bscmake.exe\r
+-# ADD BASE BSC32 /nologo\r
+-# ADD BSC32 /nologo\r
+-LINK32=link.exe\r
+-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386\r
+-# ADD LINK32 kernel32.lib user32.lib wsock32.lib /nologo /subsystem:console /machine:I386\r
+-\r
+-!ELSEIF  "$(CFG)" == "Abyss - Win32 Debug"\r
+-\r
+-# PROP BASE Use_MFC 0\r
+-# PROP BASE Use_Debug_Libraries 1\r
+-# PROP BASE Output_Dir "Debug"\r
+-# PROP BASE Intermediate_Dir "Debug"\r
+-# PROP BASE Target_Dir ""\r
+-# PROP Use_MFC 0\r
+-# PROP Use_Debug_Libraries 1\r
+-# PROP Output_Dir "../bin"\r
+-# PROP Intermediate_Dir "objs"\r
+-# PROP Ignore_Export_Lib 0\r
+-# PROP Target_Dir ""\r
+-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c\r
+-# ADD CPP /nologo /MT /W3 /Gm /GX /ZI /Od /I "../../../" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "ABYSS_WIN32" /YX /FD /c\r
+-# ADD BASE RSC /l 0x40c /d "_DEBUG"\r
+-# ADD RSC /l 0x40c /d "_DEBUG"\r
+-BSC32=bscmake.exe\r
+-# ADD BASE BSC32 /nologo\r
+-# ADD BSC32 /nologo\r
+-LINK32=link.exe\r
+-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept\r
+-# ADD LINK32 kernel32.lib user32.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept\r
+-\r
+-!ENDIF \r
+-\r
+-# Begin Target\r
+-\r
+-# Name "Abyss - Win32 Release"\r
+-# Name "Abyss - Win32 Debug"\r
+-# Begin Group "Source Files"\r
+-\r
+-# PROP Default_Filter "c"\r
+-# Begin Source File\r
+-\r
+-SOURCE=.\conf.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=.\conn.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=.\data.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=.\file.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=.\http.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=.\main.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=.\server.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=.\socket.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=.\thread.c\r
+-# End Source File\r
+-# Begin Source File\r
+-\r
+-SOURCE=.\trace.c\r
+-# End Source File\r
+-# End Group\r
+-# Begin Group "Header Files"\r
+-\r
+-# PROP Default_Filter "h"\r
+-# Begin Source File\r
+-\r
+-SOURCE=.\abyss.h\r
+-# End Source File\r
+-# End Group\r
+-# End Target\r
+-# End Project\r
+diff --git a/libs/xmlrpc-c/lib/abyss/src/Abyss.dsw b/libs/xmlrpc-c/lib/abyss/src/Abyss.dsw
+deleted file mode 100644
+index 4e27c99..0000000
+--- a/libs/xmlrpc-c/lib/abyss/src/Abyss.dsw
++++ /dev/null
+@@ -1,29 +0,0 @@
+-Microsoft Developer Studio Workspace File, Format Version 6.00
+-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+-
+-###############################################################################
+-
+-Project: "Abyss"=.\Abyss.dsp - Package Owner=<4>
+-
+-Package=<5>
+-{{{
+-}}}
+-
+-Package=<4>
+-{{{
+-}}}
+-
+-###############################################################################
+-
+-Global:
+-
+-Package=<5>
+-{{{
+-}}}
+-
+-Package=<3>
+-{{{
+-}}}
+-
+-###############################################################################
+-
+diff --git a/libs/xmlrpc-c/lib/abyss/src/Makefile b/libs/xmlrpc-c/lib/abyss/src/Makefile
+index fc57122..b3f39ef 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/Makefile
++++ b/libs/xmlrpc-c/lib/abyss/src/Makefile
+@@ -50,7 +50,7 @@ MAJ=3
+ include $(SRCDIR)/common.mk
+-CFLAGS = $(CFLAGS_COMMON) -D_UNIX $(CFLAGS_PERSONAL) $(CADD)
++CFLAGS_LOCAL = -D_UNIX
+ INCLUDES = -Iblddir -Isrcdir -Isrcdir/include -Isrcdir/lib/util/include
+@@ -59,27 +59,23 @@ ABYSS_SHLIB = $(call shlibfn,libxmlrpc_abyss)
+ ABYSS_SHLIBLE = $(call shliblefn,libxmlrpc_abyss)
+ #ABYSS_SHLIBLE is e.g. libxmlrpc_abyss.so
+-# LIBDEP is the shared libraries on which libxmlrpc_abyss depends.
+-# The runtime loader should load these libraries when it loads libxmlrpc_abyss.
+-
+-LIBDEP = $(LIBXMLRPC_UTIL)
+-
+-ifneq ($(SHARED_LIB_TYPE),NONE)
+-  TARGET_SHARED_LIBS := $(ABYSS_SHLIB) $(ABYSS_SHLIBLE)
+-  endif
+-
+ # This 'common.mk' dependency makes sure the symlinks get built before
+ # this make file is used for anything.
+ $(SRCDIR)/common.mk: srcdir blddir
+ .PHONY: all
+-all: libxmlrpc_abyss.a $(TARGET_SHARED_LIBS) $(TARGET_SHARED_LE_LIBS)
++all: libxmlrpc_abyss.a $(TARGET_SHARED_LIBRARIES) $(TARGET_SHARED_LE_LIBS)
+-# Rule for this is in common.mk, courtesy of TARGET_SHARED_LIBRARIES:
+-$(ABYSS_SHLIB): $(TARGET_MODS:%=%.osh) $(LIBDEP)
+-$(ABYSS_SHLIB): LIBOBJECTS = $(TARGET_MODS:%=%.osh) $(LIBDEP)
++# Rule for this is in common.mk, courtesy of TARGET_LIBRARY_NAMES
++$(ABYSS_SHLIB): $(TARGET_MODS:%=%.osh) \
++      $(LIBXMLRPC_UTIL)
++$(ABYSS_SHLIB): LIBOBJECTS = $(TARGET_MODS:%=%.osh)
++$(ABYSS_SHLIB): LIBDEP = -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util
++ifeq ($(ENABLE_ABYSS_THREADS),yes)
++  $(ABYSS_SHLIB):  LIBDEP += -lpthread
++endif
+ # Rule for this is in common.mk, courtesy of TARGET_STATIC_LIBRARIES:
+@@ -94,7 +90,7 @@ libxmlrpc_abyss.a: LIBOBJECTS = $(TARGET_MODS:%=%.o)
+ # Abyss library are in common.mk, courtesy of TARGET_MODS.
+-# Need this dependency for those who don't use Makefile.depend.
++# Need this dependency for those who don't use depend.mk.
+ # Without it, version.h doesn't get created.
+ response.o response.osh handler.o handler.osh: version.h
+@@ -116,4 +112,4 @@ install: install-common
+ .PHONY: dep
+ dep: dep-common
+-include Makefile.depend
++include depend.mk
+diff --git a/libs/xmlrpc-c/lib/abyss/src/channel.c b/libs/xmlrpc-c/lib/abyss/src/channel.c
+index af81c62..5044e23 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/channel.c
++++ b/libs/xmlrpc-c/lib/abyss/src/channel.c
+@@ -13,6 +13,7 @@
+ #include <stdlib.h>
+ #include "bool.h"
++#include "int.h"
+ #include "mallocvar.h"
+ #include "xmlrpc-c/util_int.h"
+ #include "xmlrpc-c/abyss.h"
+@@ -83,7 +84,7 @@ ChannelTerm(void) {
+    functions that are particular to an implementation.
+ */
+-static uint const channelSignature = 0x06060B;
++static unsigned int const channelSignature = 0x06060B;
+ void
+ ChannelCreate(const struct TChannelVtbl * const vtblP,
+diff --git a/libs/xmlrpc-c/lib/abyss/src/channel.h b/libs/xmlrpc-c/lib/abyss/src/channel.h
+index c5924bc..6e5ae7e 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/channel.h
++++ b/libs/xmlrpc-c/lib/abyss/src/channel.h
+@@ -60,7 +60,7 @@ struct TChannelVtbl {
+ };
+ struct _TChannel {
+-    uint                signature;
++    unsigned int        signature;
+         /* With both background and foreground use of sockets, and
+            background being both fork and pthread, it is very easy to
+            screw up socket lifetime and try to destroy twice.  We use
+diff --git a/libs/xmlrpc-c/lib/abyss/src/chanswitch.c b/libs/xmlrpc-c/lib/abyss/src/chanswitch.c
+index b89e6de..c39e4c0 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/chanswitch.c
++++ b/libs/xmlrpc-c/lib/abyss/src/chanswitch.c
+@@ -11,6 +11,7 @@
+ #include <stdlib.h>
+ #include "bool.h"
++#include "int.h"
+ #include "mallocvar.h"
+ #include "xmlrpc-c/util_int.h"
+ #include "xmlrpc-c/abyss.h"
+@@ -81,7 +82,7 @@ ChanSwitchTerm(void) {
+    functions that are particular to an implementation.
+ */
+-static uint const switchSignature = 0x06060A;
++static unsigned int const switchSignature = 0x06060A;
+ void
+ ChanSwitchCreate(const struct TChanSwitchVtbl * const vtblP,
+diff --git a/libs/xmlrpc-c/lib/abyss/src/chanswitch.h b/libs/xmlrpc-c/lib/abyss/src/chanswitch.h
+index 4ff7949..c216f95 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/chanswitch.h
++++ b/libs/xmlrpc-c/lib/abyss/src/chanswitch.h
+@@ -36,7 +36,7 @@ struct TChanSwitchVtbl {
+ };
+ struct _TChanSwitch {
+-    uint                   signature;
++    unsigned int           signature;
+         /* With both background and foreground use of switches, and
+            background being both fork and pthread, it is very easy to
+            screw up switch lifetime and try to destroy twice.  We use
+diff --git a/libs/xmlrpc-c/lib/abyss/src/conf.c b/libs/xmlrpc-c/lib/abyss/src/conf.c
+index 982615f..e0feff9 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/conf.c
++++ b/libs/xmlrpc-c/lib/abyss/src/conf.c
+@@ -32,6 +32,9 @@
+ **
+ ******************************************************************************/
++#define _XOPEN_SOURCE 600   /* For strdup() */
++#define _BSD_SOURCE  /* For xmlrpc_strcaseeq */
++
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -96,10 +99,10 @@ ConfReadLine(TFile *  const fileP,
+             if (c == CR || c == LF)
+                 break;
+-    *buffer = '\0';
++    *z = '\0';
+     /* Discard comments */
+-    p = strchr(z, '#');
++    p = strchr(buffer, '#');
+     if (p)
+         *p = '\0';
+diff --git a/libs/xmlrpc-c/lib/abyss/src/conn.c b/libs/xmlrpc-c/lib/abyss/src/conn.c
+index f76cc22..e6cd0b3 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/conn.c
++++ b/libs/xmlrpc-c/lib/abyss/src/conn.c
+@@ -31,6 +31,8 @@ connJob(void * const userHandle) {
+ /*----------------------------------------------------------------------------
+    This is the root function for a thread that processes a connection
+    (performs HTTP transactions).
++
++   We never return.  We ultimately exit the thread.
+ -----------------------------------------------------------------------------*/
+     TConn * const connectionP = userHandle;
+@@ -44,11 +46,21 @@ connJob(void * const userHandle) {
+            after we exit.
+         */
+-    //ThreadExit(0);
++
++    /* Note that ThreadExit() runs a cleanup function, which in our
++       case is connDone().
++    */
++    ThreadExit(connectionP->threadP, 0);
+ }
++/* This is the maximum amount of stack that 'connJob' itself uses --
++   does not count what user's connection job function uses.
++*/
++#define CONNJOB_STACK 1024
++
++
+ static void
+ connDone(TConn * const connectionP) {
+@@ -79,6 +91,7 @@ static void
+ makeThread(TConn *             const connectionP,
+            enum abyss_foreback const foregroundBackground,
+            bool                const useSigchld,
++           size_t              const jobStackSize,
+            const char **       const errorP) {
+            
+     switch (foregroundBackground) {
+@@ -91,6 +104,7 @@ makeThread(TConn *             const connectionP,
+         connectionP->hasOwnThread = TRUE;
+         ThreadCreate(&connectionP->threadP, connectionP,
+                      &connJob, &threadDone, useSigchld,
++                     CONNJOB_STACK + jobStackSize,
+                      &error);
+         if (error) {
+             xmlrpc_asprintf(errorP, "Unable to create thread to "
+@@ -110,6 +124,7 @@ ConnCreate(TConn **            const connectionPP,
+            TChannel *          const channelP,
+            void *              const channelInfoP,
+            TThreadProc *       const job,
++           size_t              const jobStackSize,
+            TThreadDoneFn *     const done,
+            enum abyss_foreback const foregroundBackground,
+            bool                const useSigchld,
+@@ -150,7 +165,7 @@ ConnCreate(TConn **            const connectionPP,
+         connectionP->server       = serverP;
+         connectionP->channelP     = channelP;
+         connectionP->channelInfoP = channelInfoP;
+-        connectionP->buffer[0]    = '\0';
++        connectionP->buffer.b[0]  = '\0';
+         connectionP->buffersize   = 0;
+         connectionP->bufferpos    = 0;
+         connectionP->finished     = FALSE;
+@@ -160,7 +175,8 @@ ConnCreate(TConn **            const connectionPP,
+         connectionP->outbytes     = 0;
+         connectionP->trace        = getenv("ABYSS_TRACE_CONN");
+-        makeThread(connectionP, foregroundBackground, useSigchld, errorP);
++        makeThread(connectionP, foregroundBackground, useSigchld,
++                   jobStackSize, errorP);
+     }
+     *connectionPP = connectionP;
+ }
+@@ -185,6 +201,7 @@ ConnProcess(TConn * const connectionP) {
+         /* There's a background thread to handle this connection.  Set
+            it running.
+         */
++        assert(connectionP->threadP);
+         retval = ThreadRun(connectionP->threadP);
+     } else {
+         /* No background thread.  We just handle it here while Caller waits. */
+@@ -199,9 +216,11 @@ ConnProcess(TConn * const connectionP) {
+ void
+ ConnWaitAndRelease(TConn * const connectionP) {
+-    if (connectionP->hasOwnThread)
++
++    if (connectionP->hasOwnThread) {
++        assert(connectionP->threadP);
+         ThreadWaitAndRelease(connectionP->threadP);
+-    
++    }
+     free(connectionP);
+ }
+@@ -220,20 +239,31 @@ ConnReadInit(TConn * const connectionP) {
+     if (connectionP->buffersize > connectionP->bufferpos) {
+         connectionP->buffersize -= connectionP->bufferpos;
+-        memmove(connectionP->buffer,
+-                connectionP->buffer + connectionP->bufferpos,
++        memmove(connectionP->buffer.b,
++                connectionP->buffer.b + connectionP->bufferpos,
+                 connectionP->buffersize);
+         connectionP->bufferpos = 0;
+     } else
+         connectionP->buffersize = connectionP->bufferpos = 0;
+-    connectionP->buffer[connectionP->buffersize] = '\0';
++    connectionP->buffer.b[connectionP->buffersize] = '\0';
+     connectionP->inbytes = connectionP->outbytes = 0;
+ }
++static void
++traceReadTimeout(TConn *  const connectionP,
++                 uint32_t const timeout) {
++
++    if (connectionP->trace)
++        fprintf(stderr, "TIMED OUT waiting over %u seconds "
++                "for data from client.\n", timeout);
++}
++
++
++
+ static size_t
+ nextLineSize(const char * const string,
+              size_t       const startPos,
+@@ -261,9 +291,11 @@ nextLineSize(const char * const string,
+ static void
+-traceBuffer(const char * const label,
+-            const char * const buffer,
+-            unsigned int const size) {
++traceBuffer(const char *          const label,
++            const unsigned char * const buffer,
++            unsigned int          const size) {
++
++    const char * const buffer_t = (const char *)buffer;
+     size_t cursor;  /* Index into buffer[] */
+@@ -272,9 +304,9 @@ traceBuffer(const char * const label,
+     for (cursor = 0; cursor < size; ) {
+         /* Print one line of buffer */
+-        size_t const lineSize = nextLineSize(buffer, cursor, size);
++        size_t const lineSize = nextLineSize(buffer_t, cursor, size);
+         const char * const printableLine =
+-            xmlrpc_makePrintable_lp(&buffer[cursor], lineSize);
++            xmlrpc_makePrintable_lp(&buffer_t[cursor], lineSize);
+         
+         fprintf(stderr, "%s\n", printableLine);
+@@ -288,12 +320,22 @@ traceBuffer(const char * const label,
+ static void
++traceBufferText(const char * const label,
++                const char * const buffer,
++                unsigned int const size) {
++
++    traceBuffer(label, (const unsigned char *)buffer, size);
++}
++
++
++
++static void
+ traceChannelRead(TConn *      const connectionP,
+                  unsigned int const size) {
+     if (connectionP->trace)
+         traceBuffer("READ FROM CHANNEL",
+-                    connectionP->buffer + connectionP->buffersize, size);
++                    connectionP->buffer.b + connectionP->buffersize, size);
+ }
+@@ -307,7 +349,7 @@ traceChannelWrite(TConn *      const connectionP,
+     if (connectionP->trace) {
+         const char * const label =
+             failed ? "FAILED TO WRITE TO CHANNEL" : "WROTE TO CHANNEL";
+-        traceBuffer(label, buffer, size);
++        traceBufferText(label, buffer, size);
+     }
+ }
+@@ -321,71 +363,136 @@ bufferSpace(TConn * const connectionP) {
+                     
+-bool
+-ConnRead(TConn *  const connectionP,
+-         uint32_t const timeout) {
++static void
++readFromChannel(TConn *       const connectionP,
++                bool *        const eofP,
++                const char ** const errorP) {
+ /*----------------------------------------------------------------------------
+-   Read some stuff on connection *connectionP from the channel.
+-
+-   Don't wait more than 'timeout' seconds for data to arrive.  Fail if
+-   nothing arrives within that time.
++   Read some data from the channel of Connection *connectionP.
+-   'timeout' must be before the end of time.
++   Iff there is none available to read, return *eofP == true.
+ -----------------------------------------------------------------------------*/
+-    time_t const deadline = time(NULL) + timeout;
++    uint32_t bytesRead;
++    bool readError;
+-    bool cantGetData;
+-    bool gotData;
++    ChannelRead(connectionP->channelP,
++                connectionP->buffer.b + connectionP->buffersize,
++                bufferSpace(connectionP) - 1,
++                &bytesRead, &readError);
+-    cantGetData = FALSE;
+-    gotData = FALSE;
+-    
+-    while (!gotData && !cantGetData) {
+-        int const timeLeft = (int)(deadline - time(NULL));
++    if (readError)
++        xmlrpc_asprintf(errorP, "Error reading from channel");
++    else {
++        *errorP = NULL;
++        if (bytesRead > 0) {
++            *eofP = FALSE;
++            traceChannelRead(connectionP, bytesRead);
++            connectionP->inbytes += bytesRead;
++            connectionP->buffersize += bytesRead;
++            connectionP->buffer.t[connectionP->buffersize] = '\0';
++        } else
++            *eofP = TRUE;
++    }
++}
+-        if (timeLeft <= 0)
+-            cantGetData = TRUE;
+-        else {
+-            bool const waitForRead  = TRUE;
+-            bool const waitForWrite = FALSE;
+-            
+-            bool readyForRead;
+-            bool failed;
++
++
++static void
++dealWithReadTimeout(bool *        const timedOutP,
++                    bool          const timedOut,
++                    uint32_t      const timeout,
++                    const char ** const errorP) {
++
++    if (timedOutP)
++        *timedOutP = timedOut;
++    else {
++        if (timedOut)
++            xmlrpc_asprintf(errorP, "Read from Abyss client "
++                            "connection timed out after %u seconds "
++                            "or was interrupted",
++                            timeout);
++    }
++}
++
++
++
++static void
++dealWithReadEof(bool *        const eofP,
++                bool          const eof,
++                const char ** const errorP) {
++
++    if (eofP)
++        *eofP = eof;
++    else {
++        if (eof)
++            xmlrpc_asprintf(errorP, "Read from Abyss client "
++                            "connection failed because client closed the "
++                            "connection");
++    }
++}
++
++
++
++void
++ConnRead(TConn *       const connectionP,
++         uint32_t      const timeout,
++         bool *        const eofP,
++         bool *        const timedOutP,
++         const char ** const errorP) {
++/*----------------------------------------------------------------------------
++   Read some stuff on connection *connectionP from the channel.  Read it into
++   the connection's buffer.
++
++   Don't wait more than 'timeout' seconds for data to arrive.  If no data has
++   arrived by then and 'timedOutP' is null, fail.  If 'timedOut' is non-null,
++   return as *timedOutP whether 'timeout' seconds passed without any data
++   arriving.
++
++   Also, stop waiting upon any interruption and treat it the same as a
++   timeout.  An interruption is either a signal received (and caught) at
++   an appropriate time or a ChannelInterrupt() call before or during the
++   wait.
++
++   If 'eofP' is non-null, return *eofP == true, without reading anything, iff
++   there will no more data forthcoming on the connection because client has
++   closed the connection.  If 'eofP' is null, fail in that case.
++-----------------------------------------------------------------------------*/
++    uint32_t const timeoutMs = timeout * 1000;
++
++    if (timeoutMs < timeout)
++        /* Arithmetic overflow */
++        xmlrpc_asprintf(errorP, "Timeout value is too large");
++    else {
++        bool const waitForRead  = TRUE;
++        bool const waitForWrite = FALSE;
++
++        bool readyForRead;
++        bool failed;
+             
+-            ChannelWait(connectionP->channelP, waitForRead, waitForWrite,
+-                        timeLeft * 1000, &readyForRead, NULL, &failed);
++        ChannelWait(connectionP->channelP, waitForRead, waitForWrite,
++                    timeoutMs, &readyForRead, NULL, &failed);
+             
+-            if (failed)
+-                cantGetData = TRUE;
+-            else {
+-                uint32_t bytesRead;
+-                bool readFailed;
+-
+-                ChannelRead(connectionP->channelP,
+-                            connectionP->buffer + connectionP->buffersize,
+-                            bufferSpace(connectionP) - 1,
+-                            &bytesRead, &readFailed);
+-
+-                if (readFailed)
+-                    cantGetData = TRUE;
+-                else {
+-                    if (bytesRead > 0) {
+-                        traceChannelRead(connectionP, bytesRead);
+-                        connectionP->inbytes += bytesRead;
+-                        connectionP->buffersize += bytesRead;
+-                        connectionP->buffer[connectionP->buffersize] = '\0';
+-                        gotData = TRUE;
+-                    } else
+-                        /* Other end has disconnected */
+-                        cantGetData = TRUE;
+-                }
++        if (failed)
++            xmlrpc_asprintf(errorP,
++                            "Wait for stuff to arrive from client failed.");
++        else {
++            bool eof;
++            if (readyForRead) {
++                readFromChannel(connectionP, &eof, errorP);
++            } else {
++                /* Wait was interrupted, either by our requested timeout,
++                   a (caught) signal, or a ChannelInterrupt().
++                */
++                traceReadTimeout(connectionP, timeout);
++                *errorP = NULL;
++                eof = FALSE;
+             }
++            if (!*errorP)
++                dealWithReadTimeout(timedOutP, !readyForRead, timeout, errorP);
++            if (!*errorP)
++                dealWithReadEof(eofP, eof, errorP);
+         }
+     }
+-    if (gotData)
+-        return TRUE;
+-    else
+-        return FALSE;
+ }
+@@ -429,12 +536,13 @@ ConnWriteFromFile(TConn *       const connectionP,
+     uint32_t waittime;
+     bool success;
+     uint32_t readChunkSize;
++      uint32_t ChunkSize = 4096 * 2; /* read buffer size */
+     if (rate > 0) {
+         readChunkSize = MIN(buffersize, rate);  /* One second's worth */
+         waittime = (1000 * buffersize) / rate;
+     } else {
+-        readChunkSize = buffersize;
++        readChunkSize = ChunkSize;
+         waittime = 0;
+     }
+@@ -443,30 +551,42 @@ ConnWriteFromFile(TConn *       const connectionP,
+         retval = FALSE;
+     else {
+         uint64_t const totalBytesToRead = last - start + 1;
+-        uint64_t bytesread;
+-
+-        bytesread = 0;  /* initial value */
+-
+-        while (bytesread < totalBytesToRead) {
+-            uint64_t const bytesLeft     = totalBytesToRead - bytesread;
+-            uint64_t const bytesToRead64 = MIN(readChunkSize, bytesLeft);
+-            uint32_t const bytesToRead   = (uint32_t)bytesToRead64;
+-            
+-            uint32_t bytesReadThisTime;
++        uint64_t bytesread = 0;
++
++        int32_t bytesReadThisTime = 0;
++        char * chunk = (char *) buffer; /* the beginning */
++        do {
++
++                      if ((bytesReadThisTime = FileRead(fileP, chunk, readChunkSize)) <= 0 )
++                              break;
++                      
++                      bytesread += bytesReadThisTime;
++                      chunk += bytesReadThisTime;
++
++                      /* fix bug in ms ie as it doesn't render text/plain properly                    */
++                      /* if CRLFs are split between reassembled tcp packets,                          */
++                      /* ie "might" undeterministically render extra empty lines                      */
++                      /* if it ends in CR or LF, read an extra chunk until the buffer is full         */
++                      /* or end of file is reached. You may still have bad luck, complaints go to MS) */
++
++/*                    if (bytesReadThisTime == readChunkSize &&  chunk - (char *) buffer + readChunkSize < buffersize) { 
++ *                            char * end = chunk - 1;
++ *                            if (*end == CR || *end == LF) {
++ *                                    continue;
++ *                            }
++ *                    }
++ */                                     
++            if (!bytesReadThisTime || !ConnWrite(connectionP, buffer, chunk - (char *) buffer)) {
++                break;
++                      }
+-            assert(bytesToRead == bytesToRead64); /* readChunkSize is uint32 */
++                      chunk = (char *) buffer; /* a new beginning */
+-            bytesReadThisTime = FileRead(fileP, buffer, bytesToRead);
+-            bytesread += bytesReadThisTime;
+-            
+-            if (bytesReadThisTime > 0)
+-                ConnWrite(connectionP, buffer, bytesReadThisTime);
+-            else
+-                break;
+-            
+-            if (waittime > 0)
++                      if (waittime > 0)
+                 xmlrpc_millisecond_sleep(waittime);
+-        }
++                      
++        } while (bytesReadThisTime == readChunkSize);
++
+         retval = (bytesread >= totalBytesToRead);
+     }
+     return retval;
+diff --git a/libs/xmlrpc-c/lib/abyss/src/conn.h b/libs/xmlrpc-c/lib/abyss/src/conn.h
+index 51eb169..d48103d 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/conn.h
++++ b/libs/xmlrpc-c/lib/abyss/src/conn.h
+@@ -47,8 +47,15 @@ struct _TConn {
+         */
+     const char * trace;
+     TThreadProc * job;
++        /* The function to run, in a connection thread, to conduct business
++           on the connection.  It reads stuff and writes stuff and, when it
++           is done with the connection, exits.
++        */
+     TThreadDoneFn * done;
+-    char buffer[BUFFER_SIZE];
++    union {
++        unsigned char b[BUFFER_SIZE];  /* Just bytes */
++        char          t[BUFFER_SIZE];  /* Taken as text */
++    } buffer;
+ };
+ typedef struct _TConn TConn;
+@@ -63,6 +70,7 @@ ConnCreate(TConn **            const connectionPP,
+            TChannel *          const channelP,
+            void *              const channelInfoP,
+            TThreadProc *       const job,
++           size_t              const jobStackSize,
+            TThreadDoneFn *     const done,
+            enum abyss_foreback const foregroundBackground,
+            bool                const useSigchld,
+@@ -82,9 +90,12 @@ ConnWrite(TConn *      const connectionP,
+           const void * const buffer,
+           uint32_t     const size);
+-bool
+-ConnRead(TConn *  const c,
+-         uint32_t const timems);
++void
++ConnRead(TConn *       const connectionP,
++         uint32_t      const timeout,
++         bool *        const eofP,
++         bool *        const timedOutP,
++         const char ** const errorP);
+ void
+ ConnReadInit(TConn * const connectionP);
+diff --git a/libs/xmlrpc-c/lib/abyss/src/data.c b/libs/xmlrpc-c/lib/abyss/src/data.c
+index c698505..f81f834 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/data.c
++++ b/libs/xmlrpc-c/lib/abyss/src/data.c
+@@ -32,6 +32,8 @@
+ **
+ *******************************************************************************/
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
++
+ #include <assert.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -198,20 +200,20 @@ ListAddFromString(TList *      const list,
+ bool
+-ListFindString(TList *      const sl,
++ListFindString(TList *      const listP,
+                const char * const str,
+                uint16_t *   const indexP)
+ {
+-    uint16_t i;
++    if (listP->item && str) {
++        unsigned int i;
+-    if (sl->item && str)
+-        for (i=0;i<sl->size;i++)
+-            if (strcmp(str,(char *)(sl->item[i]))==0)
+-            {
+-                *indexP=i;
++        for (i = 0; i < listP->size; ++i) {
++            if (xmlrpc_streq(str, (char *)(listP->item[i]))) {
++                *indexP = i;
+                 return TRUE;
+-            };
+-
++            }
++        }
++    }
+     return FALSE;
+ }
+@@ -435,7 +437,7 @@ TableFindIndex(TTable *     const t,
+     {
+         for (i=*index;i<t->size;i++)
+             if (hash==t->item[i].hash)
+-                if (strcmp(t->item[i].name,name)==0)
++                if (xmlrpc_streq(t->item[i].name,name))
+                 {
+                     *index=i;
+                     return TRUE;
+diff --git a/libs/xmlrpc-c/lib/abyss/src/file.c b/libs/xmlrpc-c/lib/abyss/src/file.c
+index b428c0c..4417f05 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/file.c
++++ b/libs/xmlrpc-c/lib/abyss/src/file.c
+@@ -111,6 +111,7 @@ createFileImage(TFile **     const filePP,
+         int rc;
+         if (createFile)
++            /* Unix prefers S_IWUSR, but some Windows knows only S_IWRITE */
+             rc = open(name, attrib | O_CREAT, S_IWRITE | S_IREAD);
+         else
+             rc = open(name, attrib);
+diff --git a/libs/xmlrpc-c/lib/abyss/src/handler.c b/libs/xmlrpc-c/lib/abyss/src/handler.c
+index 9f5a7e6..01a2550 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/handler.c
++++ b/libs/xmlrpc-c/lib/abyss/src/handler.c
+@@ -5,6 +5,9 @@
+    Copyright information is at end of file
+ =============================================================================*/
++
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
++
+ #include <assert.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -458,15 +461,15 @@ handleDirectory(TSession *   const sessionP,
+                 addLastModifiedHeader(sessionP, fileModTime);
+             
+                 ResponseChunked(sessionP);
+-                ResponseWriteStart(sessionP);
+-            
+-                if (sessionP->requestInfo.method!=m_head)
+-                    sendDirectoryDocument(&list, ascending, sort, text,
+-                                          sessionP->requestInfo.uri, mimeTypeP,
+-                                          sessionP);
+-            
+-                HTTPWriteEndChunk(sessionP);
++                if (ResponseWriteStart(sessionP)) {
++     
++                                      if (sessionP->requestInfo.method!=m_head)
++                                              sendDirectoryDocument(&list, ascending, sort, text,
++                                                                                        sessionP->requestInfo.uri, mimeTypeP,
++                                                                                        sessionP);
+             
++                                      HTTPWriteEndChunk(sessionP);
++                              }
+                 ListFree(&list);
+             }
+             PoolFree(&pool);
+@@ -504,20 +507,20 @@ sendBody(TSession *      const sessionP,
+ /*----------------------------------------------------------------------------
+    'start0' and 'end0' are meaningful only if the session has ranges.
+ -----------------------------------------------------------------------------*/
+-    char buffer[4096];
++    char buffer[4096*8];
+     if (sessionP->ranges.size == 0)
+-        ConnWriteFromFile(sessionP->conn, fileP, 0, filesize - 1,
++        ConnWriteFromFile(sessionP->connP, fileP, 0, filesize - 1,
+                           buffer, sizeof(buffer), 0);
+     else if (sessionP->ranges.size == 1)
+-        ConnWriteFromFile(sessionP->conn, fileP, start0, end0,
++        ConnWriteFromFile(sessionP->connP, fileP, start0, end0,
+                           buffer, sizeof(buffer), 0);
+     else {
+         uint64_t i;
+         for (i = 0; i <= sessionP->ranges.size; ++i) {
+-            ConnWrite(sessionP->conn, "--", 2);
+-            ConnWrite(sessionP->conn, BOUNDARY, strlen(BOUNDARY));
+-            ConnWrite(sessionP->conn, CRLF, 2);
++            ConnWrite(sessionP->connP, "--", 2);
++            ConnWrite(sessionP->connP, BOUNDARY, strlen(BOUNDARY));
++            ConnWrite(sessionP->connP, CRLF, 2);
+             if (i < sessionP->ranges.size) {
+                 uint64_t start;
+@@ -534,12 +537,12 @@ sendBody(TSession *      const sessionP,
+                     composeEntityHeader(&entityHeader, mediatype,
+                                         start, end, filesize);
+-                    ConnWrite(sessionP->conn,
++                    ConnWrite(sessionP->connP,
+                               entityHeader, strlen(entityHeader));
+                     xmlrpc_strfree(entityHeader);
+                     
+-                    ConnWriteFromFile(sessionP->conn, fileP, start, end,
++                    ConnWriteFromFile(sessionP->connP, fileP, start, end,
+                                       buffer, sizeof(buffer), 0);
+                 }
+             }
+@@ -559,8 +562,8 @@ sendFileAsResponse(TSession *   const sessionP,
+     uint64_t const filesize = FileSize(fileP);
+     const char * const mediatype = MIMETypeGuessFromFile2(mimeTypeP, fileName);
+-    uint64_t start;  /* Defined only if session has one range */
+-    uint64_t end;    /* Defined only if session has one range */
++    uint64_t start = 0;  /* Defined only if session has one range */
++    uint64_t end = 0;    /* Defined only if session has one range */
+     switch (sessionP->ranges.size) {
+     case 0:
+@@ -601,10 +604,9 @@ sendFileAsResponse(TSession *   const sessionP,
+     
+     addLastModifiedHeader(sessionP, fileModTime);
+-    ResponseWriteStart(sessionP);
+-
+-    if (sessionP->requestInfo.method != m_head)
+-        sendBody(sessionP, fileP, filesize, mediatype, start, end);
++    if (ResponseWriteStart(sessionP))
++          if (sessionP->requestInfo.method != m_head)
++                      sendBody(sessionP, fileP, filesize, mediatype, start, end);
+ }        
+@@ -749,6 +751,9 @@ HandlerDefaultBuiltin(TSession * const sessionP) {
++size_t const HandlerDefaultBuiltinStack = 1024;
++
++
+ /******************************************************************************
+ **
+ ** server.c
+diff --git a/libs/xmlrpc-c/lib/abyss/src/handler.h b/libs/xmlrpc-c/lib/abyss/src/handler.h
+index 4f9dc95..a8f2f3e 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/handler.h
++++ b/libs/xmlrpc-c/lib/abyss/src/handler.h
+@@ -28,4 +28,6 @@ HandlerAddDefaultFN(BIHandler *  const handlerP,
+ abyss_bool
+ HandlerDefaultBuiltin(TSession * const sessionP);
++extern size_t const HandlerDefaultBuiltinStack;
++
+ #endif
+diff --git a/libs/xmlrpc-c/lib/abyss/src/http.c b/libs/xmlrpc-c/lib/abyss/src/http.c
+index 1e55bc8..4f9ef10 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/http.c
++++ b/libs/xmlrpc-c/lib/abyss/src/http.c
+@@ -1,5 +1,8 @@
+ /* Copyright information is at the end of the file */
++#define _XOPEN_SOURCE 600   /* For strdup() */
++#define _BSD_SOURCE   /* For xmlrpc_strcaseeq() */
++
+ #include <ctype.h>
+ #include <assert.h>
+ #include <stdlib.h>
+@@ -13,6 +16,7 @@
+ #include "mallocvar.h"
+ #include "xmlrpc-c/util.h"
+ #include "xmlrpc-c/string_int.h"
++#include "xmlrpc-c/base64_int.h"
+ #include "xmlrpc-c/abyss.h"
+ #include "server.h"
+@@ -43,8 +47,8 @@ initRequestInfo(TRequestInfo * const requestInfoP,
+                 const char *   const query) {
+ /*----------------------------------------------------------------------------
+   Set up the request info structure.  For information that is
+-  controlled by headers, use the defaults -- I.e. the value that
+-  applies if the request contains no applicable header.
++  controlled by the header, use the defaults -- I.e. the value that
++  applies if the request contains no applicable header field.
+ -----------------------------------------------------------------------------*/
+     XMLRPC_ASSERT_PTR_OK(requestLine);
+     XMLRPC_ASSERT_PTR_OK(path);
+@@ -79,6 +83,9 @@ freeRequestInfo(TRequestInfo * const requestInfoP) {
+     xmlrpc_strfree(requestInfoP->uri);
+     xmlrpc_strfree(requestInfoP->requestline);
++      
++    xmlrpc_strfree(requestInfoP->query);
++
+ }
+@@ -91,7 +98,7 @@ RequestInit(TSession * const sessionP,
+     time(&sessionP->date);
+-    sessionP->conn = connectionP;
++    sessionP->connP = connectionP;
+     sessionP->responseStarted = FALSE;
+@@ -102,8 +109,8 @@ RequestInit(TSession * const sessionP,
+     ListInit(&sessionP->cookies);
+     ListInit(&sessionP->ranges);
+-    TableInit(&sessionP->request_headers);
+-    TableInit(&sessionP->response_headers);
++    TableInit(&sessionP->requestHeaderFields);
++    TableInit(&sessionP->responseHeaderFields);
+     sessionP->status = 0;  /* No status from handler yet */
+@@ -120,8 +127,8 @@ RequestFree(TSession * const sessionP) {
+     ListFree(&sessionP->cookies);
+     ListFree(&sessionP->ranges);
+-    TableFree(&sessionP->request_headers);
+-    TableFree(&sessionP->response_headers);
++    TableFree(&sessionP->requestHeaderFields);
++    TableFree(&sessionP->responseHeaderFields);
+     StringFree(&(sessionP->header));
+ }
+@@ -137,7 +144,7 @@ firstLfPos(TConn * const connectionP,
+    If there is no LF in the buffer at or after 'lineStart', return NULL.
+ -----------------------------------------------------------------------------*/
+     const char * const bufferEnd =
+-        connectionP->buffer + connectionP->buffersize;
++        connectionP->buffer.t + connectionP->buffersize;
+     char * p;
+@@ -168,20 +175,25 @@ getLineInBuffer(TConn * const connectionP,
+     bool error;
+     char * lfPos;
+-    assert(lineStart <= connectionP->buffer + connectionP->buffersize);
++    assert(lineStart <= connectionP->buffer.t + connectionP->buffersize);
+     error = FALSE;  /* initial value */
+     lfPos = NULL;  /* initial value */
+     while (!error && !lfPos) {
+         int const timeLeft = (int)(deadline - time(NULL));
+-
+         if (timeLeft <= 0)
+             error = TRUE;
+         else {
+             lfPos = firstLfPos(connectionP, lineStart);
+-            if (!lfPos)
+-                error = !ConnRead(connectionP, timeLeft);
++            if (!lfPos) {
++                const char * readError;
++                ConnRead(connectionP, timeLeft, NULL, NULL, &readError);
++                if (readError) {
++                    error = TRUE;
++                    xmlrpc_strfree(readError);
++                }
++            }
+         }
+     }    
+     *errorP = error;
+@@ -228,36 +240,36 @@ convertLineEnd(char * const lineStart,
+ static void
+-getRestOfHeader(TConn *       const connectionP,
+-                char *        const lineEnd,
+-                time_t        const deadline,
+-                const char ** const headerEndP,
+-                bool *        const errorP) {
++getRestOfField(TConn *       const connectionP,
++               char *        const lineEnd,
++               time_t        const deadline,
++               const char ** const fieldEndP,
++               bool *        const errorP) {
+ /*----------------------------------------------------------------------------
+    Given that the read buffer for connection *connectionP contains (at
+-   its current read position) the first line of an HTTP header, which
++   its current read position) the first line of an HTTP header field, which
+    ends at position 'lineEnd', find the rest of it.
+-   Some or all of the rest of the header may be in the buffer already;
++   Some or all of the rest of the field may be in the buffer already;
+    we read more from the connection as necessary, but not if it takes past
+    'deadline'.  In the latter case, we fail.
+-   We return the location of the end of the whole header as *headerEndP.
+-   We do not remove the header from the buffer, but we do modify the
+-   buffer so as to join the multiple lines of the header into a single
+-   line, and to NUL-terminate the header.
++   We return the location of the end of the whole field as *headerEndP.
++   We do not remove the field from the buffer, but we do modify the
++   buffer so as to join the multiple lines of the field into a single
++   line, and to NUL-terminate the field.
+ -----------------------------------------------------------------------------*/
+-    char * const headerStart = connectionP->buffer + connectionP->bufferpos;
++    char * const fieldStart = connectionP->buffer.t + connectionP->bufferpos;
+-    char * headerEnd;
+-        /* End of the header lines we've seen at so far */
+-    bool gotWholeHeader;
++    char * fieldEnd;
++        /* End of the field lines we've seen at so far */
++    bool gotWholeField;
+     bool error;
+-    headerEnd = lineEnd;  /* initial value - end of 1st line */
++    fieldEnd = lineEnd;  /* initial value - end of 1st line */
+         
+-    for (gotWholeHeader = FALSE, error = FALSE;
+-         !gotWholeHeader && !error;) {
++    for (gotWholeField = FALSE, error = FALSE;
++         !gotWholeField && !error;) {
+         char * nextLineEnd;
+@@ -265,51 +277,51 @@ getRestOfHeader(TConn *       const connectionP,
+            valid, that there is at least one more line in it.  Worst
+            case, it's the empty line that marks the end of the headers.
+         */
+-        getLineInBuffer(connectionP, headerEnd, deadline,
++        getLineInBuffer(connectionP, fieldEnd, deadline,
+                         &nextLineEnd, &error);
+         if (!error) {
+-            if (isContinuationLine(headerEnd)) {
++            if (isContinuationLine(fieldEnd)) {
+                 /* Join previous line to this one */
+-                convertLineEnd(headerEnd, headerStart, ' ');
++                convertLineEnd(fieldEnd, fieldStart, ' ');
+                 /* Add this line to the header */
+-                headerEnd = nextLineEnd;
++                fieldEnd = nextLineEnd;
+             } else {
+-                gotWholeHeader = TRUE;
+-                *headerEndP = headerEnd;
++                gotWholeField = TRUE;
+-                /* NUL-terminate the whole header */
+-                convertLineEnd(headerEnd, headerStart, '\0');
++                /* NUL-terminate the whole field */
++                convertLineEnd(fieldEnd, fieldStart, '\0');
+             }
+         }
+     }
+-    *errorP = error;
++    *fieldEndP = fieldEnd;
++    *errorP    = error;
+ }
+ static void
+-readHeader(TConn * const connectionP,
+-           time_t  const deadline,
+-           bool *  const endOfHeadersP,
+-           char ** const headerP,
+-           bool *  const errorP) {
++readField(TConn * const connectionP,
++          time_t  const deadline,
++          bool *  const endOfHeaderP,
++          char ** const fieldP,
++          bool *  const errorP) {
+ /*----------------------------------------------------------------------------
+-   Read an HTTP header, or the end of headers empty line, on connection
++   Read an HTTP header field, or the end of header empty line, on connection
+    *connectionP.
+-   An HTTP header is basically a line, except that if a line starts
++   An HTTP header field is basically a line, except that if a line starts
+    with white space, it's a continuation of the previous line.  A line
+    is delimited by either LF or CRLF.
+-   The first line of an HTTP header is never empty; an empty line signals
+-   the end of the HTTP headers and beginning of the HTTP body.  We call
+-   that empty line the EOH mark.
++   The first line of an HTTP header field is never empty; an empty line
++   signals the end of the HTTP header and beginning of the HTTP body.  We
++   call that empty line the EOH mark.
+    We assume the connection is positioned to a header or EOH mark.
+    
+    In the course of reading, we read at least one character past the
+-   line delimiter at the end of the header or EOH mark; we may read
+-   much more.  But we leave everything after the header or EOH (and
++   line delimiter at the end of the field or EOH mark; we may read
++   much more.  But we leave everything after the field or EOH (and
+    its line delimiter) in the internal buffer, with the buffer pointer
+    pointing to it.
+@@ -317,12 +329,12 @@ readHeader(TConn * const connectionP,
+    previous call to this subroutine) before reading any more from from
+    the channel.
+-   We return as *headerP the next header as an ASCIIZ string, with no
++   We return as *fieldP the next field as an ASCIIZ string, with no
+    line delimiter.  That string is stored in the "unused" portion of
+-   the connection's internal buffer.  Iff there is no next header, we
+-   return *endOfHeadersP == true and nothing meaningful as *headerP.
++   the connection's internal buffer.  Iff there is no next field, we
++   return *endOfHeaderP == true and nothing meaningful as *fieldP.
+ -----------------------------------------------------------------------------*/
+-    char * const bufferStart = connectionP->buffer + connectionP->bufferpos;
++    char * const bufferStart = connectionP->buffer.t + connectionP->bufferpos;
+     bool error;
+     char * lineEnd;
+@@ -334,26 +346,26 @@ readHeader(TConn * const connectionP,
+             error = TRUE;
+         else if (isEmptyLine(bufferStart)) {
+             /* Consume the EOH mark from the buffer */
+-            connectionP->bufferpos = lineEnd - connectionP->buffer;
+-            *endOfHeadersP = TRUE;
++            connectionP->bufferpos = lineEnd - connectionP->buffer.t;
++            *endOfHeaderP = TRUE;
+         } else {
+-            /* We have the first line of a header; there may be more. */
++            /* We have the first line of a field; there may be more. */
+-            const char * headerEnd;
++            const char * fieldEnd;
+-            *endOfHeadersP = FALSE;
++            *endOfHeaderP = FALSE;
+-            getRestOfHeader(connectionP, lineEnd, deadline,
+-                            &headerEnd, &error);
++            getRestOfField(connectionP, lineEnd, deadline,
++                           &fieldEnd, &error);
+             if (!error) {
+-                *headerP = bufferStart;
++                *fieldP = bufferStart;
+                 /* Consume the header from the buffer (but be careful --
+                    you can't reuse that part of the buffer because the
+                    string we will return is in it!
+                 */
+-                connectionP->bufferpos = headerEnd - connectionP->buffer;
++                connectionP->bufferpos = fieldEnd - connectionP->buffer.t;
+             }
+         }
+     }
+@@ -367,7 +379,7 @@ skipToNonemptyLine(TConn * const connectionP,
+                    time_t  const deadline,
+                    bool *  const errorP) {
+-    char * const bufferStart = connectionP->buffer + connectionP->bufferpos;
++    char * const bufferStart = connectionP->buffer.t + connectionP->bufferpos;
+     bool gotNonEmptyLine;
+     bool error;
+@@ -393,7 +405,7 @@ skipToNonemptyLine(TConn * const connectionP,
+         /* Consume all the empty lines; advance buffer pointer to first
+            non-empty line.
+         */
+-        connectionP->bufferpos = lineStart - connectionP->buffer;
++        connectionP->bufferpos = lineStart - connectionP->buffer.t;
+     }
+     *errorP = error;
+ }
+@@ -401,40 +413,45 @@ skipToNonemptyLine(TConn * const connectionP,
+ static void
+-readRequestHeader(TSession * const sessionP,
+-                  time_t     const deadline,
+-                  char **    const requestLineP,
+-                  uint16_t * const httpErrorCodeP) {
++readRequestField(TSession * const sessionP,
++                 time_t     const deadline,
++                 char **    const requestLineP,
++                 uint16_t * const httpErrorCodeP) {
+ /*----------------------------------------------------------------------------
+-   Read the HTTP request header (aka request header field) from
+-   session 'sessionP'.  We read through the session's internal buffer;
+-   i.e.  we may get data that was previously read from the network, or
+-   we may read more from the network.
++   Read the HTTP request header field from session 'sessionP'.  We read
++   through the session's internal buffer; i.e.  we may get data that was
++   previously read from the network, or we may read more from the network.
+    We assume the connection is presently positioned to the beginning of
+-   the HTTP document.  We leave it positioned after the request header.
++   the HTTP document.  We leave it positioned after the request field.
+    
+    We ignore any empty lines at the beginning of the stream, per
+    RFC2616 Section 4.1.
+-   Fail if we can't get the header before 'deadline'.
++   Fail if we can't get the field before 'deadline'.
+-   Return as *requestLineP the request header read.  This ASCIIZ string is
++   Return as *requestLineP the request field read.  This ASCIIZ string is
+    in the session's internal buffer.
+    Return as *httpErrorCodeP the HTTP error code that describes how we
+-   are not able to read the request header, or 0 if we can.
++   are not able to read the request field, or 0 if we can.
+    If we can't, *requestLineP is meaningless.
+ -----------------------------------------------------------------------------*/
+-    char * line = NULL;
+-    bool error = FALSE;
+-    bool endOfHeaders = FALSE;
++    char * line;
++    bool error;
++    bool endOfHeader;
+-    skipToNonemptyLine(sessionP->conn, deadline, &error);
++    skipToNonemptyLine(sessionP->connP, deadline, &error);
+-    if (!error)
+-        readHeader(sessionP->conn, deadline, &endOfHeaders, &line, &error);
++    if (!error) {
++        readField(sessionP->connP, deadline, &endOfHeader, &line, &error);
++        /* End of header is delimited by an empty line, and we skipped all
++           the empty lines above, so readField() could not have encountered
++           EOH:
++        */
++        assert(!endOfHeader);
++    }
+     if (error)
+         *httpErrorCodeP = 408;  /* Request Timeout */
+     else {
+@@ -484,6 +501,7 @@ unescapeUri(char * const uri,
+             }
+         } break;
++
+         default:
+             *y++ = *x++;
+             break;
+@@ -498,6 +516,7 @@ static void
+ parseHostPort(const char *     const hostport,
+               const char **    const hostP,
+               unsigned short * const portP,
++              const char **    const errorP,
+               uint16_t *       const httpErrorCodeP) {
+ /*----------------------------------------------------------------------------
+    Parse a 'hostport', a string in the form www.acme.com:8080 .
+@@ -512,28 +531,32 @@ parseHostPort(const char *     const hostport,
+     buffer = strdup(hostport);
+-    colonPos = strchr(buffer, ':');
++    colonPos = strrchr(buffer, ':');
+     if (colonPos) {
+         const char * p;
+         uint32_t port;
+         *colonPos = '\0';  /* Split hostport at the colon */
++
+         for (p = colonPos + 1, port = 0;
+              isdigit(*p) && port < 65535;
+              (port = port * 10 + (*p - '0')), ++p);
+             
+-        if (*p || port == 0)
++        if (*p || port == 0) {
++            xmlrpc_asprintf(errorP, "There is nothing, or something "
++                            "non-numeric for the port number after the "
++                            "colon in '%s'", hostport);
+             *httpErrorCodeP = 400;  /* Bad Request */
+-        else {
++        } else {
+             *hostP = strdup(buffer);
+             *portP = port;
+-            *httpErrorCodeP = 0;
++            *errorP = NULL;
+         }
+     } else {
+         *hostP          = strdup(buffer);
+         *portP          = 80;
+-        *httpErrorCodeP = 0;
++        *errorP = NULL;
+     }
+     free(buffer);
+ }
+@@ -596,6 +619,7 @@ parseRequestUri(char *           const requestUri,
+             requestUriNoQuery = requestUri;
+         }
++
+         if (requestUriNoQuery[0] == '/') {
+             *hostP = NULL;
+             *pathP = strdup(requestUriNoQuery);
+@@ -634,8 +658,15 @@ parseRequestUri(char *           const requestUri,
+                     hostport = hostportpath;
+                     *httpErrorCodeP = 0;
+                 }
+-                if (!*httpErrorCodeP)
+-                    parseHostPort(hostport, &host, &port, httpErrorCodeP);
++                if (!*httpErrorCodeP) {
++                    const char * error;
++                    parseHostPort(hostport, &host, &port,
++                                  &error, httpErrorCodeP);
++                    if (error)
++                        xmlrpc_strfree(error);
++                    else
++                        *httpErrorCodeP = 0;
++                }
+                 if (*httpErrorCodeP)
+                     xmlrpc_strfree(path);
+@@ -764,9 +795,10 @@ strtolower(char * const s) {
+ static void
+-getFieldNameToken(char **    const pP,
+-                  char **    const fieldNameP,
+-                  uint16_t * const httpErrorCodeP) {
++getFieldNameToken(char **       const pP,
++                  char **       const fieldNameP,
++                  const char ** const errorP,
++                  uint16_t *    const httpErrorCodeP) {
+ /*----------------------------------------------------------------------------
+    Assuming that *pP points to the place in an HTTP header where the field
+    name belongs, return the field name and advance *pP past that token.
+@@ -779,30 +811,34 @@ getFieldNameToken(char **    const pP,
+     NextToken((const char **)pP);
+     
+     fieldName = GetToken(pP);
+-    if (!fieldName)
++    if (!fieldName) {
++        xmlrpc_asprintf(errorP, "The header has no field name token");
+         *httpErrorCodeP = 400;  /* Bad Request */
+-    else {
+-        if (fieldName[strlen(fieldName)-1] != ':')
++    } else {
++        if (fieldName[strlen(fieldName)-1] != ':') {
+             /* Not a valid field name */
++            xmlrpc_asprintf(errorP, "The field name token '%s' "
++                            "does not end with a colon (:)", fieldName);
+             *httpErrorCodeP = 400;  /* Bad Request */
+-        else {
++        } else {
+             fieldName[strlen(fieldName)-1] = '\0';  /* remove trailing colon */
+             strtolower(fieldName);
+             
+-            *httpErrorCodeP = 0;  /* no error */
+-            *fieldNameP = fieldName;
++            *errorP = NULL;
+         }
+     }
++    *fieldNameP = fieldName;
+ }
+ static void
+-processHeader(const char * const fieldName,
+-              char *       const fieldValue,
+-              TSession *   const sessionP,
+-              uint16_t *   const httpErrorCodeP) {
++processField(const char *  const fieldName,
++             char *        const fieldValue,
++             TSession *    const sessionP,
++             const char ** const errorP,
++             uint16_t *    const httpErrorCodeP) {
+ /*----------------------------------------------------------------------------
+    We may modify *fieldValue, and we put pointers to *fieldValue and
+    *fieldName into *sessionP.
+@@ -810,7 +846,7 @@ processHeader(const char * const fieldName,
+    We must fix this some day.  *sessionP should point to individual
+    malloc'ed strings.
+ -----------------------------------------------------------------------------*/
+-    *httpErrorCodeP = 0;  /* initial assumption */
++    *errorP = NULL;  /* initial assumption */
+     if (xmlrpc_streq(fieldName, "connection")) {
+         if (xmlrpc_strcaseeq(fieldValue, "keep-alive"))
+@@ -823,7 +859,7 @@ processHeader(const char * const fieldName,
+             sessionP->requestInfo.host = NULL;
+         }
+         parseHostPort(fieldValue, &sessionP->requestInfo.host,
+-                      &sessionP->requestInfo.port, httpErrorCodeP);
++                      &sessionP->requestInfo.port, errorP, httpErrorCodeP);
+     } else if (xmlrpc_streq(fieldName, "from"))
+         sessionP->requestInfo.from = fieldValue;
+     else if (xmlrpc_streq(fieldName, "user-agent"))
+@@ -834,12 +870,21 @@ processHeader(const char * const fieldName,
+         if (xmlrpc_strneq(fieldValue, "bytes=", 6)) {
+             bool succeeded;
+             succeeded = ListAddFromString(&sessionP->ranges, &fieldValue[6]);
+-            *httpErrorCodeP = succeeded ? 0 : 400;
++            if (!succeeded) {
++                xmlrpc_asprintf(errorP, "ListAddFromString() failed for "
++                                "\"range: bytes=...\" header value '%s'",
++                                &fieldValue[6]);
++                *httpErrorCodeP = 400;
++            }
+         }
+     } else if (xmlrpc_streq(fieldName, "cookies")) {
+         bool succeeded;
+         succeeded = ListAddFromString(&sessionP->cookies, fieldValue);
+-        *httpErrorCodeP = succeeded ? 0 : 400;
++        if (!succeeded) {
++            xmlrpc_asprintf(errorP, "ListAddFromString() failed for "
++                            "cookies: header value '%s'", fieldValue);
++            *httpErrorCodeP = 400;
++        }
+     } else if (xmlrpc_streq(fieldName, "expect")) {
+         if (xmlrpc_strcaseeq(fieldValue, "100-continue"))
+             sessionP->continueRequired = TRUE;
+@@ -849,53 +894,55 @@ processHeader(const char * const fieldName,
+ static void
+-readAndProcessHeaders(TSession * const sessionP,
+-                      time_t     const deadline,
+-                      uint16_t * const httpErrorCodeP) {
++readAndProcessHeaderFields(TSession *    const sessionP,
++                           time_t        const deadline,
++                           const char ** const errorP,
++                           uint16_t *    const httpErrorCodeP) {
+ /*----------------------------------------------------------------------------
+-   Read all the HTTP headers from the session *sessionP, which has at
+-   least one header coming.  Update *sessionP to reflect the
+-   information in the headers.
+-
+-   If we find an error in the headers or while trying to read them, we
+-   return an appropriate HTTP error code as *httpErrorCodeP.  Otherwise,
+-   we return *httpErrorCodeP = 0.
++   Read all the HTTP header fields from the session *sessionP, which has at
++   least one field coming.  Update *sessionP to reflect the information in the
++   fields.
++
++   If we find an error in the fields or while trying to read them, we return
++   a text explanation of the problem as *errorP and an appropriate HTTP error
++   code as *httpErrorCodeP.  Otherwise, we return *errorP = NULL and nothing
++   as *httpErrorCodeP.
+ -----------------------------------------------------------------------------*/
+-    bool endOfHeaders;
++    bool endOfHeader;
+-    /* Calling us doesn't make sense if there is already a valid request */
+-    if (sessionP->validRequest) {
+-       return;
+-    }
+-      
+-    *httpErrorCodeP = 0;  /* initial assumption */
+-    endOfHeaders = false;  /* Caller assures us there is at least one header */
++    assert(!sessionP->validRequest);
++        /* Calling us doesn't make sense if there is already a valid request */
++
++    *errorP = NULL;  /* initial assumption */
++    endOfHeader = false;  /* Caller assures us there is at least one header */
+-    while (!endOfHeaders && !*httpErrorCodeP) {
+-        char * header;
++    while (!endOfHeader && !*errorP) {
++        char * field;
+         bool error;
+-        readHeader(sessionP->conn, deadline, &endOfHeaders, &header, &error);
+-        if (error)
++        readField(sessionP->connP, deadline, &endOfHeader, &field, &error);
++        if (error) {
++            xmlrpc_asprintf(errorP, "Failed to read header from "
++                            "client connection.");
+             *httpErrorCodeP = 408;  /* Request Timeout */
+-        else {
+-            if (!endOfHeaders) {
++        } else {
++            if (!endOfHeader) {
+                 char * p;
+                 char * fieldName;
+-                p = &header[0];
+-                getFieldNameToken(&p, &fieldName, httpErrorCodeP);
+-                if (!*httpErrorCodeP) {
++                p = &field[0];
++                getFieldNameToken(&p, &fieldName, errorP, httpErrorCodeP);
++                if (!*errorP) {
+                     char * fieldValue;
+                     
+                     NextToken((const char **)&p);
+                     
+                     fieldValue = p;
+-                    TableAdd(&sessionP->request_headers,
++                    TableAdd(&sessionP->requestHeaderFields,
+                              fieldName, fieldValue);
+                     
+-                    processHeader(fieldName, fieldValue, sessionP,
+-                                  httpErrorCodeP);
++                    processField(fieldName, fieldValue, sessionP, errorP,
++                                 httpErrorCodeP);
+                 }
+             }
+         }
+@@ -905,8 +952,10 @@ readAndProcessHeaders(TSession * const sessionP,
+ void
+-RequestRead(TSession * const sessionP,
+-            uint32_t   const timeout) {
++RequestRead(TSession *    const sessionP,
++            uint32_t      const timeout,
++            const char ** const errorP,
++            uint16_t *    const httpErrorCodeP) {
+ /*----------------------------------------------------------------------------
+    Read the headers of a new HTTP request (assuming nothing has yet been
+    read on the session).
+@@ -922,28 +971,38 @@ RequestRead(TSession * const sessionP,
+     uint16_t httpErrorCode;  /* zero for no error */
+     char * requestLine;  /* In connection;s internal buffer */
+-    readRequestHeader(sessionP, deadline, &requestLine, &httpErrorCode);
+-    if (!httpErrorCode) {
++    readRequestField(sessionP, deadline, &requestLine, &httpErrorCode);
++    if (httpErrorCode) {
++        xmlrpc_asprintf(errorP, "Problem getting the request header");
++        *httpErrorCodeP = httpErrorCode;
++    } else {
+         TMethod httpMethod;
+         const char * host;
+         const char * path;
+         const char * query;
+         unsigned short port;
+-        bool moreHeaders;
++        bool moreFields;
+         parseRequestLine(requestLine, &httpMethod, &sessionP->version,
+                          &host, &port, &path, &query,
+-                         &moreHeaders, &httpErrorCode);
++                         &moreFields, &httpErrorCode);
+-        if (!httpErrorCode) {
++        if (httpErrorCode) {
++            xmlrpc_asprintf(errorP, "Unable to parse the request header "
++                            "'%s'", requestLine);
++            *httpErrorCodeP = httpErrorCode;
++        } else {
+             initRequestInfo(&sessionP->requestInfo, sessionP->version,
+                             requestLine,
+                             httpMethod, host, port, path, query);
+-            if (moreHeaders)
+-                readAndProcessHeaders(sessionP, deadline, &httpErrorCode);
++            if (moreFields) {
++                readAndProcessHeaderFields(sessionP, deadline,
++                                           errorP, httpErrorCodeP);
++            } else
++                *errorP = NULL;
+-            if (httpErrorCode == 0)
++            if (!*errorP)
+                 sessionP->validRequest = true;
+             xmlrpc_strfreenull(host);
+@@ -951,8 +1010,6 @@ RequestRead(TSession * const sessionP,
+             xmlrpc_strfreenull(query);
+         }
+     }
+-    if (httpErrorCode)
+-        ResponseStatus(sessionP, httpErrorCode);
+ }
+@@ -961,7 +1018,7 @@ char *
+ RequestHeaderValue(TSession *   const sessionP,
+                    const char * const name) {
+-    return (TableFind(&sessionP->request_headers, name));
++    return (TableFind(&sessionP->requestHeaderFields, name));
+ }
+@@ -999,10 +1056,10 @@ RequestValidURIPath(TSession * const sessionP) {
+             if (*(p++) == '/') {
+                 if (*p == '/')
+                     break;
+-                else if ((strncmp(p,"./",2) == 0) || (strcmp(p, ".") == 0))
++                else if ((xmlrpc_strneq(p,"./", 2)) || (xmlrpc_streq(p, ".")))
+                     ++p;
+-                else if ((strncmp(p, "../", 2) == 0) ||
+-                         (strcmp(p, "..") == 0)) {
++                else if ((xmlrpc_strneq(p, "../", 2)) ||
++                         (xmlrpc_streq(p, ".."))) {
+                     p += 2;
+                     --i;
+                     if (i == 0)
+@@ -1029,14 +1086,14 @@ RequestAuth(TSession *   const sessionP,
+ /*----------------------------------------------------------------------------
+    Authenticate requester, in a very simplistic fashion.
+-   If the request specifies basic authentication (via Authorization
+-   header) with username 'user', password 'pass', then return TRUE.
+-   Else, return FALSE and set up an authorization failure response
+-   (HTTP response status 401) that says user must supply an identity
+-   in the 'credential' domain.
++   If the request executing on session *sessionP specifies basic
++   authentication (via Authorization header) with username 'user', password
++   'pass', then return TRUE.  Else, return FALSE and set up an authorization
++   failure response (HTTP response status 401) that says user must supply an
++   identity in the 'credential' domain.
+-   When we return TRUE, we also set the username in the request info
+-   to 'user' so that a future SessionGetRequestInfo can get it.
++   When we return TRUE, we also set the username in the request info for the
++   session to 'user' so that a future SessionGetRequestInfo can get it.
+ -----------------------------------------------------------------------------*/
+     bool authorized;
+     char * authHdrPtr;
+@@ -1055,7 +1112,7 @@ RequestAuth(TSession *   const sessionP,
+                 NextToken((const char **)&authHdrPtr);
+                 xmlrpc_asprintf(&userPass, "%s:%s", user, pass);
+-                Base64Encode(userPass, userPassEncoded);
++                xmlrpc_base64Encode(userPass, userPassEncoded);
+                 xmlrpc_strfree(userPass);
+                 if (xmlrpc_streq(authHdrPtr, userPassEncoded)) {
+@@ -1208,24 +1265,19 @@ HTTPWriteBodyChunk(TSession *   const sessionP,
+                    const char * const buffer,
+                    uint32_t     const len) {
+-    bool succeeded;
+-
+     if (sessionP->chunkedwrite && sessionP->chunkedwritemode) {
+         char chunkHeader[16];
+         sprintf(chunkHeader, "%x\r\n", len);
+-        succeeded =
+-            ConnWrite(sessionP->conn, chunkHeader, strlen(chunkHeader));
+-        if (succeeded) {
+-            succeeded = ConnWrite(sessionP->conn, buffer, len);
+-            if (succeeded)
+-                succeeded = ConnWrite(sessionP->conn, "\r\n", 2);
+-        }
++        if (ConnWrite(sessionP->connP, chunkHeader, strlen(chunkHeader)))
++                      if (ConnWrite(sessionP->connP, buffer, len))
++                return ConnWrite(sessionP->connP, "\r\n", 2);
++
++              return FALSE;
+     } else
+-        succeeded = ConnWrite(sessionP->conn, buffer, len);
++        return ConnWrite(sessionP->connP, buffer, len);
+-    return succeeded;
+ }
+@@ -1233,14 +1285,13 @@ HTTPWriteBodyChunk(TSession *   const sessionP,
+ bool
+ HTTPWriteEndChunk(TSession * const sessionP) {
+-    bool retval;
++    bool retval = TRUE;
+     if (sessionP->chunkedwritemode && sessionP->chunkedwrite) {
+         /* May be one day trailer dumping will be added */
+         sessionP->chunkedwritemode = FALSE;
+-        retval = ConnWrite(sessionP->conn, "0\r\n\r\n", 5);
+-    } else
+-        retval = TRUE;
++        retval = ConnWrite(sessionP->connP, "0\r\n\r\n", 5);
++    } 
+     return retval;
+ }
+@@ -1266,7 +1317,7 @@ HTTPWriteContinue(TSession * const sessionP) {
+     char const continueStatus[] = "HTTP/1.1 100 continue\r\n\r\n";
+         /* This is a status line plus an end-of-headers empty line */
+-    return ConnWrite(sessionP->conn, continueStatus, strlen(continueStatus));
++    return ConnWrite(sessionP->connP, continueStatus, strlen(continueStatus));
+ }
+diff --git a/libs/xmlrpc-c/lib/abyss/src/http.h b/libs/xmlrpc-c/lib/abyss/src/http.h
+index acf491e..14a3168 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/http.h
++++ b/libs/xmlrpc-c/lib/abyss/src/http.h
+@@ -1,6 +1,8 @@
+ #ifndef HTTP_H_INCLUDED
+ #define HTTP_H_INCLUDED
++#include <sys/types.h>
++
+ #include "bool.h"
+ #include "conn.h"
+@@ -13,8 +15,10 @@ bool RequestValidURIPath(TSession * const r);
+ bool RequestUnescapeURI(TSession *r);
+ void
+-RequestRead(TSession * const sessionP,
+-            uint32_t   const timeout);
++RequestRead(TSession *    const sessionP,
++            uint32_t      const timeout,
++            const char ** const errorP,
++            uint16_t *    const httpErrorCodeP);
+ void RequestInit(TSession * const r,TConn * const c);
+ void RequestFree(TSession * const r);
+diff --git a/libs/xmlrpc-c/lib/abyss/src/main.c b/libs/xmlrpc-c/lib/abyss/src/main.c
+index e5741f3..875a260 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/main.c
++++ b/libs/xmlrpc-c/lib/abyss/src/main.c
+@@ -42,7 +42,7 @@
+ #endif  /* WIN32 */
+ #ifdef _UNIX
+-#include <sys/signal.h>
++#include <signal.h>
+ #include <sys/wait.h>
+ #endif
+@@ -75,7 +75,7 @@ abyss_bool HandleTime(TSession *r)
+     const char * dateString;
+     const char * answer;
+-    if (strcmp(r->uri,"/time")!=0)
++    if (!xmlrpc_streq(r->uri,"/time"))
+         return FALSE;
+     if (!RequestAuth(r,"Mot de passe","moez","hello"))
+@@ -100,7 +100,7 @@ abyss_bool HandleDump(TSession *r)
+ {
+     char z[50];
+-    if (strcmp(r->uri,"/name")!=0)
++    if (!xmlrpc_streq(r->uri,"/name"))
+         return FALSE;
+     sprintf(z,"Server name is %s", (r->server)->name );
+@@ -125,7 +125,7 @@ abyss_bool HandleMIMEType(TSession *r)
+ {
+     char *m;
+-    if (strncmp(r->uri,"/mime/",6)!=0)
++    if (!xmlrpc_strneq(r->uri, "/mime/", 6))
+         return FALSE;
+     m=MIMETypeFromExt(r->uri+6);
+diff --git a/libs/xmlrpc-c/lib/abyss/src/response.c b/libs/xmlrpc-c/lib/abyss/src/response.c
+index 75421d4..235d787 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/response.c
++++ b/libs/xmlrpc-c/lib/abyss/src/response.c
+@@ -6,6 +6,8 @@
+   Copyright information is at the end of the file
+ =============================================================================*/
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
++
+ #include <ctype.h>
+ #include <assert.h>
+ #include <stdlib.h>
+@@ -16,11 +18,13 @@
+ #include "xmlrpc_config.h"
+ #include "bool.h"
++#include "int.h"
+ #include "version.h"
+ #include "mallocvar.h"
+ #include "xmlrpc-c/string_int.h"
+ #include "xmlrpc-c/abyss.h"
++#include "trace.h"
+ #include "server.h"
+ #include "session.h"
+ #include "file.h"
+@@ -39,10 +43,6 @@ ResponseError2(TSession *   const sessionP,
+     const char * errorDocument;
+-    ResponseAddField(sessionP, "Content-type", "text/html");
+-
+-    ResponseWriteStart(sessionP);
+-    
+     xmlrpc_asprintf(&errorDocument,
+                     "<HTML><HEAD><TITLE>Error %d</TITLE></HEAD>"
+                     "<BODY>"
+@@ -51,8 +51,12 @@ ResponseError2(TSession *   const sessionP,
+                     "</BODY>"
+                     "</HTML>",
+                     sessionP->status, sessionP->status, explanation);
+-    
+-    ConnWrite(sessionP->conn, errorDocument, strlen(errorDocument)); 
++
++      ResponseAddField(sessionP, "Content-type", "text/html");
++    ResponseContentLength(sessionP, strlen(errorDocument));
++
++      if (ResponseWriteStart(sessionP))
++        ConnWrite(sessionP->connP, errorDocument, strlen(errorDocument)); 
+     xmlrpc_strfree(errorDocument);
+ }
+@@ -123,20 +127,63 @@ ResponseStatusErrno(TSession * const sessionP) {
++static bool
++isValidHttpToken(const char * const token) {
++
++    char const separators[] = "()<>@,;:\\\"/[]?={} \t";
++    const char * p;
++    bool valid;
++
++    for (p = &token[0], valid = true; *p; ++p) {
++        if (!isprint(*p) || strchr(separators, *p))
++            valid = false;
++    }
++    return valid;
++}
++
++
++
++
++static bool
++isValidHttpText(const char * const text) {
++
++    const char * p;
++    bool valid;
++
++    for (p = &text[0], valid = true; *p; ++p) {
++        if (!isprint(*p))
++            valid = false;
++    }
++    return valid;
++}
++
++
++
+ abyss_bool
+ ResponseAddField(TSession *   const sessionP,
+                  const char * const name,
+                  const char * const value) {
+-    return TableAdd(&sessionP->response_headers, name, value);
++    abyss_bool succeeded;
++    
++    if (!isValidHttpToken(name)) {
++        TraceMsg("Supplied HTTP header field name is not a valid HTTP token");
++        succeeded = false;
++    } else if (!isValidHttpText(value)) {
++        TraceMsg("Supplied HTTP header field value is not valid HTTP text");
++        succeeded = false;
++    } else {
++        succeeded = TableAdd(&sessionP->responseHeaderFields, name, value);
++    }
++    return succeeded;
+ }
+ static void
+-addConnectionHeader(TSession * const sessionP) {
++addConnectionHeaderFld(TSession * const sessionP) {
+-    struct _TServer * const srvP = ConnServer(sessionP->conn)->srvP;
++    struct _TServer * const srvP = ConnServer(sessionP->connP)->srvP;
+     if (HTTPKeepalive(sessionP)) {
+         const char * keepaliveValue;
+@@ -156,7 +203,7 @@ addConnectionHeader(TSession * const sessionP) {
+ static void
+-addDateHeader(TSession * const sessionP) {
++addDateHeaderFld(TSession * const sessionP) {
+     if (sessionP->status >= 200) {
+         const char * dateValue;
+@@ -173,11 +220,11 @@ addDateHeader(TSession * const sessionP) {
+ static void
+-addServerHeader(TSession * const sessionP) {
++addServerHeaderFld(TSession * const sessionP) {
+     const char * serverValue;
+-    xmlrpc_asprintf(&serverValue, "XMLRPC_ABYSS/%s", XMLRPC_C_VERSION);
++    xmlrpc_asprintf(&serverValue, "Freeswitch xmlrpc-c_abyss /%s", XMLRPC_C_VERSION);
+     ResponseAddField(sessionP, "Server", serverValue);
+@@ -186,17 +233,107 @@ addServerHeader(TSession * const sessionP) {
+-void
+-ResponseWriteStart(TSession * const sessionP) {
++static unsigned int
++leadingWsCt(const char * const arg) {
++
++    unsigned int i;
++
++    for (i = 0; arg[i] && isspace(arg[i]); ++i);
++
++    return i;
++}
++
+-    struct _TServer * const srvP = ConnServer(sessionP->conn)->srvP;
++
++static unsigned int
++trailingWsPos(const char * const arg) {
+     unsigned int i;
++    for (i = strlen(arg); i > 0 && isspace(arg[i-1]); --i);
++
++    return i;
++}
++
++
++
++static const char *
++formatFieldValue(const char * const unformatted) {
++/*----------------------------------------------------------------------------
++   Return the string of characters that goes after the colon on the
++   HTTP header field line, given that 'unformatted' is its basic value.
++-----------------------------------------------------------------------------*/
++    const char * retval;
++
++    /* An HTTP header field value may not have leading or trailing white
++       space.
++    */
++    char * buffer;
++
++    buffer = malloc(strlen(unformatted) + 1);
++
++    if (buffer == NULL)
++        retval = xmlrpc_strnomemval();
++    else {
++        unsigned int const lead  = leadingWsCt(unformatted);
++        unsigned int const trail = trailingWsPos(unformatted);
++        assert(trail >= lead);
++        strncpy(buffer, &unformatted[lead], trail - lead);
++        buffer[trail - lead] = '\0';
++        retval = buffer;
++    }
++    return retval;
++}
++
++
++
++static abyss_bool
++sendHeader(TConn * const connP,
++           TTable  const fields) {
++/*----------------------------------------------------------------------------
++   Send the HTTP response header whose fields are fields[].
++
++   Don't include the blank line that separates the header from the body.
++
++   fields[] contains syntactically valid HTTP header field names and values.
++   But to the extent that int contains undefined field names or semantically
++   invalid values, the header we send is invalid.
++-----------------------------------------------------------------------------*/
++    unsigned int i;
++      abyss_bool ret = TRUE;
++    for (i = 0; i < fields.size && ret; ++i) {
++        TTableItem * const fieldP = &fields.item[i];
++        const char * const fieldValue = formatFieldValue(fieldP->value);
++
++        const char * line;
++
++        xmlrpc_asprintf(&line, "%s: %s\r\n", fieldP->name, fieldValue);
++        if (!ConnWrite(connP, line, strlen(line)))
++                      ret = FALSE;
++        xmlrpc_strfree(line);
++        xmlrpc_strfree(fieldValue);
++    }
++      return ret;
++}
++
++
++abyss_bool
++ResponseWriteStart(TSession * const sessionP) {
++/*----------------------------------------------------------------------------
++   Begin the process of sending the response for an HTTP transaction
++   (i.e. Abyss session).
++
++   As part of this, send the entire HTTP header for the response.
++-----------------------------------------------------------------------------*/
++    struct _TServer * const srvP = ConnServer(sessionP->connP)->srvP;
++
+     assert(!sessionP->responseStarted);
+     if (sessionP->status == 0) {
+         /* Handler hasn't set status.  That's an error */
++        TraceMsg("Abyss client called ResponseWriteStart() on "
++                 "a session for which he has not set the request status "
++                 "('status' member of TSession).  Using status 500\n");
+         sessionP->status = 500;
+     }
+@@ -205,31 +342,33 @@ ResponseWriteStart(TSession * const sessionP) {
+     {
+         const char * const reason = HTTPReasonByStatus(sessionP->status);
+         const char * line;
++              abyss_bool ret = TRUE;
+         xmlrpc_asprintf(&line,"HTTP/1.1 %u %s\r\n", sessionP->status, reason);
+-        ConnWrite(sessionP->conn, line, strlen(line));
++        ret = ConnWrite(sessionP->connP, line, strlen(line));
+         xmlrpc_strfree(line);
++              if (!ret) return FALSE;
+     }
+-    addConnectionHeader(sessionP);
++
++    addConnectionHeaderFld(sessionP);
+     if (sessionP->chunkedwrite && sessionP->chunkedwritemode)
+         ResponseAddField(sessionP, "Transfer-Encoding", "chunked");
+-    addDateHeader(sessionP);
++    addDateHeaderFld(sessionP);
+     if (srvP->advertise)
+-        addServerHeader(sessionP);
++        addServerHeaderFld(sessionP);
+-    /* send all the fields */
+-    for (i = 0; i < sessionP->response_headers.size; ++i) {
+-        TTableItem * const ti = &sessionP->response_headers.item[i];
+-        const char * line;
+-        xmlrpc_asprintf(&line, "%s: %s\r\n", ti->name, ti->value);
+-        ConnWrite(sessionP->conn, line, strlen(line));
+-        xmlrpc_strfree(line);
+-    }
++    /* Note that sessionP->responseHeaderFields is defined to contain
++       syntactically but not necessarily semantically valid header
++       field names and values.
++    */
++    if (sendHeader(sessionP->connP, sessionP->responseHeaderFields))
++              if (ConnWrite(sessionP->connP, "\r\n", 2))
++                      return TRUE;
+-    ConnWrite(sessionP->conn, "\r\n", 2);  
++      return FALSE;
+ }
+@@ -273,6 +412,26 @@ ResponseContentLength(TSession *      const sessionP,
+ }
++
++void
++ResponseAccessControl(TSession *        const abyssSessionP, 
++                      ResponseAccessCtl const accessControl) {
++
++    if (accessControl.allowOrigin) {
++        ResponseAddField(abyssSessionP, "Access-Control-Allow-Origin",
++                         accessControl.allowOrigin);
++        ResponseAddField(abyssSessionP, "Access-Control-Allow-Methods",
++                         "POST");
++        if (accessControl.expires) {
++            char buffer[64];
++            sprintf(buffer, "%u", accessControl.maxAge);
++            ResponseAddField(abyssSessionP, "Access-Control-Max-Age", buffer);
++        }
++    }
++}
++
++
++
+ /*********************************************************************
+ ** MIMEType
+ *********************************************************************/
+@@ -309,6 +468,8 @@ void
+ MIMETypeDestroy(MIMEType * const MIMETypeP) {
+     PoolFree(&MIMETypeP->pool);
++
++    free(MIMETypeP);
+ }
+@@ -330,6 +491,9 @@ MIMETypeTerm(void) {
+     if (globalMimeTypeP == NULL)
+         abort();
++      ListFree(&globalMimeTypeP->extList);
++      ListFree(&globalMimeTypeP->typeList);
++
+     MIMETypeDestroy(globalMimeTypeP);
+     globalMimeTypeP = NULL;
+@@ -595,13 +759,17 @@ mimeTypeGuessFromFile(MIMEType *   const MIMETypeP,
+     if (ext && MIMETypeP)
+         retval = MIMETypeFromExt2(MIMETypeP, ext);
+-    
++
++
+     if (!retval) {
+         if (fileContainsText(fileName))
+             retval = "text/plain";
+         else
+             retval = "application/octet-stream";  
+     }
++
++      if (!strcmp(retval, "text/plain"))
++              retval = "text/plain; charset=utf-8";
+     return retval;
+ }
+@@ -625,55 +793,6 @@ MIMETypeGuessFromFile(const char * const fileName) {
+                                   
+-/*********************************************************************
+-** Base64
+-*********************************************************************/
+-
+-void
+-Base64Encode(const char * const chars,
+-             char *       const base64) {
+-
+-    /* Conversion table. */
+-    static char tbl[64] = {
+-        'A','B','C','D','E','F','G','H',
+-        'I','J','K','L','M','N','O','P',
+-        'Q','R','S','T','U','V','W','X',
+-        'Y','Z','a','b','c','d','e','f',
+-        'g','h','i','j','k','l','m','n',
+-        'o','p','q','r','s','t','u','v',
+-        'w','x','y','z','0','1','2','3',
+-        '4','5','6','7','8','9','+','/'
+-    };
+-
+-    uint i;
+-    uint32_t length;
+-    char * p;
+-    const char * s;
+-    
+-    length = strlen(chars);  /* initial value */
+-    s = &chars[0];  /* initial value */
+-    p = &base64[0];  /* initial value */
+-    /* Transform the 3x8 bits to 4x6 bits, as required by base64. */
+-    for (i = 0; i < length; i += 3) {
+-        *p++ = tbl[s[0] >> 2];
+-        *p++ = tbl[((s[0] & 3) << 4) + (s[1] >> 4)];
+-        *p++ = tbl[((s[1] & 0xf) << 2) + (s[2] >> 6)];
+-        *p++ = tbl[s[2] & 0x3f];
+-        s += 3;
+-    }
+-    
+-    /* Pad the result if necessary... */
+-    if (i == length + 1)
+-        *(p - 1) = '=';
+-    else if (i == length + 2)
+-        *(p - 1) = *(p - 2) = '=';
+-    
+-    /* ...and zero-terminate it. */
+-    *p = '\0';
+-}
+-
+-
+-
+ /******************************************************************************
+ **
+ ** http.c
+diff --git a/libs/xmlrpc-c/lib/abyss/src/server.c b/libs/xmlrpc-c/lib/abyss/src/server.c
+index a52c823..392f368 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/server.c
++++ b/libs/xmlrpc-c/lib/abyss/src/server.c
+@@ -1,4 +1,8 @@
+ /* Copyright information is at end of file */
++
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
++#define _BSD_SOURCE  /* Make sure setgroups()is in <grp.h> */
++
+ #include <assert.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -35,6 +39,17 @@
+ #include "server.h"
++struct uriHandler {
++    initHandlerFn init;
++    termHandlerFn term;
++    handleReq3Fn  handleReq3;
++    handleReq2Fn  handleReq2;
++    URIHandler    handleReq1;
++    void *        userdata;
++};
++
++
++
+ void
+ ServerTerminate(TServer * const serverP) {
+@@ -44,10 +59,11 @@ ServerTerminate(TServer * const serverP) {
+     if (srvP->chanSwitchP) {
+         ChanSwitchInterrupt(srvP->chanSwitchP);
+-        ChanSwitchDestroy(srvP->chanSwitchP);
+       }
+ }
++
++
+ void
+ ServerResetTerminate(TServer * const serverP) {
+@@ -108,25 +124,29 @@ logClose(struct _TServer * const srvP) {
+ static void
+ initChanSwitchStuff(struct _TServer * const srvP,
+                     bool              const noAccept,
+-                    TChanSwitch *     const userSwitchP,
++                    TChanSwitch *     const chanSwitchP,
++                    bool              const userChanSwitch,
+                     unsigned short    const port,
+                     const char **     const errorP) {
+     
+-    if (userSwitchP) {
++
++    if (chanSwitchP) {
+         *errorP = NULL;
+         srvP->serverAcceptsConnections = TRUE;
+-        srvP->chanSwitchP = userSwitchP;
++        srvP->chanSwitchP = chanSwitchP;
++        srvP->weCreatedChanSwitch = !userChanSwitch;
+     } else if (noAccept) {
+         *errorP = NULL;
+         srvP->serverAcceptsConnections = FALSE;
+         srvP->chanSwitchP = NULL;
++        srvP->weCreatedChanSwitch = FALSE;
+     } else {
+         *errorP = NULL;
+         srvP->serverAcceptsConnections = TRUE;
+         srvP->chanSwitchP = NULL;
++        srvP->weCreatedChanSwitch = FALSE;
+         srvP->port = port;
+     }
+-    srvP->weCreatedChanSwitch = FALSE;
+ }
+@@ -134,7 +154,8 @@ initChanSwitchStuff(struct _TServer * const srvP,
+ static void
+ createServer(struct _TServer ** const srvPP,
+              bool               const noAccept,
+-             TChanSwitch *      const userChanSwitchP,
++             TChanSwitch *      const chanSwitchP,
++             bool               const userChanSwitch,
+              unsigned short     const portNumber,             
+              const char **      const errorP) {
+@@ -148,8 +169,8 @@ createServer(struct _TServer ** const srvPP,
+     } else {
+         srvP->terminationRequested = false;
+-        initChanSwitchStuff(srvP, noAccept, userChanSwitchP, portNumber,
+-                            errorP);
++        initChanSwitchStuff(srvP, noAccept, chanSwitchP, userChanSwitch,
++                            portNumber, errorP);
+         if (!*errorP) {
+             srvP->builtinHandlerP = HandlerCreate();
+@@ -167,6 +188,7 @@ createServer(struct _TServer ** const srvPP,
+                 srvP->timeout          = 15;
+                 srvP->advertise        = TRUE;
+                 srvP->useSigchld       = FALSE;
++                srvP->uriHandlerStackSize = 0;
+             
+                 initUnixStuff(srvP);
+@@ -218,11 +240,14 @@ ServerCreate(TServer *       const serverP,
+              const char *    const logFileName) {
+     bool const noAcceptFalse = FALSE;
++    bool const userChanSwitchFalse = FALSE;
+     bool success;
+     const char * error;
+-    createServer(&serverP->srvP, noAcceptFalse, NULL, portNumber, &error);
++    createServer(&serverP->srvP, noAcceptFalse,
++                 NULL, userChanSwitchFalse,
++                 portNumber, &error);
+     if (error) {
+         TraceMsg(error);
+@@ -291,10 +316,13 @@ ServerCreateSocket(TServer *    const serverP,
+         xmlrpc_strfree(error);
+     } else {
+         bool const noAcceptFalse = FALSE;
++        bool const userChanSwitchFalse = FALSE;
+         const char * error;
+-        createServer(&serverP->srvP, noAcceptFalse, chanSwitchP, 0, &error);
++        createServer(&serverP->srvP, noAcceptFalse,
++                     chanSwitchP, userChanSwitchFalse,
++                     0, &error);
+         if (error) {
+             TraceMsg(error);
+@@ -305,6 +333,8 @@ ServerCreateSocket(TServer *    const serverP,
+             
+             setNamePathLog(serverP, name, filesPath, logFileName);
+         }
++        if (!success)
++            ChanSwitchDestroy(chanSwitchP);
+     }
+     return success;
+@@ -319,11 +349,14 @@ ServerCreateNoAccept(TServer *    const serverP,
+                      const char * const logFileName) {
+     bool const noAcceptTrue = TRUE;
++    bool const userChanSwitchFalse = FALSE;
+     bool success;
+     const char * error;
+-    createServer(&serverP->srvP, noAcceptTrue, NULL, 0, &error);
++    createServer(&serverP->srvP, noAcceptTrue,
++                 NULL, userChanSwitchFalse,
++                 0, &error);
+     if (error) {
+         TraceMsg(error);
+@@ -345,11 +378,14 @@ ServerCreateSwitch(TServer *     const serverP,
+                    const char ** const errorP) {
+     
+     bool const noAcceptFalse = FALSE;
++    bool const userChanSwitchTrue = TRUE;
+     assert(serverP);
+     assert(chanSwitchP);
+-    createServer(&serverP->srvP, noAcceptFalse, chanSwitchP, 0, errorP);
++    createServer(&serverP->srvP, noAcceptFalse,
++                 chanSwitchP, userChanSwitchTrue,
++                 0, errorP);
+ }
+@@ -383,7 +419,7 @@ terminateHandlers(TList * const handlersP) {
+     if (handlersP->item) {
+         unsigned int i;
+         for (i = handlersP->size; i > 0; --i) {
+-            URIHandler2 * const handlerP = handlersP->item[i-1];
++            struct uriHandler * const handlerP = handlersP->item[i-1];
+             if (handlerP->term)
+                 handlerP->term(handlerP->userdata);
+         }
+@@ -397,7 +433,7 @@ ServerFree(TServer * const serverP) {
+     struct _TServer * const srvP = serverP->srvP;
+-    if (srvP->weCreatedChanSwitch)
++    if (srvP->weCreatedChanSwitch && srvP->chanSwitchP)
+         ChanSwitchDestroy(srvP->chanSwitchP);
+     xmlrpc_strfree(srvP->name);
+@@ -456,7 +492,7 @@ void
+ ServerSetKeepaliveTimeout(TServer *       const serverP,
+                           xmlrpc_uint32_t const keepaliveTimeout) {
+-    serverP->srvP->keepalivetimeout = keepaliveTimeout;
++    serverP->srvP->keepalivetimeout = MAX(keepaliveTimeout, 1);
+ }
+@@ -465,7 +501,7 @@ void
+ ServerSetKeepaliveMaxConn(TServer *       const serverP,
+                           xmlrpc_uint32_t const keepaliveMaxConn) {
+-    serverP->srvP->keepalivemaxconn = keepaliveMaxConn;
++    serverP->srvP->keepalivemaxconn = MAX(keepaliveMaxConn, 1);
+ }
+@@ -497,6 +533,22 @@ ServerSetMimeType(TServer *  const serverP,
++static URIHandler2
++makeUriHandler2(const struct uriHandler * const handlerP) {
++
++    URIHandler2 retval;
++
++    retval.init       = handlerP->init;
++    retval.term       = handlerP->term;
++    retval.handleReq2 = handlerP->handleReq2;
++    retval.handleReq1 = handlerP->handleReq1;
++    retval.userdata   = handlerP->userdata;
++
++    return retval;
++}
++
++
++
+ static void
+ runUserHandler(TSession *        const sessionP,
+                struct _TServer * const srvP) {
+@@ -507,11 +559,14 @@ runUserHandler(TSession *        const sessionP,
+     for (i = srvP->handlers.size-1, handled = FALSE;
+          i >= 0 && !handled;
+          --i) {
+-        URIHandler2 * const handlerP = srvP->handlers.item[i];
++        const struct uriHandler * const handlerP = srvP->handlers.item[i];
+         
+-        if (handlerP->handleReq2)
+-            handlerP->handleReq2(handlerP, sessionP, &handled);
+-        else if (handlerP->handleReq1)
++        if (handlerP->handleReq3)
++            handlerP->handleReq3(handlerP->userdata, sessionP, &handled);
++        if (handlerP->handleReq2) {
++            URIHandler2 handler2 = makeUriHandler2(handlerP);
++            handlerP->handleReq2(&handler2, sessionP, &handled);
++        } else if (handlerP->handleReq1)
+             handled = handlerP->handleReq1(sessionP);
+     }
+@@ -524,24 +579,81 @@ runUserHandler(TSession *        const sessionP,
+ static void
+-processDataFromClient(TConn *  const connectionP,
+-                      bool     const lastReqOnConn,
+-                      uint32_t const timeout,
+-                      bool *   const keepAliveP) {
++handleReqTooNewHttpVersion(TSession * const sessionP) {
++
++    const char * msg;
++
++    ResponseStatus(sessionP, 505);
++
++    xmlrpc_asprintf(&msg, "Request is in HTTP Version %u"
++                    "We understand only HTTP 1",
++                    sessionP->version.major);
++    
++    ResponseError2(sessionP, msg);
++    
++    xmlrpc_strfree(msg);
++}
+-    TSession session = {0};  /* initilization, an afforadble alternative to random memory being misinterpreted! */
++
++
++static void
++handleReqInvalidURI(TSession * const sessionP) {
++
++    ResponseStatus(sessionP, 400);
++
++    ResponseError2(sessionP, "Invalid URI");
++}
++
++
++
++static void
++processRequestFromClient(TConn *  const connectionP,
++                         bool     const lastReqOnConn,
++                         uint32_t const timeout,
++                         bool *   const keepAliveP) {
++/*----------------------------------------------------------------------------
++   Get and execute one HTTP request from client connection *connectionP,
++   through the connection buffer.  I.e. Some of the request may already be in
++   the connection buffer, and we may leave some of later requests in the
++   connection buffer.
++
++   In fact, due to timing considerations, we assume the client has begun
++   sending the request, which as a practical matter means Caller has already
++   deposited some of it in the connection buffer.
++
++   If there isn't one full request in the buffer now, we wait for one full
++   request to come through the buffer, up to 'timeout'.
++
++   We return as *keepAliveP whether Caller should keep the connection
++   alive for a while for possible future requests from the client, based
++   on 'lastReqOnConn' and the content of the HTTP request.
++
++   Executing the request consists primarily of calling the URI handlers that
++   are associated with the connection (*connectionP), passing each the request
++   information we read.  Each handler can respond according to the HTTP method
++   (GET, POST, etc) and URL etc, and that response may be either to
++   execute the request and send the response or refuse the request and let
++   us call the next one in the list.
++-----------------------------------------------------------------------------*/
++    TSession session;
++    const char * error;
++    uint16_t httpErrorCode;
+     RequestInit(&session, connectionP);
+     session.serverDeniesKeepalive = lastReqOnConn;
+         
+-    RequestRead(&session, timeout);
++    RequestRead(&session, timeout, &error, &httpErrorCode);
+-    if (session.status == 0) {
++    if (error) {
++        ResponseStatus(&session, httpErrorCode);
++        ResponseError2(&session, error);
++        xmlrpc_strfree(error);
++    } else {
+         if (session.version.major >= 2)
+-            ResponseStatus(&session, 505);
++            handleReqTooNewHttpVersion(&session);
+         else if (!RequestValidURI(&session))
+-            ResponseStatus(&session, 400);
++            handleReqInvalidURI(&session);
+         else
+             runUserHandler(&session, connectionP->server->srvP);
+     }
+@@ -582,21 +694,35 @@ serverFunc(void * const userHandle) {
+     connectionDone = FALSE;
+     while (!connectionDone) {
+-        bool success;
++        bool timedOut, eof;
++        const char * readError;
+         
+-        /* Wait to read until timeout */
+-        success = ConnRead(connectionP, srvP->keepalivetimeout);
+-
+-        if (!success)
++        /* Wait for and get beginning (at least ) of next request.  We do
++           this separately from getting the rest of the request because we
++           treat dead time between requests differently from dead time in
++           the middle of a request.
++        */
++        ConnRead(connectionP, srvP->keepalivetimeout,
++                 &timedOut, &eof, &readError);
++
++        if (readError) {
++            TraceMsg("Failed to read from Abyss connection.  %s", readError);
++            xmlrpc_strfree(readError);
+             connectionDone = TRUE;
+-        else {
++        } else if (timedOut) {
++            connectionDone = TRUE;
++        } else if (eof) {
++            connectionDone = TRUE;
++        } else if (srvP->terminationRequested) {
++            connectionDone = TRUE;
++        } else {
+             bool const lastReqOnConn =
+                 requestCount + 1 >= srvP->keepalivemaxconn;
+             bool keepalive;
+             
+-            processDataFromClient(connectionP, lastReqOnConn, srvP->timeout,
+-                                  &keepalive);
++            processRequestFromClient(connectionP, lastReqOnConn, srvP->timeout,
++                                     &keepalive);
+             
+             ++requestCount;
+@@ -611,6 +737,14 @@ serverFunc(void * const userHandle) {
++/* This is the maximum amount of stack space, in bytes, serverFunc()
++   itself requires -- not counting what the user's request handler
++   (which serverFunc() calls) requires.
++*/
++#define SERVER_FUNC_STACK 1024
++
++
++
+ static void
+ createSwitchFromPortNum(unsigned short const portNumber,
+                         TChanSwitch ** const chanSwitchPP,
+@@ -700,8 +834,8 @@ ServerInit(TServer * const serverP) {
+     }
+     if (retError) {
+         TraceMsg("ServerInit() failed.  %s", retError);
+-              return 0;
+         xmlrpc_strfree(retError);
++              return 0;
+     }
+       return 1;
+@@ -920,7 +1054,9 @@ acceptAndProcessNextConnection(
+             waitForConnectionCapacity(outstandingConnListP);
+             
+             ConnCreate(&connectionP, serverP, channelP, channelInfoP,
+-                       &serverFunc, &destroyChannel, ABYSS_BACKGROUND,
++                       &serverFunc,
++                       SERVER_FUNC_STACK + srvP->uriHandlerStackSize,
++                       &destroyChannel, ABYSS_BACKGROUND,
+                        srvP->useSigchld,
+                        &error);
+             if (!error) {
+@@ -932,6 +1068,8 @@ acceptAndProcessNextConnection(
+                    destroy *channelP.
+                 */
+             } else {
++                TraceMsg("Failed to create an Abyss connection "
++                         "out of new channel %lx.  %s", channelP, error);
+                 xmlrpc_strfree(error);
+                 ChannelDestroy(channelP);
+                 free(channelInfoP);
+@@ -998,7 +1136,8 @@ serverRunChannel(TServer *     const serverP,
+     ConnCreate(&connectionP, 
+                serverP, channelP, channelInfoP,
+-               &serverFunc, NULL, ABYSS_FOREGROUND, srvP->useSigchld,
++               &serverFunc, SERVER_FUNC_STACK + srvP->uriHandlerStackSize,
++               NULL, ABYSS_FOREGROUND, srvP->useSigchld,
+                &error);
+     if (error) {
+         xmlrpc_asprintf(errorP, "Couldn't create HTTP connection out of "
+@@ -1230,24 +1369,43 @@ ServerDaemonize(TServer * const serverP) {
+-void
+-ServerAddHandler2(TServer *     const serverP,
+-                  URIHandler2 * const handlerArgP,
+-                  abyss_bool *  const successP) {
++static void
++serverAddHandler(TServer *     const serverP,
++                 initHandlerFn       init,
++                 termHandlerFn       term,
++                 URIHandler          handleReq1,
++                 handleReq2Fn        handleReq2,
++                 handleReq3Fn        handleReq3,
++                 void *        const userdata,
++                 size_t        const handleReqStackSizeReq,
++                 abyss_bool *  const successP) {
+-    URIHandler2 * handlerP;
++    struct _TServer * const srvP = serverP->srvP;
++    size_t handleReqStackSize =
++        handleReqStackSizeReq ? handleReqStackSizeReq : 128*1024;
++
++    struct uriHandler * handlerP;
+     MALLOCVAR(handlerP);
+     if (handlerP == NULL)
+         *successP = FALSE;
+     else {
+-        *handlerP = *handlerArgP;
+-
++        handlerP->init       = init;
++        handlerP->term       = term;
++        handlerP->handleReq1 = handleReq1;
++        handlerP->handleReq2 = handleReq2;
++        handlerP->handleReq3 = handleReq3;
++        handlerP->userdata   = userdata;
++
++        srvP->uriHandlerStackSize =
++            MAX(srvP->uriHandlerStackSize, handleReqStackSize);
++        
+         if (handlerP->init == NULL)
+             *successP = TRUE;
+-        else
+-            handlerP->init(handlerP, successP);
+-
++        else {
++            URIHandler2 handler2 = makeUriHandler2(handlerP);
++            handlerP->init(&handler2, successP);
++        }
+         if (*successP)
+             *successP = ListAdd(&serverP->srvP->handlers, handlerP);
+@@ -1258,20 +1416,42 @@ ServerAddHandler2(TServer *     const serverP,
+-static URIHandler2 *
+-createHandler(URIHandler const function) {
++void
++ServerAddHandler3(TServer *                        const serverP,
++                  const struct ServerReqHandler3 * const handlerP,
++                  abyss_bool *                     const successP) {
+-    URIHandler2 * handlerP;
++    serverAddHandler(serverP, NULL, handlerP->term, NULL, NULL,
++                     handlerP->handleReq, handlerP->userdata,
++                     handlerP->handleReqStackSize, successP);
++}
+-    MALLOCVAR(handlerP);
+-    if (handlerP != NULL) {
+-        handlerP->init       = NULL;
+-        handlerP->term       = NULL;
+-        handlerP->userdata   = NULL;
+-        handlerP->handleReq2 = NULL;
+-        handlerP->handleReq1 = function;
+-    }
+-    return handlerP;
++
++
++void
++ServerAddHandler2(TServer *     const serverP,
++                  URIHandler2 * const handlerArgP,
++                  abyss_bool *  const successP) {
++
++    /* This generation of the URI handler interface is strange because
++       it went through an unfortunate evolution.  So it halfway looks like
++       the use supplies a handler object and Abyss calls its methods, and
++       halfway looks like the user simply describes his handler.
++
++       Abyss calls handleReq2 with a pointer to a URIHandler2 like the
++       one which is our argument, but it isn't the same one.  User can
++       discard *handlerArgP as soon as we return.
++    */
++    
++    serverAddHandler(serverP,
++                     handlerArgP->init,
++                     handlerArgP->term,
++                     handlerArgP->handleReq1,
++                     handlerArgP->handleReq2,
++                     NULL,
++                     handlerArgP->userdata,
++                     0,
++                     successP);
+ }
+@@ -1280,35 +1460,45 @@ abyss_bool
+ ServerAddHandler(TServer *  const serverP,
+                  URIHandler const function) {
+-    URIHandler2 * handlerP;
+-    bool success;
++    URIHandler2 handler;
++    abyss_bool success;
+-    handlerP = createHandler(function);
++    handler.init       = NULL;
++    handler.term       = NULL;
++    handler.userdata   = NULL;
++    handler.handleReq2 = NULL;
++    handler.handleReq1 = function;
+-    if (handlerP == NULL)
+-        success = FALSE;
+-    else {
+-        success = ListAdd(&serverP->srvP->handlers, handlerP);
++    ServerAddHandler2(serverP, &handler, &success);
+-        if (!success)
+-            free(handlerP);
+-    }
+     return success;
+ }
++/* This is the maximum amount of stack we allow a user's default URI
++   handler to use.  (If he exceeds this, results are undefined).
++
++   We really ought to provide user a way to set this, as he can for
++   his non-default URI handlers.
++*/
++#define USER_DEFAULT_HANDLER_STACK 128*1024
++
+ void
+ ServerDefaultHandler(TServer *  const serverP,
+                      URIHandler const handler) {
+     struct _TServer * const srvP = serverP->srvP;
+-    if (handler)
++    if (handler) {
+         srvP->defaultHandler = handler;
+-    else {
++        srvP->uriHandlerStackSize =
++            MAX(srvP->uriHandlerStackSize, USER_DEFAULT_HANDLER_STACK);
++    } else {
+         srvP->defaultHandler = HandlerDefaultBuiltin;
+         srvP->defaultHandlerContext = srvP->builtinHandlerP;
++        srvP->uriHandlerStackSize =
++            MAX(srvP->uriHandlerStackSize, HandlerDefaultBuiltinStack);
+     }
+ }
+diff --git a/libs/xmlrpc-c/lib/abyss/src/server.h b/libs/xmlrpc-c/lib/abyss/src/server.h
+index 39aa63e..ed414b8 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/server.h
++++ b/libs/xmlrpc-c/lib/abyss/src/server.h
+@@ -54,7 +54,7 @@ struct _TServer {
+            Server calls each one in order until one reports that it handled
+            it.
+-           Each item in the list of of type 'URIHandler2'.
++           Each item in the list of of type 'uriHandler'.
+         */
+     URIHandler defaultHandler;
+         /* The handler for HTTP requests that aren't claimed by any handler
+@@ -75,6 +75,12 @@ struct _TServer {
+            be aware of SIGCHLD and will instead poll for existence of PIDs
+            to determine if a child has died.
+         */
++    size_t uriHandlerStackSize;
++        /* The maximum amount of stack any URI handler request handler
++           function will use.  Note that this is just the requirement
++           of the function itself, not the stack size for the thread
++           that runs it.
++        */
+ #ifndef WIN32
+     uid_t uid;
+     gid_t gid;
+diff --git a/libs/xmlrpc-c/lib/abyss/src/session.c b/libs/xmlrpc-c/lib/abyss/src/session.c
+index ae3a078..f0488e4 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/session.c
++++ b/libs/xmlrpc-c/lib/abyss/src/session.c
+@@ -23,28 +23,34 @@ SessionRefillBuffer(TSession * const sessionP) {
+    I.e. read data from the socket.
+ -----------------------------------------------------------------------------*/
+-    struct _TServer * const srvP = sessionP->conn->server->srvP;
++    struct _TServer * const srvP = sessionP->connP->server->srvP;
+     bool failed;
+     failed = FALSE;  /* initial value */
+             
+     /* Reset our read buffer & flush data from previous reads. */
+-    ConnReadInit(sessionP->conn);
++    ConnReadInit(sessionP->connP);
+     if (sessionP->continueRequired)
+         failed = !HTTPWriteContinue(sessionP);
+     if (!failed) {
++        const char * readError;
++
+         sessionP->continueRequired = FALSE;
+-        /* Read more network data into our buffer.  If we encounter a
+-           timeout, exit immediately.  We're very forgiving about the
+-           timeout here.  We allow a full timeout per network read, which
+-           would allow somebody to keep a connection alive nearly
+-           indefinitely.  But it's hard to do anything intelligent here
+-           without very complicated code.
++        /* Read more network data into our buffer.  Fail if we time out before
++           client sends any data or client closes the connection or there's
++           some network error.  We're very forgiving about the timeout here.
++           We allow a full timeout per network read, which would allow
++           somebody to keep a connection alive nearly indefinitely.  But it's
++           hard to do anything intelligent here without very complicated code.
+         */
+-        failed = !ConnRead(sessionP->conn, srvP->timeout);    
++        ConnRead(sessionP->connP, srvP->timeout, NULL, NULL, &readError);     
++        if (readError) {
++            failed = TRUE;
++            xmlrpc_strfree(readError);
++        }
+     }
+     return !failed;
+ }
+@@ -54,7 +60,7 @@ SessionRefillBuffer(TSession * const sessionP) {
+ size_t
+ SessionReadDataAvail(TSession * const sessionP) {
+-    return sessionP->conn->buffersize - sessionP->conn->bufferpos;
++    return sessionP->connP->buffersize - sessionP->connP->bufferpos;
+ }
+@@ -73,18 +79,18 @@ SessionGetReadData(TSession *    const sessionP,
+    We return a pointer to the first byte as *outStartP, and the length in
+    bytes as *outLenP.  The memory pointed to belongs to the session.
+ -----------------------------------------------------------------------------*/
+-    uint32_t const bufferPos = sessionP->conn->bufferpos;
++    uint32_t const bufferPos = sessionP->connP->bufferpos;
+-    *outStartP = &sessionP->conn->buffer[bufferPos];
++    *outStartP = &sessionP->connP->buffer.t[bufferPos];
+-    assert(bufferPos <= sessionP->conn->buffersize);
++    assert(bufferPos <= sessionP->connP->buffersize);
+-    *outLenP = MIN(max, sessionP->conn->buffersize - bufferPos);
++    *outLenP = MIN(max, sessionP->connP->buffersize - bufferPos);
+     /* move pointer past the bytes we are returning */
+-    sessionP->conn->bufferpos += *outLenP;
++    sessionP->connP->bufferpos += *outLenP;
+-    assert(sessionP->conn->bufferpos <= sessionP->conn->buffersize);
++    assert(sessionP->connP->bufferpos <= sessionP->connP->buffersize);
+ }
+@@ -102,7 +108,7 @@ void
+ SessionGetChannelInfo(TSession * const sessionP,
+                       void **    const channelInfoPP) {
+     
+-    *channelInfoPP = sessionP->conn->channelInfoP;
++    *channelInfoPP = sessionP->connP->channelInfoP;
+ }
+@@ -125,25 +131,24 @@ SessionLog(TSession * const sessionP) {
+     
+     DateToLogString(sessionP->date, &date);
+     
+-    ConnFormatClientAddr(sessionP->conn, &peerInfo);
++    ConnFormatClientAddr(sessionP->connP, &peerInfo);
+     
+-    xmlrpc_asprintf(&logline, "%s - %s - [%s] \"%s\" %d %d",
++    xmlrpc_asprintf(&logline, "%s - %s - [%s] \"%s\" %d %u",
+                     peerInfo,
+                     user,
+                     date, 
+                     sessionP->validRequest ?
+                         sessionP->requestInfo.requestline : "???",
+                     sessionP->status,
+-                    sessionP->conn->outbytes
++                    sessionP->connP->outbytes
+         );
+     xmlrpc_strfree(peerInfo);
+     xmlrpc_strfree(date);
+     
+-    if (logline) {
+-        LogWrite(sessionP->conn->server, logline);
++    LogWrite(sessionP->connP->server, logline);
++
++    xmlrpc_strfree(logline);
+         
+-        xmlrpc_strfree(logline);
+-    }
+     return true;
+ }
+@@ -152,7 +157,7 @@ SessionLog(TSession * const sessionP) {
+ void *
+ SessionGetDefaultHandlerCtx(TSession * const sessionP) {
+-    struct _TServer * const srvP = sessionP->conn->server->srvP;
++    struct _TServer * const srvP = sessionP->connP->server->srvP;
+     return srvP->defaultHandlerContext;
+ }
+diff --git a/libs/xmlrpc-c/lib/abyss/src/session.h b/libs/xmlrpc-c/lib/abyss/src/session.h
+index 058d543..07700e9 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/session.h
++++ b/libs/xmlrpc-c/lib/abyss/src/session.h
+@@ -47,17 +47,29 @@ struct _TSession {
+            ResponseWriteStart())
+         */
+-    struct _TConn * conn;
++    struct _TConn * connP;
+     httpVersion version;
+-    TTable request_headers;
+-        /* All the headers in the HTTP request.  The key is the header
+-           name in lower case.  The value is the verbatim value from
+-           the header.
++    TTable requestHeaderFields;
++        /* All the fields of the header of the HTTP request.  The key is the
++           field name in lower case.  The value is the verbatim value from
++           the field.
+         */
+-    TTable response_headers;
++    TTable responseHeaderFields;
++        /* All the fields of the header of the HTTP response.
++           This gets successively computed; at any moment, it is the list of
++           fields the user has requested so far.  It also includes fields
++           Abyss itself has decided to include.  (Blechh.  This needs to be
++           cleaned up).
++
++           Each table item is an HTTP header field.  The Name component of the
++           table item is the header field name (it is syntactically valid but
++           not necessarily a defined field name) and the Value comonent is the
++           header field value (it is syntactically valid but not necessarily
++           semantically valid).
++        */
+     time_t date;
+diff --git a/libs/xmlrpc-c/lib/abyss/src/socket.c b/libs/xmlrpc-c/lib/abyss/src/socket.c
+index d76c611..4724e6d 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/socket.c
++++ b/libs/xmlrpc-c/lib/abyss/src/socket.c
+@@ -9,6 +9,7 @@
+ #include <assert.h>
+ #include <stdlib.h>
++#include "int.h"
+ #include "mallocvar.h"
+ #include "xmlrpc-c/abyss.h"
+ #include "channel.h"
+@@ -26,7 +27,7 @@
+    functions that are particular to an implementation.
+ */
+-static uint const socketSignature = 0x060609;
++static unsigned int const socketSignature = 0x060609;
+ static void
+diff --git a/libs/xmlrpc-c/lib/abyss/src/socket.h b/libs/xmlrpc-c/lib/abyss/src/socket.h
+index 20e8e09..50e67ba 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/socket.h
++++ b/libs/xmlrpc-c/lib/abyss/src/socket.h
+@@ -17,10 +17,12 @@
+    so there may be few or no users of TSocket.
+ ============================================================================*/
++#include "int.h"
++
+ #include "xmlrpc-c/abyss.h"
+ struct _TSocket {
+-    uint               signature;
++    unsigned int   signature;
+         /* With both background and foreground use of sockets, and
+            background being both fork and pthread, it is very easy to
+            screw up socket lifetime and try to destroy twice.  We use
+diff --git a/libs/xmlrpc-c/lib/abyss/src/socket_openssl.c b/libs/xmlrpc-c/lib/abyss/src/socket_openssl.c
+index e90be0d..3082851 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/socket_openssl.c
++++ b/libs/xmlrpc-c/lib/abyss/src/socket_openssl.c
+@@ -126,6 +126,8 @@ channelDestroy(TChannel * const channelP) {
+         SSL_shutdown(channelOpensslP->sslP);
+     free(channelOpensslP);
++      channelP->implP = 0;
++
+ }
+diff --git a/libs/xmlrpc-c/lib/abyss/src/socket_unix.c b/libs/xmlrpc-c/lib/abyss/src/socket_unix.c
+index 6231852..9d5dc25 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/socket_unix.c
++++ b/libs/xmlrpc-c/lib/abyss/src/socket_unix.c
+@@ -42,6 +42,7 @@
+ #define sane_close(_it) do {if (_it > -1) { close(_it) ; _it = -1; }} while (_it > -1)
++
+ typedef struct {
+     int interruptorFd;
+     int interrupteeFd;
+@@ -164,6 +165,7 @@ channelDestroy(TChannel * const channelP) {
+         sane_close(socketUnixP->fd);
+     free(socketUnixP);
++      channelP->implP = 0;
+ }
+@@ -180,37 +182,44 @@ channelWrite(TChannel *            const channelP,
+     size_t bytesLeft;
+     bool error;
++    int to_count = 0;
+     assert(sizeof(size_t) >= sizeof(len));
+-    for (bytesLeft = len, error = FALSE;
+-         bytesLeft > 0 && !error;
+-        ) {
+-        size_t const maxSend = (size_t)(-1) >> 1;
++    for (bytesLeft = len, error = FALSE; bytesLeft > 0 && !error; ) {
++        size_t const maxSend =        4096 * 2; /* with respect to resource allocation this might be a better value than 2^31 */ 
++        ssize_t rc = 0;
++
++        rc = send(socketUnixP->fd, buffer + len - bytesLeft, MIN(maxSend, bytesLeft), 0);
++              if (rc > 0) {          /* 0 means connection closed; < 0 means severe error ; > 0 means bytes transferred */
++                      to_count = 0;
++                  bytesLeft -= rc;
++                      if (ChannelTraceIsActive)
++                fprintf(stderr, "Abyss: sent %d bytes: '%.*s'\n", rc, MIN(rc, 4096), buffer + len - bytesLeft);
++              } 
++              else if (!rc) {
++                      error = TRUE;
++                      if (ChannelTraceIsActive)
++                              fprintf(stderr, "\nAbyss: send() failed: socket closed");
++              }
++              else {
++                      error = TRUE;
++            if (errno == EWOULDBLOCK) {
++                              usleep(20 * 1000); /* give socket another chance after xx millisec) */
++                              if (++to_count < 300) {
++                                      error = FALSE;
++                              }
++                              if (ChannelTraceIsActive)
++                                      fprintf(stderr, "\nAbyss: send() failed with errno %d (%s) cnt %d, will retry\n", errno, strerror(errno), to_count);
++                      }
++                      if (ChannelTraceIsActive)
++                  fprintf(stderr, "Abyss: send() failed with errno=%d (%s)", errno, strerror(errno));
++              }
++    }
++
++      *failedP = error;
+-        ssize_t rc;
+-        
+-        rc = send(socketUnixP->fd, &buffer[len-bytesLeft],
+-                  MIN(maxSend, bytesLeft), 0);
+-        if (ChannelTraceIsActive) {
+-            if (rc < 0)
+-                fprintf(stderr, "Abyss channel: send() failed.  errno=%d (%s)",
+-                        errno, strerror(errno));
+-            else if (rc == 0)
+-                fprintf(stderr, "Abyss channel: send() failed.  "
+-                        "Socket closed.\n");
+-            else
+-                fprintf(stderr, "Abyss channel: sent %u bytes: '%.*s'\n",
+-                        rc, rc, &buffer[len-bytesLeft]);
+-        }
+-        if (rc <= 0)
+-            /* 0 means connection closed; < 0 means severe error */
+-            error = TRUE;
+-        else
+-            bytesLeft -= rc;
+-    }
+-    *failedP = error;
+ }
+@@ -225,25 +234,29 @@ channelRead(TChannel *      const channelP,
+             bool *          const failedP) {
+     struct socketUnix * const socketUnixP = channelP->implP;
+-
+-    int rc;
+-    rc = recv(socketUnixP->fd, buffer, bufferSize, 0);
+-
+-    if (rc < 0) {
+-        *failedP = TRUE;
+-        if (ChannelTraceIsActive)
+-            fprintf(stderr, "Abyss channel: "
+-                    "Failed to receive data from socket.  "
+-                    "recv() failed with errno %d (%s)\n",
+-                    errno, strerror(errno));
+-    } else {
+-        *failedP = FALSE;
+-        *bytesReceivedP = rc;
+-
+-        if (ChannelTraceIsActive)
+-            fprintf(stderr, "Abyss channel: read %u bytes: '%.*s'\n",
+-                    *bytesReceivedP, (int)(*bytesReceivedP), buffer);
+-    }
++    int retries = 300; 
++      
++      for (*failedP = TRUE; *failedP && retries; retries--) {
++              int rc = recv(socketUnixP->fd, buffer, bufferSize, 0);
++              if (rc < 0) {
++                      if (errno == EWOULDBLOCK) {
++                              if (ChannelTraceIsActive)
++                                      fprintf(stderr, "\nAbyss: recv() failed with errno %d (%s) cnt %d, will retry\n", errno, strerror(errno), retries);
++                              usleep(20 * 1000); /* give socket another chance after xx millisec)*/
++                              *failedP = FALSE;
++                      } else {
++                              if (ChannelTraceIsActive)
++                                      fprintf(stderr, "\nAbyss: recv() failed with errno %d (%s)\n", errno, strerror(errno));
++                              break;
++                      }
++              } else {
++                      *failedP = FALSE;
++                      *bytesReceivedP = rc;
++
++                      if (ChannelTraceIsActive)
++                              fprintf(stderr, "Abyss channel: read %u bytes: '%.*s'\n", bytesReceivedP, (int)(*bytesReceivedP), buffer);
++              }
++      }
+ }
+@@ -270,7 +283,7 @@ channelWait(TChannel * const channelP,
+    one.
+    We return before the requested condition holds if 'timeoutMs'
+-   milliseconds pass.  timoutMs == TIME_INFINITE means infinity.
++   milliseconds pass.  timeoutMs == TIME_INFINITE means infinity.
+    We return before the requested condition holds if the process receives
+    (and catches) a signal, but only if it receives that signal a certain
+@@ -312,8 +325,7 @@ channelWait(TChannel * const channelP,
+     pollfds[1].events = POLLIN;
+     
+     rc = poll(pollfds, ARRAY_SIZE(pollfds),
+-              timeoutMs == TIME_INFINITE ? -1 : timeoutMs);
+-
++              timeoutMs == TIME_INFINITE ? -1 : (int)timeoutMs);
+     if (rc < 0) {
+         if (errno == EINTR) {
+@@ -477,10 +489,9 @@ makeChannelInfo(struct abyss_unix_chaninfo ** const channelInfoPP,
+         channelInfoP->peerAddrLen = peerAddrLen;
+         channelInfoP->peerAddr    = peerAddr;
+         
+-        *channelInfoPP = channelInfoP;
+-
+         *errorP = NULL;
+     }
++    *channelInfoPP = channelInfoP;
+ }
+@@ -493,13 +504,13 @@ makeChannelFromFd(int           const fd,
+     struct socketUnix * socketUnixP;
+     MALLOCVAR(socketUnixP);
+-
++    
+     if (socketUnixP == NULL)
+         xmlrpc_asprintf(errorP, "Unable to allocate memory for Unix "
+                         "channel descriptor");
+     else {
+         TChannel * channelP;
+-
++        
+         socketUnixP->fd = fd;
+         socketUnixP->userSuppliedFd = TRUE;
+@@ -507,6 +518,7 @@ makeChannelFromFd(int           const fd,
+         if (!*errorP) {
+             ChannelCreate(&channelVtbl, socketUnixP, &channelP);
++        
+             if (channelP == NULL)
+                 xmlrpc_asprintf(errorP, "Unable to allocate memory for "
+                                 "channel descriptor.");
+@@ -617,9 +629,13 @@ waitForConnection(struct socketUnix * const listenSocketP,
+    We return before the requested condition holds if the process receives
+    (and catches) a signal, but only if it receives that signal a certain
+-   time after we start running.  (That means this function isn't useful
++   time after we start running.  (That means this behavior isn't useful
+    for most purposes).
++   We furthermore return before the requested condition holds if someone sends
++   a byte through the listening socket's interrupt pipe (or has sent one
++   previously since the most recent time the pipe was drained).
++
+    Return *interruptedP == true if we return before there is a connection
+    ready to accept.
+ -----------------------------------------------------------------------------*/
+@@ -665,35 +681,42 @@ createChannelForAccept(int             const acceptedFd,
+    'peerAddr' is the address of the client, from accept().
+ -----------------------------------------------------------------------------*/
+-    struct socketUnix * acceptedSocketP;
++    struct abyss_unix_chaninfo * channelInfoP;
+-    MALLOCVAR(acceptedSocketP);
+-      
+-    if (!acceptedSocketP)
+-        xmlrpc_asprintf(errorP, "Unable to allocate memory");
+-    else {
+-        struct abyss_unix_chaninfo * channelInfoP;
+-        acceptedSocketP->fd = acceptedFd;
+-        acceptedSocketP->userSuppliedFd = FALSE;
+-                
+-        makeChannelInfo(&channelInfoP, peerAddr, sizeof(peerAddr), errorP);
+-        if (!*errorP) {
+-            TChannel * channelP;
++    makeChannelInfo(&channelInfoP, peerAddr, sizeof(peerAddr), errorP);
++    if (!*errorP) {
++        struct socketUnix * acceptedSocketP;
+-            ChannelCreate(&channelVtbl, acceptedSocketP, &channelP);
+-            if (!channelP)
+-                xmlrpc_asprintf(errorP,
+-                                "Failed to create TChannel object.");
+-            else {
+-                *errorP        = NULL;
+-                *channelPP     = channelP;
+-                *channelInfoPP = channelInfoP;
++        MALLOCVAR(acceptedSocketP);
++
++        if (!acceptedSocketP)
++            xmlrpc_asprintf(errorP, "Unable to allocate memory");
++        else {
++            acceptedSocketP->fd = acceptedFd;
++            acceptedSocketP->userSuppliedFd = FALSE;
++
++            initInterruptPipe(&acceptedSocketP->interruptPipe, errorP);
++
++            if (!*errorP) {
++                TChannel * channelP;
++
++                ChannelCreate(&channelVtbl, acceptedSocketP, &channelP);
++                if (!channelP)
++                    xmlrpc_asprintf(errorP,
++                                    "Failed to create TChannel object.");
++                else {
++                    *errorP        = NULL;
++                    *channelPP     = channelP;
++                    *channelInfoPP = channelInfoP;
++                }
++                if (*errorP)
++                    termInterruptPipe(&acceptedSocketP->interruptPipe);
+             }
+             if (*errorP)
+-                free(channelInfoP);
++                free(acceptedSocketP);
+         }
+         if (*errorP)
+-            free(acceptedSocketP);
++            free(channelInfoP);
+     }
+ }
+diff --git a/libs/xmlrpc-c/lib/abyss/src/socket_win.c b/libs/xmlrpc-c/lib/abyss/src/socket_win.c
+index d3f683a..187c307 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/socket_win.c
++++ b/libs/xmlrpc-c/lib/abyss/src/socket_win.c
+@@ -36,192 +36,62 @@ typedef struct tagSOCKERRS {
+    char * desc;   // description of error
+ } SOCKERR;
+-/* could/should perhaps be by the actual call,
+-   but for now, just one big list, with some repeats
+-*/
++/* list shamelessly copied from apache apr errorcodes.c - Grmt 2011-06-16 */
+ SOCKERR sSockErr[] = {
+-   { WSANOTINITIALISED,
+-     "WSANOTINITIALISED - "
+-     "WSAStartup must be called before using this function." },
+-   { WSAENETDOWN,
+-     "WSAENETDOWN - "
+-     "The network subsystem has failed." },
+-   { WSAEACCES,
+-     "WSAEACCES - "
+-     "Attempt to connect datagram socket to broadcast address failed "
+-     "because setsockopt option SO_BROADCAST is not enabled." },
+-   { WSAEADDRINUSE,
+-     "WSAEADDRINUSE - "
+-     "A process on the computer is already bound to the same fully-qualified "
+-     "address and the socket has not been marked to allow address reuse with "
+-     "SO_REUSEADDR. For example, the IP address and port are bound in the "
+-     "af_inet case). (See the SO_REUSEADDR socket option under setsockopt.)" },
+-   { WSAEADDRNOTAVAIL,
+-     "WSAEADDRNOTAVAIL - "
+-     "The specified address is not a valid address for this computer." },
+-   { WSAEFAULT,
+-     "WSAEFAULT - "
+-     "The name or namelen parameter is not a valid part of the user "
+-     "address space, the namelen parameter is too small, the name parameter "
+-     "contains an incorrect address format for the associated "
+-     "address family, or the first two bytes of the memory block "
+-     "specified by name does not match the address family associated with "
+-     "the socket descriptor s." },
+-   { WSAEINPROGRESS,
+-     "WSAEINPROGRESS - "
+-     "A blocking Windows Sockets 1.1 call is in progress, or the "
+-     "service provider is still processing a callback function." },
+-   { WSAEINVAL,
+-     "WSAEINVAL - "
+-     "The socket is already bound to an address." },
+-   { WSAENOBUFS,
+-     "WSAENOBUFS - "
+-     "Not enough buffers available, too many connections." },
+-   { WSAENOTSOCK,
+-     "WSAENOTSOCK - "
+-     "The descriptor is not a socket." },
+-
+-   // setsocketopt
+-   { WSAENETRESET,
+-     "WSAENETRESET - "
+-     "Connection has timed out when SO_KEEPALIVE is set." },
+-   { WSAENOPROTOOPT,
+-     "WSAENOPROTOOPT - "
+-     "The option is unknown or the specified provider "
+-     "or socket is not capable of implementing it "
+-     "(see SO_GROUP_PRIORITY limitations)." },
+-   { WSAENOTCONN,
+-     "WSAENOTCONN - "
+-     "Connection has been reset when SO_KEEPALIVE is set." },
+-
+-   // WSAStartup
+-   { WSASYSNOTREADY,
+-     "WSASYSNOTREADY - "
+-     "The underlying network subsystem is not ready for "
+-     "network communication." },
+-   { WSAVERNOTSUPPORTED,
+-     "WSAVERNOTSUPPORTED - "
+-     "The version of Windows Sockets function requested is not provided "
+-     "by this particular Windows Sockets implementation." },
+-   { WSAEINPROGRESS,
+-     "WSAEINPROGRESS - "
+-     "A blocking Windows Sockets 1.1 operation is in progress." },
+-   { WSAEPROCLIM,
+-     "WSAEPROCLIM - "
+-     "Limit on the number of tasks allowed by the Windows Sockets "
+-     "implementation has been reached." },
+-   { WSAEFAULT,
+-     "WSAEFAULT - "
+-     "The lpWSAData is not a valid pointer." },
+-   // listen
+-   { WSANOTINITIALISED,
+-     "WSANOTINITIALISED - "
+-     "A successful WSAStartup call must occur before using this function." },
+-   { WSAENETDOWN,
+-     "WSAENETDOWN - "
+-     "The network subsystem has failed." },
+-   { WSAEADDRINUSE,
+-     "WSAEADDRINUSE - "
+-     "The socket's local address is already in use and the socket "
+-     "was not marked to allow address reuse with SO_REUSEADDR.  "
+-     "This error usually occurs during execution of the bind function, "
+-     "but could be delayed until this function if the bind was to "
+-     "a partially wildcard address (involving ADDR_ANY) "
+-     "and if a specific address needs to be committed at the time "
+-     "of this function call." },
+-   { WSAEINPROGRESS,
+-     "WSAEINPROGRESS - "
+-     "A blocking Windows Sockets 1.1 call is in progress, "
+-     "or the service provider is still processing a callback function." },
+-   { WSAEINVAL,
+-     "WSAEINVAL - "
+-     "The socket has not been bound with bind." },
+-   { WSAEISCONN,
+-     "WSAEISCONN - "
+-     "The socket is already connected." },
+-   { WSAEMFILE,
+-     "WSAEMFILE - "
+-     "No more socket descriptors are available." },
+-   { WSAENOBUFS,
+-     "WSAENOBUFS - "
+-     "No buffer space is available." },
+-   { WSAENOTSOCK,
+-     "WSAENOTSOCK - "
+-     "The descriptor is not a socket." },
+-   { WSAEOPNOTSUPP,
+-     "WSAEOPNOTSUPP - "
+-     "The referenced socket is not of a type that has a listen operation." },
+-
+-   // getpeername
+-   { WSANOTINITIALISED,
+-     "WSANOTINITIALISED - "
+-     "A successful WSAStartup call must occur before using this function." },
+-   { WSAENETDOWN,
+-     "WSAENETDOWN - "
+-     "The network subsystem has failed." },
+-   { WSAEFAULT,
+-     "WSAEFAULT - "
+-     "The name or the namelen parameter is not a valid part of the "
+-     "user address space, or the namelen parameter is too small." },
+-   { WSAEINPROGRESS,
+-     "WSAEINPROGRESS - "
+-     "A blocking Windows Sockets 1.1 call is in progress, "
+-     "or the service provider is still processing a callback function." },
+-   { WSAENOTCONN,
+-     "WSAENOTCONN - "
+-     "The socket is not connected." },
+-   { WSAENOTSOCK,
+-     "WSAENOTSOCK - "
+-     "The descriptor is not a socket." },
+-
+-   // accept
+-   { WSANOTINITIALISED,
+-     "WSANOTINITIALISED - "
+-     "A successful WSAStartup call must occur before using this function." },
+-   { WSAENETDOWN,
+-     "WSAENETDOWN - "
+-     "The network subsystem has failed." },
+-   { WSAEFAULT,
+-     "WSAEFAULT - "
+-     "The addrlen parameter is too small or addr is not a valid part "
+-     "of the user address space." },
+-   { WSAEINTR,
+-     "WSAEINTR - "
+-     "A blocking Windows Sockets 1.1 call was canceled through "
+-     "WSACancelBlockingCall." },
+-   { WSAEINPROGRESS,
+-     "WSAEINPROGRESS - "
+-     "A blocking Windows Sockets 1.1 call is in progress, "
+-     "or the service provider is still processing a callback function." },
+-   { WSAEINVAL,
+-     "WSAEINVAL - "
+-     "The listen function was not invoked prior to accept." },
+-   { WSAEMFILE,
+-     "WSAEMFILE - "
+-     "The queue is nonempty upon entry to accept and "
+-     "there are no descriptors available." },
+-   { WSAENOBUFS,
+-     "WSAENOBUFS - "
+-     "No buffer space is available." },
+-   { WSAENOTSOCK,
+-     "WSAENOTSOCK - "
+-     "The descriptor is not a socket." },
+-   { WSAEOPNOTSUPP,
+-     "WSAEOPNOTSUPP - "
+-     "The referenced socket is not a type that offers connection-oriented "
+-     "service." },
+-   { WSAEWOULDBLOCK,
+-     "WSAEWOULDBLOCK - "
+-     "The socket is marked as nonblocking and no connections are present "
+-     "to be accepted." },
+-
+-   /* must be last entry */
+-   { 0,            0 }
++    WSAEINTR,           "Interrupted system call",
++    WSAEBADF,           "Bad file number",
++    WSAEACCES,          "Permission denied",
++    WSAEFAULT,          "Bad address",
++    WSAEINVAL,          "Invalid argument",
++    WSAEMFILE,          "Too many open sockets",
++    WSAEWOULDBLOCK,     "Operation would block",
++    WSAEINPROGRESS,     "Operation now in progress",
++    WSAEALREADY,        "Operation already in progress",
++    WSAENOTSOCK,        "Socket operation on non-socket",
++    WSAEDESTADDRREQ,    "Destination address required",
++    WSAEMSGSIZE,        "Message too long",
++    WSAEPROTOTYPE,      "Protocol wrong type for socket",
++    WSAENOPROTOOPT,     "Bad protocol option",
++    WSAEPROTONOSUPPORT, "Protocol not supported",
++    WSAESOCKTNOSUPPORT, "Socket type not supported",
++    WSAEOPNOTSUPP,      "Operation not supported on socket",
++    WSAEPFNOSUPPORT,    "Protocol family not supported",
++    WSAEAFNOSUPPORT,    "Address family not supported",
++    WSAEADDRINUSE,      "Address already in use",
++    WSAEADDRNOTAVAIL,   "Can't assign requested address",
++    WSAENETDOWN,        "Network is down",
++    WSAENETUNREACH,     "Network is unreachable",
++    WSAENETRESET,       "Net connection reset",
++    WSAECONNABORTED,    "Software caused connection abort",
++    WSAECONNRESET,      "Connection reset by peer",
++    WSAENOBUFS,         "No buffer space available",
++    WSAEISCONN,         "Socket is already connected",
++    WSAENOTCONN,        "Socket is not connected",
++    WSAESHUTDOWN,       "Can't send after socket shutdown",
++    WSAETOOMANYREFS,    "Too many references, can't splice",
++    WSAETIMEDOUT,       "Connection timed out",
++    WSAECONNREFUSED,    "Connection refused",
++    WSAELOOP,           "Too many levels of symbolic links",
++    WSAENAMETOOLONG,    "File name too long",
++    WSAEHOSTDOWN,       "Host is down",
++    WSAEHOSTUNREACH,    "No route to host",
++    WSAENOTEMPTY,       "Directory not empty",
++    WSAEPROCLIM,        "Too many processes",
++    WSAEUSERS,          "Too many users",
++    WSAEDQUOT,          "Disc quota exceeded",
++    WSAESTALE,          "Stale NFS file handle",
++    WSAEREMOTE,         "Too many levels of remote in path",
++    WSASYSNOTREADY,     "Network system is unavailable",
++    WSAVERNOTSUPPORTED, "Winsock version out of range",
++    WSANOTINITIALISED,  "WSAStartup not yet called",
++    WSAEDISCON,         "Graceful shutdown in progress",
++    WSAHOST_NOT_FOUND,  "Host not found",
++    WSANO_DATA,         "No host data of that type was found",
++    0,                  NULL
+ };
+-
+ static const char *
+ getWSAError(int const wsaErrno) {
+@@ -236,7 +106,7 @@ getWSAError(int const wsaErrno) {
+         ++pseP;
+     }
+-    return "(no description available)";
++    return "No description available";
+ }
+@@ -325,6 +195,8 @@ channelDestroy(TChannel * const channelP) {
+     CloseHandle(socketWinP->interruptEvent);
+     free(socketWinP);
++    channelP->implP = 0;
++
+ }
+@@ -335,32 +207,42 @@ static void
+ channelWrite(TChannel *            const channelP,
+              const unsigned char * const buffer,
+              uint32_t              const len,
+-             bool *          const failedP) {
++             bool *                const failedP) {
+     struct socketWin * const socketWinP = channelP->implP;
+     size_t bytesLeft;
+     bool error;
+-
+-    assert(sizeof(size_t) >= sizeof(len));
+-
+-    for (bytesLeft = len, error = FALSE;
+-         bytesLeft > 0 && !error;
+-        ) {
+-        size_t const maxSend = (size_t)(-1) >> 1;
+-
+-        int rc;
+-        
+-        rc = send(socketWinP->winsock, &buffer[len-bytesLeft],
+-                  MIN(maxSend, bytesLeft), 0);
+-
+-        if (rc <= 0)
+-            /* 0 means connection closed; < 0 means severe error */
+-            error = TRUE;
+-        else
+-            bytesLeft -= rc;
++      int to_count = 0;
++      int lastError = 0;
++
++      for (bytesLeft = len, error = FALSE; bytesLeft > 0 && !error;) {
++        size_t const maxSend =        4096 * 2; /* with respect to resource allocation this might be a better value than 2^31 */ 
++
++        int rc = send(socketWinP->winsock, buffer + len - bytesLeft, MIN(maxSend, bytesLeft), 0);
++              if (rc > 0) {          /* 0 means connection closed; < 0 means severe error */
++                      to_count = 0;
++                  bytesLeft -= rc;
++              } 
++              else if (!rc) {
++                      error = TRUE;
++                      fprintf(stderr, "Abyss: send() failed: connection closed");
++              }
++              else {
++                      error = TRUE;
++                      lastError = WSAGetLastError();
++            if (lastError == WSAEWOULDBLOCK || lastError == ERROR_IO_PENDING) {
++                              SleepEx(20, TRUE);  /* give socket another chance after xx millisec) */
++                              if (++to_count < 300) {
++                                      error = FALSE;
++                              }
++                          //  fprintf(stderr, "Abyss: send() failed with errno %d (%s) cnt %d, will retry\n", lastError, getWSAError(lastError), to_count);
++                      }
++                      if (error) fprintf(stderr, "Abyss: send() failed with errno %d (%s)\n", lastError, getWSAError(lastError));
++              }
+     }
+-    *failedP = error;
++
++      *failedP = error;
+ }
+@@ -375,16 +257,29 @@ channelRead(TChannel *   const channelP,
+             bool * const failedP) {
+     struct socketWin * const socketWinP = channelP->implP;
+-
+-    int rc;
+-    rc = recv(socketWinP->winsock, buffer, bufferSize, 0);
+-
+-    if (rc < 0) {
+-        *failedP = TRUE;
+-    } else {
+-        *failedP = FALSE;
+-        *bytesReceivedP = rc;
+-    }
++    int retries = 300; 
++      
++      for (*failedP = TRUE; *failedP && retries; retries--) {
++              int rc = recv(socketWinP->winsock, buffer, bufferSize, 0);
++              int lastError = WSAGetLastError();
++
++              if (rc < 0) {
++                      if (lastError == WSAEWOULDBLOCK || lastError == ERROR_IO_PENDING) {
++                              fprintf(stderr, "Abyss: recv() failed with errno %d (%s) cnt %d, will retry\n", lastError, getWSAError(lastError), retries);
++                              SleepEx(30, TRUE);  /* give socket another chance after xx millisec)*/
++                              *failedP = FALSE;
++                      } else {
++                              fprintf(stderr, "Abyss: recv() failed with errno %d (%s)\n", lastError, getWSAError(lastError));
++                              break;
++                      }
++              } else {
++                      *failedP = FALSE;
++                      *bytesReceivedP = rc;
++
++                      if (ChannelTraceIsActive)
++                              fprintf(stderr, "Abyss channel: read %u bytes: '%.*s'\n", bytesReceivedP, (int)(*bytesReceivedP), buffer);
++              }
++      }
+ }
+diff --git a/libs/xmlrpc-c/lib/abyss/src/thread.c b/libs/xmlrpc-c/lib/abyss/src/thread.c
+deleted file mode 100644
+index b3d49c7..0000000
+--- a/libs/xmlrpc-c/lib/abyss/src/thread.c
++++ /dev/null
+@@ -1,228 +0,0 @@
+-/*******************************************************************************
+-**
+-** thread.c
+-**
+-** This file is part of the ABYSS Web server project.
+-**
+-** Copyright (C) 2000 by Moez Mahfoudh <mmoez@bigfoot.com>.
+-** All rights reserved.
+-**
+-** Redistribution and use in source and binary forms, with or without
+-** modification, are permitted provided that the following conditions
+-** are met:
+-** 1. Redistributions of source code must retain the above copyright
+-**    notice, this list of conditions and the following disclaimer.
+-** 2. Redistributions in binary form must reproduce the above copyright
+-**    notice, this list of conditions and the following disclaimer in the
+-**    documentation and/or other materials provided with the distribution.
+-** 3. The name of the author may not be used to endorse or promote products
+-**    derived from this software without specific prior written permission.
+-** 
+-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+-** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-** ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+-** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-** SUCH DAMAGE.
+-**
+-*******************************************************************************/
+-
+-#ifdef ABYSS_WIN32
+-#include <process.h>
+-#endif
+-
+-#include "xmlrpc-c/abyss.h"
+-
+-#include "xmlrpc_config.h"
+-
+-/* 16K is the minimum size of stack on Win32 */
+-#define  THREAD_STACK_SIZE    (240*1024)
+-
+-/*********************************************************************
+-** Thread
+-*********************************************************************/
+-
+-abyss_bool ThreadCreate(TThread *   const t ATTR_UNUSED,
+-                        TThreadProc const func,
+-                        void *      const arg )
+-{
+-#ifdef ABYSS_WIN32
+-    DWORD z;
+-    *t =(TThread)_beginthreadex( NULL, THREAD_STACK_SIZE, func, 
+-                                 arg, CREATE_SUSPENDED, &z );
+-    return (*t!=NULL);
+-#else
+-#   ifdef _UNIX
+-#       ifdef _THREAD
+-    {
+-        pthread_attr_t attr;
+-        pthread_attr_init( &attr );
+-        pthread_attr_setstacksize( &attr, THREAD_STACK_SIZE );
+-        if( pthread_create( t,&attr,(PTHREAD_START_ROUTINE)func,arg)==0)
+-        {
+-            pthread_attr_destroy( &attr );
+-            return (pthread_detach(*t)==0);
+-        }
+-        pthread_attr_destroy( &attr );
+-        return FALSE;
+-    }
+-#       else
+-    switch (fork())
+-    {
+-    case 0:
+-        (*func)(arg);
+-        exit(0);
+-    case (-1):
+-        return FALSE;
+-    };
+-    
+-    return TRUE;
+-#       endif   /* _THREAD */
+-#   else
+-    (*func)(arg);
+-    return TRUE;
+-#   endif   /*_UNIX */
+-#endif  /* ABYSS_WIN32 */
+-}
+-
+-abyss_bool
+-ThreadRun(TThread * const t ATTR_UNUSED) {
+-#ifdef ABYSS_WIN32
+-    return (ResumeThread(*t)!=0xFFFFFFFF);
+-#else
+-    return TRUE;    
+-#endif  /* ABYSS_WIN32 */
+-}
+-
+-
+-
+-abyss_bool
+-ThreadStop(TThread * const t ATTR_UNUSED) {
+-#ifdef ABYSS_WIN32
+-    return (SuspendThread(*t)!=0xFFFFFFFF);
+-#else
+-    return TRUE;
+-#endif  /* ABYSS_WIN32 */
+-}
+-
+-
+-
+-abyss_bool
+-ThreadKill(TThread * const t ATTR_UNUSED) {
+-#ifdef ABYSS_WIN32
+-    return (TerminateThread(*t,0)!=0);
+-#else
+-    /*return (pthread_kill(*t)==0);*/
+-    return TRUE;
+-#endif  /* ABYSS_WIN32 */
+-}
+-
+-
+-
+-void ThreadWait(uint32_t ms)
+-{
+-#ifdef ABYSS_WIN32
+-    Sleep(ms);
+-#else
+-    usleep(ms*1000);
+-#endif  /* ABYSS_WIN32 */
+-}
+-
+-
+-
+-void
+-ThreadExit(TThread * const t ATTR_UNUSED,
+-           int       const ret_value ATTR_UNUSED) {
+-#ifdef ABYSS_WIN32
+-    _endthreadex(ret_value);
+-#elif defined(_THREAD)
+-    pthread_exit(&ret_value);
+-#else
+-    ;
+-#endif  /* ABYSS_WIN32 */
+-}
+-
+-
+-
+-void
+-ThreadClose(TThread * const t ATTR_UNUSED) {
+-#ifdef ABYSS_WIN32
+-    CloseHandle(*t);
+-#endif  /* ABYSS_WIN32 */
+-}
+-
+-
+-
+-/*********************************************************************
+-** Mutex
+-*********************************************************************/
+-
+-
+-
+-abyss_bool
+-MutexCreate(TMutex * const m ATTR_UNUSED) {
+-#if defined(ABYSS_WIN32)
+-    return ((*m=CreateMutex(NULL,FALSE,NULL))!=NULL);
+-#elif defined(_THREAD)
+-    return (pthread_mutex_init(m, NULL)==0);
+-#else
+-    return TRUE;
+-#endif  
+-}
+-
+-
+-
+-abyss_bool
+-MutexLock(TMutex * const m ATTR_UNUSED) {
+-#if defined(ABYSS_WIN32)
+-    return (WaitForSingleObject(*m,INFINITE)!=WAIT_TIMEOUT);
+-#elif defined(_THREAD)
+-    return (pthread_mutex_lock(m)==0);
+-#else
+-    return TRUE;
+-#endif
+-}
+-
+-
+-
+-abyss_bool
+-MutexUnlock(TMutex * const m ATTR_UNUSED) {
+-#if defined(ABYSS_WIN32)
+-    return ReleaseMutex(*m);
+-#elif defined(_THREAD)
+-    return (pthread_mutex_unlock(m)==0);
+-#else
+-    return TRUE;
+-#endif
+-}
+-
+-
+-
+-abyss_bool
+-MutexTryLock(TMutex * const m ATTR_UNUSED) {
+-#if defined(ABYSS_WIN32)
+-    return (WaitForSingleObject(*m,0)!=WAIT_TIMEOUT);
+-#elif defined(_THREAD)
+-    return (pthread_mutex_trylock(m)==0);
+-#else
+-    return TRUE;
+-#endif
+-}
+-
+-
+-
+-void
+-MutexFree(TMutex * const m ATTR_UNUSED) {
+-#if defined(ABYSS_WIN32)
+-    CloseHandle(*m);
+-#elif defined(_THREAD)
+-    pthread_mutex_destroy(m);
+-#else
+-    ;
+-#endif
+-}
+diff --git a/libs/xmlrpc-c/lib/abyss/src/thread.h b/libs/xmlrpc-c/lib/abyss/src/thread.h
+index c214f4b..c9f2b9e 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/thread.h
++++ b/libs/xmlrpc-c/lib/abyss/src/thread.h
+@@ -21,6 +21,7 @@ ThreadCreate(TThread **      const threadPP,
+              TThreadProc   * const func,
+              TThreadDoneFn * const threadDone,
+              bool            const useSigchld,
++             size_t          const stackSize,
+              const char **   const errorP);
+ bool
+@@ -36,7 +37,8 @@ void
+ ThreadWaitAndRelease(TThread * const threadP);
+ void
+-ThreadExit(int const retValue);
++ThreadExit(TThread * const threadP,
++           int       const retValue);
+ void
+ ThreadRelease(TThread * const threadP);
+diff --git a/libs/xmlrpc-c/lib/abyss/src/thread_fork.c b/libs/xmlrpc-c/lib/abyss/src/thread_fork.c
+index 973e153..d96bf59 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/thread_fork.c
++++ b/libs/xmlrpc-c/lib/abyss/src/thread_fork.c
+@@ -157,6 +157,7 @@ ThreadCreate(TThread **      const threadPP,
+              TThreadProc   * const func,
+              TThreadDoneFn * const threadDone,
+              bool            const useSigchld,
++             size_t          const stackSize,
+              const char **   const errorP) {
+     
+     TThread * threadP;
+@@ -189,6 +190,9 @@ ThreadCreate(TThread **      const threadPP,
+         else if (rc == 0) {
+             /* This is the child */
+             (*func)(userHandle);
++            /* Note that thread cleanup (threadDone) is done by the _parent_,
++               upon seeing our exit.
++            */
+             exit(0);
+         } else {
+             /* This is the parent */
+@@ -249,7 +253,8 @@ ThreadWaitAndRelease(TThread * const threadP) {
+ void
+-ThreadExit(int const retValue) {
++ThreadExit(TThread * const threadP ATTR_UNUSED,
++           int       const retValue) {
+     /* Note that the OS will automatically send a SIGCHLD signal to
+        the parent process after we exit.  The handler for that signal
+@@ -259,6 +264,10 @@ ThreadExit(int const retValue) {
+        sees we've gone.
+     */
++    /* Note that thread cleanup (threadDone) is done by the _parent_,
++       upon seeing our exit.
++    */
++
+     exit(retValue);
+ }
+diff --git a/libs/xmlrpc-c/lib/abyss/src/thread_pthread.c b/libs/xmlrpc-c/lib/abyss/src/thread_pthread.c
+index 5cca825..7c6b2a7 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/thread_pthread.c
++++ b/libs/xmlrpc-c/lib/abyss/src/thread_pthread.c
+@@ -7,6 +7,7 @@
+ #include "bool.h"
+ #include "mallocvar.h"
++#include "xmlrpc-c/util_int.h"
+ #include "xmlrpc-c/string_int.h"
+ #include "pthreadx.h"
+@@ -23,12 +24,12 @@ struct abyss_thread {
+     TThreadDoneFn * threadDone;
+ };
+-/* We used to have THREAD_STACK_SIZE = 16K, which was said to be the
++/* We used to have MIN_STACK_SIZE = 16K, which was said to be the
+    minimum stack size on Win32.  Scott Kolodzeski found in November
+    2005 that this was insufficient for 64 bit Solaris -- we fail
+    when creating the first thread.  So we changed to 128K.
+ */
+-#define  THREAD_STACK_SIZE (128*1024L)
++#define  MIN_STACK_SIZE (128*1024L)
+ typedef void * (pthreadStartRoutine)(void *);
+@@ -49,51 +50,63 @@ pthreadStart(void * const arg) {
+     pthread_cleanup_pop(executeTrue);
++    /* Note that func() may not return; it may just exit the thread,
++       by calling ThreadExit(), in which case code here doesn't run.
++    */
++    threadP->threadDone(threadP->userHandle);
++
+     return NULL;
+ }
++
+ void
+ ThreadCreate(TThread **      const threadPP,
+              void *          const userHandle,
+              TThreadProc   * const func,
+              TThreadDoneFn * const threadDone,
+              bool            const useSigchld ATTR_UNUSED,
++             size_t          const stackSize,
+              const char **   const errorP) {
+-    TThread * threadP;
+-
+-    MALLOCVAR(threadP);
+-    if (threadP == NULL)
+-        xmlrpc_asprintf(errorP,
+-                        "Can't allocate memory for thread descriptor.");
++    if ((size_t)(int)stackSize != stackSize)
++        xmlrpc_asprintf(errorP, "Stack size %lu is too big",
++                        (unsigned long)stackSize);
+     else {
+-        pthread_attr_t attr;
+-        int rc;
++        TThread * threadP;
++
++        MALLOCVAR(threadP);
++        if (threadP == NULL)
++            xmlrpc_asprintf(errorP,
++                            "Can't allocate memory for thread descriptor.");
++        else {
++            pthread_attr_t attr;
++            int rc;
+-        pthread_attr_init(&attr);
++            pthread_attr_init(&attr);
+-        pthread_attr_setstacksize(&attr, THREAD_STACK_SIZE);
++            pthread_attr_setstacksize(&attr, MAX(MIN_STACK_SIZE, stackSize));
+         
+-        threadP->userHandle = userHandle;
+-        threadP->func       = func;
+-        threadP->threadDone = threadDone;
+-
+-        rc = pthread_create(&threadP->thread, &attr,
+-                            pthreadStart, threadP);
+-        if (rc == 0) {
+-            *errorP = NULL;
+-            *threadPP = threadP;
+-        } else
+-            xmlrpc_asprintf(
+-                errorP, "pthread_create() failed, errno = %d (%s)",
+-                errno, strerror(errno));
++            threadP->userHandle = userHandle;
++            threadP->func       = func;
++            threadP->threadDone = threadDone;
++
++            rc = pthread_create(&threadP->thread, &attr,
++                                pthreadStart, threadP);
++            if (rc == 0) {
++                *errorP = NULL;
++                *threadPP = threadP;
++            } else
++                xmlrpc_asprintf(
++                    errorP, "pthread_create() failed, errno = %d (%s)",
++                    errno, strerror(errno));
+         
+-        pthread_attr_destroy(&attr);
++            pthread_attr_destroy(&attr);
+-        if (*errorP)
+-            free(threadP);
++            if (*errorP)
++                free(threadP);
++        }
+     }
+ }
+@@ -134,7 +147,8 @@ ThreadWaitAndRelease(TThread * const threadP) {
+ void
+-ThreadExit(int const retValue) {
++ThreadExit(TThread * const threadP ATTR_UNUSED,
++           int       const retValue) {
+     pthread_exit((void*)&retValue);
+diff --git a/libs/xmlrpc-c/lib/abyss/src/thread_windows.c b/libs/xmlrpc-c/lib/abyss/src/thread_windows.c
+index dae5bb5..f173f1b 100644
+--- a/libs/xmlrpc-c/lib/abyss/src/thread_windows.c
++++ b/libs/xmlrpc-c/lib/abyss/src/thread_windows.c
+@@ -15,6 +15,7 @@
+ #include "bool.h"
+ #include "int.h"
++#include "xmlrpc-c/util_int.h"
+ #include "mallocvar.h"
+ #include "xmlrpc-c/string_int.h"
+@@ -24,7 +25,6 @@
+ #include "thread.h"
+-
+ struct abyss_thread {
+     HANDLE handle;
+     void * userHandle;
+@@ -32,7 +32,7 @@ struct abyss_thread {
+     TThreadDoneFn * threadDone;
+ };
+-#define  THREAD_STACK_SIZE (16*1024L)
++#define  MIN_THREAD_STACK_SIZE (16*1024L)
+ typedef uint32_t (WINAPI WinThreadProc)(void *);
+@@ -60,6 +60,7 @@ ThreadCreate(TThread **      const threadPP,
+              TThreadProc   * const func,
+              TThreadDoneFn * const threadDone,
+              bool            const useSigchld,
++             size_t          const stackSize,
+              const char **   const errorP) {
+     TThread * threadP;
+@@ -76,12 +77,13 @@ ThreadCreate(TThread **      const threadPP,
+         threadP->func       = func;
+         threadP->threadDone = threadDone;
+-        threadP->handle = (HANDLE)_beginthreadex(NULL,
+-                                                 THREAD_STACK_SIZE,
+-                                                 threadRun,
+-                                                 threadP,
+-                                                 CREATE_SUSPENDED,
+-                                                 &z);
++        threadP->handle = (HANDLE)
++            _beginthreadex(NULL,
++                           MAX(stackSize, MIN_THREAD_STACK_SIZE),
++                           threadRun,
++                           threadP,
++                           CREATE_SUSPENDED,
++                           &z);
+         if (threadP->handle == NULL)
+             xmlrpc_asprintf(errorP, "_beginthreadex() failed.");
+@@ -121,13 +123,17 @@ ThreadKill(TThread * const threadP) {
+ void
+ ThreadWaitAndRelease(TThread * const threadP) {
++    WaitForSingleObject(threadP->handle, INFINITE);
+     ThreadRelease(threadP);
+ }
+ void
+-ThreadExit(int const retValue) {
++ThreadExit(TThread * const threadP,
++           int       const retValue) {
++
++    threadP->threadDone(threadP->userHandle);
+     _endthreadex(retValue);
+ }
+@@ -138,6 +144,7 @@ void
+ ThreadRelease(TThread * const threadP) {
+     CloseHandle(threadP->handle);
++    free(threadP); 
+ }
+@@ -190,8 +197,6 @@ MutexCreate(TMutex ** const mutexPP) {
+     *mutexPP = mutexP;
+-    TraceMsg( "Created Mutex %s\n", (succeeded ? "ok" : "FAILED") );
+-
+     return succeeded;
+ }
+  
+diff --git a/libs/xmlrpc-c/lib/abyss/version.txt b/libs/xmlrpc-c/lib/abyss/version.txt
+deleted file mode 100644
+index 13874ba..0000000
+--- a/libs/xmlrpc-c/lib/abyss/version.txt
++++ /dev/null
+@@ -1 +0,0 @@
+-0.3 (03/23/2000)
+\ No newline at end of file
+diff --git a/libs/xmlrpc-c/lib/curl_transport/Makefile b/libs/xmlrpc-c/lib/curl_transport/Makefile
+index c9e144f..a257749 100644
+--- a/libs/xmlrpc-c/lib/curl_transport/Makefile
++++ b/libs/xmlrpc-c/lib/curl_transport/Makefile
+@@ -10,30 +10,34 @@ include $(BLDDIR)/config.mk
+ default: all
++MODS := xmlrpc_curl_transport curltransaction curlmulti lock_pthread
++
+ .PHONY: all
+-all: xmlrpc_curl_transport.o xmlrpc_curl_transport.osh
++all: $(MODS:%=%.o) $(MODS:%=%.osh)
+ # Rules for the above dependencies are in common.mk,
+ # courtesy of TARGET_MODS.
+-TARGET_MODS = xmlrpc_curl_transport
++TARGET_MODS = $(MODS)
+ OMIT_CURL_TRANSPORT_RULE=Y
+ include $(SRCDIR)/common.mk
++# This 'common.mk' dependency makes sure the symlinks get built before
++# this make file is used for anything.
++
++$(SRCDIR)/common.mk: srcdir blddir
+ CURL_INCLUDES := $(shell curl-config --cflags)
+ # We expect that curl-config --cflags just gives us -I options, because
+ # we need just the -I options for 'make dep'.  Plus, it's scary to think
+ # of what any other compiler flag would do to our compile.
+-CFLAGS = $(CFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
+-
+ INCLUDES = \
+   -I$(BLDDIR) \
+   -I$(BLDDIR)/include \
+-  -I$(SRCDIR)/include \
+-  -I$(SRCDIR)/lib/util/include \
++  -Isrcdir/include \
++  -Isrcdir/lib/util/include \
+   $(CURL_INCLUDES)
+ .PHONY: clean
+@@ -54,8 +58,8 @@ install:
+ .PHONY: dep
+ dep: dep-common
+-include Makefile.depend
++include depend.mk
+-# Need this dependency for those who don't use Makefile.depend.
++# Need this dependency for those who don't use depend.mk.
+ # Without it, version.h doesn't get created.
+ xmlrpc_curl_transport.o xmlrpc_curl_transport.osh: version.h
+diff --git a/libs/xmlrpc-c/lib/curl_transport/xmlrpc_curl_transport.c b/libs/xmlrpc-c/lib/curl_transport/xmlrpc_curl_transport.c
+index 29104b9..fe705b9 100644
+--- a/libs/xmlrpc-c/lib/curl_transport/xmlrpc_curl_transport.c
++++ b/libs/xmlrpc-c/lib/curl_transport/xmlrpc_curl_transport.c
+@@ -52,6 +52,8 @@
+    such subordinate libraries as OpenSSL and Winsock.
+ -----------------------------------------------------------------------------*/
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
++
+ #include "xmlrpc_config.h"
+ #include <string.h>
+@@ -59,7 +61,7 @@
+ #include <errno.h>
+ #include <assert.h>
+ #include <limits.h>
+-#if !MSVCRT
++#if HAVE_SYS_SELECT_H
+ #include <sys/select.h>
+ #endif
+ #include <signal.h>
+@@ -75,18 +77,24 @@
+ #include "girstring.h"
+ #include "pthreadx.h"
++#include "xmlrpc-c/util.h"
+ #include "xmlrpc-c/string_int.h"
+ #include "xmlrpc-c/select_int.h"
+ #include "xmlrpc-c/client_int.h"
+ #include "xmlrpc-c/transport.h"
+ #include "xmlrpc-c/time_int.h"
+-#include "version.h"
+ #include <curl/curl.h>
+ #include <curl/types.h>
+ #include <curl/easy.h>
+ #include <curl/multi.h>
++#include "lock.h"
++#include "lock_pthread.h"
++#include "curltransaction.h"
++#include "curlmulti.h"
++#include "curlversion.h"
++
+ #if MSVCRT
+ #if defined(_DEBUG)
+ #  include <crtdbg.h>
+@@ -98,92 +106,8 @@
+ #endif
+-#define CMAJOR LIBCURL_VERSION_MAJOR
+-#define CMINOR LIBCURL_VERSION_MINOR
+-#if CMAJOR > 7 || (CMAJOR == 7 && CMINOR >= 10)
+-  #define HAVE_CURL_NOSIGNAL 1
+-#else
+-  #define HAVE_CURL_NOSIGNAL 0
+-#endif
+-#if CMAJOR > 7 || (CMAJOR == 7 && CMINOR >= 12)
+-  #define HAVE_CURL_STRERROR 1
+-#else
+-  #define HAVE_CURL_STRERROR 0
+-#endif
+-
+-#undef CMAJOR
+-#undef CMINOR
+-
+-
+-
+ typedef struct rpc rpc;
+-typedef struct curlTransaction curlTransaction;
+-
+-
+-
+-struct curlSetup {
+-
+-    /* This is all client transport properties that are implemented as
+-       simple Curl session properties (i.e. the transport basically just
+-       passes them through to Curl without looking at them).
+-
+-       People occasionally want to replace all this with something where
+-       the Xmlrpc-c user simply does the curl_easy_setopt() call and this
+-       code need not know about all these options.  Unfortunately, that's
+-       a significant modularity violation.  Either the Xmlrpc-c user
+-       controls the Curl object or he doesn't.  If he does, then he
+-       shouldn't use libxmlrpc_client -- he should just copy some of this
+-       code into his own program.  If he doesn't, then he should never see
+-       the Curl library.
+-
+-       Speaking of modularity: the only reason this is a separate struct
+-       is to make the code easier to manage.  Ideally, the fact that these
+-       particular properties of the transport are implemented by simple
+-       Curl session setup would be known only at the lowest level code
+-       that does that setup.
+-    */
+-
+-    const char * networkInterface;
+-        /* This identifies the network interface on the local side to
+-           use for the session.  It is an ASCIIZ string in the form
+-           that the Curl recognizes for setting its CURLOPT_INTERFACE
+-           option (also the --interface option of the Curl program).
+-           E.g. "9.1.72.189" or "giraffe-data.com" or "eth0".  
+-
+-           It isn't necessarily valid, but it does have a terminating NUL.
+-
+-           NULL means we have no preference.
+-        */
+-    xmlrpc_bool sslVerifyPeer;
+-        /* In an SSL connection, we should authenticate the server's SSL
+-           certificate -- refuse to talk to him if it isn't authentic.
+-           This is equivalent to Curl's CURLOPT_SSL_VERIFY_PEER option.
+-        */
+-    xmlrpc_bool sslVerifyHost;
+-        /* In an SSL connection, we should verify that the server's
+-           certificate (independently of whether the certificate is
+-           authentic) indicates the host name that is in the URL we
+-           are using for the server.
+-        */
+-
+-    const char * sslCert;
+-    const char * sslCertType;
+-    const char * sslCertPasswd;
+-    const char * sslKey;
+-    const char * sslKeyType;
+-    const char * sslKeyPasswd;
+-    const char * sslEngine;
+-    bool         sslEngineDefault;
+-    unsigned int sslVersion;
+-    const char * caInfo;
+-    const char * caPath;
+-    const char * randomFile;
+-    const char * egdSocket;
+-    const char * sslCipherList;
+-    unsigned int timeout;
+-        /* 0 = no Curl timeout.  This is in milliseconds. */
+-};
+ static int
+@@ -239,939 +163,248 @@ addMilliseconds(xmlrpc_timespec   const addend,
+-/*============================================================================
+-      locks
+-==============================================================================
+-   This is the beginnings of a lock abstraction that will allow this
+-   transport to be used with locks other than pthread locks
+-============================================================================*/
+-
+-struct lock {
+-    pthread_mutex_t theLock;
+-    void (*lock)(struct lock *);
+-    void (*unlock)(struct lock *);
+-    void (*destroy)(struct lock *);
+-};
+-
+-typedef struct lock lock;
++struct xmlrpc_client_transport {
++    CURL * syncCurlSessionP;
++        /* Handle for a Curl library session object that we use for
++           all synchronous RPCs.  An async RPC has one of its own,
++           and consequently does not share things such as persistent
++           connections and cookies with any other RPC.
++        */
++    lock * syncCurlSessionLockP;
++        /* Hold this lock while accessing or using *syncCurlSessionP.
++           You're using the session from the time you set any
++           attributes in it or start a transaction with it until any
++           transaction has finished and you've lost interest in any
++           attributes of the session.
++        */
++    curlMulti * syncCurlMultiP;
++        /* The Curl multi manager that this transport uses to execute
++           Curl transactions for RPCs requested via the synchronous
++           interface.  The fact that there is never more than one such
++           transaction going at a time might make you wonder why a
++           "multi" manager is needed.  The reason is that it is the only
++           interface in libcurl that gives us the flexibility to execute
++           the transaction with proper interruptibility.  The only Curl
++           transaction ever attached to this multi manager is
++           'syncCurlSessionP'.
++           
++           This is constant (the handle, not the object).
++        */
++    curlMulti * asyncCurlMultiP;
++        /* The Curl multi manager that this transport uses to execute
++           Curl transactions for RPCs requested via the asynchronous
++           interface.  Note that there may be multiple such Curl transactions
++           simultaneously and one can't wait for a particular one to finish;
++           the collection of asynchronous RPCs are an indivisible mass.
++           
++           This is constant (the handle, not the object).
++        */
++    bool dontAdvertise;
++        /* Don't identify to the server the XML-RPC engine we are using.  If
++           false, include a User-Agent HTTP header in all requests that
++           identifies the Xmlrpc-c and Curl libraries.
+-static void
+-lock_pthread(struct lock * const lockP) {
+-    pthread_mutex_lock(&lockP->theLock);
+-}
++           See also 'userAgent'.
+-static void
+-unlock_pthread(struct lock * const lockP) {
+-    pthread_mutex_unlock(&lockP->theLock);
+-}
++           This is constant.
++        */
++    const char * userAgent;
++        /* Information to include in a User-Agent HTTP header, reflecting
++           facilities outside of Xmlrpc-c.  
+-static void
+-destroyLock_pthread(struct lock * const lockP) {
+-    pthread_mutex_destroy(&lockP->theLock);
+-    free(lockP);
+-}
++           Null means none.
++           The full User-Agent header value is this information (if
++           'userAgent' is non-null) followed by identification of Xmlrpc-c
++           and Curl (if 'dontAdvertise' is false).  If 'userAgent' is null
++           and 'dontAdvertise' is true, we put no User-Agent header at all
++           in the request.
+-static struct lock *
+-createLock_pthread(void) {
+-    struct lock * lockP;
+-    MALLOCVAR(lockP);
+-    if (lockP) {
+-        pthread_mutex_init(&lockP->theLock, NULL);
+-        lockP->lock    = &lock_pthread;
+-        lockP->unlock  = &unlock_pthread;
+-        lockP->destroy = &destroyLock_pthread;
+-    }
+-    return lockP;
+-}
++           This is constant.
++        */
++    struct curlSetup curlSetupStuff;
++        /* This is constant */
++    int * interruptP;
++        /* Pointer to a value that user sets to nonzero to indicate he wants
++           the transport to give up on whatever it is doing and return ASAP.
++           NULL means none -- transport never gives up.
++           This is constant.
++        */
++};
+-/*=============================================================================
+-    curlTransaction
+-=============================================================================*/
+-typedef void finishCurlTransactionFn(xmlrpc_env * const, curlTransaction * const);
+-struct curlTransaction {
+-    /* This is all stuff that really ought to be in a Curl object, but
+-       the Curl library is a little too simple for that.  So we build
+-       a layer on top of Curl, and define this "transaction," as an
+-       object subordinate to a Curl "session."  A Curl session has
+-       zero or one transactions in progress.  The Curl session
+-       "private data" is a pointer to the CurlTransaction object for
+-       the current transaction.
+-    */
++struct rpc {
++    struct xmlrpc_client_transport * transportP;
++        /* The client XML transport that transports this RPC */
++    curlTransaction * curlTransactionP;
++        /* The object which does the HTTP transaction, with no knowledge
++           of XML-RPC or Xmlrpc-c.
++        */
+     CURL * curlSessionP;
+-        /* Handle for the Curl session that hosts this transaction.
+-           Note that only one transaction at a time can use a particular
+-           Curl session, so this had better not be a session that some other
+-           transaction is using simultaneously.
++        /* The Curl session to use for the Curl transaction to perform
++           the RPC.
+         */
+-    finishCurlTransactionFn * finish;
+-    rpc * rpcP;
+-        /* The RPC which this transaction serves.  (If this structure
+-           were a true extension of the Curl library as described above,
+-           this would be a void *, since the Curl library doesn't know what
+-           an RPC is, but since we use it only for that, we might as well
+-           use the specific type here).
++    xmlrpc_mem_block * responseXmlP;
++        /* Where the response XML for this RPC should go or has gone. */
++    xmlrpc_transport_asynch_complete complete;
++        /* Routine to call to complete the RPC after it is complete HTTP-wise.
++           NULL if none.
+         */
+-    CURLcode result;
+-        /* Result of the transaction (succeeded, TCP connect failed, etc.).
+-           A properly executed HTTP transaction (request & response) counts
+-           as a successful transaction.  When 'result' show success,
+-           curl_easy_get_info() tells you whether the transaction succeeded
+-           at the HTTP level.
++    xmlrpc_transport_progress progress;
++        /* Routine to call periodically to report the progress of transporting
++           the call and response.  NULL if none.
+         */
+-    char curlError[CURL_ERROR_SIZE];
+-        /* Error message from Curl */
+-    struct curl_slist * headerList;
+-        /* The HTTP headers for the transaction */
+-    const char * serverUrl;  /* malloc'ed - belongs to this object */
++    struct xmlrpc_call_info * callInfoP;
++        /* User's identifier for this RPC */
+ };
+-
+ static void
+-interpretCurlEasyError(const char ** const descriptionP,
+-                       CURLcode      const code) {
+-
+-#if HAVE_CURL_STRERROR
+-    *descriptionP = strdup(curl_easy_strerror(code));
+-#else
+-    xmlrpc_asprintf(descriptionP, "Curl error code (CURLcode) %d", code);
+-#endif
++lockSyncCurlSession(struct xmlrpc_client_transport * const transportP) {
++    transportP->syncCurlSessionLockP->acquire(
++        transportP->syncCurlSessionLockP);
+ }
+ static void
+-interpretCurlMultiError(const char ** const descriptionP,
+-                        CURLMcode     const code) {
+-
+-#if HAVE_CURL_STRERROR
+-    *descriptionP = strdup(curl_multi_strerror(code));
+-#else
+-    xmlrpc_asprintf(descriptionP, "Curl error code (CURLMcode) %d", code);
+-#endif
++unlockSyncCurlSession(struct xmlrpc_client_transport * const transportP) {
++    transportP->syncCurlSessionLockP->release(
++        transportP->syncCurlSessionLockP);
+ }
+ static void
+-addHeader(xmlrpc_env * const envP,
+-          struct curl_slist ** const headerListP,
+-          const char *         const headerText) {
+-
+-    struct curl_slist * newHeaderList;
+-    newHeaderList = curl_slist_append(*headerListP, headerText);
+-    if (newHeaderList == NULL)
+-        xmlrpc_faultf(envP,
+-                      "Could not add header '%s'.  "
+-                      "curl_slist_append() failed.", headerText);
+-    else
+-        *headerListP = newHeaderList;
+-}
+-
+-
++initWindowsStuff(xmlrpc_env * const envP ATTR_UNUSED) {
+-static void
+-addContentTypeHeader(xmlrpc_env *         const envP,
+-                     struct curl_slist ** const headerListP) {
++#if defined (WIN32)
++    /* This is CRITICAL so that cURL-Win32 works properly! */
+     
+-    addHeader(envP, headerListP, "Content-Type: text/xml");
+-}
+-
+-
+-
+-static void
+-addUserAgentHeader(xmlrpc_env *         const envP,
+-                   struct curl_slist ** const headerListP,
+-                   const char *         const userAgent) {
+-
+-    if (userAgent) {
+-        /* Note: Curl has a CURLOPT_USERAGENT option that does some of this
+-           work.  We prefer to be totally in control, though, so we build
+-           the header explicitly.
+-        */
++    /* So this commenter says, but I wonder why.  libcurl should do the
++       required WSAStartup() itself, and it looks to me like it does.
++       -Bryan 06.01.01
++    */
++    WORD wVersionRequested;
++    WSADATA wsaData;
++    int err;
++    wVersionRequested = MAKEWORD(1, 1);
+     
+-        curl_version_info_data * const curlInfoP =
+-            curl_version_info(CURLVERSION_NOW);
+-        char curlVersion[32];
+-        const char * userAgentHeader;
+-        
+-        snprintf(curlVersion, sizeof(curlVersion), "%u.%u.%u",
+-                (curlInfoP->version_num >> 16) && 0xff,
+-                (curlInfoP->version_num >>  8) && 0xff,
+-                (curlInfoP->version_num >>  0) && 0xff
+-            );
+-                  
+-        xmlrpc_asprintf(&userAgentHeader,
+-                        "User-Agent: %s Xmlrpc-c/%s Curl/%s",
+-                        userAgent, XMLRPC_C_VERSION, curlVersion);
+-        
+-        if (userAgentHeader == xmlrpc_strsol)
+-            xmlrpc_faultf(envP, "Couldn't allocate memory for "
+-                          "User-Agent header");
+-        else {
+-            addHeader(envP, headerListP, userAgentHeader);
+-            
+-            xmlrpc_strfree(userAgentHeader);
++    err = WSAStartup(wVersionRequested, &wsaData);
++    if (err)
++        xmlrpc_env_set_fault_formatted(
++            envP, XMLRPC_INTERNAL_ERROR,
++            "Winsock startup failed.  WSAStartup returned rc %d", err);
++    else {
++        if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1) {
++            /* Tell the user that we couldn't find a useable */ 
++            /* winsock.dll. */ 
++            xmlrpc_env_set_fault_formatted(
++                envP, XMLRPC_INTERNAL_ERROR, "Winsock reported that "
++                "it does not implement the requested version 1.1.");
+         }
++        if (envP->fault_occurred)
++            WSACleanup();
+     }
++#endif
+ }
+ static void
+-addAuthorizationHeader(xmlrpc_env *         const envP,
+-                       struct curl_slist ** const headerListP,
+-                       const char *         const hdrValue) {
++termWindowsStuff(void) {
+-    const char * authorizationHeader;
+-            
+-    xmlrpc_asprintf(&authorizationHeader, "Authorization: %s", hdrValue);
+-    
+-    if (authorizationHeader == xmlrpc_strsol)
+-        xmlrpc_faultf(envP, "Couldn't allocate memory for "
+-                      "Authorization header");
+-    else {
+-        addHeader(envP, headerListP, authorizationHeader);
+-        
+-        xmlrpc_strfree(authorizationHeader);
+-    }
++#if defined (WIN32)
++    WSACleanup();
++#endif
+ }
+-static void
+-createCurlHeaderList(xmlrpc_env *               const envP,
+-                     const char *               const authHdrValue,
+-                     const char *               const userAgent,
+-                     struct curl_slist **       const headerListP) {
++static bool
++curlHasNosignal(void) {
+-    struct curl_slist * headerList;
++    bool retval;
+-    headerList = NULL;  /* initial value - empty list */
++#if HAVE_CURL_NOSIGNAL
++    curl_version_info_data * const curlInfoP =
++        curl_version_info(CURLVERSION_NOW);
+-    addContentTypeHeader(envP, &headerList);
+-    if (!envP->fault_occurred) {
+-        addUserAgentHeader(envP, &headerList, userAgent);
+-        if (!envP->fault_occurred) {
+-            if (authHdrValue)
+-                addAuthorizationHeader(envP, &headerList, authHdrValue);
+-        }
+-    }
+-    if (envP->fault_occurred)
+-        curl_slist_free_all(headerList);
+-    else
+-        *headerListP = headerList;
++    retval = (curlInfoP->version_num >= 0x070A00);  /* 7.10.0 */
++#else
++    retval = false;
++#endif
++    return retval;
+ }
+-static void
+-assertConstantsMatch(void) {
++static xmlrpc_timespec
++pselectTimeout(xmlrpc_timeoutType const timeoutType,
++               xmlrpc_timespec    const timeoutDt) {
+ /*----------------------------------------------------------------------------
+-   There are some constants that we define as part of the Xmlrpc-c
+-   interface that are identical to constants in the Curl interface to
+-   make curl option setting work.  This function asserts such
+-   formally.
++   Return the value that should be used in the select() call to wait for
++   there to be work for the Curl multi manager to do, given that the user
++   wants to timeout according to 'timeoutType' and 'timeoutDt'.
+ -----------------------------------------------------------------------------*/
+-    assert(XMLRPC_SSLVERSION_DEFAULT == CURL_SSLVERSION_DEFAULT);
+-    assert(XMLRPC_SSLVERSION_TLSv1   == CURL_SSLVERSION_TLSv1);
+-    assert(XMLRPC_SSLVERSION_SSLv2   == CURL_SSLVERSION_SSLv2);
+-    assert(XMLRPC_SSLVERSION_SSLv3   == CURL_SSLVERSION_SSLv3);
+-}
+-
++    unsigned int const million = 1000000;
++    unsigned int selectTimeoutMillisec;
++    xmlrpc_timespec retval;
++    /* We assume there is work to do at least every 3 seconds, because
++       the Curl multi manager often has retries and other scheduled work
++       that doesn't involve file handles on which we can select().
++    */
++    switch (timeoutType) {
++    case timeout_no:
++        selectTimeoutMillisec = 3000;
++        break;
++    case timeout_yes: {
++        xmlrpc_timespec nowTime;
++        int timeLeft;
+-static size_t 
+-collect(void *  const ptr, 
+-        size_t  const size, 
+-        size_t  const nmemb,  
+-        FILE  * const stream) {
+-/*----------------------------------------------------------------------------
+-   This is a Curl output function.  Curl calls this to deliver the
+-   HTTP response body to the Curl client.  Curl thinks it's writing to
+-   a POSIX stream.
+------------------------------------------------------------------------------*/
+-    xmlrpc_mem_block * const responseXmlP = (xmlrpc_mem_block *) stream;
+-    char * const buffer = ptr;
+-    size_t const length = nmemb * size;
++        xmlrpc_gettimeofday(&nowTime);
++        timeLeft = timeDiffMillisec(timeoutDt, nowTime);
+-    size_t retval;
+-    xmlrpc_env env;
++        selectTimeoutMillisec = MIN(3000, MAX(0, timeLeft));
++    } break;
++    }
++    retval.tv_sec = selectTimeoutMillisec / 1000;
++    retval.tv_nsec = (uint32_t)((selectTimeoutMillisec % 1000) * million);
+-    xmlrpc_env_init(&env);
+-    xmlrpc_mem_block_append(&env, responseXmlP, buffer, length);
+-    if (env.fault_occurred)
+-        retval = (size_t)-1;
+-    else
+-        /* Really?  Shouldn't it be like fread() and return 'nmemb'? */
+-        retval = length;
+-    
+     return retval;
+-}
+-
+-
+-
+-static int
+-curlProgress(void * const contextP,
+-             double const dltotal  ATTR_UNUSED,
+-             double const dlnow    ATTR_UNUSED,
+-             double const ultotal  ATTR_UNUSED,
+-             double const ulnow    ATTR_UNUSED) {
+-/*----------------------------------------------------------------------------
+-   This is a Curl "progress function."  It's something various Curl
+-   functions call every so often, including whenever something gets
+-   interrupted by the process receiving, and catching, a signal.
+-   There are two purposes of a Curl progress function: 1) lets us log
+-   the progress of a long-running transaction such as a big download,
+-   e.g. by displaying a progress bar somewhere.  In Xmlrpc-c, we don't
+-   implement this purpose.  2) allows us to tell the Curl function,
+-   via our return code, that calls it that we don't want to wait
+-   anymore for the operation to complete.
+-
+-   In Curl versions before March 2007, we get called once per second
+-   and signals have no effect.  In current Curl, we usually get called
+-   immediately after a signal gets caught while Curl is waiting to
+-   receive a response from the server.  But Curl doesn't properly
+-   synchronize with signals, so it may miss one and then we don't get
+-   called until the next scheduled one-per-second call.
+-
+-   All we do is tell Caller it's time to give up if the transport's
+-   client says it is via his "interrupt" flag.
+-
+-   This function is not as important as it once was.  This module used
+-   to use curl_easy_perform(), which can be interrupted only via this
+-   progress function.  But because of the above-mentioned failure of
+-   Curl to properly synchronize signals (and Bryan's failure to get
+-   Curl developers to accept code to fix it), we now use the Curl
+-   "multi" facility instead and do our own pselect().  But
+-   This function still normally gets called by curl_multi_perform(),
+-   which the transport tries to call even when the user has requested
+-   interruption, because we don't trust our ability to abort a running
+-   Curl transaction.  curl_multi_perform() reliably winds up a Curl
+-   transaction when this function tells it to.
+------------------------------------------------------------------------------*/
+-    unsigned int * const interruptP = contextP;
+-
+-    /* We require anyone setting us up as the Curl progress function to
+-       supply an interrupt flag:
+-    */
+-    assert(contextP);
+-
+-    return *interruptP != 0 ? 1 : 0;
+-}
++}        
+ static void
+-setupAuth(xmlrpc_env *               const envP ATTR_UNUSED,
+-          CURL *                     const curlSessionP,
+-          const xmlrpc_server_info * const serverInfoP,
+-          const char **              const authHdrValueP) {
+-/*----------------------------------------------------------------------------
+-   Set the options in the Curl session 'curlSessionP' to set up the HTTP
+-   authentication described by *serverInfoP.
+-
+-   But we have an odd special function for backward compatibility, because
+-   this code dates to a time when libcurl did not have the ability to
+-   handle authentication, but we provided such function nonetheless by
+-   building our own Authorization: header.  But we did this only for
+-   HTTP basic authentication.
+-
+-   So the special function is this: if libcurl is too old to have
+-   authorization options and *serverInfoP allows basic authentication,
+-   return as *basicAuthHdrParamP an appropriate parameter for the
+-   Authorization: Basic: HTTP header.  Otherwise, return
+-   *basicAuthHdrParamP == NULL.
+------------------------------------------------------------------------------*/
+-    if (serverInfoP->allowedAuth.basic) {
+-        CURLcode rc;
+-        rc = curl_easy_setopt(curlSessionP, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
++processCurlMessages(xmlrpc_env * const envP,
++                    curlMulti *  const curlMultiP) {
++        
++    bool endOfMessages;
+-        if (rc == CURLE_OK)
+-            *authHdrValueP = NULL;
+-        else {
+-            *authHdrValueP = strdup(serverInfoP->basicAuthHdrValue);
+-            if (*authHdrValueP == NULL)
+-                xmlrpc_faultf(envP, "Unable to allocate memory for basic "
+-                              "authentication header");
+-        }
+-    } else
+-        *authHdrValueP = NULL;
+-
+-    /* We don't worry if libcurl is too old for these other kinds of
+-       authentication; they're only defined as _allowed_
+-       authentication methods, for when client and server are capable
+-       of using it, and unlike with basic authentication, we have no
+-       historical commitment to consider an old libcurl as capable of
+-       doing these.
+-    */
+-    
+-    if (serverInfoP->userNamePw)
+-        curl_easy_setopt(curlSessionP, CURLOPT_USERPWD,
+-                         serverInfoP->userNamePw);
+-
+-    if (serverInfoP->allowedAuth.digest)
+-        curl_easy_setopt(
+-            curlSessionP, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
+-    if (serverInfoP->allowedAuth.gssnegotiate)
+-        curl_easy_setopt(
+-            curlSessionP, CURLOPT_HTTPAUTH, CURLAUTH_GSSNEGOTIATE);
+-    if (serverInfoP->allowedAuth.ntlm)
+-        curl_easy_setopt(
+-            curlSessionP, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
+-}
++    endOfMessages = false;   /* initial assumption */
++    while (!endOfMessages && !envP->fault_occurred) {
++        CURLMsg curlMsg;
+-static void
+-setCurlTimeout(CURL *       const curlSessionP ATTR_UNUSED,
+-               unsigned int const timeout ATTR_UNUSED) {
++        curlMulti_getMessage(curlMultiP, &endOfMessages, &curlMsg);
+-#if HAVE_CURL_NOSIGNAL
+-    unsigned int const timeoutMs = (timeout + 999)/1000;
++        if (!endOfMessages) {
++            if (curlMsg.msg == CURLMSG_DONE) {
++                curlTransaction * curlTransactionP;
+-    curl_easy_setopt(curlSessionP, CURLOPT_NOSIGNAL, 1);
++                curl_easy_getinfo(curlMsg.easy_handle, CURLINFO_PRIVATE,
++                                  (void *)&curlTransactionP);
+-    assert((long)timeoutMs == (int)timeoutMs);
+-        /* Calling requirement */
+-    curl_easy_setopt(curlSessionP, CURLOPT_TIMEOUT, (long)timeoutMs);
+-#else
+-    abort();
+-#endif
+-}
+-
+-
+-
+-static void
+-setupCurlSession(xmlrpc_env *               const envP,
+-                 curlTransaction *          const curlTransactionP,
+-                 xmlrpc_mem_block *         const callXmlP,
+-                 xmlrpc_mem_block *         const responseXmlP,
+-                 const xmlrpc_server_info * const serverInfoP,
+-                 const char *               const userAgent,
+-                 int *                      const interruptP,
+-                 const struct curlSetup *   const curlSetupP) {
+-/*----------------------------------------------------------------------------
+-   Set up the Curl session for the transaction *curlTransactionP so that
+-   a subsequent curl_easy_perform() would perform said transaction.
+-
+-   The data curl_easy_perform() would send for that transaction would 
+-   be the contents of *callXmlP; the data curl_easy_perform() gets back
+-   would go into *responseXmlP.
+-
+-   'interruptP' is a pointer to an interrupt flag -- a flag that becomes
+-   nonzero when the user wants to abandon this Curl session.  NULL means
+-   there is no interrupt flag; user will never want to abandon the session.
+------------------------------------------------------------------------------*/
+-    CURL * const curlSessionP = curlTransactionP->curlSessionP;
+-
+-    assertConstantsMatch();
+-
+-    curl_easy_setopt(curlSessionP, CURLOPT_POST, 1);
+-    curl_easy_setopt(curlSessionP, CURLOPT_URL, curlTransactionP->serverUrl);
+-
+-    XMLRPC_MEMBLOCK_APPEND(char, envP, callXmlP, "\0", 1);
+-    if (!envP->fault_occurred) {
+-        curl_easy_setopt(curlSessionP, CURLOPT_POSTFIELDS, 
+-                         XMLRPC_MEMBLOCK_CONTENTS(char, callXmlP));
+-        curl_easy_setopt(curlSessionP, CURLOPT_WRITEFUNCTION, collect);
+-        curl_easy_setopt(curlSessionP, CURLOPT_FILE, responseXmlP);
+-        curl_easy_setopt(curlSessionP, CURLOPT_HEADER, 0);
+-        curl_easy_setopt(curlSessionP, CURLOPT_ERRORBUFFER, 
+-                         curlTransactionP->curlError);
+-        if (interruptP) {
+-            curl_easy_setopt(curlSessionP, CURLOPT_NOPROGRESS, 0);
+-            curl_easy_setopt(curlSessionP, CURLOPT_PROGRESSFUNCTION,
+-                             curlProgress);
+-            curl_easy_setopt(curlSessionP, CURLOPT_PROGRESSDATA, interruptP);
+-        } else
+-            curl_easy_setopt(curlSessionP, CURLOPT_NOPROGRESS, 1);
+-        
+-        curl_easy_setopt(curlSessionP, CURLOPT_SSL_VERIFYPEER,
+-                         curlSetupP->sslVerifyPeer);
+-        curl_easy_setopt(curlSessionP, CURLOPT_SSL_VERIFYHOST,
+-                         curlSetupP->sslVerifyHost ? 2 : 0);
+-
+-        if (curlSetupP->networkInterface)
+-            curl_easy_setopt(curlSessionP, CURLOPT_INTERFACE,
+-                             curlSetupP->networkInterface);
+-        if (curlSetupP->sslCert)
+-            curl_easy_setopt(curlSessionP, CURLOPT_SSLCERT,
+-                             curlSetupP->sslCert);
+-        if (curlSetupP->sslCertType)
+-            curl_easy_setopt(curlSessionP, CURLOPT_SSLCERTTYPE,
+-                             curlSetupP->sslCertType);
+-        if (curlSetupP->sslCertPasswd)
+-            curl_easy_setopt(curlSessionP, CURLOPT_SSLCERTPASSWD,
+-                             curlSetupP->sslCertPasswd);
+-        if (curlSetupP->sslKey)
+-            curl_easy_setopt(curlSessionP, CURLOPT_SSLKEY,
+-                             curlSetupP->sslKey);
+-        if (curlSetupP->sslKeyType)
+-            curl_easy_setopt(curlSessionP, CURLOPT_SSLKEYTYPE,
+-                             curlSetupP->sslKeyType);
+-        if (curlSetupP->sslKeyPasswd)
+-            curl_easy_setopt(curlSessionP, CURLOPT_SSLKEYPASSWD,
+-                             curlSetupP->sslKeyPasswd);
+-        if (curlSetupP->sslEngine)
+-            curl_easy_setopt(curlSessionP, CURLOPT_SSLENGINE,
+-                             curlSetupP->sslEngine);
+-        if (curlSetupP->sslEngineDefault)
+-            /* 3rd argument seems to be required by some Curl */
+-            curl_easy_setopt(curlSessionP, CURLOPT_SSLENGINE_DEFAULT, 1l);
+-        if (curlSetupP->sslVersion != XMLRPC_SSLVERSION_DEFAULT)
+-            curl_easy_setopt(curlSessionP, CURLOPT_SSLVERSION,
+-                             curlSetupP->sslVersion);
+-        if (curlSetupP->caInfo)
+-            curl_easy_setopt(curlSessionP, CURLOPT_CAINFO,
+-                             curlSetupP->caInfo);
+-        if (curlSetupP->caPath)
+-            curl_easy_setopt(curlSessionP, CURLOPT_CAPATH,
+-                             curlSetupP->caPath);
+-        if (curlSetupP->randomFile)
+-            curl_easy_setopt(curlSessionP, CURLOPT_RANDOM_FILE,
+-                             curlSetupP->randomFile);
+-        if (curlSetupP->egdSocket)
+-            curl_easy_setopt(curlSessionP, CURLOPT_EGDSOCKET,
+-                             curlSetupP->egdSocket);
+-        if (curlSetupP->sslCipherList)
+-            curl_easy_setopt(curlSessionP, CURLOPT_SSL_CIPHER_LIST,
+-                             curlSetupP->sslCipherList);
+-
+-        if (curlSetupP->timeout)
+-            setCurlTimeout(curlSessionP, curlSetupP->timeout);
+-
+-        {
+-            const char * authHdrValue;
+-                /* NULL means we don't have to construct an explicit
+-                   Authorization: header.  non-null means we have to
+-                   construct one with this as its value.
+-                */
+-
+-            setupAuth(envP, curlSessionP, serverInfoP, &authHdrValue);
+-            if (!envP->fault_occurred) {
+-                struct curl_slist * headerList;
+-                createCurlHeaderList(envP, authHdrValue, userAgent,
+-                                     &headerList);
+-                if (!envP->fault_occurred) {
+-                    curl_easy_setopt(
+-                        curlSessionP, CURLOPT_HTTPHEADER, headerList);
+-                    curlTransactionP->headerList = headerList;
+-                }
+-                if (authHdrValue)
+-                    xmlrpc_strfree(authHdrValue);
+-            }
+-        }
+-    }
+-}
+-
+-
+-
+-static void
+-curlTransaction_create(xmlrpc_env *               const envP,
+-                       CURL *                     const curlSessionP,
+-                       const xmlrpc_server_info * const serverP,
+-                       xmlrpc_mem_block *         const callXmlP,
+-                       xmlrpc_mem_block *         const responseXmlP,
+-                       const char *               const userAgent,
+-                       const struct curlSetup *   const curlSetupStuffP,
+-                       rpc *                      const rpcP,
+-                       int *                      const interruptP,
+-                       curlTransaction **         const curlTransactionPP) {
+-
+-    curlTransaction * curlTransactionP;
+-
+-    MALLOCVAR(curlTransactionP);
+-    if (curlTransactionP == NULL)
+-        xmlrpc_faultf(envP, "No memory to create Curl transaction.");
+-    else {
+-        curlTransactionP->finish       = NULL;
+-        curlTransactionP->curlSessionP = curlSessionP;
+-        curlTransactionP->rpcP         = rpcP;
+-
+-        curlTransactionP->serverUrl = strdup(serverP->serverUrl);
+-        if (curlTransactionP->serverUrl == NULL)
+-            xmlrpc_faultf(envP, "Out of memory to store server URL.");
+-        else {
+-            setupCurlSession(envP, curlTransactionP,
+-                             callXmlP, responseXmlP,
+-                             serverP, userAgent, interruptP,
+-                             curlSetupStuffP);
+-            
+-            if (envP->fault_occurred)
+-                xmlrpc_strfree(curlTransactionP->serverUrl);
+-        }
+-        if (envP->fault_occurred)
+-            free(curlTransactionP);
+-    }
+-    *curlTransactionPP = curlTransactionP;
+-}
+-
+-
+-
+-static void
+-curlTransaction_destroy(curlTransaction * const curlTransactionP) {
+-
+-    curl_slist_free_all(curlTransactionP->headerList);
+-    xmlrpc_strfree(curlTransactionP->serverUrl);
+-
+-    free(curlTransactionP);
+-}
+-
+-
+-
+-/*=============================================================================
+-    curlMulti
+-=============================================================================*/
+-
+-typedef struct {
+-/*----------------------------------------------------------------------------
+-   This is an extension to Curl's CURLM object.  The extensions are:
+-
+-   1) It has a lock so multiple threads can use it simultaneously.
+-
+-   2) Its "select" file descriptor vectors are self-contained.  CURLM
+-      requires the user to maintain them separately.
+-
+-   Plus, it manages Curl transactions (curlTransaction) instead of Curl
+-   sessions (CURL).
+------------------------------------------------------------------------------*/
+-    CURLM * curlMultiP;
+-    lock * lockP;
+-        /* Hold this lock while accessing or using *curlMultiP.  You're
+-           using the multi manager whenever you're calling a Curl
+-           library multi manager function.
+-        */
+-    /* The following file descriptor sets are an integral part of the
+-       CURLM object; Our curlMulti_fdset() routine binds them to the
+-       CURLM object, and said object expects us to use them in a very
+-       specific way, including doing a select() on them.  It is very,
+-       very messy.
+-    */
+-    fd_set readFdSet;
+-    fd_set writeFdSet;
+-    fd_set exceptFdSet;
+-} curlMulti;
+-
+-
+-
+-static curlMulti *
+-curlMulti_create(void) {
+-
+-    curlMulti * retval;
+-    curlMulti * curlMultiP;
+-
+-    MALLOCVAR(curlMultiP);
+-
+-    if (curlMultiP == NULL)
+-        retval = NULL;
+-    else {
+-        curlMultiP->lockP = createLock_pthread();
+-
+-        if (curlMultiP->lockP == NULL)
+-            retval = NULL;
+-        else {
+-            curlMultiP->curlMultiP = curl_multi_init();
+-            if (curlMultiP->curlMultiP == NULL)
+-                retval = NULL;
+-            else
+-                retval = curlMultiP;
+-
+-            if (retval == NULL)
+-                curlMultiP->lockP->destroy(curlMultiP->lockP);
+-        }
+-        if (retval == NULL)
+-            free(curlMultiP);
+-    }
+-    return retval;
+-}
+-
+-
+-
+-static void
+-curlMulti_destroy(curlMulti * const curlMultiP) {
+-
+-    curl_multi_cleanup(curlMultiP->curlMultiP);
+-    
+-    curlMultiP->lockP->destroy(curlMultiP->lockP);
+-
+-    free(curlMultiP);
+-}
+-
+-
+-
+-static void
+-curlMulti_perform(xmlrpc_env * const envP,
+-                  curlMulti *  const curlMultiP,
+-                  bool *       const immediateWorkToDoP,
+-                  int *        const runningHandlesP) {
+-/*----------------------------------------------------------------------------
+-   Do whatever work is ready to be done under the control of multi
+-   manager 'curlMultiP'.  E.g. if HTTP response data has recently arrived
+-   from the network, process it as an HTTP response.
+-
+-   Iff this results in some work being finished from our point of view,
+-   return *immediateWorkToDoP.  (Caller can query the multi manager for
+-   messages and find out what it is).
+-
+-   Return as *runningHandlesP the number of Curl easy handles under the
+-   multi manager's control that are still running -- yet to finish.
+------------------------------------------------------------------------------*/
+-    CURLMcode rc;
+-
+-    curlMultiP->lockP->lock(curlMultiP->lockP);
+-
+-    rc = curl_multi_perform(curlMultiP->curlMultiP, runningHandlesP);
+-
+-    curlMultiP->lockP->unlock(curlMultiP->lockP);
+-
+-    if (rc == CURLM_CALL_MULTI_PERFORM) {
+-        *immediateWorkToDoP = true;
+-    } else {
+-        *immediateWorkToDoP = false;
+-
+-        if (rc != CURLM_OK) {
+-            const char * reason;
+-            interpretCurlMultiError(&reason, rc);
+-            xmlrpc_faultf(envP, "Impossible failure of curl_multi_perform(): "
+-                          "%s", reason);
+-            xmlrpc_strfree(reason);
+-        }
+-    }
+-}        
+-
+-
+-
+-static void
+-curlMulti_addHandle(xmlrpc_env *       const envP,
+-                    curlMulti *        const curlMultiP,
+-                    curlTransaction  * const curlTransactionP) {
+-
+-    CURLMcode rc;
+-
+-    curlMultiP->lockP->lock(curlMultiP->lockP);
+-
+-    rc = curl_multi_add_handle(curlMultiP->curlMultiP,
+-                               curlTransactionP->curlSessionP);
+-    
+-    curlMultiP->lockP->unlock(curlMultiP->lockP);
+-
+-    if (rc != CURLM_OK) {
+-        const char * reason;
+-        interpretCurlMultiError(&reason, rc);
+-        xmlrpc_faultf(envP, "Could not add Curl session to the "
+-                      "curl multi manager.  curl_multi_add_handle() "
+-                      "failed: %s", reason);
+-        xmlrpc_strfree(reason);
+-    }
+-}
+-
+-
+-static void
+-curlMulti_removeHandle(curlMulti *       const curlMultiP,
+-                       curlTransaction * const curlTransactionP) {
+-
+-    curlMultiP->lockP->lock(curlMultiP->lockP);
+-
+-    curl_multi_remove_handle(curlMultiP->curlMultiP,
+-                             curlTransactionP->curlSessionP);
+-    
+-    curlMultiP->lockP->unlock(curlMultiP->lockP);
+-}
+-
+-
+-
+-static void
+-curlMulti_getMessage(curlMulti * const curlMultiP,
+-                     bool *      const endOfMessagesP,
+-                     CURLMsg *   const curlMsgP) {
+-/*----------------------------------------------------------------------------
+-   Get the next message from the queue of things the Curl multi manager
+-   wants to say to us.
+-
+-   Return the message as *curlMsgP.
+-
+-   Iff there are no messages in the queue, return *endOfMessagesP == true.
+------------------------------------------------------------------------------*/
+-    int remainingMsgCount;
+-    CURLMsg * privateCurlMsgP;
+-        /* Note that this is a pointer into the multi manager's memory,
+-           so we have to use it under lock.
+-        */
+-
+-    curlMultiP->lockP->lock(curlMultiP->lockP);
+-    
+-    privateCurlMsgP = curl_multi_info_read(curlMultiP->curlMultiP,
+-                                           &remainingMsgCount);
+-        
+-    if (privateCurlMsgP == NULL)
+-        *endOfMessagesP = true;
+-    else {
+-        *endOfMessagesP = false;
+-        *curlMsgP = *privateCurlMsgP;
+-    }    
+-    curlMultiP->lockP->unlock(curlMultiP->lockP);
+-}
+-
+-
+-
+-static void
+-curlMulti_fdset(xmlrpc_env * const envP,
+-                curlMulti *  const curlMultiP,
+-                fd_set *     const readFdSetP,
+-                fd_set *     const writeFdSetP,
+-                fd_set *     const exceptFdSetP,
+-                int *        const maxFdP) {
+-/*----------------------------------------------------------------------------
+-   Set the CURLM object's file descriptor sets to those in the
+-   curlMulti object, update those file descriptor sets with the
+-   current needs of the multi manager, and return the resulting values
+-   of the file descriptor sets.
+-
+-   This is a bizarre operation, but is necessary because of the nonmodular
+-   way in which the Curl multi interface works with respect to waiting
+-   for work with select().
+------------------------------------------------------------------------------*/
+-    CURLMcode rc;
+-    
+-    curlMultiP->lockP->lock(curlMultiP->lockP);
+-
+-    /* curl_multi_fdset() doesn't _set_ the fdsets.  It adds to existing
+-       ones (so you can easily do a select() on other fds and Curl
+-       fds at the same time).  So we have to clear first:
+-    */
+-    FD_ZERO(&curlMultiP->readFdSet);
+-    FD_ZERO(&curlMultiP->writeFdSet);
+-    FD_ZERO(&curlMultiP->exceptFdSet);
+-
+-    /* WARNING: curl_multi_fdset() doesn't just update the fdsets pointed
+-       to by its arguments.  It makes the CURLM object remember those
+-       pointers and refer back to them later!  In fact, curl_multi_perform
+-       expects its caller to have done a select() on those masks.  No,
+-       really.  The man page even admits it.
+-
+-       Inspection of the Libcurl code in March 2007 indicates that
+-       this isn't actually true -- curl_multi_fdset() updates your
+-       fdset and doesn't remember the pointer at all.  I.e. it's just
+-       what you would expect.  The man pages still says it's as
+-       described above.  My guess is that Libcurl was fixed at some
+-       time and the man page not updated.  In any case, we have to
+-       work with old Libcurl if at all possible, so we still maintain
+-       these fdsets as if they belong to the CURLM object.
+-    */
+-
+-    rc = curl_multi_fdset(curlMultiP->curlMultiP,
+-                          &curlMultiP->readFdSet,
+-                          &curlMultiP->writeFdSet,
+-                          &curlMultiP->exceptFdSet,
+-                          maxFdP);
+-
+-    *readFdSetP   = curlMultiP->readFdSet;
+-    *writeFdSetP  = curlMultiP->writeFdSet;
+-    *exceptFdSetP = curlMultiP->exceptFdSet;
+-
+-    curlMultiP->lockP->unlock(curlMultiP->lockP);
+-
+-    if (rc != CURLM_OK) {
+-        const char * reason;
+-        interpretCurlMultiError(&reason, rc);
+-        xmlrpc_faultf(envP, "Impossible failure of curl_multi_fdset(): %s",
+-                      reason);
+-        xmlrpc_strfree(reason);
+-    }
+-}
+-
+-
+-
+-static void
+-curlMulti_updateFdSet(curlMulti * const curlMultiP,
+-                      fd_set      const readFdSet,
+-                      fd_set      const writeFdSet,
+-                      fd_set      const exceptFdSet) {
+-/*----------------------------------------------------------------------------
+-   curl_multi_perform() expects the file descriptor sets, which were bound
+-   to the CURLM object via a prior curlMulti_fdset(), to contain the results
+-   of a recent select().  This subroutine provides you a way to supply those.
+------------------------------------------------------------------------------*/
+-    curlMultiP->readFdSet   = readFdSet;
+-    curlMultiP->writeFdSet  = writeFdSet;
+-    curlMultiP->exceptFdSet = exceptFdSet;
+-}
+-
+-                      
+-
+-static xmlrpc_timespec
+-pselectTimeout(xmlrpc_timeoutType const timeoutType,
+-               xmlrpc_timespec    const timeoutDt) {
+-/*----------------------------------------------------------------------------
+-   Return the value that should be used in the select() call to wait for
+-   there to be work for the Curl multi manager to do, given that the user
+-   wants to timeout according to 'timeoutType' and 'timeoutDt'.
+------------------------------------------------------------------------------*/
+-    unsigned int const million = 1000000;
+-    unsigned int selectTimeoutMillisec;
+-    xmlrpc_timespec retval;
+-
+-    selectTimeoutMillisec = 0; /* quiet compiler warning */
+-
+-    /* We assume there is work to do at least every 3 seconds, because
+-       the Curl multi manager often has retries and other scheduled work
+-       that doesn't involve file handles on which we can select().
+-    */
+-    switch (timeoutType) {
+-    case timeout_no:
+-        selectTimeoutMillisec = 3000;
+-        break;
+-    case timeout_yes: {
+-        xmlrpc_timespec nowTime;
+-        int timeLeft;
+-
+-        xmlrpc_gettimeofday(&nowTime);
+-        timeLeft = timeDiffMillisec(timeoutDt, nowTime);
+-
+-        selectTimeoutMillisec = MIN(3000, MAX(0, timeLeft));
+-    }
+-    break;
+-    }
+-    retval.tv_sec = selectTimeoutMillisec / 1000;
+-    retval.tv_nsec = (uint32_t)((selectTimeoutMillisec % 1000) * million);
+-
+-    return retval;
+-}        
+-
+-
+-
+-static void
+-processCurlMessages(xmlrpc_env * const envP,
+-                    curlMulti *  const curlMultiP) {
+-        
+-    bool endOfMessages;
+-
+-    endOfMessages = false;   /* initial assumption */
+-
+-    while (!endOfMessages && !envP->fault_occurred) {
+-        CURLMsg curlMsg;
+-
+-        curlMulti_getMessage(curlMultiP, &endOfMessages, &curlMsg);
+-
+-        if (!endOfMessages) {
+-            if (curlMsg.msg == CURLMSG_DONE) {
+-                curlTransaction * curlTransactionP;
+-
+-                curl_easy_getinfo(curlMsg.easy_handle, CURLINFO_PRIVATE,
+-                                  &curlTransactionP);
+-
+-                curlTransactionP->result = curlMsg.data.result;
+-
+-                if (curlTransactionP->finish)
+-                    curlTransactionP->finish(envP, curlTransactionP);
+-            }
+-        }
+-    }
++                curlTransaction_finish(envP,
++                                       curlTransactionP, curlMsg.data.result);
++            }
++        }
++    }
+ }
+@@ -1237,411 +470,141 @@ waitForWork(xmlrpc_env *       const envP,
+                                       readFdSet, writeFdSet, exceptFdSet);
+             }
+         }
+-    }
+-}
+-
+-
+-
+-static void
+-waitForWorkInt(xmlrpc_env *       const envP,
+-               curlMulti *        const curlMultiP,
+-               xmlrpc_timeoutType const timeoutType,
+-               xmlrpc_timespec    const deadline,
+-               int *              const interruptP) {
+-/*----------------------------------------------------------------------------
+-   Same as waitForWork(), except we guarantee to return if a signal handler
+-   sets or has set *interruptP, whereas waitForWork() can miss a signal
+-   that happens before or just after it starts.
+-
+-   We mess with global state -- the signal mask -- so we might mess up
+-   a multithreaded program.  Therefore, don't call this if
+-   waitForWork() will suffice.
+------------------------------------------------------------------------------*/
+-    sigset_t callerBlockSet;
+-#ifdef WIN32
+-    waitForWork(envP, curlMultiP, timeoutType, deadline, &callerBlockSet);
+-#else
+-    sigset_t allSignals;
+-
+-    assert(interruptP != NULL);
+-
+-    sigfillset(&allSignals);
+-
+-    sigprocmask(SIG_BLOCK, &allSignals, &callerBlockSet);
+-    
+-    if (*interruptP == 0)
+-        waitForWork(envP, curlMultiP, timeoutType, deadline, &callerBlockSet);
+-
+-    sigprocmask(SIG_SETMASK, &callerBlockSet, NULL);
+-#endif
+-}
+-
+-
+-
+-static void
+-doCurlWork(xmlrpc_env * const envP,
+-           curlMulti *  const curlMultiP,
+-           bool *       const transStillRunningP) {
+-/*----------------------------------------------------------------------------
+-   Do whatever work is ready to be done by the Curl multi manager
+-   identified by 'curlMultiP'.  This typically is transferring data on
+-   an HTTP connection because the server is ready.
+-
+-   For each transaction for which the multi manager finishes all the
+-   required work, complete the transaction by calling its
+-   "finish" routine.
+-
+-   Return *transStillRunningP false if this work completes all of the
+-   manager's transactions so that there is no reason to call us ever
+-   again.
+------------------------------------------------------------------------------*/
+-    bool immediateWorkToDo;
+-    int runningHandles;
+-
+-    immediateWorkToDo = true;  /* initial assumption */
+-
+-    while (immediateWorkToDo && !envP->fault_occurred) {
+-        curlMulti_perform(envP, curlMultiP,
+-                          &immediateWorkToDo, &runningHandles);
+-    }
+-
+-    /* We either did all the work that's ready to do or hit an error. */
+-
+-    if (!envP->fault_occurred) {
+-        /* The work we did may have resulted in asynchronous messages
+-           (asynchronous to the thing they refer to, not to us, of course).
+-           In particular the message "Curl transaction has completed".
+-           So we process those now.
+-        */
+-        processCurlMessages(envP, curlMultiP);
+-
+-        *transStillRunningP = runningHandles > 0;
+-    }
+-}
+-
+-
+-
+-static void
+-curlMulti_finish(xmlrpc_env *       const envP,
+-                 curlMulti *        const curlMultiP,
+-                 xmlrpc_timeoutType const timeoutType,
+-                 xmlrpc_timespec    const deadline,
+-                 int *              const interruptP) {
+-/*----------------------------------------------------------------------------
+-   Prosecute all the Curl transactions under the control of
+-   *curlMultiP.  E.g. send data if server is ready to take it, get
+-   data if server has sent some, wind up the transaction if it is
+-   done.
+-
+-   Don't return until all the Curl transactions are done or we time out.
+-
+-   The *interruptP flag alone will not interrupt us.  We will wait in
+-   spite of it for all Curl transactions to complete.  *interruptP
+-   just gives us a hint that the Curl transactions are being
+-   interrupted, so we know there is work to do for them.  (The way it
+-   works is Caller sets up a "progress" function that checks the same
+-   interrupt flag and reports "kill me."  When we see the interrupt
+-   flag, we call that progress function and get the message).
+------------------------------------------------------------------------------*/
+-    bool rpcStillRunning;
+-    bool timedOut;
+-
+-    rpcStillRunning = true;  /* initial assumption */
+-    timedOut = false;
+-    
+-    while (rpcStillRunning && !timedOut && !envP->fault_occurred) {
+-
+-        if (interruptP) {
+-            waitForWorkInt(envP, curlMultiP, timeoutType, deadline,
+-                           interruptP);
+-        } else 
+-            waitForWork(envP, curlMultiP, timeoutType, deadline, NULL);
+-
+-        if (!envP->fault_occurred) {
+-            xmlrpc_timespec nowTime;
+-
+-            /* doCurlWork() (among other things) finds Curl
+-               transactions that user wants to abort and finishes
+-               them.
+-            */
+-            doCurlWork(envP, curlMultiP, &rpcStillRunning);
+-            
+-            xmlrpc_gettimeofday(&nowTime);
+-            
+-            timedOut = (timeoutType == timeout_yes &&
+-                        timeIsAfter(nowTime, deadline));
+-        }
+-    }
+-}
+-
+-
+-
+-/*===========================================================================*/
+-
+-
+-static void
+-startCurlTransaction(xmlrpc_env *      const envP,
+-                     curlTransaction * const curlTransactionP,
+-                     curlMulti *       const curlMultiP,
+-                     finishCurlTransactionFn finish) {
+-
+-    curlTransactionP->finish = finish;
+-
+-    /* A Curl session is serial -- it processes zero or one transaction
+-       at a time.  We use the "private" attribute of the Curl session to
+-       indicate which transaction it is presently processing.  This is
+-       important when the transaction finishes, because libcurl will just
+-       tell us that something finished on a particular session, not that
+-       a particular transaction finished.
+-    */
+-    curl_easy_setopt(curlTransactionP->curlSessionP, CURLOPT_PRIVATE,
+-                     curlTransactionP);
+-
+-    curlMulti_addHandle(envP, curlMultiP, curlTransactionP);
+-}
+-
+-
+-
+-static void
+-getCurlTransactionError(curlTransaction * const curlTransactionP,
+-                        xmlrpc_env *      const envP) {
+-
+-    if (curlTransactionP->result != CURLE_OK) {
+-        /* We've seen Curl just return a null string for an explanation
+-           (e.g. when TCP connect() fails because IP address doesn't exist).
+-        */
+-        const char * explanation;
+-
+-        if (strlen(curlTransactionP->curlError) == 0)
+-            interpretCurlEasyError(&explanation, curlTransactionP->result);
+-        else
+-            xmlrpc_asprintf(&explanation, "%s", curlTransactionP->curlError);
+-
+-        xmlrpc_env_set_fault_formatted(
+-            envP, XMLRPC_NETWORK_ERROR, "libcurl failed to execute the "
+-            "HTTP POST transaction.  %s", explanation);
+-
+-        xmlrpc_strfree(explanation);
+-    } else {
+-        CURLcode res;
+-        long http_result;
+-        
+-        res = curl_easy_getinfo(curlTransactionP->curlSessionP,
+-                                CURLINFO_HTTP_CODE, &http_result);
+-    
+-        if (res != CURLE_OK)
+-            xmlrpc_env_set_fault_formatted(
+-                envP, XMLRPC_INTERNAL_ERROR, 
+-                "Curl performed the HTTP POST request, but was "
+-                "unable to say what the HTTP result code was.  "
+-                "curl_easy_getinfo(CURLINFO_HTTP_CODE) says: %s", 
+-                curlTransactionP->curlError);
+-        else {
+-            if (http_result != 200)
+-                xmlrpc_env_set_fault_formatted(
+-                    envP, XMLRPC_NETWORK_ERROR,
+-                    "HTTP response code is %ld, not 200",
+-                    http_result);
+-        }
+-    }
+-}
+-
+-
+-
+-static void
+-performCurlTransaction(xmlrpc_env *      const envP,
+-                       curlTransaction * const curlTransactionP,
+-                       curlMulti *       const curlMultiP,
+-                       int *             const interruptP) {
+-
+-    void * const finish = NULL;
+-        /* We don't need a finish function because we're going to wait here
+-           for the transaction to complete and then do the next step
+-           ourselves.
+-        */
+-
+-    startCurlTransaction(envP, curlTransactionP, curlMultiP, finish);
+-
+-    /* Failure here just means something screwy in the multi manager;
+-       Above does not even begin to perform the HTTP transaction
+-    */
+-
+-    if (!envP->fault_occurred) {
+-        xmlrpc_timespec const dummy = {0,0};
+-
+-        curlMulti_finish(envP, curlMultiP, timeout_no, dummy, interruptP);
+-
+-        /* Failure here just means something screwy in the multi
+-           manager; any failure of the HTTP transaction would have been
+-           recorded in *curlTransactionP.
+-        */
+-
+-        if (!envP->fault_occurred) {
+-            /* Curl session completed OK.  But did HTTP transaction
+-               work?
+-            */
+-            getCurlTransactionError(curlTransactionP, envP);
+-        }
+-        /* If the CURL transaction is still going, removing the handle
+-           here aborts it.  At least it's supposed to.  From what I've
+-           seen in the Curl code in 2007, I don't think it does.  I
+-           couldn't get Curl maintainers interested in the problem,
+-           except to say, "If you're right, there's a bug."
+-        */
+-        curlMulti_removeHandle(curlMultiP, curlTransactionP);
+-    }
+-}
+-
+-
+-
+-struct xmlrpc_client_transport {
+-    CURL * syncCurlSessionP;
+-        /* Handle for a Curl library session object that we use for
+-           all synchronous RPCs.  An async RPC has one of its own,
+-           and consequently does not share things such as persistent
+-           connections and cookies with any other RPC.
+-        */
+-    lock * syncCurlSessionLockP;
+-        /* Hold this lock while accessing or using *syncCurlSessionP.
+-           You're using the session from the time you set any
+-           attributes in it or start a transaction with it until any
+-           transaction has finished and you've lost interest in any
+-           attributes of the session.
+-        */
+-    curlMulti * syncCurlMultiP;
+-        /* The Curl multi manager that this transport uses to execute
+-           Curl transactions for RPCs requested via the synchronous
+-           interface.  The fact that there is never more than one such
+-           transaction going at a time might make you wonder why a
+-           "multi" manager is needed.  The reason is that it is the only
+-           interface in libcurl that gives us the flexibility to execute
+-           the transaction with proper interruptibility.  The only Curl
+-           transaction ever attached to this multi manager is
+-           'syncCurlSessionP'.
+-           
+-           This is constant (the handle, not the object).
+-        */
+-    curlMulti * asyncCurlMultiP;
+-        /* The Curl multi manager that this transport uses to execute
+-           Curl transactions for RPCs requested via the asynchronous
+-           interface.  Note that there may be multiple such Curl transactions
+-           simultaneously and one can't wait for a particular one to finish;
+-           the collection of asynchronous RPCs are an indivisible mass.
+-           
+-           This is constant (the handle, not the object).
+-        */
+-    const char * userAgent;
+-        /* Prefix for the User-Agent HTTP header, reflecting facilities
+-           outside of Xmlrpc-c.  The actual User-Agent header consists
+-           of this prefix plus information about Xmlrpc-c.  NULL means
+-           none.
+-
+-           This is constant.
+-        */
+-    struct curlSetup curlSetupStuff;
+-        /* This is constant */
+-    int * interruptP;
+-        /* Pointer to a value that user sets to nonzero to indicate he wants
+-           the transport to give up on whatever it is doing and return ASAP.
++    }
++}
+-           NULL means none -- transport never gives up.
+-        */
+-};
++static void
++waitForWorkInt(xmlrpc_env *       const envP,
++               curlMulti *        const curlMultiP,
++               xmlrpc_timeoutType const timeoutType,
++               xmlrpc_timespec    const deadline,
++               int *              const interruptP) {
++/*----------------------------------------------------------------------------
++   Same as waitForWork(), except we guarantee to return if a signal handler
++   sets or has set *interruptP, whereas waitForWork() can miss a signal
++   that happens before or just after it starts.
+-struct rpc {
+-    struct xmlrpc_client_transport * transportP;
+-        /* The client XML transport that transports this RPC */
+-    curlTransaction * curlTransactionP;
+-        /* The object which does the HTTP transaction, with no knowledge
+-           of XML-RPC or Xmlrpc-c.
+-        */
+-    xmlrpc_mem_block * responseXmlP;
+-        /* Where the response XML for this RPC should go or has gone. */
+-    xmlrpc_transport_asynch_complete complete;
+-        /* Routine to call to complete the RPC after it is complete HTTP-wise.
+-           NULL if none.
+-        */
+-    struct xmlrpc_call_info * callInfoP;
+-        /* User's identifier for this RPC */
+-};
++   We mess with global state -- the signal mask -- so we might mess up
++   a multithreaded program.  Therefore, don't call this if
++   waitForWork() will suffice.
++-----------------------------------------------------------------------------*/
++    sigset_t callerBlockSet;
++#ifdef WIN32
++    waitForWork(envP, curlMultiP, timeoutType, deadline, &callerBlockSet);
++#else
++    sigset_t allSignals;
++    assert(interruptP != NULL);
+-static void
+-lockSyncCurlSession(struct xmlrpc_client_transport * const transportP) {
+-    transportP->syncCurlSessionLockP->lock(transportP->syncCurlSessionLockP);
++    sigfillset(&allSignals);
++
++    sigprocmask(SIG_BLOCK, &allSignals, &callerBlockSet);
++    
++    if (*interruptP == 0)
++        waitForWork(envP, curlMultiP, timeoutType, deadline, &callerBlockSet);
++
++    sigprocmask(SIG_SETMASK, &callerBlockSet, NULL);
++#endif
+ }
+ static void
+-unlockSyncCurlSession(struct xmlrpc_client_transport * const transportP) {
+-    transportP->syncCurlSessionLockP->unlock(transportP->syncCurlSessionLockP);
+-}
++doCurlWork(xmlrpc_env * const envP,
++           curlMulti *  const curlMultiP,
++           bool *       const transStillRunningP) {
++/*----------------------------------------------------------------------------
++   Do whatever work is ready to be done by the Curl multi manager
++   identified by 'curlMultiP'.  This typically is transferring data on
++   an HTTP connection because the server is ready.
++
++   For each transaction for which the multi manager finishes all the
++   required work, complete the transaction by calling its
++   "finish" routine.
++   Return *transStillRunningP false if this work completes all of the
++   manager's transactions so that there is no reason to call us ever
++   again.
++-----------------------------------------------------------------------------*/
++    bool immediateWorkToDo;
++    int runningHandles;
++    immediateWorkToDo = true;  /* initial assumption */
+-static void
+-initWindowsStuff(xmlrpc_env * const envP ATTR_UNUSED) {
++    while (immediateWorkToDo && !envP->fault_occurred) {
++        curlMulti_perform(envP, curlMultiP,
++                          &immediateWorkToDo, &runningHandles);
++    }
+-#if defined (WIN32)
+-    /* This is CRITICAL so that cURL-Win32 works properly! */
+-    
+-    /* So this commenter says, but I wonder why.  libcurl should do the
+-       required WSAStartup() itself, and it looks to me like it does.
+-       -Bryan 06.01.01
+-    */
+-    WORD wVersionRequested;
+-    WSADATA wsaData;
+-    int err;
+-    wVersionRequested = MAKEWORD(1, 1);
+-    
+-    err = WSAStartup(wVersionRequested, &wsaData);
+-    if (err)
+-        xmlrpc_env_set_fault_formatted(
+-            envP, XMLRPC_INTERNAL_ERROR,
+-            "Winsock startup failed.  WSAStartup returned rc %d", err);
+-    else {
+-        if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1) {
+-            /* Tell the user that we couldn't find a useable */ 
+-            /* winsock.dll. */ 
+-            xmlrpc_env_set_fault_formatted(
+-                envP, XMLRPC_INTERNAL_ERROR, "Winsock reported that "
+-                "it does not implement the requested version 1.1.");
+-        }
+-        if (envP->fault_occurred)
+-            WSACleanup();
++    /* We either did all the work that's ready to do or hit an error. */
++
++    if (!envP->fault_occurred) {
++        /* The work we did may have resulted in asynchronous messages
++           (asynchronous to the thing they refer to, not to us, of course).
++           In particular the message "Curl transaction has completed".
++           So we process those now.
++        */
++        processCurlMessages(envP, curlMultiP);
++
++        *transStillRunningP = runningHandles > 0;
+     }
+-#endif
+ }
+ static void
+-termWindowsStuff(void) {
+-
+-#if defined (WIN32)
+-    WSACleanup();
+-#endif
+-}
++finishCurlMulti(xmlrpc_env *       const envP,
++                curlMulti *        const curlMultiP,
++                xmlrpc_timeoutType const timeoutType,
++                xmlrpc_timespec    const deadline,
++                int *              const interruptP) {
++/*----------------------------------------------------------------------------
++   Prosecute all the Curl transactions under the control of
++   *curlMultiP.  E.g. send data if server is ready to take it, get
++   data if server has sent some, wind up the transaction if it is
++   done.
++   Don't return until all the Curl transactions are done or we time out.
++   The *interruptP flag alone will not interrupt us.  We will wait in
++   spite of it for all Curl transactions to complete.  *interruptP
++   just gives us a hint that the Curl transactions are being
++   interrupted, so we know there is work to do for them.  (The way it
++   works is Caller sets up a "progress" function that checks the same
++   interrupt flag and reports "kill me."  When we see the interrupt
++   flag, we call that progress function and get the message).
++-----------------------------------------------------------------------------*/
++    bool rpcStillRunning;
++    bool timedOut;
+-static bool
+-curlHasNosignal(void) {
++    rpcStillRunning = true;  /* initial assumption */
++    timedOut = false;
++    
++    while (rpcStillRunning && !timedOut && !envP->fault_occurred) {
+-    bool retval;
++        if (interruptP) {
++            waitForWorkInt(envP, curlMultiP, timeoutType, deadline,
++                           interruptP);
++        } else 
++            waitForWork(envP, curlMultiP, timeoutType, deadline, NULL);
+-#if HAVE_CURL_NOSIGNAL
+-    curl_version_info_data * const curlInfoP =
+-        curl_version_info(CURLVERSION_NOW);
++        if (!envP->fault_occurred) {
++            xmlrpc_timespec nowTime;
+-    retval = (curlInfoP->version_num >= 0x070A00);  /* 7.10.0 */
+-#else
+-    retval = false;
+-#endif
+-    return retval;
++            /* doCurlWork() (among other things) finds Curl
++               transactions that user wants to abort and finishes
++               them.
++            */
++            doCurlWork(envP, curlMultiP, &rpcStillRunning);
++            
++            xmlrpc_gettimeofday(&nowTime);
++            
++            timedOut = (timeoutType == timeout_yes &&
++                        timeIsAfter(nowTime, deadline));
++        }
++    }
+ }
+@@ -1657,7 +620,8 @@ getTimeoutParm(xmlrpc_env *                          const envP,
+     else {
+         if (curlHasNosignal()) {
+             /* libcurl takes a 'long' in milliseconds for the timeout value */
+-            if ((curlXportParmsP->timeout + 999) / 1000 > LONG_MAX)
++            if ((unsigned)(long)(curlXportParmsP->timeout) !=
++                curlXportParmsP->timeout)
+                 xmlrpc_faultf(envP, "Timeout value %u is too large.",
+                               curlXportParmsP->timeout);
+             else
+@@ -1673,6 +637,19 @@ getTimeoutParm(xmlrpc_env *                          const envP,
+ static void
++setVerbose(bool * const verboseP) {
++
++    const char * const xmlrpcTraceCurl = getenv("XMLRPC_TRACE_CURL");
++
++    if (xmlrpcTraceCurl)
++        *verboseP = true;
++    else
++        *verboseP = false;
++}
++
++
++
++static void
+ getXportParms(xmlrpc_env *                          const envP,
+               const struct xmlrpc_curl_xportparms * const curlXportParmsP,
+               size_t                                const parmSize,
+@@ -1710,6 +687,11 @@ getXportParms(xmlrpc_env *                          const envP,
+     else
+         transportP->userAgent = strdup(curlXportParmsP->user_agent);
+     
++    if (!curlXportParmsP || parmSize < XMLRPC_CXPSIZE(dont_advertise))
++        transportP->dontAdvertise = false;
++    else
++        transportP->dontAdvertise = curlXportParmsP->dont_advertise;
++    
+     if (!curlXportParmsP || parmSize < XMLRPC_CXPSIZE(network_interface))
+         curlSetupP->networkInterface = NULL;
+     else if (curlXportParmsP->network_interface == NULL)
+@@ -1764,7 +746,7 @@ getXportParms(xmlrpc_env *                          const envP,
+     else
+         curlSetupP->sslKeyType = strdup(curlXportParmsP->sslkeytype);
+     
+-        if (!curlXportParmsP || parmSize < XMLRPC_CXPSIZE(sslkeypasswd))
++    if (!curlXportParmsP || parmSize < XMLRPC_CXPSIZE(sslkeypasswd))
+         curlSetupP->sslKeyPasswd = NULL;
+     else if (curlXportParmsP->sslkeypasswd == NULL)
+         curlSetupP->sslKeyPasswd = NULL;
+@@ -1823,6 +805,35 @@ getXportParms(xmlrpc_env *                          const envP,
+     else
+         curlSetupP->sslCipherList = strdup(curlXportParmsP->ssl_cipher_list);
++    if (!curlXportParmsP || parmSize < XMLRPC_CXPSIZE(proxy))
++        curlSetupP->proxy = NULL;
++    else if (curlXportParmsP->proxy == NULL)
++        curlSetupP->proxy = NULL;
++    else
++        curlSetupP->proxy = strdup(curlXportParmsP->proxy);
++
++    if (!curlXportParmsP || parmSize < XMLRPC_CXPSIZE(proxy_port))
++        curlSetupP->proxyPort = 8080;
++    else
++        curlSetupP->proxyPort = curlXportParmsP->proxy_port;
++
++    if (!curlXportParmsP || parmSize < XMLRPC_CXPSIZE(proxy_auth))
++        curlSetupP->proxyAuth = CURLAUTH_BASIC;
++    else
++        curlSetupP->proxyAuth = curlXportParmsP->proxy_auth;
++
++    if (!curlXportParmsP || parmSize < XMLRPC_CXPSIZE(proxy_userpwd))
++        curlSetupP->proxyUserPwd = NULL;
++    else if (curlXportParmsP->proxy_userpwd == NULL)
++        curlSetupP->proxyUserPwd = NULL;
++    else
++        curlSetupP->proxyUserPwd = strdup(curlXportParmsP->proxy_userpwd);
++
++    if (!curlXportParmsP || parmSize < XMLRPC_CXPSIZE(proxy_type))
++        curlSetupP->proxyType = CURLPROXY_HTTP;
++    else
++        curlSetupP->proxyType = curlXportParmsP->proxy_type;
++
+     getTimeoutParm(envP, curlXportParmsP, parmSize, &curlSetupP->timeout);
+ }
+@@ -1861,6 +872,10 @@ freeXportParms(const struct xmlrpc_client_transport * const transportP) {
+         xmlrpc_strfree(curlSetupP->networkInterface);
+     if (transportP->userAgent)
+         xmlrpc_strfree(transportP->userAgent);
++    if (curlSetupP->proxy)
++        xmlrpc_strfree(curlSetupP->proxy);
++    if (curlSetupP->proxyUserPwd)
++        xmlrpc_strfree(curlSetupP->proxyUserPwd);
+ }
+@@ -1921,7 +936,7 @@ static void
+ makeSyncCurlSession(xmlrpc_env *                     const envP,
+                     struct xmlrpc_client_transport * const transportP) {
+-    transportP->syncCurlSessionLockP = createLock_pthread();
++    transportP->syncCurlSessionLockP = curlLock_create_pthread();
+     if (transportP->syncCurlSessionLockP == NULL)
+         xmlrpc_faultf(envP, "Unable to create lock for "
+                       "synchronous Curl session.");
+@@ -1976,12 +991,12 @@ create(xmlrpc_env *                      const envP,
+     struct xmlrpc_client_transport * transportP;
+-    assertConstantsMatch();
+-
+     MALLOCVAR(transportP);
+     if (transportP == NULL)
+         xmlrpc_faultf(envP, "Unable to allocate transport descriptor.");
+     else {
++        setVerbose(&transportP->curlSetupStuff.verbose);
++
+         transportP->interruptP = NULL;
+         transportP->asyncCurlMultiP = curlMulti_create();
+@@ -2044,6 +1059,14 @@ static void
+ destroy(struct xmlrpc_client_transport * const clientTransportP) {
+ /*----------------------------------------------------------------------------
+    This does the 'destroy' operation for a Curl client transport.
++
++   An RPC is a reference to a client XML transport, so you may not
++   destroy a transport while RPCs are running.  To ensure no
++   asynchronous RPCs are running, you must successfully execute the
++   transport 'finishAsync' method, with no interruptions or timeouts
++   allowed.  To speed that up, you can set the transport's interrupt
++   flag to 1 first, which will make all outstanding RPCs fail
++   immediately.
+ -----------------------------------------------------------------------------*/
+     XMLRPC_ASSERT(clientTransportP != NULL);
+@@ -2070,6 +1093,64 @@ destroy(struct xmlrpc_client_transport * const clientTransportP) {
+ static void
++performCurlTransaction(xmlrpc_env *      const envP,
++                       curlTransaction * const curlTransactionP,
++                       curlMulti *       const curlMultiP,
++                       int *             const interruptP) {
++
++    curlMulti_addHandle(envP, curlMultiP,
++                        curlTransaction_curlSession(curlTransactionP));
++
++    /* Failure here just means something screwy in the multi manager;
++       Above does not even begin to perform the HTTP transaction
++    */
++
++    if (!envP->fault_occurred) {
++        xmlrpc_timespec const dummy = {0,0};
++
++        finishCurlMulti(envP, curlMultiP, timeout_no, dummy, interruptP);
++
++        /* Failure here just means something screwy in the multi
++           manager; any failure of the HTTP transaction would have been
++           recorded in *curlTransactionP.
++        */
++
++        if (!envP->fault_occurred) {
++            /* Curl session completed OK.  But did HTTP transaction
++               work?
++            */
++            curlTransaction_getError(curlTransactionP, envP);
++        }
++        /* If the CURL transaction is still going, removing the handle
++           here aborts it.  At least it's supposed to.  From what I've
++           seen in the Curl code in 2007, I don't think it does.  I
++           couldn't get Curl maintainers interested in the problem,
++           except to say, "If you're right, there's a bug."
++        */
++        curlMulti_removeHandle(curlMultiP,
++                               curlTransaction_curlSession(curlTransactionP));
++    }
++}
++
++
++
++static void
++startRpc(xmlrpc_env * const envP,
++         rpc *        const rpcP) {
++
++    curlMulti_addHandle(envP,
++                        rpcP->transportP->asyncCurlMultiP,
++                        curlTransaction_curlSession(rpcP->curlTransactionP));
++}
++
++
++
++static curlt_finishFn   finishRpcCurlTransaction;
++static curlt_progressFn curlTransactionProgress;
++
++
++
++static void
+ createRpc(xmlrpc_env *                     const envP,
+           struct xmlrpc_client_transport * const clientTransportP,
+           CURL *                           const curlSessionP,
+@@ -2077,6 +1158,7 @@ createRpc(xmlrpc_env *                     const envP,
+           xmlrpc_mem_block *               const callXmlP,
+           xmlrpc_mem_block *               const responseXmlP,
+           xmlrpc_transport_asynch_complete       complete, 
++          xmlrpc_transport_progress              progress,
+           struct xmlrpc_call_info *        const callInfoP,
+           rpc **                           const rpcPP) {
+@@ -2087,18 +1169,22 @@ createRpc(xmlrpc_env *                     const envP,
+         xmlrpc_faultf(envP, "Couldn't allocate memory for rpc object");
+     else {
+         rpcP->transportP   = clientTransportP;
++        rpcP->curlSessionP = curlSessionP;
+         rpcP->callInfoP    = callInfoP;
+         rpcP->complete     = complete;
++        rpcP->progress     = progress;
+         rpcP->responseXmlP = responseXmlP;
+         curlTransaction_create(envP,
+                                curlSessionP,
+                                serverP,
+                                callXmlP, responseXmlP, 
++                               clientTransportP->dontAdvertise,
+                                clientTransportP->userAgent,
+                                &clientTransportP->curlSetupStuff,
+                                rpcP,
+-                               clientTransportP->interruptP,
++                               complete ? &finishRpcCurlTransaction : NULL,
++                               progress ? &curlTransactionProgress : NULL,
+                                &rpcP->curlTransactionP);
+         if (!envP->fault_occurred) {
+             if (envP->fault_occurred)
+@@ -2136,11 +1222,11 @@ performRpc(xmlrpc_env * const envP,
+-static finishCurlTransactionFn finishRpcCurlTransaction;
++static curlt_finishFn finishRpcCurlTransaction;
+ static void
+-finishRpcCurlTransaction(xmlrpc_env *      const envP ATTR_UNUSED,
+-                         curlTransaction * const curlTransactionP) {
++finishRpcCurlTransaction(xmlrpc_env * const envP ATTR_UNUSED,
++                         void *       const userContextP) {
+ /*----------------------------------------------------------------------------
+   Handle the event that a Curl transaction for an asynchronous RPC has
+   completed on the Curl session identified by 'curlSessionP'.
+@@ -2150,24 +1236,26 @@ finishRpcCurlTransaction(xmlrpc_env *      const envP ATTR_UNUSED,
+   Remove the Curl session from its Curl multi manager and destroy the
+   Curl session, the XML response buffer, the Curl transaction, and the RPC.
+ -----------------------------------------------------------------------------*/
+-    rpc * const rpcP = curlTransactionP->rpcP;
++    rpc * const rpcP = userContextP;
++    curlTransaction * const curlTransactionP = rpcP->curlTransactionP;
+     struct xmlrpc_client_transport * const transportP = rpcP->transportP;
++    curlMulti_removeHandle(transportP->asyncCurlMultiP,
++                           curlTransaction_curlSession(curlTransactionP));
++
+     {
+         xmlrpc_env env;
+         xmlrpc_env_init(&env);
+-        getCurlTransactionError(curlTransactionP, &env);
++        curlTransaction_getError(curlTransactionP, &env);
+         rpcP->complete(rpcP->callInfoP, rpcP->responseXmlP, env);
+         xmlrpc_env_clean(&env);
+     }
+-    curlMulti_removeHandle(transportP->asyncCurlMultiP, curlTransactionP);
+-
+-    curl_easy_cleanup(curlTransactionP->curlSessionP);
++    curl_easy_cleanup(rpcP->curlSessionP);
+     XMLRPC_MEMBLOCK_FREE(char, rpcP->responseXmlP);
+@@ -2176,14 +1264,49 @@ finishRpcCurlTransaction(xmlrpc_env *      const envP ATTR_UNUSED,
++static curlt_progressFn curlTransactionProgress;
++
+ static void
+-startRpc(xmlrpc_env * const envP,
+-         rpc *        const rpcP) {
++curlTransactionProgress(void * const context,
++                        double const dlTotal,
++                        double const dlNow,
++                        double const ulTotal,
++                        double const ulNow,
++                        bool * const abortP) {
++/*----------------------------------------------------------------------------
++   This is equivalent to a Curl "progress function" (the curlTransaction
++   object just passes through the call from libcurl).
++
++   The curlTransaction calls this once a second telling us how much
++   data has transferred.  If the transport user has set up a progress
++   function, we call that with this progress information.  That 
++   function might e.g. display a progress bar.
++
++   Additionally, the curlTransaction gives us the opportunity to tell it
++   to abort the transaction, which we do if the user has set his
++   "interrupt" flag (which he registered with the transport when he
++   created it).
++-----------------------------------------------------------------------------*/
++    rpc * const rpcP = context;
++    struct xmlrpc_client_transport * const transportP = rpcP->transportP;
++
++    struct xmlrpc_progress_data progressData;
+-    startCurlTransaction(envP,
+-                         rpcP->curlTransactionP,
+-                         rpcP->transportP->asyncCurlMultiP,
+-                         &finishRpcCurlTransaction);
++    assert(rpcP);
++    assert(transportP);
++    assert(rpcP->progress);
++
++    progressData.response.total = dlTotal;
++    progressData.response.now   = dlNow;
++    progressData.call.total     = ulTotal;
++    progressData.call.now       = ulNow;
++
++    rpcP->progress(rpcP->callInfoP, progressData);
++
++    if (transportP->interruptP)
++        *abortP = *transportP->interruptP;
++    else
++        *abortP = false;
+ }
+@@ -2194,6 +1317,7 @@ sendRequest(xmlrpc_env *                     const envP,
+             const xmlrpc_server_info *       const serverP,
+             xmlrpc_mem_block *               const callXmlP,
+             xmlrpc_transport_asynch_complete       complete,
++            xmlrpc_transport_progress              progress,
+             struct xmlrpc_call_info *        const callInfoP) {
+ /*----------------------------------------------------------------------------
+    Initiate an XML-RPC rpc asynchronously.  Don't wait for it to go to
+@@ -2216,7 +1340,7 @@ sendRequest(xmlrpc_env *                     const envP,
+                           "curl_easy_init() failed.");
+         else {
+             createRpc(envP, clientTransportP, curlSessionP, serverP,
+-                      callXmlP, responseXmlP, complete, callInfoP,
++                      callXmlP, responseXmlP, complete, progress, callInfoP,
+                       &rpcP);
+             
+             if (!envP->fault_occurred) {
+@@ -2282,19 +1406,19 @@ finishAsynch(
+         addMilliseconds(waitStartTime, timeout, &waitTimeoutTime);
+     }
+-    curlMulti_finish(&env, clientTransportP->asyncCurlMultiP,
+-                     timeoutType, waitTimeoutTime,
+-                     clientTransportP->interruptP);
++    finishCurlMulti(&env, clientTransportP->asyncCurlMultiP,
++                    timeoutType, waitTimeoutTime,
++                    clientTransportP->interruptP);
+     /* If the above fails, it is catastrophic, because it means there is
+        no way to complete outstanding Curl transactions and RPCs, and
+        no way to release their resources.
+        We should at least expand this interface some day to push the
+-       problem back up the user, but for now we just do this Hail Mary
++       problem back up to the user, but for now we just do this Hail Mary
+        response.
+-       Note that a failure of curlMult_finish() does not mean that
++       Note that a failure of finish_curlMulti() does not mean that
+        a session completed with an error or an RPC completed with an
+        error.  Those things are reported up through the user's 
+        xmlrpc_transport_asynch_complete routine.  A failure here is
+@@ -2339,7 +1463,7 @@ call(xmlrpc_env *                     const envP,
+         createRpc(envP, clientTransportP, clientTransportP->syncCurlSessionP,
+                   serverP,
+                   callXmlP, responseXmlP,
+-                  NULL, NULL,
++                  NULL, NULL, NULL,
+                   &rpcP);
+         if (!envP->fault_occurred) {
+diff --git a/libs/xmlrpc-c/lib/curl_transport/xmlrpc_curl_transport.h b/libs/xmlrpc-c/lib/curl_transport/xmlrpc_curl_transport.h
+deleted file mode 100644
+index 1425add..0000000
+--- a/libs/xmlrpc-c/lib/curl_transport/xmlrpc_curl_transport.h
++++ /dev/null
+@@ -1,8 +0,0 @@
+-#ifndef XMLRPC_CURL_TRANSPORT_H
+-#define XMLRPC_CURL_TRANSPORT_H
+-
+-#include "xmlrpc-c/transport.h"
+-
+-extern struct xmlrpc_client_transport_ops xmlrpc_curl_transport_ops;
+-
+-#endif
+diff --git a/libs/xmlrpc-c/lib/expat/.cvsignore b/libs/xmlrpc-c/lib/expat/.cvsignore
+deleted file mode 100644
+index f3c7a7c..0000000
+--- a/libs/xmlrpc-c/lib/expat/.cvsignore
++++ /dev/null
+@@ -1 +0,0 @@
+-Makefile
+diff --git a/libs/xmlrpc-c/lib/expat/Makefile.in b/libs/xmlrpc-c/lib/expat/Makefile.in
+deleted file mode 100644
+index 121de36..0000000
+--- a/libs/xmlrpc-c/lib/expat/Makefile.in
++++ /dev/null
+@@ -1,314 +0,0 @@
+-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+-# This Makefile.in is free software; the Free Software Foundation
+-# gives unlimited permission to copy and/or distribute it,
+-# with or without modifications, as long as this notice is preserved.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+-# PARTICULAR PURPOSE.
+-
+-
+-SHELL = @SHELL@
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+-VPATH = @srcdir@
+-prefix = @prefix@
+-exec_prefix = @exec_prefix@
+-
+-bindir = @bindir@
+-sbindir = @sbindir@
+-libexecdir = @libexecdir@
+-datadir = @datadir@
+-sysconfdir = @sysconfdir@
+-sharedstatedir = @sharedstatedir@
+-localstatedir = @localstatedir@
+-libdir = @libdir@
+-infodir = @infodir@
+-mandir = @mandir@
+-includedir = @includedir@
+-oldincludedir = /usr/include
+-
+-DESTDIR =
+-
+-pkgdatadir = $(datadir)/@PACKAGE@
+-pkglibdir = $(libdir)/@PACKAGE@
+-pkgincludedir = $(includedir)/@PACKAGE@
+-
+-top_builddir = ../..
+-
+-ACLOCAL = @ACLOCAL@
+-AUTOCONF = @AUTOCONF@
+-AUTOHEADER = @AUTOHEADER@
+-
+-INSTALL = @INSTALL@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+-INSTALL_DATA = @INSTALL_DATA@
+-INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-transform = @program_transform_name@
+-
+-NORMAL_INSTALL = :
+-PRE_INSTALL = :
+-POST_INSTALL = :
+-NORMAL_UNINSTALL = :
+-PRE_UNINSTALL = :
+-POST_UNINSTALL = :
+-host_alias = @host_alias@
+-host_triplet = @host@
+-ABYSS_SUBDIR = @ABYSS_SUBDIR@
+-AS = @AS@
+-ASYNCH_CLIENT = @ASYNCH_CLIENT@
+-AUTH_CLIENT = @AUTH_CLIENT@
+-AVAILABLE_MODULES = @AVAILABLE_MODULES@
+-CC = @CC@
+-CC_WARN_FLAGS = @CC_WARN_FLAGS@
+-CLIENTTEST = @CLIENTTEST@
+-CONFIGURE_DATE = @CONFIGURE_DATE@
+-CPPTEST = @CPPTEST@
+-CPP_WARN_FLAGS = @CPP_WARN_FLAGS@
+-CXX = @CXX@
+-DLLTOOL = @DLLTOOL@
+-EFRPCTEST = @EFRPCTEST@
+-EFRPCTEST_WRAPPER = @EFRPCTEST_WRAPPER@
+-INTEROP_CGI = @INTEROP_CGI@
+-INTEROP_CLIENT_SUBDIR = @INTEROP_CLIENT_SUBDIR@
+-LIBTOOL = @LIBTOOL@
+-LIBWWW_CFLAGS = @LIBWWW_CFLAGS@
+-LIBWWW_CONFIG = @LIBWWW_CONFIG@
+-LIBWWW_LDADD = @LIBWWW_LDADD@
+-LIBWWW_LIBDIR = @LIBWWW_LIBDIR@
+-LIBWWW_RPATH = @LIBWWW_RPATH@
+-LIBWWW_WL_RPATH = @LIBWWW_WL_RPATH@
+-LIBXMLRPC_ABYSS_SERVER_LA = @LIBXMLRPC_ABYSS_SERVER_LA@
+-LIBXMLRPC_CGI_LA = @LIBXMLRPC_CGI_LA@
+-LIBXMLRPC_CLIENT_LA = @LIBXMLRPC_CLIENT_LA@
+-LIBXMLRPC_CPP_A = @LIBXMLRPC_CPP_A@
+-LN_S = @LN_S@
+-MAKEINFO = @MAKEINFO@
+-MEERKAT_APP_LIST = @MEERKAT_APP_LIST@
+-OBJDUMP = @OBJDUMP@
+-PACKAGE = @PACKAGE@
+-QUERY_MEERKAT = @QUERY_MEERKAT@
+-RANLIB = @RANLIB@
+-SAMPLE_CGI_CGI = @SAMPLE_CGI_CGI@
+-SERVER = @SERVER@
+-SERVERTEST = @SERVERTEST@
+-SYNCH_CLIENT = @SYNCH_CLIENT@
+-VALIDATEE = @VALIDATEE@
+-VERSION = @VERSION@
+-VERSION_INFO = @VERSION_INFO@
+-XMLRPCCPP_H = @XMLRPCCPP_H@
+-XMLRPC_ABYSS_H = @XMLRPC_ABYSS_H@
+-XMLRPC_CGI_H = @XMLRPC_CGI_H@
+-XMLRPC_CLIENT_H = @XMLRPC_CLIENT_H@
+-XML_RPC_API2CPP_SUBDIR = @XML_RPC_API2CPP_SUBDIR@
+-
+-SUBDIRS = gennmtab xmltok xmlparse xmlwf sample
+-EXTRA_DIST = expat.html expat.dsw
+-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+-CONFIG_HEADER = ../../xmlrpc_config.h
+-CONFIG_CLEAN_FILES = 
+-DIST_COMMON = Makefile.in
+-
+-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-
+-TAR = gtar
+-GZIP_ENV = --best
+-all: all-redirect
+-.SUFFIXES:
+-
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+-      cd $(top_builddir) \
+-        && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+-
+-
+-# This directory's subdirectories are mostly independent; you can cd
+-# into them and run `make' without going through this Makefile.
+-# To change the values of `make' variables: instead of editing Makefiles,
+-# (1) if the variable is set in `config.status', edit `config.status'
+-#     (which will cause the Makefiles to be regenerated when you run `make');
+-# (2) otherwise, pass the desired values on the `make' command line.
+-
+-@SET_MAKE@
+-
+-all-recursive install-data-recursive install-exec-recursive \
+-installdirs-recursive install-recursive uninstall-recursive  \
+-check-recursive installcheck-recursive info-recursive dvi-recursive:
+-      @set fnord $(MAKEFLAGS); amf=$$2; \
+-      dot_seen=no; \
+-      target=`echo $@ | sed s/-recursive//`; \
+-      list='$(SUBDIRS)'; for subdir in $$list; do \
+-        echo "Making $$target in $$subdir"; \
+-        if test "$$subdir" = "."; then \
+-          dot_seen=yes; \
+-          local_target="$$target-am"; \
+-        else \
+-          local_target="$$target"; \
+-        fi; \
+-        (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+-         || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+-      done; \
+-      if test "$$dot_seen" = "no"; then \
+-        $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+-      fi; test -z "$$fail"
+-
+-mostlyclean-recursive clean-recursive distclean-recursive \
+-maintainer-clean-recursive:
+-      @set fnord $(MAKEFLAGS); amf=$$2; \
+-      dot_seen=no; \
+-      rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+-        rev="$$subdir $$rev"; \
+-        test "$$subdir" = "." && dot_seen=yes; \
+-      done; \
+-      test "$$dot_seen" = "no" && rev=". $$rev"; \
+-      target=`echo $@ | sed s/-recursive//`; \
+-      for subdir in $$rev; do \
+-        echo "Making $$target in $$subdir"; \
+-        if test "$$subdir" = "."; then \
+-          local_target="$$target-am"; \
+-        else \
+-          local_target="$$target"; \
+-        fi; \
+-        (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+-         || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+-      done && test -z "$$fail"
+-tags-recursive:
+-      list='$(SUBDIRS)'; for subdir in $$list; do \
+-        test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+-      done
+-
+-tags: TAGS
+-
+-ID: $(HEADERS) $(SOURCES) $(LISP)
+-      list='$(SOURCES) $(HEADERS)'; \
+-      unique=`for i in $$list; do echo $$i; done | \
+-        awk '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      here=`pwd` && cd $(srcdir) \
+-        && mkid -f$$here/ID $$unique $(LISP)
+-
+-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SUBDIRS)'; for subdir in $$list; do \
+-   if test "$$subdir" = .; then :; else \
+-          test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+-   fi; \
+-      done; \
+-      list='$(SOURCES) $(HEADERS)'; \
+-      unique=`for i in $$list; do echo $$i; done | \
+-        awk '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+-
+-mostlyclean-tags:
+-
+-clean-tags:
+-
+-distclean-tags:
+-      -rm -f TAGS ID
+-
+-maintainer-clean-tags:
+-
+-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+-
+-subdir = lib/expat
+-
+-distdir: $(DISTFILES)
+-      @for file in $(DISTFILES); do \
+-        d=$(srcdir); \
+-        if test -d $$d/$$file; then \
+-          cp -pr $$d/$$file $(distdir)/$$file; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+-          || cp -p $$d/$$file $(distdir)/$$file || :; \
+-        fi; \
+-      done
+-      for subdir in $(SUBDIRS); do \
+-        if test "$$subdir" = .; then :; else \
+-          test -d $(distdir)/$$subdir \
+-          || mkdir $(distdir)/$$subdir \
+-          || exit 1; \
+-          chmod 777 $(distdir)/$$subdir; \
+-          (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \
+-            || exit 1; \
+-        fi; \
+-      done
+-info-am:
+-info: info-recursive
+-dvi-am:
+-dvi: dvi-recursive
+-check-am: all-am
+-check: check-recursive
+-installcheck-am:
+-installcheck: installcheck-recursive
+-install-exec-am:
+-install-exec: install-exec-recursive
+-
+-install-data-am:
+-install-data: install-data-recursive
+-
+-install-am: all-am
+-      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+-install: install-recursive
+-uninstall-am:
+-uninstall: uninstall-recursive
+-all-am: Makefile
+-all-redirect: all-recursive
+-install-strip:
+-      $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+-installdirs: installdirs-recursive
+-installdirs-am:
+-
+-
+-mostlyclean-generic:
+-
+-clean-generic:
+-
+-distclean-generic:
+-      -rm -f Makefile $(CONFIG_CLEAN_FILES)
+-      -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+-
+-maintainer-clean-generic:
+-mostlyclean-am:  mostlyclean-tags mostlyclean-generic
+-
+-mostlyclean: mostlyclean-recursive
+-
+-clean-am:  clean-tags clean-generic mostlyclean-am
+-
+-clean: clean-recursive
+-
+-distclean-am:  distclean-tags distclean-generic clean-am
+-      -rm -f libtool
+-
+-distclean: distclean-recursive
+-
+-maintainer-clean-am:  maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
+-      @echo "This command is intended for maintainers to use;"
+-      @echo "it deletes files that may require special tools to rebuild."
+-
+-maintainer-clean: maintainer-clean-recursive
+-
+-.PHONY: install-data-recursive uninstall-data-recursive \
+-install-exec-recursive uninstall-exec-recursive installdirs-recursive \
+-uninstalldirs-recursive all-recursive check-recursive \
+-installcheck-recursive info-recursive dvi-recursive \
+-mostlyclean-recursive distclean-recursive clean-recursive \
+-maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+-install-exec install-data-am install-data install-am install \
+-uninstall-am uninstall all-redirect all-am all installdirs-am \
+-installdirs mostlyclean-generic distclean-generic clean-generic \
+-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+-
+-
+-# Tell versions [3.59,3.63) of GNU make to not export all variables.
+-# Otherwise a system limit (for SysV at least) may be exceeded.
+-.NOEXPORT:
+-
+-dep:
+diff --git a/libs/xmlrpc-c/lib/expat/expat.dsw b/libs/xmlrpc-c/lib/expat/expat.dsw
+deleted file mode 100644
+index efc3322..0000000
+--- a/libs/xmlrpc-c/lib/expat/expat.dsw
++++ /dev/null
+@@ -1,74 +0,0 @@
+-Microsoft Developer Studio Workspace File, Format Version 6.00\r
+-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "gennmtab"=.\gennmtab\gennmtab.dsp - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "xmlparse"=.\xmlparse\xmlparse.dsp - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name xmltok\r
+-    End Project Dependency\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "xmltok"=.\xmltok\xmltok.dsp - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name gennmtab\r
+-    End Project Dependency\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Project: "xmlwf"=.\xmlwf\xmlwf.dsp - Package Owner=<4>\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<4>\r
+-{{{\r
+-    Begin Project Dependency\r
+-    Project_Dep_Name xmlparse\r
+-    End Project Dependency\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+-Global:\r
+-\r
+-Package=<5>\r
+-{{{\r
+-}}}\r
+-\r
+-Package=<3>\r
+-{{{\r
+-}}}\r
+-\r
+-###############################################################################\r
+-\r
+diff --git a/libs/xmlrpc-c/lib/expat/gennmtab/.cvsignore b/libs/xmlrpc-c/lib/expat/gennmtab/.cvsignore
+deleted file mode 100644
+index b1f2027..0000000
+--- a/libs/xmlrpc-c/lib/expat/gennmtab/.cvsignore
++++ /dev/null
+@@ -1 +0,0 @@
+-gennmtab
+diff --git a/libs/xmlrpc-c/lib/expat/gennmtab/Makefile b/libs/xmlrpc-c/lib/expat/gennmtab/Makefile
+index 32e76b7..ebb100f 100644
+--- a/libs/xmlrpc-c/lib/expat/gennmtab/Makefile
++++ b/libs/xmlrpc-c/lib/expat/gennmtab/Makefile
+@@ -9,11 +9,9 @@ SUBDIR := lib/expat/gennmtab
+ include $(BLDDIR)/config.mk
+-CFLAGS = $(CFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
+-
+ LDFLAGS = $(LADD)
+-INCLUDES = -I$(BLDDIR) -I$(SRCDIR)/lib/util/include
++INCLUDES = -I$(BLDDIR) -Isrcdir/lib/util/include
+ default: all
+@@ -42,9 +40,9 @@ install:
+ dep: dep-common
+ gennmtab.o:%.o:%.c
+-      $(BUILDTOOL_CC) -c $< -o $@ $(CFLAGS) $(INCLUDES)
++      $(BUILDTOOL_CC) -c $< -o $@ $(CFLAGS_ALL) $(INCLUDES)
+ gennmtab:%:%.o
+       $(BUILDTOOL_CCLD) -o $@ $(LDFLAGS) $^
+-include Makefile.depend
++include depend.mk
+diff --git a/libs/xmlrpc-c/lib/expat/gennmtab/gennmtab.dsp b/libs/xmlrpc-c/lib/expat/gennmtab/gennmtab.dsp
+deleted file mode 100644
+index 917dc44..0000000
+--- a/libs/xmlrpc-c/lib/expat/gennmtab/gennmtab.dsp
++++ /dev/null
+@@ -1,110 +0,0 @@
+-# Microsoft Developer Studio Project File - Name="gennmtab" - Package Owner=<4>
+-# Microsoft Developer Studio Generated Build File, Format Version 6.00
+-# ** DO NOT EDIT **
+-
+-# TARGTYPE "Win32 (x86) Console Application" 0x0103
+-
+-CFG=gennmtab - Win32 Release
+-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+-!MESSAGE use the Export Makefile command and run
+-!MESSAGE 
+-!MESSAGE NMAKE /f "gennmtab.mak".
+-!MESSAGE 
+-!MESSAGE You can specify a configuration when running NMAKE
+-!MESSAGE by defining the macro CFG on the command line. For example:
+-!MESSAGE 
+-!MESSAGE NMAKE /f "gennmtab.mak" CFG="gennmtab - Win32 Release"
+-!MESSAGE 
+-!MESSAGE Possible choices for configuration are:
+-!MESSAGE 
+-!MESSAGE "gennmtab - Win32 Release" (based on "Win32 (x86) Console Application")
+-!MESSAGE "gennmtab - Win32 Debug" (based on "Win32 (x86) Console Application")
+-!MESSAGE 
+-
+-# Begin Project
+-# PROP AllowPerConfigDependencies 0
+-# PROP Scc_ProjName "gennmtab"
+-# PROP Scc_LocalPath "."
+-CPP=cl.exe
+-RSC=rc.exe
+-
+-!IF  "$(CFG)" == "gennmtab - Win32 Release"
+-
+-# PROP BASE Use_MFC 0
+-# PROP BASE Use_Debug_Libraries 0
+-# PROP BASE Output_Dir ".\Release"
+-# PROP BASE Intermediate_Dir ".\Release"
+-# PROP BASE Target_Dir "."
+-# PROP Use_MFC 0
+-# PROP Use_Debug_Libraries 0
+-# PROP Output_Dir "Release\gennmtab"
+-# PROP Intermediate_Dir "Release\gennmtab"
+-# PROP Ignore_Export_Lib 0
+-# PROP Target_Dir "."
+-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
+-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /FD /c
+-# ADD BASE RSC /l 0x809 /d "NDEBUG"
+-# ADD RSC /l 0x809 /d "NDEBUG"
+-BSC32=bscmake.exe
+-# ADD BASE BSC32 /nologo
+-# ADD BSC32 /nologo
+-LINK32=link.exe
+-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"..\..\..\Bin\gennmtab.exe"
+-# Begin Special Build Tool
+-SOURCE="$(InputPath)"
+-PostBuild_Cmds=..\..\..\Bin\gennmtab.exe >..\xmltok\nametab.h
+-# End Special Build Tool
+-
+-!ELSEIF  "$(CFG)" == "gennmtab - Win32 Debug"
+-
+-# PROP BASE Use_MFC 0
+-# PROP BASE Use_Debug_Libraries 1
+-# PROP BASE Output_Dir ".\Debug"
+-# PROP BASE Intermediate_Dir ".\Debug"
+-# PROP BASE Target_Dir "."
+-# PROP Use_MFC 0
+-# PROP Use_Debug_Libraries 1
+-# PROP Output_Dir "Debug\gennmtab"
+-# PROP Intermediate_Dir "Debug\gennmtab"
+-# PROP Ignore_Export_Lib 0
+-# PROP Target_Dir "."
+-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
+-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /FD /c
+-# ADD BASE RSC /l 0x809 /d "_DEBUG"
+-# ADD RSC /l 0x809 /d "_DEBUG"
+-BSC32=bscmake.exe
+-# ADD BASE BSC32 /nologo
+-# ADD BSC32 /nologo
+-LINK32=link.exe
+-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
+-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\..\Bin\gennmtabD.exe"
+-# Begin Special Build Tool
+-SOURCE="$(InputPath)"
+-PostBuild_Cmds=..\..\..\Bin\gennmtabD.exe >..\xmltok\nametab.h
+-# End Special Build Tool
+-
+-!ENDIF 
+-
+-# Begin Target
+-
+-# Name "gennmtab - Win32 Release"
+-# Name "gennmtab - Win32 Debug"
+-# Begin Group "Source Files"
+-
+-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90"
+-# Begin Source File
+-
+-SOURCE=.\gennmtab.c
+-# End Source File
+-# End Group
+-# Begin Group "Header Files"
+-
+-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
+-# End Group
+-# Begin Group "Resource Files"
+-
+-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
+-# End Group
+-# End Target
+-# End Project
+diff --git a/libs/xmlrpc-c/lib/expat/sample/.cvsignore b/libs/xmlrpc-c/lib/expat/sample/.cvsignore
+deleted file mode 100644
+index f3c7a7c..0000000
+--- a/libs/xmlrpc-c/lib/expat/sample/.cvsignore
++++ /dev/null
+@@ -1 +0,0 @@
+-Makefile
+diff --git a/libs/xmlrpc-c/lib/expat/sample/Makefile.in b/libs/xmlrpc-c/lib/expat/sample/Makefile.in
+deleted file mode 100644
+index b6e338d..0000000
+--- a/libs/xmlrpc-c/lib/expat/sample/Makefile.in
++++ /dev/null
+@@ -1,208 +0,0 @@
+-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+-# This Makefile.in is free software; the Free Software Foundation
+-# gives unlimited permission to copy and/or distribute it,
+-# with or without modifications, as long as this notice is preserved.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+-# PARTICULAR PURPOSE.
+-
+-
+-SHELL = @SHELL@
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+-VPATH = @srcdir@
+-prefix = @prefix@
+-exec_prefix = @exec_prefix@
+-
+-bindir = @bindir@
+-sbindir = @sbindir@
+-libexecdir = @libexecdir@
+-datadir = @datadir@
+-sysconfdir = @sysconfdir@
+-sharedstatedir = @sharedstatedir@
+-localstatedir = @localstatedir@
+-libdir = @libdir@
+-infodir = @infodir@
+-mandir = @mandir@
+-includedir = @includedir@
+-oldincludedir = /usr/include
+-
+-DESTDIR =
+-
+-pkgdatadir = $(datadir)/@PACKAGE@
+-pkglibdir = $(libdir)/@PACKAGE@
+-pkgincludedir = $(includedir)/@PACKAGE@
+-
+-top_builddir = ../../..
+-
+-ACLOCAL = @ACLOCAL@
+-AUTOCONF = @AUTOCONF@
+-AUTOHEADER = @AUTOHEADER@
+-
+-INSTALL = @INSTALL@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+-INSTALL_DATA = @INSTALL_DATA@
+-INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-transform = @program_transform_name@
+-
+-NORMAL_INSTALL = :
+-PRE_INSTALL = :
+-POST_INSTALL = :
+-NORMAL_UNINSTALL = :
+-PRE_UNINSTALL = :
+-POST_UNINSTALL = :
+-host_alias = @host_alias@
+-host_triplet = @host@
+-ABYSS_SUBDIR = @ABYSS_SUBDIR@
+-AS = @AS@
+-ASYNCH_CLIENT = @ASYNCH_CLIENT@
+-AUTH_CLIENT = @AUTH_CLIENT@
+-AVAILABLE_MODULES = @AVAILABLE_MODULES@
+-CC = @CC@
+-CC_WARN_FLAGS = @CC_WARN_FLAGS@
+-CLIENTTEST = @CLIENTTEST@
+-CONFIGURE_DATE = @CONFIGURE_DATE@
+-CPPTEST = @CPPTEST@
+-CPP_WARN_FLAGS = @CPP_WARN_FLAGS@
+-CXX = @CXX@
+-DLLTOOL = @DLLTOOL@
+-EFRPCTEST = @EFRPCTEST@
+-EFRPCTEST_WRAPPER = @EFRPCTEST_WRAPPER@
+-INTEROP_CGI = @INTEROP_CGI@
+-INTEROP_CLIENT_SUBDIR = @INTEROP_CLIENT_SUBDIR@
+-LIBTOOL = @LIBTOOL@
+-LIBWWW_CFLAGS = @LIBWWW_CFLAGS@
+-LIBWWW_CONFIG = @LIBWWW_CONFIG@
+-LIBWWW_LDADD = @LIBWWW_LDADD@
+-LIBWWW_LIBDIR = @LIBWWW_LIBDIR@
+-LIBWWW_RPATH = @LIBWWW_RPATH@
+-LIBWWW_WL_RPATH = @LIBWWW_WL_RPATH@
+-LIBXMLRPC_ABYSS_SERVER_LA = @LIBXMLRPC_ABYSS_SERVER_LA@
+-LIBXMLRPC_CGI_LA = @LIBXMLRPC_CGI_LA@
+-LIBXMLRPC_CLIENT_LA = @LIBXMLRPC_CLIENT_LA@
+-LIBXMLRPC_CPP_A = @LIBXMLRPC_CPP_A@
+-LN_S = @LN_S@
+-MAKEINFO = @MAKEINFO@
+-MEERKAT_APP_LIST = @MEERKAT_APP_LIST@
+-OBJDUMP = @OBJDUMP@
+-PACKAGE = @PACKAGE@
+-QUERY_MEERKAT = @QUERY_MEERKAT@
+-RANLIB = @RANLIB@
+-SAMPLE_CGI_CGI = @SAMPLE_CGI_CGI@
+-SERVER = @SERVER@
+-SERVERTEST = @SERVERTEST@
+-SYNCH_CLIENT = @SYNCH_CLIENT@
+-VALIDATEE = @VALIDATEE@
+-VERSION = @VERSION@
+-VERSION_INFO = @VERSION_INFO@
+-XMLRPCCPP_H = @XMLRPCCPP_H@
+-XMLRPC_ABYSS_H = @XMLRPC_ABYSS_H@
+-XMLRPC_CGI_H = @XMLRPC_CGI_H@
+-XMLRPC_CLIENT_H = @XMLRPC_CLIENT_H@
+-XML_RPC_API2CPP_SUBDIR = @XML_RPC_API2CPP_SUBDIR@
+-
+-EXTRA_DIST = build.bat elements.c
+-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+-CONFIG_HEADER = ../../../xmlrpc_config.h
+-CONFIG_CLEAN_FILES = 
+-DIST_COMMON = Makefile.in
+-
+-
+-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-
+-TAR = gtar
+-GZIP_ENV = --best
+-all: all-redirect
+-.SUFFIXES:
+-
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+-      cd $(top_builddir) \
+-        && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+-
+-tags: TAGS
+-TAGS:
+-
+-
+-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+-
+-subdir = lib/expat/sample
+-
+-distdir: $(DISTFILES)
+-      @for file in $(DISTFILES); do \
+-        d=$(srcdir); \
+-        if test -d $$d/$$file; then \
+-          cp -pr $$d/$$file $(distdir)/$$file; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+-          || cp -p $$d/$$file $(distdir)/$$file || :; \
+-        fi; \
+-      done
+-info-am:
+-info: info-am
+-dvi-am:
+-dvi: dvi-am
+-check-am: all-am
+-check: check-am
+-installcheck-am:
+-installcheck: installcheck-am
+-install-exec-am:
+-install-exec: install-exec-am
+-
+-install-data-am:
+-install-data: install-data-am
+-
+-install-am: all-am
+-      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+-install: install-am
+-uninstall-am:
+-uninstall: uninstall-am
+-all-am: Makefile
+-all-redirect: all-am
+-install-strip:
+-      $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+-installdirs:
+-
+-
+-mostlyclean-generic:
+-
+-clean-generic:
+-
+-distclean-generic:
+-      -rm -f Makefile $(CONFIG_CLEAN_FILES)
+-      -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+-
+-maintainer-clean-generic:
+-mostlyclean-am:  mostlyclean-generic
+-
+-mostlyclean: mostlyclean-am
+-
+-clean-am:  clean-generic mostlyclean-am
+-
+-clean: clean-am
+-
+-distclean-am:  distclean-generic clean-am
+-      -rm -f libtool
+-
+-distclean: distclean-am
+-
+-maintainer-clean-am:  maintainer-clean-generic distclean-am
+-      @echo "This command is intended for maintainers to use;"
+-      @echo "it deletes files that may require special tools to rebuild."
+-
+-maintainer-clean: maintainer-clean-am
+-
+-.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+-installcheck-am installcheck install-exec-am install-exec \
+-install-data-am install-data install-am install uninstall-am uninstall \
+-all-redirect all-am all installdirs mostlyclean-generic \
+-distclean-generic clean-generic maintainer-clean-generic clean \
+-mostlyclean distclean maintainer-clean
+-
+-
+-# Tell versions [3.59,3.63) of GNU make to not export all variables.
+-# Otherwise a system limit (for SysV at least) may be exceeded.
+-.NOEXPORT:
+diff --git a/libs/xmlrpc-c/lib/expat/sample/build.bat b/libs/xmlrpc-c/lib/expat/sample/build.bat
+deleted file mode 100644
+index 8cf3048..0000000
+--- a/libs/xmlrpc-c/lib/expat/sample/build.bat
++++ /dev/null
+@@ -1,4 +0,0 @@
+-@echo off\r
+-set LIB=..\xmlparse\Release;..\lib;%LIB%\r
+-cl /nologo /DXMLTOKAPI=__declspec(dllimport) /DXMLPARSEAPI=__declspec(dllimport) /I..\xmlparse /Fe..\bin\elements elements.c xmlparse.lib\r
+-@echo Run it using: ..\bin\elements ^<..\expat.html\r
+diff --git a/libs/xmlrpc-c/lib/expat/sample/elements.c b/libs/xmlrpc-c/lib/expat/sample/elements.c
+deleted file mode 100644
+index 42745c4..0000000
+--- a/libs/xmlrpc-c/lib/expat/sample/elements.c
++++ /dev/null
+@@ -1,46 +0,0 @@
+-/* This is simple demonstration of how to use expat. This program
+-reads an XML document from standard input and writes a line with the
+-name of each element to standard output indenting child elements by
+-one tab stop more than their parent element. */
+-
+-#include <stdio.h>
+-#include "xmlparse.h"
+-
+-void startElement(void *userData, const char *name, const char **atts)
+-{
+-  int i;
+-  int *depthPtr = userData;
+-  for (i = 0; i < *depthPtr; i++)
+-    putchar('\t');
+-  puts(name);
+-  *depthPtr += 1;
+-}
+-
+-void endElement(void *userData, const char *name)
+-{
+-  int *depthPtr = userData;
+-  *depthPtr -= 1;
+-}
+-
+-int main()
+-{
+-  char buf[BUFSIZ];
+-  XML_Parser parser = XML_ParserCreate(NULL);
+-  int done;
+-  int depth = 0;
+-  XML_SetUserData(parser, &depth);
+-  XML_SetElementHandler(parser, startElement, endElement);
+-  do {
+-    size_t len = fread(buf, 1, sizeof(buf), stdin);
+-    done = len < sizeof(buf);
+-    if (!XML_Parse(parser, buf, len, done)) {
+-      fprintf(stderr,
+-            "%s at line %d\n",
+-            XML_ErrorString(XML_GetErrorCode(parser)),
+-            XML_GetCurrentLineNumber(parser));
+-      return 1;
+-    }
+-  } while (!done);
+-  XML_ParserFree(parser);
+-  return 0;
+-}
+diff --git a/libs/xmlrpc-c/lib/expat/xmlparse/.cvsignore b/libs/xmlrpc-c/lib/expat/xmlparse/.cvsignore
+deleted file mode 100644
+index f3c7a7c..0000000
+--- a/libs/xmlrpc-c/lib/expat/xmlparse/.cvsignore
++++ /dev/null
+@@ -1 +0,0 @@
+-Makefile
+diff --git a/libs/xmlrpc-c/lib/expat/xmlparse/Makefile.in b/libs/xmlrpc-c/lib/expat/xmlparse/Makefile.in
+deleted file mode 100644
+index 3e715af..0000000
+--- a/libs/xmlrpc-c/lib/expat/xmlparse/Makefile.in
++++ /dev/null
+@@ -1,344 +0,0 @@
+-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+-# This Makefile.in is free software; the Free Software Foundation
+-# gives unlimited permission to copy and/or distribute it,
+-# with or without modifications, as long as this notice is preserved.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+-# PARTICULAR PURPOSE.
+-
+-
+-SHELL = @SHELL@
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+-VPATH = @srcdir@
+-prefix = @prefix@
+-exec_prefix = @exec_prefix@
+-
+-bindir = @bindir@
+-sbindir = @sbindir@
+-libexecdir = @libexecdir@
+-datadir = @datadir@
+-sysconfdir = @sysconfdir@
+-sharedstatedir = @sharedstatedir@
+-localstatedir = @localstatedir@
+-libdir = @libdir@
+-infodir = @infodir@
+-mandir = @mandir@
+-includedir = @includedir@
+-oldincludedir = /usr/include
+-
+-DESTDIR =
+-
+-pkgdatadir = $(datadir)/@PACKAGE@
+-pkglibdir = $(libdir)/@PACKAGE@
+-pkgincludedir = $(includedir)/@PACKAGE@
+-
+-top_builddir = ../../..
+-
+-ACLOCAL = @ACLOCAL@
+-AUTOCONF = @AUTOCONF@
+-AUTOHEADER = @AUTOHEADER@
+-
+-INSTALL = @INSTALL@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+-INSTALL_DATA = @INSTALL_DATA@
+-INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-transform = @program_transform_name@
+-
+-NORMAL_INSTALL = :
+-PRE_INSTALL = :
+-POST_INSTALL = :
+-NORMAL_UNINSTALL = :
+-PRE_UNINSTALL = :
+-POST_UNINSTALL = :
+-host_alias = @host_alias@
+-host_triplet = @host@
+-ABYSS_SUBDIR = @ABYSS_SUBDIR@
+-AS = @AS@
+-ASYNCH_CLIENT = @ASYNCH_CLIENT@
+-AUTH_CLIENT = @AUTH_CLIENT@
+-AVAILABLE_MODULES = @AVAILABLE_MODULES@
+-CC = @CC@
+-CC_WARN_FLAGS = @CC_WARN_FLAGS@
+-CLIENTTEST = @CLIENTTEST@
+-CONFIGURE_DATE = @CONFIGURE_DATE@
+-CPPTEST = @CPPTEST@
+-CPP_WARN_FLAGS = @CPP_WARN_FLAGS@
+-CXX = @CXX@
+-DLLTOOL = @DLLTOOL@
+-EFRPCTEST = @EFRPCTEST@
+-EFRPCTEST_WRAPPER = @EFRPCTEST_WRAPPER@
+-INTEROP_CGI = @INTEROP_CGI@
+-INTEROP_CLIENT_SUBDIR = @INTEROP_CLIENT_SUBDIR@
+-LIBTOOL = @LIBTOOL@
+-LIBWWW_CFLAGS = @LIBWWW_CFLAGS@
+-LIBWWW_CONFIG = @LIBWWW_CONFIG@
+-LIBWWW_LDADD = @LIBWWW_LDADD@
+-LIBWWW_LIBDIR = @LIBWWW_LIBDIR@
+-LIBWWW_RPATH = @LIBWWW_RPATH@
+-LIBWWW_WL_RPATH = @LIBWWW_WL_RPATH@
+-LIBXMLRPC_ABYSS_SERVER_LA = @LIBXMLRPC_ABYSS_SERVER_LA@
+-LIBXMLRPC_CGI_LA = @LIBXMLRPC_CGI_LA@
+-LIBXMLRPC_CLIENT_LA = @LIBXMLRPC_CLIENT_LA@
+-LIBXMLRPC_CPP_A = @LIBXMLRPC_CPP_A@
+-LN_S = @LN_S@
+-MAKEINFO = @MAKEINFO@
+-MEERKAT_APP_LIST = @MEERKAT_APP_LIST@
+-OBJDUMP = @OBJDUMP@
+-PACKAGE = @PACKAGE@
+-QUERY_MEERKAT = @QUERY_MEERKAT@
+-RANLIB = @RANLIB@
+-SAMPLE_CGI_CGI = @SAMPLE_CGI_CGI@
+-SERVER = @SERVER@
+-SERVERTEST = @SERVERTEST@
+-SYNCH_CLIENT = @SYNCH_CLIENT@
+-VALIDATEE = @VALIDATEE@
+-VERSION = @VERSION@
+-VERSION_INFO = @VERSION_INFO@
+-XMLRPCCPP_H = @XMLRPCCPP_H@
+-XMLRPC_ABYSS_H = @XMLRPC_ABYSS_H@
+-XMLRPC_CGI_H = @XMLRPC_CGI_H@
+-XMLRPC_CLIENT_H = @XMLRPC_CLIENT_H@
+-XML_RPC_API2CPP_SUBDIR = @XML_RPC_API2CPP_SUBDIR@
+-
+-INCLUDES = -I$(srcdir)/../xmltok
+-
+-lib_LTLIBRARIES = libxmlrpc_xmlparse.la
+-
+-libxmlrpc_xmlparse_la_SOURCES = xmlparse.c xmlparse.h
+-libxmlrpc_xmlparse_la_LDFLAGS = @VERSION_INFO@
+-
+-EXTRA_DIST = xmlparse.dsp
+-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+-CONFIG_HEADER = ../../../xmlrpc_config.h
+-CONFIG_CLEAN_FILES = 
+-LTLIBRARIES =  $(lib_LTLIBRARIES)
+-
+-
+-DEFS = @DEFS@ -I. -I$(srcdir) -I../../..
+-CPPFLAGS = @CPPFLAGS@
+-LDFLAGS = @LDFLAGS@
+-LIBS = @LIBS@
+-libxmlrpc_xmlparse_la_LIBADD = 
+-libxmlrpc_xmlparse_la_OBJECTS =  xmlparse.lo
+-COMPILER_CFLAGS = @COMPILER_CFLAGS@
+-CFLAGS = @CFLAGS@ $(COMPILER_CFLAGS)
+-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+-CCLD = $(CC)
+-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+-DIST_COMMON = Makefile.in
+-
+-
+-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-
+-TAR = gtar
+-GZIP_ENV = --best
+-SOURCES = $(libxmlrpc_xmlparse_la_SOURCES)
+-OBJECTS = $(libxmlrpc_xmlparse_la_OBJECTS)
+-
+-all: all-redirect
+-.SUFFIXES:
+-.SUFFIXES: .S .c .lo .o .s
+-
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+-      cd $(top_builddir) \
+-        && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+-
+-
+-mostlyclean-libLTLIBRARIES:
+-
+-clean-libLTLIBRARIES:
+-      -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+-
+-distclean-libLTLIBRARIES:
+-
+-maintainer-clean-libLTLIBRARIES:
+-
+-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+-      @$(NORMAL_INSTALL)
+-      $(mkinstalldirs) $(DESTDIR)$(libdir)
+-      @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+-        if test -f $$p; then \
+-          echo "$(LIBTOOL)  --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
+-          $(LIBTOOL)  --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
+-        else :; fi; \
+-      done
+-
+-uninstall-libLTLIBRARIES:
+-      @$(NORMAL_UNINSTALL)
+-      list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+-        $(LIBTOOL)  --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
+-      done
+-
+-.c.o:
+-      $(COMPILE) -c $<
+-
+-.s.o:
+-      $(COMPILE) -c $<
+-
+-.S.o:
+-      $(COMPILE) -c $<
+-
+-mostlyclean-compile:
+-      -rm -f *.o core *.core
+-
+-clean-compile:
+-
+-distclean-compile:
+-      -rm -f *.tab.c
+-
+-maintainer-clean-compile:
+-
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+-.s.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+-.S.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+-mostlyclean-libtool:
+-      -rm -f *.lo
+-
+-clean-libtool:
+-      -rm -rf .libs _libs
+-
+-distclean-libtool:
+-
+-maintainer-clean-libtool:
+-
+-libxmlrpc_xmlparse.la: $(libxmlrpc_xmlparse_la_OBJECTS) $(libxmlrpc_xmlparse_la_DEPENDENCIES)
+-      $(LINK) -rpath $(libdir) $(libxmlrpc_xmlparse_la_LDFLAGS) $(libxmlrpc_xmlparse_la_OBJECTS) $(libxmlrpc_xmlparse_la_LIBADD) $(LIBS)
+-
+-tags: TAGS
+-
+-ID: $(HEADERS) $(SOURCES) $(LISP)
+-      list='$(SOURCES) $(HEADERS)'; \
+-      unique=`for i in $$list; do echo $$i; done | \
+-        awk '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      here=`pwd` && cd $(srcdir) \
+-        && mkid -f$$here/ID $$unique $(LISP)
+-
+-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS)'; \
+-      unique=`for i in $$list; do echo $$i; done | \
+-        awk '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+-
+-mostlyclean-tags:
+-
+-clean-tags:
+-
+-distclean-tags:
+-      -rm -f TAGS ID
+-
+-maintainer-clean-tags:
+-
+-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+-
+-subdir = lib/expat/xmlparse
+-
+-distdir: $(DISTFILES)
+-      @for file in $(DISTFILES); do \
+-        d=$(srcdir); \
+-        if test -d $$d/$$file; then \
+-          cp -pr $$d/$$file $(distdir)/$$file; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+-          || cp -p $$d/$$file $(distdir)/$$file || :; \
+-        fi; \
+-      done
+-xmlparse.lo xmlparse.o : xmlparse.c ../xmltok/xmldef.h xmlparse.h \
+-      ../xmltok/xmltok.h ../xmltok/xmlrole.h
+-
+-info-am:
+-info: info-am
+-dvi-am:
+-dvi: dvi-am
+-check-am: all-am
+-check: check-am
+-installcheck-am:
+-installcheck: installcheck-am
+-install-exec-am: install-libLTLIBRARIES
+-install-exec: install-exec-am
+-
+-install-data-am:
+-install-data: install-data-am
+-
+-install-am: all-am
+-      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+-install: install-am
+-uninstall-am: uninstall-libLTLIBRARIES
+-uninstall: uninstall-am
+-all-am: Makefile $(LTLIBRARIES)
+-all-redirect: all-am
+-install-strip:
+-      $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+-installdirs:
+-      $(mkinstalldirs)  $(DESTDIR)$(libdir)
+-
+-
+-mostlyclean-generic:
+-
+-clean-generic:
+-
+-distclean-generic:
+-      -rm -f Makefile $(CONFIG_CLEAN_FILES)
+-      -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+-
+-maintainer-clean-generic:
+-mostlyclean-am:  mostlyclean-libLTLIBRARIES mostlyclean-compile \
+-              mostlyclean-libtool mostlyclean-tags \
+-              mostlyclean-generic
+-
+-mostlyclean: mostlyclean-am
+-
+-clean-am:  clean-libLTLIBRARIES clean-compile clean-libtool clean-tags \
+-              clean-generic mostlyclean-am
+-
+-clean: clean-am
+-
+-distclean-am:  distclean-libLTLIBRARIES distclean-compile \
+-              distclean-libtool distclean-tags distclean-generic \
+-              clean-am
+-      -rm -f libtool
+-
+-distclean: distclean-am
+-
+-maintainer-clean-am:  maintainer-clean-libLTLIBRARIES \
+-              maintainer-clean-compile maintainer-clean-libtool \
+-              maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
+-      @echo "This command is intended for maintainers to use;"
+-      @echo "it deletes files that may require special tools to rebuild."
+-
+-maintainer-clean: maintainer-clean-am
+-
+-.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
+-clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
+-uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
+-distclean-compile clean-compile maintainer-clean-compile \
+-mostlyclean-libtool distclean-libtool clean-libtool \
+-maintainer-clean-libtool tags mostlyclean-tags distclean-tags \
+-clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
+-check-am installcheck-am installcheck install-exec-am install-exec \
+-install-data-am install-data install-am install uninstall-am uninstall \
+-all-redirect all-am all installdirs mostlyclean-generic \
+-distclean-generic clean-generic maintainer-clean-generic clean \
+-mostlyclean distclean maintainer-clean
+-
+-
+-# Tell versions [3.59,3.63) of GNU make to not export all variables.
+-# Otherwise a system limit (for SysV at least) may be exceeded.
+-.NOEXPORT:
+diff --git a/libs/xmlrpc-c/lib/expat/xmlparse/xmlparse.c b/libs/xmlrpc-c/lib/expat/xmlparse/xmlparse.c
+index fc1c9f3..5b647f1 100644
+--- a/libs/xmlrpc-c/lib/expat/xmlparse/xmlparse.c
++++ b/libs/xmlrpc-c/lib/expat/xmlparse/xmlparse.c
+@@ -139,7 +139,7 @@ typedef struct tag {
+ typedef struct {
+   const XML_Char *name;
+   const XML_Char *textPtr;
+-  int textLen;
++  size_t textLen;
+   const XML_Char *systemId;
+   const XML_Char *base;
+   const XML_Char *publicId;
+@@ -473,7 +473,7 @@ int poolGrow(STRING_POOL *pool)
+     }
+   }
+   if (pool->blocks && pool->start == pool->blocks->s) {
+-    int blockSize = (pool->end - pool->start)*2;
++    size_t const blockSize = (pool->end - pool->start)*2;
+     pool->blocks = realloc(pool->blocks, offsetof(BLOCK, s) +
+                            blockSize * sizeof(XML_Char));
+     if (!pool->blocks)
+@@ -484,12 +484,11 @@ int poolGrow(STRING_POOL *pool)
+     pool->end = pool->start + blockSize;
+   }
+   else {
++    size_t const poolLen = pool->end - pool->start;
++    size_t const blockSize =
++        poolLen < INIT_BLOCK_SIZE ? INIT_BLOCK_SIZE : poolLen * 2;
+     BLOCK *tem;
+-    int blockSize = pool->end - pool->start;
+-    if (blockSize < INIT_BLOCK_SIZE)
+-      blockSize = INIT_BLOCK_SIZE;
+-    else
+-      blockSize *= 2;
++
+     tem = malloc(offsetof(BLOCK, s) + blockSize * sizeof(XML_Char));
+     if (!tem)
+       return 0;
+@@ -1123,16 +1122,14 @@ normalizeLines(XML_Char *s)
+ static void
+ reportDefault(XML_Parser       const xmlParserP,
+               const ENCODING * const enc,
+-              const char *     const startArg,
++              const char *     const start,
+               const char *     const end) {
+     Parser * const parser = (Parser *)xmlParserP;
+-    const char * s;
+-
+-    s = startArg;
++    if (MUST_CONVERT(enc, start)) {
++        const char * s;
+-    if (MUST_CONVERT(enc, s)) {
+         const char **eventPP;
+         const char **eventEndPP;
+@@ -1144,16 +1141,23 @@ reportDefault(XML_Parser       const xmlParserP,
+             eventPP = &(openInternalEntities->internalEventPtr);
+             eventEndPP = &(openInternalEntities->internalEventEndPtr);
+         }
++        s = start;
+         do {
+             ICHAR *dataPtr = (ICHAR *)dataBuf;
+             XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)dataBufEnd);
+             *eventEndPP = s;
+-            defaultHandler(handlerArg, dataBuf, dataPtr - (ICHAR *)dataBuf);
++            {
++                size_t const len = dataPtr - (ICHAR *)dataBuf;
++                assert((size_t)(int)len == len);   /* parser requirement */
++                defaultHandler(handlerArg, dataBuf, (int)len);
++            }
+             *eventPP = s;
+         } while (s != end);
+-    } else
+-        defaultHandler(handlerArg, (XML_Char *)s,
+-                       (XML_Char *)end - (XML_Char *)s);
++    } else {
++        size_t const len = (XML_Char *)end - (XML_Char *)start;
++        assert((size_t)(int)len == len);  /* parser requirement */
++        defaultHandler(handlerArg, (XML_Char *)start, len);
++    }
+ }
+@@ -2151,16 +2155,21 @@ doCdataSection(XML_Parser       const xmlParserP,
+             ICHAR *dataPtr = (ICHAR *)dataBuf;
+             XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd);
+             *eventEndPP = next;
+-            characterDataHandler(handlerArg, dataBuf, dataPtr - (ICHAR *)dataBuf);
++            {
++                size_t const len = dataPtr - (ICHAR *)dataBuf;
++                assert((size_t)(int)len == len);   /* parser requirement */
++                characterDataHandler(handlerArg, dataBuf, (int)len);
++            }
+             if (s == next)
+               break;
+             *eventPP = s;
+           }
+         }
+-        else
+-          characterDataHandler(handlerArg,
+-                               (XML_Char *)s,
+-                               (XML_Char *)next - (XML_Char *)s);
++        else {
++            size_t const len = (XML_Char *)next - (XML_Char *)s;
++            assert((size_t)(int)len == len);   /* parser requirement */
++            characterDataHandler(handlerArg, (XML_Char *)s, (int)len);
++        }                               
+       }
+       else if (defaultHandler)
+         reportDefault(xmlParserP, enc, s, next);
+@@ -2459,7 +2468,7 @@ doStartTagNoAtts(XML_Parser       const xmlParserP,
+             if (fromPtr == rawNameEnd)
+                 break;
+             else {
+-                int const bufSize = (tag->bufEnd - tag->buf) << 1;
++                size_t const bufSize = (tag->bufEnd - tag->buf) << 1;
+                 tag->buf = realloc(tag->buf, bufSize);
+                 if (!tag->buf) {
+                     *errorCodeP = XML_ERROR_NO_MEMORY;
+@@ -2777,12 +2786,16 @@ processContentToken(XML_Parser       const xmlParserP,
+                     from = s;
+                     dataPtr = (ICHAR *)dataBuf;
+                     XmlConvert(enc, &from, end, &dataPtr, (ICHAR *)dataBufEnd);
+-                    characterDataHandler(handlerArg, dataBuf,
+-                                         dataPtr - (ICHAR *)dataBuf);
+-                } else
+-                    characterDataHandler(handlerArg,
+-                                         (XML_Char *)s,
+-                                         (XML_Char *)end - (XML_Char *)s);
++                    {
++                        size_t const len = dataPtr - (ICHAR *)dataBuf;
++                        assert((size_t)(int)len == len);   /* parser reqt */
++                        characterDataHandler(handlerArg, dataBuf, (int)len);
++                    }
++                } else {
++                    size_t const len = (XML_Char *)end - (XML_Char *)s;
++                    assert((size_t)(int)len == len);   /* parser reqt */
++                    characterDataHandler(handlerArg, (XML_Char *)s, (int)len);
++                }
+             } else if (defaultHandler)
+                 reportDefault(xmlParserP, enc, s, end);
+@@ -2807,16 +2820,20 @@ processContentToken(XML_Parser       const xmlParserP,
+                     XmlConvert(enc, &from, *nextP, &dataPtr,
+                                (ICHAR *)dataBufEnd);
+                     *eventEndPP = from;
+-                    characterDataHandler(handlerArg, dataBuf,
+-                                         dataPtr - (ICHAR *)dataBuf);
++                    {
++                        size_t const len = dataPtr - (ICHAR *)dataBuf;
++                        assert((size_t)(int)len == len);   /* parser reqt */
++                        characterDataHandler(handlerArg, dataBuf, (int)len);
++                    }
+                     if (from == *nextP)
+                         break;
+                     *eventPP = from;
+                 }
+-            } else
+-                characterDataHandler(handlerArg,
+-                                     (XML_Char *)s,
+-                                     (XML_Char *)*nextP - (XML_Char *)s);
++            } else {
++                size_t const len = (XML_Char *)*nextP - (XML_Char *)s;
++                assert((size_t)(int)len == len);   /* parser reqt */
++                characterDataHandler(handlerArg, (XML_Char *)s, len);
++            }
+         } else if (defaultHandler)
+             reportDefault(xmlParserP, enc, s, *nextP);
+         break;
+@@ -4369,7 +4386,7 @@ parseFinalLen0(Parser * const parser,
+ static void
+ parseNoBuffer(Parser *     const parser,
+               const char * const s,
+-              int          const len,
++              size_t       const len,
+               bool         const isFinal,
+               int *        const succeededP) {
+@@ -4377,8 +4394,8 @@ parseNoBuffer(Parser *     const parser,
+     positionPtr = s;
+     if (isFinal) {
+-        processor(parser, s, parseEndPtr = s + len, 0,
+-                  &errorCode, &errorString);
++        parseEndPtr = s + len;
++        processor(parser, s, parseEndPtr, 0, &errorCode, &errorString);
+         if (errorCode == XML_ERROR_NONE)
+             *succeededP = true;
+         else {
+@@ -4427,7 +4444,7 @@ parseNoBuffer(Parser *     const parser,
+ int
+ xmlrpc_XML_Parse(XML_Parser   const xmlParserP,
+                  const char * const s,
+-                 int          const len,
++                 size_t       const len,
+                  int          const isFinal) {
+     Parser * const parser = (Parser *) xmlParserP;
+@@ -4487,40 +4504,49 @@ xmlrpc_XML_ParseBuffer(XML_Parser const xmlParserP,
+     }
+ }
++
++
+ void *
+-xmlrpc_XML_GetBuffer(XML_Parser parser, int len)
+-{
+-  if (len > bufferLim - bufferEnd) {
+-    /* FIXME avoid integer overflow */
+-    int neededSize = len + (bufferEnd - bufferPtr);
+-    if (neededSize  <= bufferLim - buffer) {
+-      memmove(buffer, bufferPtr, bufferEnd - bufferPtr);
+-      bufferEnd = buffer + (bufferEnd - bufferPtr);
+-      bufferPtr = buffer;
+-    }
+-    else {
+-      char *newBuf;
+-      int bufferSize = bufferLim - bufferPtr;
+-      if (bufferSize == 0)
+-        bufferSize = INIT_BUFFER_SIZE;
+-      do {
+-        bufferSize *= 2;
+-      } while (bufferSize < neededSize);
+-      newBuf = malloc(bufferSize);
+-      if (newBuf == 0) {
+-        errorCode = XML_ERROR_NO_MEMORY;
+-        return 0;
+-      }
+-      bufferLim = newBuf + bufferSize;
+-      if (bufferPtr) {
+-        memcpy(newBuf, bufferPtr, bufferEnd - bufferPtr);
+-        free(buffer);
+-      }
+-      bufferEnd = newBuf + (bufferEnd - bufferPtr);
+-      bufferPtr = buffer = newBuf;
++xmlrpc_XML_GetBuffer(XML_Parser const xmlParserP,
++                     size_t     const len) {
++
++    Parser * const parser = (Parser *)xmlParserP;
++
++    assert(bufferLim >= bufferEnd);
++
++    if (len > (size_t)(bufferLim - bufferEnd)) {
++        /* FIXME avoid integer overflow */
++        size_t neededSize = len + (bufferEnd - bufferPtr);
++        assert(bufferLim >= buffer);
++        if (neededSize  <= (size_t)(bufferLim - buffer)) {
++            memmove(buffer, bufferPtr, bufferEnd - bufferPtr);
++            bufferEnd = buffer + (bufferEnd - bufferPtr);
++            bufferPtr = buffer;
++        } else {
++            size_t bufferSize;
++            char * newBuf;
++
++            bufferSize = bufferLim > bufferPtr ?
++                bufferLim - bufferPtr : INIT_BUFFER_SIZE;
++            
++            do {
++                bufferSize *= 2;
++            } while (bufferSize < neededSize);
++            newBuf = malloc(bufferSize);
++            if (newBuf == 0) {
++                errorCode = XML_ERROR_NO_MEMORY;
++                return 0;
++            }
++            bufferLim = newBuf + bufferSize;
++            if (bufferPtr) {
++                memcpy(newBuf, bufferPtr, bufferEnd - bufferPtr);
++                free(buffer);
++            }
++            bufferEnd = newBuf + (bufferEnd - bufferPtr);
++            bufferPtr = buffer = newBuf;
++        }
+     }
+-  }
+-  return bufferEnd;
++    return bufferEnd;
+ }
+@@ -4547,19 +4573,40 @@ xmlrpc_XML_GetErrorString(XML_Parser const parser) {
+ long
+-xmlrpc_XML_GetCurrentByteIndex(XML_Parser parser)
+-{
+-  if (eventPtr)
+-    return parseEndByteIndex - (parseEndPtr - eventPtr);
+-  return -1;
++xmlrpc_XML_GetCurrentByteIndex(XML_Parser const parser) {
++
++    long retval;
++
++    if (eventPtr) {
++        size_t const bytesLeft = parseEndPtr - eventPtr;
++
++        if ((size_t)(long)(bytesLeft) != bytesLeft)
++            retval = -1;
++        else
++            retval = parseEndByteIndex - (long)bytesLeft;
++    } else
++        retval = -1;
++
++    return retval;
+ }
++
++
+ int
+-xmlrpc_XML_GetCurrentByteCount(XML_Parser parser)
+-{
+-  if (eventEndPtr && eventPtr)
+-    return eventEndPtr - eventPtr;
+-  return 0;
++xmlrpc_XML_GetCurrentByteCount(XML_Parser const parser) {
++
++    int retval;
++
++    if (eventEndPtr && eventPtr) {
++        size_t const byteCount = eventEndPtr - eventPtr;
++
++        assert((size_t)(int)byteCount == byteCount);
++
++        retval = (int)byteCount;
++    } else 
++        retval = 0;
++
++    return retval;
+ }
+diff --git a/libs/xmlrpc-c/lib/expat/xmlparse/xmlparse.dsp b/libs/xmlrpc-c/lib/expat/xmlparse/xmlparse.dsp
+deleted file mode 100644
+index b95795a..0000000
+--- a/libs/xmlrpc-c/lib/expat/xmlparse/xmlparse.dsp
++++ /dev/null
+@@ -1,279 +0,0 @@
+-# Microsoft Developer Studio Project File - Name="xmlparse" - Package Owner=<4>
+-# Microsoft Developer Studio Generated Build File, Format Version 6.00
+-# ** DO NOT EDIT **
+-
+-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+-# TARGTYPE "Win32 (x86) Static Library" 0x0104
+-
+-CFG=xmlparse - Win32 Release
+-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+-!MESSAGE use the Export Makefile command and run
+-!MESSAGE 
+-!MESSAGE NMAKE /f "xmlparse.mak".
+-!MESSAGE 
+-!MESSAGE You can specify a configuration when running NMAKE
+-!MESSAGE by defining the macro CFG on the command line. For example:
+-!MESSAGE 
+-!MESSAGE NMAKE /f "xmlparse.mak" CFG="xmlparse - Win32 Release"
+-!MESSAGE 
+-!MESSAGE Possible choices for configuration are:
+-!MESSAGE 
+-!MESSAGE "xmlparse - Win32 Release" (based on "Win32 (x86) Static Library")
+-!MESSAGE "xmlparse - Win32 Debug" (based on "Win32 (x86) Static Library")
+-!MESSAGE "xmlparse - Win32 Release DLL" (based on "Win32 (x86) Dynamic-Link Library")
+-!MESSAGE "xmlparse - Win32 Debug DLL" (based on "Win32 (x86) Dynamic-Link Library")
+-!MESSAGE "xmlparse - Win32 MinSize DLL" (based on "Win32 (x86) Dynamic-Link Library")
+-!MESSAGE 
+-
+-# Begin Project
+-# PROP AllowPerConfigDependencies 0
+-# PROP Scc_ProjName "xmlparse"
+-# PROP Scc_LocalPath ".."
+-
+-!IF  "$(CFG)" == "xmlparse - Win32 Release"
+-
+-# PROP BASE Use_MFC 0
+-# PROP BASE Use_Debug_Libraries 0
+-# PROP BASE Output_Dir ".\Release"
+-# PROP BASE Intermediate_Dir ".\Release"
+-# PROP BASE Target_Dir "."
+-# PROP Use_MFC 0
+-# PROP Use_Debug_Libraries 0
+-# PROP Output_Dir "Release\xmlparse"
+-# PROP Intermediate_Dir "Release\xmlparse"
+-# PROP Target_Dir "."
+-LINK32=link.exe -lib
+-MTL=midl.exe
+-CPP=cl.exe
+-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\xmltok" /I "..\xmlwf" /I "..\..\.." /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "XML_DTD" /D "_MBCS" /D "_LIB" /YX /FD /c
+-RSC=rc.exe
+-# ADD BASE RSC /l 0x409 /d "NDEBUG"
+-# ADD RSC /l 0x409 /d "NDEBUG"
+-BSC32=bscmake.exe
+-# ADD BASE BSC32 /nologo
+-# ADD BSC32 /nologo
+-LIB32=link.exe -lib
+-# ADD BASE LIB32 /nologo
+-# ADD LIB32 /nologo
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 Debug"
+-
+-# PROP BASE Use_MFC 0
+-# PROP BASE Use_Debug_Libraries 1
+-# PROP BASE Output_Dir ".\Debug"
+-# PROP BASE Intermediate_Dir ".\Debug"
+-# PROP BASE Target_Dir "."
+-# PROP Use_MFC 0
+-# PROP Use_Debug_Libraries 1
+-# PROP Output_Dir "Debug\xmlparse"
+-# PROP Intermediate_Dir "Debug\xmlparse"
+-# PROP Target_Dir "."
+-LINK32=link.exe -lib
+-MTL=midl.exe
+-CPP=cl.exe
+-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\xmltok" /I "..\xmlwf" /I "..\..\.." /D "WIN32" /D "_WINDOWS" /D "XML_DTD" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+-RSC=rc.exe
+-# ADD BASE RSC /l 0x409 /d "_DEBUG"
+-# ADD RSC /l 0x409 /d "_DEBUG"
+-BSC32=bscmake.exe
+-# ADD BASE BSC32 /nologo
+-# ADD BSC32 /nologo
+-LIB32=link.exe -lib
+-# ADD BASE LIB32 /nologo
+-# ADD LIB32 /nologo
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 Release DLL"
+-
+-# PROP BASE Use_MFC 0
+-# PROP BASE Use_Debug_Libraries 0
+-# PROP BASE Output_Dir ".\ReleaseDLL"
+-# PROP BASE Intermediate_Dir ".\ReleaseDLL"
+-# PROP BASE Target_Dir "."
+-# PROP Use_MFC 0
+-# PROP Use_Debug_Libraries 0
+-# PROP Output_Dir "ReleaseDLL\xmlparse"
+-# PROP Intermediate_Dir "ReleaseDLL\xmlparse"
+-# PROP Ignore_Export_Lib 0
+-# PROP Target_Dir "."
+-CPP=cl.exe
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
+-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\xmltok" /I "..\xmlwf" /I "..\..\.." /D XMLTOKAPI=__declspec(dllimport) /D XMLPARSEAPI=__declspec(dllexport) /D "NDEBUG" /D "XML_NS" /D "WIN32" /D "_WINDOWS" /D "XML_DTD" /YX /FD /c
+-MTL=midl.exe
+-# ADD BASE MTL /nologo /D "NDEBUG" /win32
+-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+-RSC=rc.exe
+-# ADD BASE RSC /l 0x809 /d "NDEBUG"
+-# ADD RSC /l 0x809 /d "NDEBUG"
+-BSC32=bscmake.exe
+-# ADD BASE BSC32 /nologo
+-# ADD BSC32 /nologo
+-LINK32=link.exe
+-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
+-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x20000000" /subsystem:windows /dll /machine:I386 /link50compat
+-# SUBTRACT LINK32 /pdb:none
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 Debug DLL"
+-
+-# PROP BASE Use_MFC 0
+-# PROP BASE Use_Debug_Libraries 1
+-# PROP BASE Output_Dir ".\DebugDLL"
+-# PROP BASE Intermediate_Dir ".\DebugDLL"
+-# PROP BASE Target_Dir "."
+-# PROP Use_MFC 0
+-# PROP Use_Debug_Libraries 1
+-# PROP Output_Dir "DebugDLL\xmlparse"
+-# PROP Intermediate_Dir "DebugDLL\xmlparse"
+-# PROP Ignore_Export_Lib 0
+-# PROP Target_Dir "."
+-CPP=cl.exe
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\xmltok" /I "..\xmlwf" /I "..\..\.." /D "_DEBUG" /D XMLTOKAPI=__declspec(dllimport) /D XMLPARSEAPI=__declspec(dllexport) /D "WIN32" /D "_WINDOWS" /D "XML_DTD" /YX /FD /c
+-MTL=midl.exe
+-# ADD BASE MTL /nologo /D "_DEBUG" /win32
+-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+-RSC=rc.exe
+-# ADD BASE RSC /l 0x809 /d "_DEBUG"
+-# ADD RSC /l 0x809 /d "_DEBUG"
+-BSC32=bscmake.exe
+-# ADD BASE BSC32 /nologo
+-# ADD BSC32 /nologo
+-LINK32=link.exe
+-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
+-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x20000000" /subsystem:windows /dll /debug /machine:I386
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 MinSize DLL"
+-
+-# PROP BASE Use_MFC 0
+-# PROP BASE Use_Debug_Libraries 0
+-# PROP BASE Output_Dir ".\ReleaseMinSizeDLL"
+-# PROP BASE Intermediate_Dir ".\ReleaseMinSizeDLL"
+-# PROP BASE Ignore_Export_Lib 0
+-# PROP BASE Target_Dir ""
+-# PROP Use_MFC 0
+-# PROP Use_Debug_Libraries 0
+-# PROP Output_Dir "ReleaseMinSizeDLL\xmlparse"
+-# PROP Intermediate_Dir "ReleaseMinSizeDLL\xmlparse"
+-# PROP Ignore_Export_Lib 0
+-# PROP Target_Dir ""
+-CPP=cl.exe
+-# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "..\xmltok" /I "..\xmlwf" /D XMLTOKAPI=__declspec(dllimport) /D XMLPARSEAPI=__declspec(dllexport) /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "XML_NS" /YX /FD /c
+-# ADD CPP /nologo /MD /W3 /GX /O1 /I "..\xmltok" /I "..\xmlwf" /I "..\..\.." /D "XML_MIN_SIZE" /D "XML_WINLIB" /D XMLPARSEAPI=__declspec(dllexport) /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
+-MTL=midl.exe
+-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+-RSC=rc.exe
+-# ADD BASE RSC /l 0x809 /d "NDEBUG"
+-# ADD RSC /l 0x809 /d "NDEBUG"
+-BSC32=bscmake.exe
+-# ADD BASE BSC32 /nologo
+-# ADD BSC32 /nologo
+-LINK32=link.exe
+-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x20000000" /subsystem:windows /dll /machine:I386
+-# SUBTRACT BASE LINK32 /profile
+-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x20000000" /entry:"DllMain" /subsystem:windows /dll /machine:I386
+-# SUBTRACT LINK32 /profile /nodefaultlib
+-
+-!ENDIF 
+-
+-# Begin Target
+-
+-# Name "xmlparse - Win32 Release"
+-# Name "xmlparse - Win32 Debug"
+-# Name "xmlparse - Win32 Release DLL"
+-# Name "xmlparse - Win32 Debug DLL"
+-# Name "xmlparse - Win32 MinSize DLL"
+-# Begin Group "Source Files"
+-
+-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90"
+-# Begin Source File
+-
+-SOURCE=..\xmltok\dllmain.c
+-
+-!IF  "$(CFG)" == "xmlparse - Win32 Release"
+-
+-# PROP Exclude_From_Build 1
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 Debug"
+-
+-# PROP Exclude_From_Build 1
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 Release DLL"
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 Debug DLL"
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 MinSize DLL"
+-
+-!ENDIF 
+-
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=.\xmlparse.c
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=..\xmltok\xmlrole.c
+-
+-!IF  "$(CFG)" == "xmlparse - Win32 Release"
+-
+-# PROP Exclude_From_Build 1
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 Debug"
+-
+-# PROP Exclude_From_Build 1
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 Release DLL"
+-
+-# PROP Exclude_From_Build 1
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 Debug DLL"
+-
+-# PROP Exclude_From_Build 1
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 MinSize DLL"
+-
+-!ENDIF 
+-
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=..\xmltok\xmltok.c
+-
+-!IF  "$(CFG)" == "xmlparse - Win32 Release"
+-
+-# PROP Exclude_From_Build 1
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 Debug"
+-
+-# PROP Exclude_From_Build 1
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 Release DLL"
+-
+-# PROP Exclude_From_Build 1
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 Debug DLL"
+-
+-# PROP Exclude_From_Build 1
+-
+-!ELSEIF  "$(CFG)" == "xmlparse - Win32 MinSize DLL"
+-
+-!ENDIF 
+-
+-# End Source File
+-# End Group
+-# Begin Group "Header Files"
+-
+-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
+-# Begin Source File
+-
+-SOURCE=.\xmlparse.h
+-# End Source File
+-# End Group
+-# Begin Group "Resource Files"
+-
+-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
+-# End Group
+-# End Target
+-# End Project
+diff --git a/libs/xmlrpc-c/lib/expat/xmlparse/xmlparse.h b/libs/xmlrpc-c/lib/expat/xmlparse/xmlparse.h
+index 2b8c701..7a65521 100644
+--- a/libs/xmlrpc-c/lib/expat/xmlparse/xmlparse.h
++++ b/libs/xmlrpc-c/lib/expat/xmlparse/xmlparse.h
+@@ -6,14 +6,12 @@
+ #ifndef XMLPARSE_H_INCLUDED
+ #define XMLPARSE_H_INCLUDED
++#include "xmlrpc-c/c_util.h"
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+-#ifndef XMLPARSEAPI
+-#define XMLPARSEAPI /* as nothing */
+-#endif
+-
+ typedef void *XML_Parser;
+ #ifdef XML_UNICODE_WCHAR_T
+@@ -53,7 +51,7 @@ typedef char XML_LChar;
+ /* Constructs a new parser; encoding is the encoding specified by the external
+ protocol or null if there is none specified. */
+-XML_Parser XMLPARSEAPI
++XML_Parser XMLRPC_DLLEXPORT
+ xmlrpc_XML_ParserCreate(const XML_Char * const encoding);
+ /* Constructs a new parser and namespace processor.  Element type names
+@@ -66,7 +64,7 @@ the namespace URI and the local part will be concatenated without any
+ separator.  When a namespace is not declared, the name and prefix will be
+ passed through without expansion. */
+-XML_Parser XMLPARSEAPI
++XML_Parser XMLRPC_DLLEXPORT
+ xmlrpc_XML_ParserCreateNS(const XML_Char * const encoding,
+                           XML_Char const namespaceSeparator);
+@@ -270,24 +268,24 @@ typedef int (*XML_UnknownEncodingHandler)(void *encodingHandlerData,
+                       const XML_Char *name,
+                       XML_Encoding *info);
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetElementHandler(XML_Parser parser,
+                              XML_StartElementHandler start,
+                              XML_EndElementHandler end);
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetCharacterDataHandler(XML_Parser parser,
+                                    XML_CharacterDataHandler handler);
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetProcessingInstructionHandler(
+     XML_Parser parser,
+     XML_ProcessingInstructionHandler handler);
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetCommentHandler(XML_Parser parser,
+                              XML_CommentHandler handler);
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetCdataSectionHandler(XML_Parser parser,
+                                   XML_StartCdataSectionHandler start,
+                                   XML_EndCdataSectionHandler end);
+@@ -297,50 +295,50 @@ xmlrpc_XML_SetCdataSectionHandler(XML_Parser parser,
+    handler.
+ */
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetDefaultHandler(XML_Parser parser,
+                              XML_DefaultHandler handler);
+ /* This sets the default handler but does not inhibit expansion of internal entities.
+ The entity reference will not be passed to the default handler. */
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetDefaultHandlerExpand(XML_Parser parser,
+                                    XML_DefaultHandler handler);
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetDoctypeDeclHandler(XML_Parser parser,
+                                  XML_StartDoctypeDeclHandler start,
+                                  XML_EndDoctypeDeclHandler end);
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetUnparsedEntityDeclHandler(XML_Parser parser,
+                                         XML_UnparsedEntityDeclHandler handler);
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetNotationDeclHandler(XML_Parser parser,
+                                   XML_NotationDeclHandler handler);
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetExternalParsedEntityDeclHandler(
+     XML_Parser parser,
+     XML_ExternalParsedEntityDeclHandler handler);
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetInternalParsedEntityDeclHandler(
+     XML_Parser parser,
+     XML_InternalParsedEntityDeclHandler handler);
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetNamespaceDeclHandler(XML_Parser parser,
+                                    XML_StartNamespaceDeclHandler start,
+                                    XML_EndNamespaceDeclHandler end);
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetNotStandaloneHandler(XML_Parser parser,
+                                    XML_NotStandaloneHandler handler);
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetExternalEntityRefHandler(XML_Parser parser,
+                                        XML_ExternalEntityRefHandler handler);
+@@ -348,10 +346,10 @@ xmlrpc_XML_SetExternalEntityRefHandler(XML_Parser parser,
+    passed as the first argument to the external entity ref handler
+    instead of the parser object.
+ */
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetExternalEntityRefHandlerArg(XML_Parser, void *arg);
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetUnknownEncodingHandler(XML_Parser parser,
+                                      XML_UnknownEncodingHandler handler,
+                                      void *encodingHandlerData);
+@@ -360,11 +358,11 @@ xmlrpc_XML_SetUnknownEncodingHandler(XML_Parser parser,
+    processing instruction or character data.  It causes the corresponding
+    markup to be passed to the default handler.
+ */
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_DefaultCurrent(XML_Parser parser);
+ /* This value is passed as the userData argument to callbacks. */
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetUserData(XML_Parser parser, void *userData);
+ /* Returns the last value set by XML_SetUserData or null. */
+@@ -374,14 +372,14 @@ xmlrpc_XML_SetUserData(XML_Parser parser, void *userData);
+ to XML_ParserCreate. It must not be called after XML_Parse
+ or XML_ParseBuffer. */
+-int XMLPARSEAPI
++int XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetEncoding(XML_Parser parser, const XML_Char *encoding);
+ /* If this function is called, then the parser will be passed
+    as the first argument to callbacks instead of userData.
+    The userData will still be accessible using XML_GetUserData.
+ */
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_UseParserAsHandlerArg(XML_Parser parser);
+ /* Sets the base to be used for resolving relative URIs in system
+@@ -391,10 +389,10 @@ xmlrpc_XML_UseParserAsHandlerArg(XML_Parser parser);
+    and XML_UnparsedEntityDeclHandler. The base argument will be copied.
+    Returns zero if out of memory, non-zero otherwise.
+ */
+-int XMLPARSEAPI
++int XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetBase(XML_Parser parser, const XML_Char *base);
+-const XML_Char XMLPARSEAPI *
++const XML_Char XMLRPC_DLLEXPORT *
+ xmlrpc_XML_GetBase(XML_Parser parser);
+ /* Returns the number of the attribute/value pairs passed in last call
+@@ -403,7 +401,7 @@ xmlrpc_XML_GetBase(XML_Parser parser);
+    this correspondds to an index into the atts array passed to the
+    XML_StartElementHandler.
+ */
+-int XMLPARSEAPI
++int XMLRPC_DLLEXPORT
+ xmlrpc_XML_GetSpecifiedAttributeCount(XML_Parser parser);
+ /* Returns the index of the ID attribute passed in the last call to
+@@ -411,20 +409,24 @@ xmlrpc_XML_GetSpecifiedAttributeCount(XML_Parser parser);
+    attribute/value pair counts as 2; thus this correspondds to an index
+    into the atts array passed to the XML_StartElementHandler.
+ */
+-int XMLPARSEAPI
++int XMLRPC_DLLEXPORT
+ xmlrpc_XML_GetIdAttributeIndex(XML_Parser parser);
+ /* Parses some input. Returns 0 if a fatal error is detected.
+    The last call to XML_Parse must have isFinal true;
+    len may be zero for this call (or any other).
+ */
+-int XMLPARSEAPI
+-xmlrpc_XML_Parse(XML_Parser const parser, const char * const s, int const len, int const isFinal);
++int XMLRPC_DLLEXPORT
++xmlrpc_XML_Parse(XML_Parser   const xmlParserP,
++                 const char * const s,
++                 size_t       const len,
++                 int          const isFinal);
+-void XMLPARSEAPI *
+-xmlrpc_XML_GetBuffer(XML_Parser parser, int len);
++void XMLRPC_DLLEXPORT *
++xmlrpc_XML_GetBuffer(XML_Parser const xmlParserP,
++                     size_t     const len);
+-int XMLPARSEAPI
++int XMLRPC_DLLEXPORT
+ xmlrpc_XML_ParseBuffer(XML_Parser const parser, int const len, int const isFinal);
+ /* Creates an XML_Parser object that can parse an external general
+@@ -443,7 +445,7 @@ xmlrpc_XML_ParseBuffer(XML_Parser const parser, int const len, int const isFinal
+    from the parser argument.  Returns 0 if out of memory.  Otherwise
+    returns a new XML_Parser object.
+ */
+-XML_Parser XMLPARSEAPI
++XML_Parser XMLRPC_DLLEXPORT
+ xmlrpc_XML_ExternalEntityParserCreate(XML_Parser parser,
+                                       const XML_Char *context,
+                                       const XML_Char *encoding);
+@@ -473,7 +475,7 @@ enum XML_ParamEntityParsing {
+    XML_SetParamEntityParsing will return 0 if parsing of parameter
+    entities is requested; otherwise it will return non-zero.
+ */
+-int XMLPARSEAPI
++int XMLRPC_DLLEXPORT
+ xmlrpc_XML_SetParamEntityParsing(XML_Parser parser,
+                                  enum XML_ParamEntityParsing parsing);
+@@ -508,10 +510,10 @@ enum XML_Error {
+    information about the error.
+ */
+-enum XML_Error XMLPARSEAPI
++enum XML_Error XMLRPC_DLLEXPORT
+ xmlrpc_XML_GetErrorCode(XML_Parser const parser);
+-const char * XMLPARSEAPI
++XMLRPC_DLLEXPORT const char *
+ xmlrpc_XML_GetErrorString(XML_Parser const parser);
+ /* These functions return information about the current parse location.
+@@ -523,17 +525,17 @@ xmlrpc_XML_GetErrorString(XML_Parser const parser);
+    of the sequence of characters that generated the event.
+ */
+-int XMLPARSEAPI
++int XMLRPC_DLLEXPORT
+ xmlrpc_XML_GetCurrentLineNumber(XML_Parser parser);
+-int XMLPARSEAPI
++int XMLRPC_DLLEXPORT
+ xmlrpc_XML_GetCurrentColumnNumber(XML_Parser parser);
+-long XMLPARSEAPI
++long XMLRPC_DLLEXPORT
+ xmlrpc_XML_GetCurrentByteIndex(XML_Parser parser);
+ /* Return the number of bytes in the current event.
+ Returns 0 if the event is in an internal entity. */
+-int XMLPARSEAPI
++int XMLRPC_DLLEXPORT
+ xmlrpc_XML_GetCurrentByteCount(XML_Parser parser);
+ /* For backwards compatibility with previous versions. */
+@@ -542,11 +544,11 @@ xmlrpc_XML_GetCurrentByteCount(XML_Parser parser);
+ #define XML_GetErrorByteIndex XML_GetCurrentByteIndex
+ /* Frees memory used by the parser. */
+-void XMLPARSEAPI
++void XMLRPC_DLLEXPORT
+ xmlrpc_XML_ParserFree(XML_Parser parser);
+ /* Returns a string describing the error. */
+-const XML_LChar XMLPARSEAPI *
++const XML_LChar XMLRPC_DLLEXPORT *
+ xmlrpc_XML_ErrorString(int const code);
+ #ifdef __cplusplus
+diff --git a/libs/xmlrpc-c/lib/expat/xmltok/.cvsignore b/libs/xmlrpc-c/lib/expat/xmltok/.cvsignore
+deleted file mode 100644
+index 38cd01c..0000000
+--- a/libs/xmlrpc-c/lib/expat/xmltok/.cvsignore
++++ /dev/null
+@@ -1 +0,0 @@
+-nametab.h
+diff --git a/libs/xmlrpc-c/lib/expat/xmltok/Makefile b/libs/xmlrpc-c/lib/expat/xmltok/Makefile
+index cfcb8dd..4cb9723 100644
+--- a/libs/xmlrpc-c/lib/expat/xmltok/Makefile
++++ b/libs/xmlrpc-c/lib/expat/xmltok/Makefile
+@@ -24,10 +24,10 @@ include $(BLDDIR)/config.mk
+ # we started using the Gcc -Wundef option, that generates a warning, so
+ # se set it explicitly to 0 here.
+-CFLAGS = $(CFLAGS_COMMON) -DXML_BYTE_ORDER=0 $(CFLAGS_PERSONAL) $(CADD)
++CFLAGS_LOCAL = -DXML_BYTE_ORDER=0
+ # -I. is necessary when blddir != srcdir
+-INCLUDES = -I. -I$(BLDDIR) -I$(SRCDIR)/lib/util/include
++INCLUDES = -I. -I$(BLDDIR) -Isrcdir/lib/util/include -Isrcdir/include
+ default: all
+@@ -46,19 +46,20 @@ MAJ=3
+ include $(SRCDIR)/common.mk
++# This 'common.mk' dependency makes sure the symlinks get built before
++# this make file is used for anything.
++
++$(SRCDIR)/common.mk: srcdir blddir
++
+ XMLTOK_SHLIB = $(call shlibfn,libxmlrpc_xmltok)
+ #XMLTOK_SHLIB is e.g. libxmlrpc_xmltok.so.3.1
+ XMLTOK_SHLIBLE = $(call shliblefn,libxmlrpc_xmltok)
+ #XMLTOK_SHLIBLE is e.g. libxmlrpc_xmltok.so
+-ifneq ($(SHARED_LIB_TYPE),NONE)
+-  TARGET_SHARED_LIBS := $(XMLTOK_SHLIB) $(XMLTOK_SHLIBLE)
+-  endif
+-
+ .PHONY: all
+-all: libxmlrpc_xmltok.a $(TARGET_SHARED_LIBS) $(TARGET_SHARED_LE_LIBS)
++all: libxmlrpc_xmltok.a $(TARGET_SHARED_LIBRARIES) $(TARGET_SHARED_LE_LIBS)
+-# Rule for this is in common.mk, courtesy of TARGET_SHARED_LIBRARIES:
++# Rule for this is in common.mk, courtesy of TARGET_LIBRARY_NAMES
+ $(XMLTOK_SHLIB): $(TARGET_MODS:%=%.osh)
+ $(XMLTOK_SHLIB): LIBOBJECTS = $(TARGET_MODS:%=%.osh)
+@@ -103,6 +104,6 @@ nametab.h: $(GENNMTAB)
+ $(GENNMTAB):
+       $(MAKE) -C $(dir $@) $(notdir $@)
+-xmltok.o xmltok.osh: nametab.h
++xmltok.o xmltok.osh: nametab.h xmltok_impl.c
+-include Makefile.depend
++include depend.mk
+diff --git a/libs/xmlrpc-c/lib/expat/xmltok/nametab.h b/libs/xmlrpc-c/lib/expat/xmltok/nametab.h
+index b05e62c..adea34c 100644
+--- a/libs/xmlrpc-c/lib/expat/xmltok/nametab.h
++++ b/libs/xmlrpc-c/lib/expat/xmltok/nametab.h
+@@ -1,150 +1,150 @@
+-static const unsigned namingBitmap[] = {
+-0x00000000, 0x00000000, 0x00000000, 0x00000000,
+-0x00000000, 0x00000000, 0x00000000, 0x00000000,
+-0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+-0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+-0x00000000, 0x04000000, 0x87FFFFFE, 0x07FFFFFE,
+-0x00000000, 0x00000000, 0xFF7FFFFF, 0xFF7FFFFF,
+-0xFFFFFFFF, 0x7FF3FFFF, 0xFFFFFDFE, 0x7FFFFFFF,
+-0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE00F, 0xFC31FFFF,
+-0x00FFFFFF, 0x00000000, 0xFFFF0000, 0xFFFFFFFF,
+-0xFFFFFFFF, 0xF80001FF, 0x00000003, 0x00000000,
+-0x00000000, 0x00000000, 0x00000000, 0x00000000,
+-0xFFFFD740, 0xFFFFFFFB, 0x547F7FFF, 0x000FFFFD,
+-0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF,
+-0xFFFF0003, 0xFFFFFFFF, 0xFFFF199F, 0x033FCFFF,
+-0x00000000, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,
+-0x0000007F, 0x00000000, 0xFFFF0000, 0x000707FF,
+-0x00000000, 0x07FFFFFE, 0x000007FE, 0xFFFE0000,
+-0xFFFFFFFF, 0x7CFFFFFF, 0x002F7FFF, 0x00000060,
+-0xFFFFFFE0, 0x23FFFFFF, 0xFF000000, 0x00000003,
+-0xFFF99FE0, 0x03C5FDFF, 0xB0000000, 0x00030003,
+-0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,
+-0xFFFBAFE0, 0x23EDFDFF, 0x00000000, 0x00000001,
+-0xFFF99FE0, 0x23CDFDFF, 0xB0000000, 0x00000003,
+-0xD63DC7E0, 0x03BFC718, 0x00000000, 0x00000000,
+-0xFFFDDFE0, 0x03EFFDFF, 0x00000000, 0x00000003,
+-0xFFFDDFE0, 0x03EFFDFF, 0x40000000, 0x00000003,
+-0xFFFDDFE0, 0x03FFFDFF, 0x00000000, 0x00000003,
+-0x00000000, 0x00000000, 0x00000000, 0x00000000,
+-0xFFFFFFFE, 0x000D7FFF, 0x0000003F, 0x00000000,
+-0xFEF02596, 0x200D6CAE, 0x0000001F, 0x00000000,
+-0x00000000, 0x00000000, 0xFFFFFEFF, 0x000003FF,
+-0x00000000, 0x00000000, 0x00000000, 0x00000000,
+-0x00000000, 0x00000000, 0x00000000, 0x00000000,
+-0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x007FFFFF,
+-0x0007DAED, 0x50000000, 0x82315001, 0x002C62AB,
+-0x40000000, 0xF580C900, 0x00000007, 0x02010800,
+-0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+-0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,
+-0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+-0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
+-0x00000000, 0x00004C40, 0x00000000, 0x00000000,
+-0x00000007, 0x00000000, 0x00000000, 0x00000000,
+-0x00000080, 0x000003FE, 0xFFFFFFFE, 0xFFFFFFFF,
+-0x001FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x07FFFFFF,
+-0xFFFFFFE0, 0x00001FFF, 0x00000000, 0x00000000,
+-0x00000000, 0x00000000, 0x00000000, 0x00000000,
+-0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+-0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
+-0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+-0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+-0x00000000, 0x07FF6000, 0x87FFFFFE, 0x07FFFFFE,
+-0x00000000, 0x00800000, 0xFF7FFFFF, 0xFF7FFFFF,
+-0x00FFFFFF, 0x00000000, 0xFFFF0000, 0xFFFFFFFF,
+-0xFFFFFFFF, 0xF80001FF, 0x00030003, 0x00000000,
+-0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000003,
+-0xFFFFD7C0, 0xFFFFFFFB, 0x547F7FFF, 0x000FFFFD,
+-0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF,
+-0xFFFF007B, 0xFFFFFFFF, 0xFFFF199F, 0x033FCFFF,
+-0x00000000, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,
+-0xFFFE007F, 0xBBFFFFFB, 0xFFFF0016, 0x000707FF,
+-0x00000000, 0x07FFFFFE, 0x0007FFFF, 0xFFFF03FF,
+-0xFFFFFFFF, 0x7CFFFFFF, 0xFFEF7FFF, 0x03FF3DFF,
+-0xFFFFFFEE, 0xF3FFFFFF, 0xFF1E3FFF, 0x0000FFCF,
+-0xFFF99FEE, 0xD3C5FDFF, 0xB080399F, 0x0003FFCF,
+-0xFFF987E4, 0xD36DFDFF, 0x5E003987, 0x001FFFC0,
+-0xFFFBAFEE, 0xF3EDFDFF, 0x00003BBF, 0x0000FFC1,
+-0xFFF99FEE, 0xF3CDFDFF, 0xB0C0398F, 0x0000FFC3,
+-0xD63DC7EC, 0xC3BFC718, 0x00803DC7, 0x0000FF80,
+-0xFFFDDFEE, 0xC3EFFDFF, 0x00603DDF, 0x0000FFC3,
+-0xFFFDDFEC, 0xC3EFFDFF, 0x40603DDF, 0x0000FFC3,
+-0xFFFDDFEC, 0xC3FFFDFF, 0x00803DCF, 0x0000FFC3,
+-0x00000000, 0x00000000, 0x00000000, 0x00000000,
+-0xFFFFFFFE, 0x07FF7FFF, 0x03FF7FFF, 0x00000000,
+-0xFEF02596, 0x3BFF6CAE, 0x03FF3F5F, 0x00000000,
+-0x03000000, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE03FF,
+-0xFEBF0FDF, 0x02FE3FFF, 0x00000000, 0x00000000,
+-0x00000000, 0x00000000, 0x00000000, 0x00000000,
+-0x00000000, 0x00000000, 0x1FFF0000, 0x00000002,
+-0x000000A0, 0x003EFFFE, 0xFFFFFFFE, 0xFFFFFFFF,
+-0x661FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x77FFFFFF,
+-};
+-static const unsigned char nmstrtPages[] = {
+-0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x00,
+-0x00, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+-0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13,
+-0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x15, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x17,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-};
+-static const unsigned char namePages[] = {
+-0x19, 0x03, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x00,
+-0x00, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25,
+-0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13,
+-0x26, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x27, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x17,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+-};
++static const unsigned namingBitmap[] = {\r
++0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
++0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
++0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,\r
++0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,\r
++0x00000000, 0x04000000, 0x87FFFFFE, 0x07FFFFFE,\r
++0x00000000, 0x00000000, 0xFF7FFFFF, 0xFF7FFFFF,\r
++0xFFFFFFFF, 0x7FF3FFFF, 0xFFFFFDFE, 0x7FFFFFFF,\r
++0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE00F, 0xFC31FFFF,\r
++0x00FFFFFF, 0x00000000, 0xFFFF0000, 0xFFFFFFFF,\r
++0xFFFFFFFF, 0xF80001FF, 0x00000003, 0x00000000,\r
++0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
++0xFFFFD740, 0xFFFFFFFB, 0x547F7FFF, 0x000FFFFD,\r
++0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF,\r
++0xFFFF0003, 0xFFFFFFFF, 0xFFFF199F, 0x033FCFFF,\r
++0x00000000, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,\r
++0x0000007F, 0x00000000, 0xFFFF0000, 0x000707FF,\r
++0x00000000, 0x07FFFFFE, 0x000007FE, 0xFFFE0000,\r
++0xFFFFFFFF, 0x7CFFFFFF, 0x002F7FFF, 0x00000060,\r
++0xFFFFFFE0, 0x23FFFFFF, 0xFF000000, 0x00000003,\r
++0xFFF99FE0, 0x03C5FDFF, 0xB0000000, 0x00030003,\r
++0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,\r
++0xFFFBAFE0, 0x23EDFDFF, 0x00000000, 0x00000001,\r
++0xFFF99FE0, 0x23CDFDFF, 0xB0000000, 0x00000003,\r
++0xD63DC7E0, 0x03BFC718, 0x00000000, 0x00000000,\r
++0xFFFDDFE0, 0x03EFFDFF, 0x00000000, 0x00000003,\r
++0xFFFDDFE0, 0x03EFFDFF, 0x40000000, 0x00000003,\r
++0xFFFDDFE0, 0x03FFFDFF, 0x00000000, 0x00000003,\r
++0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
++0xFFFFFFFE, 0x000D7FFF, 0x0000003F, 0x00000000,\r
++0xFEF02596, 0x200D6CAE, 0x0000001F, 0x00000000,\r
++0x00000000, 0x00000000, 0xFFFFFEFF, 0x000003FF,\r
++0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
++0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
++0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x007FFFFF,\r
++0x0007DAED, 0x50000000, 0x82315001, 0x002C62AB,\r
++0x40000000, 0xF580C900, 0x00000007, 0x02010800,\r
++0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,\r
++0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,\r
++0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,\r
++0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,\r
++0x00000000, 0x00004C40, 0x00000000, 0x00000000,\r
++0x00000007, 0x00000000, 0x00000000, 0x00000000,\r
++0x00000080, 0x000003FE, 0xFFFFFFFE, 0xFFFFFFFF,\r
++0x001FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x07FFFFFF,\r
++0xFFFFFFE0, 0x00001FFF, 0x00000000, 0x00000000,\r
++0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
++0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,\r
++0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,\r
++0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,\r
++0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,\r
++0x00000000, 0x07FF6000, 0x87FFFFFE, 0x07FFFFFE,\r
++0x00000000, 0x00800000, 0xFF7FFFFF, 0xFF7FFFFF,\r
++0x00FFFFFF, 0x00000000, 0xFFFF0000, 0xFFFFFFFF,\r
++0xFFFFFFFF, 0xF80001FF, 0x00030003, 0x00000000,\r
++0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000003,\r
++0xFFFFD7C0, 0xFFFFFFFB, 0x547F7FFF, 0x000FFFFD,\r
++0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF,\r
++0xFFFF007B, 0xFFFFFFFF, 0xFFFF199F, 0x033FCFFF,\r
++0x00000000, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,\r
++0xFFFE007F, 0xBBFFFFFB, 0xFFFF0016, 0x000707FF,\r
++0x00000000, 0x07FFFFFE, 0x0007FFFF, 0xFFFF03FF,\r
++0xFFFFFFFF, 0x7CFFFFFF, 0xFFEF7FFF, 0x03FF3DFF,\r
++0xFFFFFFEE, 0xF3FFFFFF, 0xFF1E3FFF, 0x0000FFCF,\r
++0xFFF99FEE, 0xD3C5FDFF, 0xB080399F, 0x0003FFCF,\r
++0xFFF987E4, 0xD36DFDFF, 0x5E003987, 0x001FFFC0,\r
++0xFFFBAFEE, 0xF3EDFDFF, 0x00003BBF, 0x0000FFC1,\r
++0xFFF99FEE, 0xF3CDFDFF, 0xB0C0398F, 0x0000FFC3,\r
++0xD63DC7EC, 0xC3BFC718, 0x00803DC7, 0x0000FF80,\r
++0xFFFDDFEE, 0xC3EFFDFF, 0x00603DDF, 0x0000FFC3,\r
++0xFFFDDFEC, 0xC3EFFDFF, 0x40603DDF, 0x0000FFC3,\r
++0xFFFDDFEC, 0xC3FFFDFF, 0x00803DCF, 0x0000FFC3,\r
++0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
++0xFFFFFFFE, 0x07FF7FFF, 0x03FF7FFF, 0x00000000,\r
++0xFEF02596, 0x3BFF6CAE, 0x03FF3F5F, 0x00000000,\r
++0x03000000, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE03FF,\r
++0xFEBF0FDF, 0x02FE3FFF, 0x00000000, 0x00000000,\r
++0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
++0x00000000, 0x00000000, 0x1FFF0000, 0x00000002,\r
++0x000000A0, 0x003EFFFE, 0xFFFFFFFE, 0xFFFFFFFF,\r
++0x661FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x77FFFFFF,\r
++};\r
++static const unsigned char nmstrtPages[] = {\r
++0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x00,\r
++0x00, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,\r
++0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13,\r
++0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x15, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x17,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++};\r
++static const unsigned char namePages[] = {\r
++0x19, 0x03, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x00,\r
++0x00, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25,\r
++0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13,\r
++0x26, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x27, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x17,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
++0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
++};\r
+diff --git a/libs/xmlrpc-c/lib/expat/xmltok/xmlrole.h b/libs/xmlrpc-c/lib/expat/xmltok/xmlrole.h
+index 3cccb83..523b3da 100644
+--- a/libs/xmlrpc-c/lib/expat/xmltok/xmlrole.h
++++ b/libs/xmlrpc-c/lib/expat/xmltok/xmlrole.h
+@@ -3,9 +3,10 @@ Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd
+ See the file copying.txt for copying permission.
+ */
+-#ifndef XmlRole_INCLUDED
+-#define XmlRole_INCLUDED 1
++#ifndef XMLROLE_H_INCLUDED
++#define XMLROLE_H_INCLUDED
++#include "xmlrpc-c/c_util.h"
+ #include "xmltok.h"
+ #ifdef __cplusplus
+@@ -80,10 +81,10 @@ typedef struct prolog_state {
+   int documentEntity;
+ } PROLOG_STATE;
+-XMLTOKAPI void
++XMLRPC_DLLEXPORT void
+ xmlrpc_XmlPrologStateInit(PROLOG_STATE * const state);
+-XMLTOKAPI void
++XMLRPC_DLLEXPORT void
+ xmlrpc_XmlPrologStateInitExternalEntity(PROLOG_STATE * const state);
+ #define XmlTokenRole(state, tok, ptr, end, enc) \
+diff --git a/libs/xmlrpc-c/lib/expat/xmltok/xmltok.c b/libs/xmlrpc-c/lib/expat/xmltok/xmltok.c
+index 9eb8284..969ac23 100644
+--- a/libs/xmlrpc-c/lib/expat/xmltok/xmltok.c
++++ b/libs/xmlrpc-c/lib/expat/xmltok/xmltok.c
+@@ -4,6 +4,7 @@ See the file copying.txt for copying permission.
+ */
+ #include "xmlrpc_config.h"
++#include "bool.h"
+ #include "xmldef.h"
+ #include "xmltok.h"
+ #include "nametab.h"
+@@ -357,31 +358,48 @@ static const struct normal_encoding internal_utf8_encoding = {
+   STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_)
+ };
+-static
+-void latin1_toUtf8(const ENCODING *enc ATTR_UNUSED,
+-                 const char **fromP, const char *fromLim,
+-                 char **toP, const char *toLim)
+-{
+-  for (;;) {
+-    unsigned char c;
+-    if (*fromP == fromLim)
+-      break;
+-    c = (unsigned char)**fromP;
+-    if (c & 0x80) {
+-      if (toLim - *toP < 2)
+-      break;
+-      *(*toP)++ = ((c >> 6) | UTF8_cval2);
+-      *(*toP)++ = ((c & 0x3f) | 0x80);
+-      (*fromP)++;
+-    }
+-    else {
+-      if (*toP == toLim)
+-      break;
+-      *(*toP)++ = *(*fromP)++;
++
++
++static void
++latin1_toUtf8(const ENCODING * const enc ATTR_UNUSED,
++              const char **    const fromP,
++              const char *     const fromLim,
++              char **          const toP,
++              const char *     const toLim) {
++/*----------------------------------------------------------------------------
++   Convert the Latin1 string that starts at *fromP and ends at 'fromLim'
++   to UTF8 in the buffer that starts at *toP and ends at 'toLim'.
++
++   Go from left to right and stop when the output buffer is full.
++
++   Note that the buffer can be full while still having a byte left in it
++   because a Latin1 character may require two bytes of the output buffer.
++
++   Leave *fromP and *toP pointing after the last character converted.
++-----------------------------------------------------------------------------*/
++    bool bufferIsFull;
++
++    for (bufferIsFull = false; *fromP != fromLim && !bufferIsFull;) {
++        unsigned char const c = (unsigned char)**fromP;
++        if (c & 0x80) {
++            if (toLim - *toP < 2)
++                bufferIsFull = true;
++            else {
++                *(*toP)++ = ((c >> 6) | UTF8_cval2);
++                *(*toP)++ = ((c & 0x3f) | 0x80);
++                ++(*fromP);
++            }
++        } else {
++            if (*toP == toLim)
++                bufferIsFull = true;
++            else
++                *(*toP)++ = *(*fromP)++;
++        }
+     }
+-  }
+ }
++
++
+ static
+ void latin1_toUtf16(const ENCODING *enc ATTR_UNUSED,
+                   const char **fromP, const char *fromLim,
+diff --git a/libs/xmlrpc-c/lib/expat/xmltok/xmltok.dsp b/libs/xmlrpc-c/lib/expat/xmltok/xmltok.dsp
+deleted file mode 100644
+index 58a70ef..0000000
+--- a/libs/xmlrpc-c/lib/expat/xmltok/xmltok.dsp
++++ /dev/null
+@@ -1,259 +0,0 @@
+-# Microsoft Developer Studio Project File - Name="xmltok" - Package Owner=<4>
+-# Microsoft Developer Studio Generated Build File, Format Version 6.00
+-# ** DO NOT EDIT **
+-
+-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+-# TARGTYPE "Win32 (x86) Static Library" 0x0104
+-
+-CFG=xmltok - Win32 Release
+-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+-!MESSAGE use the Export Makefile command and run
+-!MESSAGE 
+-!MESSAGE NMAKE /f "xmltok.mak".
+-!MESSAGE 
+-!MESSAGE You can specify a configuration when running NMAKE
+-!MESSAGE by defining the macro CFG on the command line. For example:
+-!MESSAGE 
+-!MESSAGE NMAKE /f "xmltok.mak" CFG="xmltok - Win32 Release"
+-!MESSAGE 
+-!MESSAGE Possible choices for configuration are:
+-!MESSAGE 
+-!MESSAGE "xmltok - Win32 Release" (based on "Win32 (x86) Static Library")
+-!MESSAGE "xmltok - Win32 Debug" (based on "Win32 (x86) Static Library")
+-!MESSAGE "xmltok - Win32 Release DLL" (based on "Win32 (x86) Dynamic-Link Library")
+-!MESSAGE "xmltok - Win32 Debug DLL" (based on "Win32 (x86) Dynamic-Link Library")
+-!MESSAGE 
+-
+-# Begin Project
+-# PROP AllowPerConfigDependencies 0
+-# PROP Scc_ProjName "xmltok"
+-# PROP Scc_LocalPath ".."
+-
+-!IF  "$(CFG)" == "xmltok - Win32 Release"
+-
+-# PROP BASE Use_MFC 0
+-# PROP BASE Use_Debug_Libraries 0
+-# PROP BASE Output_Dir ".\Release"
+-# PROP BASE Intermediate_Dir ".\Release"
+-# PROP BASE Target_Dir "."
+-# PROP Use_MFC 0
+-# PROP Use_Debug_Libraries 0
+-# PROP Output_Dir "Release\xmltok"
+-# PROP Intermediate_Dir "Release\xmltok"
+-# PROP Target_Dir "."
+-LINK32=link.exe -lib
+-MTL=midl.exe
+-CPP=cl.exe
+-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /YX /FD /c
+-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\.." /D "NDEBUG" /D "XML_NS" /D XMLTOKAPI=__declspec(dllexport) /D "WIN32" /D "_WINDOWS" /D "XML_DTD" /D "_MBCS" /D "_LIB" /YX /FD /c
+-RSC=rc.exe
+-# ADD BASE RSC /l 0x409 /d "NDEBUG"
+-# ADD RSC /l 0x409 /d "NDEBUG"
+-BSC32=bscmake.exe
+-# ADD BASE BSC32 /nologo
+-# ADD BSC32 /nologo
+-LIB32=link.exe -lib
+-# ADD BASE LIB32 /nologo
+-# ADD LIB32 /nologo
+-
+-!ELSEIF  "$(CFG)" == "xmltok - Win32 Debug"
+-
+-# PROP BASE Use_MFC 0
+-# PROP BASE Use_Debug_Libraries 1
+-# PROP BASE Output_Dir ".\Debug"
+-# PROP BASE Intermediate_Dir ".\Debug"
+-# PROP BASE Target_Dir "."
+-# PROP Use_MFC 0
+-# PROP Use_Debug_Libraries 1
+-# PROP Output_Dir "Debug\xmltok"
+-# PROP Intermediate_Dir "Debug\xmltok"
+-# PROP Target_Dir "."
+-LINK32=link.exe -lib
+-MTL=midl.exe
+-CPP=cl.exe
+-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\.." /D "_DEBUG" /D XMLTOKAPI=__declspec(dllexport) /D "WIN32" /D "_WINDOWS" /D "XML_DTD" /D "XML_NS" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+-RSC=rc.exe
+-# ADD BASE RSC /l 0x409 /d "_DEBUG"
+-# ADD RSC /l 0x409 /d "_DEBUG"
+-BSC32=bscmake.exe
+-# ADD BASE BSC32 /nologo
+-# ADD BSC32 /nologo
+-LIB32=link.exe -lib
+-# ADD BASE LIB32 /nologo
+-# ADD LIB32 /nologo
+-
+-!ELSEIF  "$(CFG)" == "xmltok - Win32 Release DLL"
+-
+-# PROP BASE Use_MFC 0
+-# PROP BASE Use_Debug_Libraries 0
+-# PROP BASE Output_Dir ".\ReleaseDLL"
+-# PROP BASE Intermediate_Dir ".\ReleaseDLL"
+-# PROP BASE Target_Dir "."
+-# PROP Use_MFC 0
+-# PROP Use_Debug_Libraries 0
+-# PROP Output_Dir "ReleaseDLL\xmltok"
+-# PROP Intermediate_Dir "ReleaseDLL\xmltok"
+-# PROP Ignore_Export_Lib 0
+-# PROP Target_Dir "."
+-CPP=cl.exe
+-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
+-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\.." /D "NDEBUG" /D "XML_NS" /D XMLTOKAPI=__declspec(dllexport) /D "WIN32" /D "_WINDOWS" /D "XML_DTD" /YX /FD /c
+-MTL=midl.exe
+-# ADD BASE MTL /nologo /D "NDEBUG" /win32
+-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+-RSC=rc.exe
+-# ADD BASE RSC /l 0x809 /d "NDEBUG"
+-# ADD RSC /l 0x809 /d "NDEBUG"
+-BSC32=bscmake.exe
+-# ADD BASE BSC32 /nologo
+-# ADD BSC32 /nologo
+-LINK32=link.exe
+-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
+-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /entry:"DllMain" /subsystem:windows /dll /machine:I386 /out:"..\..\xmltok.dll" /link50compat
+-# SUBTRACT LINK32 /pdb:none
+-
+-!ELSEIF  "$(CFG)" == "xmltok - Win32 Debug DLL"
+-
+-# PROP BASE Use_MFC 0
+-# PROP BASE Use_Debug_Libraries 1
+-# PROP BASE Output_Dir ".\DebugDLL"
+-# PROP BASE Intermediate_Dir ".\DebugDLL"
+-# PROP BASE Target_Dir "."
+-# PROP Use_MFC 0
+-# PROP Use_Debug_Libraries 1
+-# PROP Output_Dir "DebugDLL\xmltok"
+-# PROP Intermediate_Dir "DebugDLL\xmltok"
+-# PROP Ignore_Export_Lib 0
+-# PROP Target_Dir "."
+-CPP=cl.exe
+-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
+-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\.." /D "_DEBUG" /D XMLTOKAPI=__declspec(dllexport) /D "WIN32" /D "_WINDOWS" /D "XML_DTD" /D "XML_NS" /YX /FD /c
+-MTL=midl.exe
+-# ADD BASE MTL /nologo /D "_DEBUG" /win32
+-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+-RSC=rc.exe
+-# ADD BASE RSC /l 0x809 /d "_DEBUG"
+-# ADD RSC /l 0x809 /d "_DEBUG"
+-BSC32=bscmake.exe
+-# ADD BASE BSC32 /nologo
+-# ADD BSC32 /nologo
+-LINK32=link.exe
+-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
+-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"..\..\xmltokD.dll"
+-
+-!ENDIF 
+-
+-# Begin Target
+-
+-# Name "xmltok - Win32 Release"
+-# Name "xmltok - Win32 Debug"
+-# Name "xmltok - Win32 Release DLL"
+-# Name "xmltok - Win32 Debug DLL"
+-# Begin Group "Source Files"
+-
+-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90"
+-# Begin Source File
+-
+-SOURCE=.\dllmain.c
+-
+-!IF  "$(CFG)" == "xmltok - Win32 Release"
+-
+-# PROP Exclude_From_Build 1
+-
+-!ELSEIF  "$(CFG)" == "xmltok - Win32 Debug"
+-
+-# PROP Exclude_From_Build 1
+-
+-!ELSEIF  "$(CFG)" == "xmltok - Win32 Release DLL"
+-
+-!ELSEIF  "$(CFG)" == "xmltok - Win32 Debug DLL"
+-
+-!ENDIF 
+-
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=..\gennmtab\gennmtab.c
+-
+-!IF  "$(CFG)" == "xmltok - Win32 Release"
+-
+-# PROP Ignore_Default_Tool 1
+-
+-!ELSEIF  "$(CFG)" == "xmltok - Win32 Debug"
+-
+-# PROP Ignore_Default_Tool 1
+-
+-!ELSEIF  "$(CFG)" == "xmltok - Win32 Release DLL"
+-
+-!ELSEIF  "$(CFG)" == "xmltok - Win32 Debug DLL"
+-
+-!ENDIF 
+-
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=.\xmlrole.c
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=.\xmltok.c
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=.\xmltok_impl.c
+-# PROP BASE Exclude_From_Build 1
+-# PROP Exclude_From_Build 1
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=.\xmltok_ns.c
+-# PROP Exclude_From_Build 1
+-# End Source File
+-# End Group
+-# Begin Group "Header Files"
+-
+-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
+-# Begin Source File
+-
+-SOURCE=.\asciitab.h
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=.\iasciitab.h
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=.\latin1tab.h
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=.\nametab.h
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=.\utf8tab.h
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=.\xmldef.h
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=.\xmlrole.h
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=.\xmltok.h
+-# End Source File
+-# Begin Source File
+-
+-SOURCE=.\xmltok_impl.h
+-# End Source File
+-# End Group
+-# Begin Group "Resource Files"
+-
+-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
+-# End Group
+-# End Target
+-# End Project
+diff --git a/libs/xmlrpc-c/lib/expat/xmltok/xmltok.h b/libs/xmlrpc-c/lib/expat/xmltok/xmltok.h
+index 453568f..e24a78c 100644
+--- a/libs/xmlrpc-c/lib/expat/xmltok/xmltok.h
++++ b/libs/xmlrpc-c/lib/expat/xmltok/xmltok.h
+@@ -3,17 +3,15 @@ Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd
+ See the file copying.txt for copying permission.
+ */
+-#ifndef XmlTok_INCLUDED
+-#define XmlTok_INCLUDED 1
++#ifndef XMLTOK_H_INCLUDED
++#define XMLTOK_H_INCLUDED
++
++#include "xmlrpc-c/c_util.h"
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+-#ifndef XMLTOKAPI
+-#define XMLTOKAPI /* as nothing */
+-#endif
+-
+ /* The following token may be returned by XmlContentTok */
+ #define XML_TOK_TRAILING_RSQB -5 /* ] or ]] at the end of the scan; might be start of
+                                     illegal ]]> sequence */
+@@ -130,7 +128,7 @@ struct encoding {
+                 const char *, const char *);
+   int (*nameMatchesAscii)(const ENCODING *,
+                         const char *, const char *, const char *);
+-  int (*nameLength)(const ENCODING *, const char *);
++  size_t (*nameLength)(const ENCODING *, const char *);
+   const char *(*skipS)(const ENCODING *, const char *);
+   int (*getAtts)(const ENCODING *enc, const char *ptr,
+                int attsMax, ATTRIBUTE *atts);
+@@ -242,7 +240,8 @@ typedef struct {
+   const ENCODING **encPtr;
+ } INIT_ENCODING;
+-XMLTOKAPI int
++XMLRPC_DLLEXPORT
++int
+ xmlrpc_XmlParseXmlDecl(int               const isGeneralTextEntity,
+                        const ENCODING *  const enc,
+                        const char *      const ptr,
+@@ -253,34 +252,42 @@ xmlrpc_XmlParseXmlDecl(int               const isGeneralTextEntity,
+                        const ENCODING ** const namedEncodingPtr,
+                        int *             const standalonePtr);
+-XMLTOKAPI const ENCODING *
++XMLRPC_DLLEXPORT
++const ENCODING *
+ xmlrpc_XmlGetUtf8InternalEncoding(void);
+-XMLTOKAPI const ENCODING *
++XMLRPC_DLLEXPORT
++const ENCODING *
+ xmlrpc_XmlGetUtf16InternalEncoding(void);
+-XMLTOKAPI int
++XMLRPC_DLLEXPORT
++int
+ xmlrpc_XmlInitEncoding(INIT_ENCODING *   const p,
+                        const ENCODING ** const encPtr,
+                        const char *      const name);
+-XMLTOKAPI int
++XMLRPC_DLLEXPORT
++int
+ xmlrpc_XmlUtf8Encode(int    const c,
+                      char * const buf);
+-XMLTOKAPI int
++XMLRPC_DLLEXPORT
++int
+ xmlrpc_XmlUtf16Encode(int              const charNum,
+                       unsigned short * const buf);
+-XMLTOKAPI int
++XMLRPC_DLLEXPORT
++int
+ xmlrpc_XmlSizeOfUnknownEncoding(void);
+-XMLTOKAPI ENCODING *
++XMLRPC_DLLEXPORT
++ENCODING *
+ xmlrpc_XmlInitUnknownEncoding(void * const mem,
+                               int *  const table,
+                               int (*convert)(void *userData, const char *p),
+                               void * const userData);
++XMLRPC_DLLEXPORT
+ int
+ xmlrpc_XmlParseXmlDeclNS(int               const isGeneralTextEntity,
+                          const ENCODING *  const enc,
+@@ -292,17 +299,21 @@ xmlrpc_XmlParseXmlDeclNS(int               const isGeneralTextEntity,
+                          const ENCODING ** const namedEncodingPtr,
+                          int *             const standalonePtr);
++XMLRPC_DLLEXPORT
+ int
+ xmlrpc_XmlInitEncodingNS(INIT_ENCODING *   const p,
+                          const ENCODING ** const encPtr,
+                          const char *      const name);
++XMLRPC_DLLEXPORT
+ const ENCODING *
+ xmlrpc_XmlGetUtf8InternalEncodingNS(void);
++XMLRPC_DLLEXPORT
+ const ENCODING *
+ xmlrpc_XmlGetUtf16InternalEncodingNS(void);
++XMLRPC_DLLEXPORT
+ ENCODING *
+ xmlrpc_XmlInitUnknownEncodingNS(void * const mem,
+                                 int *  const table,
+diff --git a/libs/xmlrpc-c/lib/expat/xmltok/xmltok_impl.c b/libs/xmlrpc-c/lib/expat/xmltok/xmltok_impl.c
+index cc9bc59..2bbc8db 100644
+--- a/libs/xmlrpc-c/lib/expat/xmltok/xmltok_impl.c
++++ b/libs/xmlrpc-c/lib/expat/xmltok/xmltok_impl.c
+@@ -26,7 +26,7 @@ See the file copying.txt for copying permission.
+   case BT_MALFORM: \
+   case BT_TRAIL: \
+     *(nextTokPtr) = (ptr); \
+-    return XML_TOK_INVALID;
++    return XML_TOK_INVALID
+ #define CHECK_NAME_CASE(n, enc, ptr, end, nextTokPtr) \
+    case BT_LEAD ## n: \
+@@ -99,7 +99,7 @@ int PREFIX(scanComment)(const ENCODING *enc, const char *ptr, const char *end,
+     ptr += MINBPC(enc);
+     while (ptr != end) {
+       switch (BYTE_TYPE(enc, ptr)) {
+-      INVALID_CASES(ptr, nextTokPtr)
++          INVALID_CASES(ptr, nextTokPtr);
+       case BT_MINUS:
+       if ((ptr += MINBPC(enc)) == end)
+         return XML_TOK_PARTIAL;
+@@ -244,7 +244,7 @@ int PREFIX(scanPi)(const ENCODING *enc, const char *ptr, const char *end,
+       ptr += MINBPC(enc);
+       while (ptr != end) {
+         switch (BYTE_TYPE(enc, ptr)) {
+-        INVALID_CASES(ptr, nextTokPtr)
++        INVALID_CASES(ptr, nextTokPtr);
+       case BT_QUEST:
+         ptr += MINBPC(enc);
+         if (ptr == end)
+@@ -345,7 +345,7 @@ int PREFIX(cdataSectionTok)(const ENCODING *enc, const char *ptr, const char *en
+   case BT_LF:
+     *nextTokPtr = ptr + MINBPC(enc);
+     return XML_TOK_DATA_NEWLINE;
+-  INVALID_CASES(ptr, nextTokPtr)
++  INVALID_CASES(ptr, nextTokPtr);
+   default:
+     ptr += MINBPC(enc);
+     break;
+@@ -598,7 +598,7 @@ int PREFIX(scanAtts)(const ENCODING *enc, const char *ptr, const char *end,
+         if (t == open)
+           break;
+         switch (t) {
+-        INVALID_CASES(ptr, nextTokPtr)
++        INVALID_CASES(ptr, nextTokPtr);
+         case BT_AMP:
+           {
+             int tok = PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, &ptr);
+@@ -768,103 +768,179 @@ int PREFIX(scanLt)(const ENCODING *enc, const char *ptr, const char *end,
+   return XML_TOK_PARTIAL;
+ }
+-static
+-int PREFIX(contentTok)(const ENCODING *enc, const char *ptr, const char *end,
+-                     const char **nextTokPtr)
+-{
+-  if (ptr == end)
+-    return XML_TOK_NONE;
+-  if (MINBPC(enc) > 1) {
+-    size_t n = end - ptr;
+-    if (n & (MINBPC(enc) - 1)) {
+-      n &= ~(MINBPC(enc) - 1);
+-      if (n == 0)
+-      return XML_TOK_PARTIAL;
+-      end = ptr + n;
+-    }
+-  }
+-  switch (BYTE_TYPE(enc, ptr)) {
+-  case BT_LT:
+-    return PREFIX(scanLt)(enc, ptr + MINBPC(enc), end, nextTokPtr);
+-  case BT_AMP:
+-    return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr);
+-  case BT_CR:
+-    ptr += MINBPC(enc);
+-    if (ptr == end)
+-      return XML_TOK_TRAILING_CR;
+-    if (BYTE_TYPE(enc, ptr) == BT_LF)
+-      ptr += MINBPC(enc);
+-    *nextTokPtr = ptr;
+-    return XML_TOK_DATA_NEWLINE;
+-  case BT_LF:
+-    *nextTokPtr = ptr + MINBPC(enc);
+-    return XML_TOK_DATA_NEWLINE;
+-  case BT_RSQB:
+-    ptr += MINBPC(enc);
+-    if (ptr == end)
+-      return XML_TOK_TRAILING_RSQB;
+-    if (!CHAR_MATCHES(enc, ptr, ASCII_RSQB))
+-      break;
+-    ptr += MINBPC(enc);
+-    if (ptr == end)
+-      return XML_TOK_TRAILING_RSQB;
+-    if (!CHAR_MATCHES(enc, ptr, ASCII_GT)) {
+-      ptr -= MINBPC(enc);
+-      break;
+-    }
+-    *nextTokPtr = ptr;
+-    return XML_TOK_INVALID;
+-  INVALID_CASES(ptr, nextTokPtr)
+-  default:
+-    ptr += MINBPC(enc);
+-    break;
+-  }
+-  while (ptr != end) {
+-    switch (BYTE_TYPE(enc, ptr)) {
++
++
+ #define LEAD_CASE(n) \
+     case BT_LEAD ## n: \
+-      if (end - ptr < n || IS_INVALID_CHAR(enc, ptr, n)) { \
+-      *nextTokPtr = ptr; \
+-      return XML_TOK_DATA_CHARS; \
+-      } \
+-      ptr += n; \
+-      break;
+-    LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4)
+-#undef LEAD_CASE
+-    case BT_RSQB:
+-      if (ptr + MINBPC(enc) != end) {
+-       if (!CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_RSQB)) {
+-         ptr += MINBPC(enc);
+-         break;
+-       }
+-       if (ptr + 2*MINBPC(enc) != end) {
+-         if (!CHAR_MATCHES(enc, ptr + 2*MINBPC(enc), ASCII_GT)) {
+-           ptr += MINBPC(enc);
+-           break;
+-         }
+-         *nextTokPtr = ptr + 2*MINBPC(enc);
+-         return XML_TOK_INVALID;
+-       }
+-      }
+-      /* fall through */
+-    case BT_AMP:
+-    case BT_LT:
+-    case BT_NONXML:
+-    case BT_MALFORM:
+-    case BT_TRAIL:
+-    case BT_CR:
+-    case BT_LF:
+-      *nextTokPtr = ptr;
+-      return XML_TOK_DATA_CHARS;
+-    default:
+-      ptr += MINBPC(enc);
+-      break;
++        if (end - ptr < n || IS_INVALID_CHAR(enc, ptr, n)) { \
++            *nextTokPtr = ptr; \
++            return XML_TOK_DATA_CHARS; \
++        } \
++        ptr += n; \
++        break
++
++
++
++static void
++PREFIX(chopToWholeCharacters)(const char *  const inputStart,
++                              const char *  const inputEnd,
++                              const char ** const choppedEndP) {
++
++    if (MINBPC(enc) > 1) {
++        size_t const length = inputEnd - inputStart;
++        if (length & (MINBPC(enc) - 1)) {
++            size_t const roundedLen = length & ~(MINBPC(enc) - 1);
++            *choppedEndP = inputStart + roundedLen;
++        } else
++            *choppedEndP = inputEnd;
++    } else
++        *choppedEndP = inputEnd;
++}
++
++
++
++static void
++PREFIX(processBtRsqb)(const ENCODING * const enc ATTR_UNUSED,
++                      const char *     const start,
++                      const char *     const end,
++                      unsigned int *   const countP,
++                      bool *           const invalidP) {
++
++    if (start + MINBPC(enc) < end) {
++        if (!CHAR_MATCHES(enc, start + MINBPC(enc), ASCII_RSQB)) {
++            *countP = MINBPC(enc);
++            *invalidP = false;
++        } else {
++            if (start + 2*MINBPC(enc) < end) {
++                if (!CHAR_MATCHES(enc, start + 2*MINBPC(enc), ASCII_GT)) {
++                    *countP = MINBPC(enc);
++                    *invalidP = false;
++                } else {
++                    *countP = 2 * MINBPC(enc);
++                    *invalidP = true;
++                }
++            } else {
++                *countP   = 0;
++                *invalidP = false;
++            }
++        }
++    } else {
++        *countP = 0;
++        *invalidP = false;
+     }
+-  }
+-  *nextTokPtr = ptr;
+-  return XML_TOK_DATA_CHARS;
+ }
++
++
++static int
++PREFIX(contentTok)(const ENCODING * const enc,
++                   const char *     const inputStart,
++                   const char *     const inputEnd,
++                   const char **    const nextTokPtr) {
++/*----------------------------------------------------------------------------
++   Parse off a token from the string that starts at 'inputStart' and ends at
++   'inputEnd'.  Return the class of that token.
++
++   Return *nextTokPtr pointing just after the parsed-off token in the string.
++
++   Sometimes, there is no token we can parse, so our return value is a
++   disposition code indicating that situation and *nextTokPtr points to the
++   beginning of the string.
++-----------------------------------------------------------------------------*/
++    if (inputEnd == inputStart) {
++        *nextTokPtr = inputStart;
++        return XML_TOK_NONE;
++    } else {
++        const char * ptr;
++        const char * end;
++            /* The virtual end of the string; we look at only whole
++               characters; e.g. if there are 2 bytes per character and the
++               buffer is 9 bytes, we look at only the first 8 and 'end' points
++               after the 8th byte.
++            */
++        PREFIX(chopToWholeCharacters)(inputStart, inputEnd, &end);
++
++        if (end == inputStart) {
++            *nextTokPtr = inputStart;
++            return XML_TOK_PARTIAL;
++        }
++        ptr = inputStart;  /* Start at the beginning */
++
++        switch (BYTE_TYPE(enc, ptr)) {
++        case BT_LT:
++            return PREFIX(scanLt)(enc, ptr + MINBPC(enc), end, nextTokPtr);
++        case BT_AMP:
++            return PREFIX(scanRef)(enc, ptr + MINBPC(enc), end, nextTokPtr);
++        case BT_CR:
++            ptr += MINBPC(enc);
++            if (ptr == end)
++                return XML_TOK_TRAILING_CR;
++            if (BYTE_TYPE(enc, ptr) == BT_LF)
++                ptr += MINBPC(enc);
++            *nextTokPtr = ptr;
++            return XML_TOK_DATA_NEWLINE;
++        case BT_LF:
++            *nextTokPtr = ptr + MINBPC(enc);
++            return XML_TOK_DATA_NEWLINE;
++        case BT_RSQB:
++            ptr += MINBPC(enc);
++            if (ptr == end)
++                return XML_TOK_TRAILING_RSQB;
++            if (!CHAR_MATCHES(enc, ptr, ASCII_RSQB))
++                break;
++            ptr += MINBPC(enc);
++            if (ptr == end)
++                return XML_TOK_TRAILING_RSQB;
++            if (!CHAR_MATCHES(enc, ptr, ASCII_GT)) {
++                ptr -= MINBPC(enc);
++                break;
++            }
++            *nextTokPtr = ptr;
++            return XML_TOK_INVALID;
++            INVALID_CASES(ptr, nextTokPtr);
++        default:
++            ptr += MINBPC(enc);
++            break;
++        }
++        while (ptr < end) {
++            switch (BYTE_TYPE(enc, ptr)) {
++                LEAD_CASE(2);
++                LEAD_CASE(3);
++                LEAD_CASE(4);
++            case BT_RSQB: {
++                bool invalid;
++                unsigned int count;
++                PREFIX(processBtRsqb)(enc, ptr, end, &count, &invalid);
++                ptr += count;
++                if (invalid) {
++                    *nextTokPtr = ptr;
++                    return XML_TOK_INVALID;
++                }
++            }
++            /* fall through */
++            case BT_AMP:
++            case BT_LT:
++            case BT_NONXML:
++            case BT_MALFORM:
++            case BT_TRAIL:
++            case BT_CR:
++            case BT_LF:
++                *nextTokPtr = ptr;
++                return XML_TOK_DATA_CHARS;
++            default:
++                ptr += MINBPC(enc);
++                break;
++            }
++        }
++        *nextTokPtr = ptr;
++        return XML_TOK_DATA_CHARS;
++    }
++}
++
++#undef LEAD_CASE
++
++
++
+ /* ptr points to character following "%" */
+ static
+@@ -931,7 +1007,7 @@ int PREFIX(scanLit)(int open, const ENCODING *enc,
+   while (ptr != end) {
+     int t = BYTE_TYPE(enc, ptr);
+     switch (t) {
+-    INVALID_CASES(ptr, nextTokPtr)
++    INVALID_CASES(ptr, nextTokPtr);
+     case BT_QUOT:
+     case BT_APOS:
+       ptr += MINBPC(enc);
+@@ -1305,7 +1381,7 @@ int PREFIX(ignoreSectionTok)(const ENCODING *enc, const char *ptr, const char *e
+   }
+   while (ptr != end) {
+     switch (BYTE_TYPE(enc, ptr)) {
+-    INVALID_CASES(ptr, nextTokPtr)
++    INVALID_CASES(ptr, nextTokPtr);
+     case BT_LT:
+       if ((ptr += MINBPC(enc)) == end)
+       return XML_TOK_PARTIAL;
+@@ -1664,30 +1740,38 @@ int PREFIX(nameMatchesAscii)(const ENCODING * enc ATTR_UNUSED,
+   return ptr1 == end1;
+ }
+-static
+-int PREFIX(nameLength)(const ENCODING *enc, const char *ptr)
+-{
+-  const char *start = ptr;
+-  for (;;) {
+-    switch (BYTE_TYPE(enc, ptr)) {
+-#define LEAD_CASE(n) \
+-    case BT_LEAD ## n: ptr += n; break;
+-    LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4)
+-#undef LEAD_CASE
+-    case BT_NONASCII:
+-    case BT_NMSTRT:
+-    case BT_COLON:
+-    case BT_HEX:
+-    case BT_DIGIT:
+-    case BT_NAME:
+-    case BT_MINUS:
+-      ptr += MINBPC(enc);
+-      break;
+-    default:
+-      return ptr - start;
++
++
++#define LEAD_CASE(n) case BT_LEAD ## n: ptr += n; break
++
++static size_t
++PREFIX(nameLength)(const ENCODING * const enc,
++                   const char *     const start) {
++
++    const char * ptr;
++
++    for (ptr = start;;) {
++        switch (BYTE_TYPE(enc, ptr)) {
++        LEAD_CASE(2);
++        LEAD_CASE(3);
++        LEAD_CASE(4);
++        case BT_NONASCII:
++        case BT_NMSTRT:
++        case BT_COLON:
++        case BT_HEX:
++        case BT_DIGIT:
++        case BT_NAME:
++        case BT_MINUS:
++            ptr += MINBPC(enc);
++            break;
++        default:
++            return ptr - start;
++        }
+     }
+-  }
+ }
++#undef LEAD_CASE
++
++
+ static
+ const char *PREFIX(skipS)(const ENCODING *enc, const char *ptr)
+@@ -1705,40 +1789,49 @@ const char *PREFIX(skipS)(const ENCODING *enc, const char *ptr)
+   }
+ }
+-static
+-void PREFIX(updatePosition)(const ENCODING *enc,
+-                          const char *ptr,
+-                          const char *end,
+-                          POSITION *pos)
+-{
+-  while (ptr != end) {
+-    switch (BYTE_TYPE(enc, ptr)) {
++
++
+ #define LEAD_CASE(n) \
+     case BT_LEAD ## n: \
+       ptr += n; \
+-      break;
+-    LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4)
+-#undef LEAD_CASE
+-    case BT_LF:
+-      pos->columnNumber = (unsigned)-1;
+-      pos->lineNumber++;
+-      ptr += MINBPC(enc);
+-      break;
+-    case BT_CR:
+-      pos->lineNumber++;
+-      ptr += MINBPC(enc);
+-      if (ptr != end && BYTE_TYPE(enc, ptr) == BT_LF)
+-      ptr += MINBPC(enc);
+-      pos->columnNumber = (unsigned)-1;
+-      break;
+-    default:
+-      ptr += MINBPC(enc);
+-      break;
++      break
++
++static void
++PREFIX(updatePosition)(const ENCODING * const enc,
++                       const char *     const start,
++                       const char *     const end,
++                       POSITION *       const posP) {
++
++    const char * ptr;
++
++    for (ptr = start; ptr < end;) {
++        switch (BYTE_TYPE(enc, ptr)) {
++        LEAD_CASE(2);
++        LEAD_CASE(3);
++        LEAD_CASE(4);
++        case BT_LF:
++            posP->columnNumber = (unsigned)-1;
++            ++posP->lineNumber;
++            ptr += MINBPC(enc);
++            break;
++        case BT_CR:
++            ++posP->lineNumber;
++            ptr += MINBPC(enc);
++            if (ptr != end && BYTE_TYPE(enc, ptr) == BT_LF)
++                ptr += MINBPC(enc);
++            posP->columnNumber = (unsigned)-1;
++            break;
++        default:
++            ptr += MINBPC(enc);
++            break;
++        }
++        ++posP->columnNumber;
+     }
+-    pos->columnNumber++;
+-  }
+ }
++#undef LEAD_CASE
++
++
+ #undef DO_LEAD_CASE
+ #undef MULTIBYTE_CASES
+ #undef INVALID_CASES
+diff --git a/libs/xmlrpc-c/lib/expat/xmlwf/.cvsignore b/libs/xmlrpc-c/lib/expat/xmlwf/.cvsignore
+deleted file mode 100644
+index f3c7a7c..0000000
+--- a/libs/xmlrpc-c/lib/expat/xmlwf/.cvsignore
++++ /dev/null
+@@ -1 +0,0 @@
+-Makefile
+diff --git a/libs/xmlrpc-c/lib/expat/xmlwf/xmlfile.c b/libs/xmlrpc-c/lib/expat/xmlwf/xmlfile.c
+index 5b3b978..8675790 100644
+--- a/libs/xmlrpc-c/lib/expat/xmlwf/xmlfile.c
++++ b/libs/xmlrpc-c/lib/expat/xmlwf/xmlfile.c
+@@ -17,7 +17,7 @@ See the file copying.txt for copying permission.
+ #include <io.h>
+ #endif
+-#ifdef _POSIX_SOURCE
++#ifdef _XOPEN_SOURCE 600
+ #include <unistd.h>
+ #endif
+diff --git a/libs/xmlrpc-c/lib/libutil/Makefile b/libs/xmlrpc-c/lib/libutil/Makefile
+index 7c75a37..5e53b47 100644
+--- a/libs/xmlrpc-c/lib/libutil/Makefile
++++ b/libs/xmlrpc-c/lib/libutil/Makefile
+@@ -1,7 +1,9 @@
+ ###############################################################################
+ # This directory builds libxmlrpc_util, which contains utility
+-# functions that are used by the Xmlprc-c # libraries, and also
+-# directly by Xmlrpc-c programs.
++# functions that are used by the Xmlprc-c libraries, and also
++# directly by Xmlrpc-c programs.  Some of them are documented for use
++# by Xmlrpc-c users, as facilities of the libxmlrpc library (which
++# prerequires libxmlrpc_util).
+ #
+ # The functions in this library are characterized by being general purpose
+ # programming functions, such as one might wish were in the standard C
+@@ -29,11 +31,13 @@ SHARED_LIBS_TO_INSTALL := libxmlrpc_util
+ TARGET_MODS = \
+   asprintf \
++  base64 \
+   error \
+   make_printable \
+   memblock \
+   select \
+   sleep \
++  string_number \
+   time \
+   utf8 \
+@@ -43,8 +47,6 @@ MAJ=3
+ include $(SRCDIR)/common.mk
+-CFLAGS = $(CFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
+-
+ INCLUDES = -I$(BLDDIR) -Isrcdir \
+            -I$(BLDDIR)/include -Isrcdir/include -Isrcdir/lib/util/include
+@@ -53,17 +55,13 @@ UTIL_SHLIB = $(call shlibfn,libxmlrpc_util)
+ UTIL_SHLIBLE = $(call shliblefn,libxmlrpc_util)
+ #UTIL_SHLIBLE is e.g. libxmlrpc_util.so
+-ifneq ($(SHARED_LIB_TYPE),NONE)
+-  TARGET_SHARED_LIBS := $(UTIL_SHLIB) $(UTIL_SHLIBLE)
+-  endif
+-
+ # This 'common.mk' dependency makes sure the symlinks get built before
+ # this make file is used for anything.
+ $(SRCDIR)/common.mk: srcdir blddir
+ .PHONY: all
+-all: libxmlrpc_util.a $(TARGET_SHARED_LIBS) $(TARGET_SHARED_LE_LIBS)
++all: libxmlrpc_util.a $(TARGET_SHARED_LIBRARIES) $(TARGET_SHARED_LE_LIBS)
+ # Rule for this is in common.mk, courtesy of TARGET_LIBRARY_NAMES:
+ $(UTIL_SHLIB): $(TARGET_MODS:%=%.osh)
+@@ -92,4 +90,4 @@ distclean: clean distclean-common
+ .PHONY: dep
+ dep: dep-common
+-include Makefile.depend
++include depend.mk
+diff --git a/libs/xmlrpc-c/lib/libutil/asprintf.c b/libs/xmlrpc-c/lib/libutil/asprintf.c
+index 9e5a614..b525230 100644
+--- a/libs/xmlrpc-c/lib/libutil/asprintf.c
++++ b/libs/xmlrpc-c/lib/libutil/asprintf.c
+@@ -1,10 +1,61 @@
+-//#define _GNU_SOURCE
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
++#ifndef _GNU_SOURCE
++      #define _GNU_SOURCE  /* But only when HAVE_ASPRINTF */
++#endif
++#include <stdarg.h>
++
+ #include <stdarg.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <limits.h>
+ #include "xmlrpc_config.h"  /* For HAVE_ASPRINTF, __inline__ */
+ #include "xmlrpc-c/string_int.h"
++#include "bool.h"
++
++
++
++static __inline__ void
++newVsnprintf(char *       const buffer,
++             size_t       const bufferSize,
++             const char * const fmt,
++             va_list            varargs,
++             size_t *     const formattedSizeP) {
++/*----------------------------------------------------------------------------
++   This is vsnprintf() with the new behavior, where not fitting in the buffer
++   is not a failure.
++
++   Unfortunately, we can't practically return the size of the formatted string
++   if the C library has old vsnprintf() and the formatted string doesn't fit
++   in the buffer, so in that case we just return something larger than the
++   buffer.
++-----------------------------------------------------------------------------*/
++    if (bufferSize > INT_MAX/2) {
++        /* There's a danger we won't be able to coerce the return value
++           of XMLRPC_VSNPRINTF to an integer (which we have to do because,
++           while for POSIX its return value is ssize_t, on Windows it is int),
++           or return double the buffer size.
++        */
++        *formattedSizeP = 0;
++    } else {
++        int rc;
++
++        rc = XMLRPC_VSNPRINTF(buffer, bufferSize, fmt, varargs);
++
++        if (rc < 0) {
++            /* We have old vsnprintf() (or Windows) and the formatted value
++               doesn't fit in the buffer, but we don't know how big a buffer it
++               needs.
++            */
++            *formattedSizeP = bufferSize * 2;
++        } else {
++            /* Either the string fits in the buffer or we have new vsnprintf()
++               which tells us how big the string is regardless.
++            */
++            *formattedSizeP = rc;
++        }
++    }
++}
+@@ -15,29 +66,24 @@ simpleVasprintf(char **      const retvalP,
+ /*----------------------------------------------------------------------------
+    This is a poor man's implementation of vasprintf(), of GNU fame.
+ -----------------------------------------------------------------------------*/
+-    size_t const initialSize = 4096;
+     char * result;
+-
+-    result = malloc(initialSize);
+-    if (result != NULL) {
+-        size_t bytesNeeded;
+-        bytesNeeded = XMLRPC_VSNPRINTF(result, initialSize, fmt, varargs);
+-        if (bytesNeeded > initialSize) {
+-            free(result);
+-            result = malloc(bytesNeeded);
+-            if (result != NULL)
+-                XMLRPC_VSNPRINTF(result, bytesNeeded, fmt, varargs);
+-        } else if (bytesNeeded == initialSize) {
+-            if (result[initialSize-1] != '\0') {
+-                /* This is one of those old systems where vsnprintf()
+-                   returns the number of bytes it used, instead of the
+-                   number that it needed, and it in fact needed more than
+-                   we gave it.  Rather than mess with this highly unlikely
+-                   case (old system and string > 4095 characters), we just
+-                   treat this like an out of memory failure.
+-                */
++    size_t bufferSize;
++    bool outOfMemory;
++
++    for (result = NULL, bufferSize = 4096, outOfMemory = false;
++         !result && !outOfMemory;
++        ) {
++
++        result = malloc(bufferSize);
++        if (!result)
++            outOfMemory = true;
++        else {
++            size_t bytesNeeded;
++            newVsnprintf(result, bufferSize, fmt, varargs, &bytesNeeded);
++            if (bytesNeeded > bufferSize) {
+                 free(result);
+                 result = NULL;
++                bufferSize = bytesNeeded;
+             }
+         }
+     }
+@@ -46,7 +92,28 @@ simpleVasprintf(char **      const retvalP,
+-const char * const xmlrpc_strsol = "[insufficient memory to build string]";
++static const char * const xmlrpc_strsol =
++    "[insufficient memory to build string]";
++
++
++
++bool
++xmlrpc_strnomem(const char * const string) {
++/*----------------------------------------------------------------------------
++   The string 'string' was generated by a function in this file because it
++   couldn't get enough memory to generate the string that it was supposed to
++   generate.  I.e. a preceding call to a string function failed.
++-----------------------------------------------------------------------------*/
++    return string == xmlrpc_strsol;
++}
++
++
++
++const char *
++xmlrpc_strnomemval() {
++
++    return xmlrpc_strsol;
++}
+@@ -71,7 +138,7 @@ xmlrpc_vasprintf(const char ** const retvalP,
+-void GNU_PRINTF_ATTR(2,3)
++void XMLRPC_PRINTF_ATTR(2,3)
+ xmlrpc_asprintf(const char ** const retvalP, const char * const fmt, ...) {
+     va_list varargs;  /* mysterious structure used by variable arg facility */
+@@ -86,12 +153,13 @@ xmlrpc_asprintf(const char ** const retvalP, const char * const fmt, ...) {
+ const char *
+-xmlrpc_strdupnull(const char * const string) {
++xmlrpc_strdupsol(const char * const string) {
+-    if (string)
+-        return strdup(string);
+-    else
+-        return NULL;
++    const char * retvalOrNull;
++
++    retvalOrNull = strdup(string);
++
++    return retvalOrNull ? retvalOrNull : xmlrpc_strsol;
+ }
+@@ -105,6 +173,17 @@ xmlrpc_strfree(const char * const string) {
++const char *
++xmlrpc_strdupnull(const char * const string) {
++
++    if (string)
++        return strdup(string);
++    else
++        return NULL;
++}
++
++
++
+ void
+ xmlrpc_strfreenull(const char * const string) {
+diff --git a/libs/xmlrpc-c/lib/libutil/error.c b/libs/xmlrpc-c/lib/libutil/error.c
+index fd964d0..ff3bbe1 100644
+--- a/libs/xmlrpc-c/lib/libutil/error.c
++++ b/libs/xmlrpc-c/lib/libutil/error.c
+@@ -1,5 +1,7 @@
+ /* Copyright information is at end of file */
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
++
+ #include "xmlrpc_config.h"
+ #include <stdlib.h>
+@@ -86,7 +88,7 @@ void
+ xmlrpc_set_fault_formatted_v(xmlrpc_env * const envP,
+                              int          const code,
+                              const char * const format,
+-                             va_list      const args) {
++                             va_list            args) {
+     const char * faultDescription;
+diff --git a/libs/xmlrpc-c/lib/libutil/make_printable.c b/libs/xmlrpc-c/lib/libutil/make_printable.c
+index fc94f78..444a733 100644
+--- a/libs/xmlrpc-c/lib/libutil/make_printable.c
++++ b/libs/xmlrpc-c/lib/libutil/make_printable.c
+@@ -1,4 +1,4 @@
+-//#define _GNU_SOURCE
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
+ #include <stdarg.h>
+ #include <string.h>
+diff --git a/libs/xmlrpc-c/lib/libutil/memblock.c b/libs/xmlrpc-c/lib/libutil/memblock.c
+index d79d4ca..f0119a8 100644
+--- a/libs/xmlrpc-c/lib/libutil/memblock.c
++++ b/libs/xmlrpc-c/lib/libutil/memblock.c
+@@ -6,6 +6,7 @@
+ #include <string.h>
+ #include <ctype.h>
++#include "mallocvar.h"
+ #include "xmlrpc-c/util_int.h"
+ #include "xmlrpc-c/util.h"
+@@ -19,30 +20,30 @@
+ xmlrpc_mem_block * 
+-xmlrpc_mem_block_new(xmlrpc_env * const env, 
++xmlrpc_mem_block_new(xmlrpc_env * const envP, 
+                      size_t       const size) {
+-    xmlrpc_mem_block* block;
++    xmlrpc_mem_block * block;
+-    XMLRPC_ASSERT_ENV_OK(env);
+-
+-    block = (xmlrpc_mem_block*) malloc(sizeof(xmlrpc_mem_block));
+-    XMLRPC_FAIL_IF_NULL(block, env, XMLRPC_INTERNAL_ERROR,
+-                        "Can't allocate memory block");
++    XMLRPC_ASSERT_ENV_OK(envP);
+-    xmlrpc_mem_block_init(env, block, size);
+-    XMLRPC_FAIL_IF_FAULT(env);
++    MALLOCVAR(block);
++    
++    if (block == NULL)
++        xmlrpc_faultf(envP, "Can't allocate memory block");
++    else {
++        xmlrpc_mem_block_init(envP, block, size);
+-                     cleanup:
+-    if (env->fault_occurred) {
+-        if (block)
++        if (envP->fault_occurred) {
+             free(block);
+-        return NULL;
+-    } else {
+-        return block;
++            block = NULL;
++        }
+     }
++    return block;
+ }
++
++
+ /* Destroy an existing xmlrpc_mem_block, and everything it contains. */
+ void
+ xmlrpc_mem_block_free(xmlrpc_mem_block * const blockP) {
+@@ -74,7 +75,7 @@ xmlrpc_mem_block_init(xmlrpc_env *       const envP,
+     blockP->_block = (void*) malloc(blockP->_allocated);
+     if (!blockP->_block)
+         xmlrpc_faultf(envP, "Can't allocate %u-byte memory block",
+-                      blockP->_allocated);
++                      (unsigned)blockP->_allocated);
+ }
+@@ -170,19 +171,15 @@ xmlrpc_mem_block_append(xmlrpc_env *       const envP,
+                         const void *       const data, 
+                         size_t             const len) {
+-    int size;
++    size_t const originalSize = blockP->_size;
+     XMLRPC_ASSERT_ENV_OK(envP);
+     XMLRPC_ASSERT(blockP != NULL);
+-    size = blockP->_size;
+-    xmlrpc_mem_block_resize(envP, blockP, size + len);
+-    XMLRPC_FAIL_IF_FAULT(envP);
+-
+-    memcpy(((unsigned char*) blockP->_block) + size, data, len);
+-
+- cleanup:
+-    return;
++    xmlrpc_mem_block_resize(envP, blockP, originalSize + len);
++    if (!envP->fault_occurred) {
++        memcpy(((unsigned char*) blockP->_block) + originalSize, data, len);
++    }
+ }
+diff --git a/libs/xmlrpc-c/lib/libutil/select.c b/libs/xmlrpc-c/lib/libutil/select.c
+index 8999884..6a390d4 100644
+--- a/libs/xmlrpc-c/lib/libutil/select.c
++++ b/libs/xmlrpc-c/lib/libutil/select.c
+@@ -1,5 +1,7 @@
+ #define _XOPEN_SOURCE 600  /* Get pselect() in <sys/select.h> */
++#include "xmlrpc_config.h"
++
+ #ifdef WIN32
+ #include <winsock.h>
+ #else
+@@ -8,12 +10,12 @@
+    in this order appears to work on all.
+ */
+ #include <sys/time.h>
++#if HAVE_SYS_SELECT_H
+ #include <sys/select.h>
++#endif
+ #endif 
+ #include <signal.h>
+-#include "xmlrpc_config.h"
+-
+ #include "xmlrpc-c/select_int.h"
+diff --git a/libs/xmlrpc-c/lib/libutil/utf8.c b/libs/xmlrpc-c/lib/libutil/utf8.c
+index d0de07e..77e436d 100644
+--- a/libs/xmlrpc-c/lib/libutil/utf8.c
++++ b/libs/xmlrpc-c/lib/libutil/utf8.c
+@@ -38,6 +38,7 @@
+ **    http://www.cl.cam.ac.uk/~mgk25/unicode.html
+ */
++#include <assert.h>
+ #include "int.h"
+ #include "xmlrpc_config.h"
+@@ -51,31 +52,33 @@
+ **  UTF-8 data.
+ */
+-/* The number of bytes in a UTF-8 sequence starting with the character used
+-** as the array index.  A zero entry indicates an illegal initial byte.
+-** This table was generated using a Perl script and information from the
+-** UTF-8 standard.
+-**
+-** Fredrik Lundh's UTF-8 decoder Python 2.0 uses a similar table.  But
+-** since Python 2.0 has the icky CNRI license, I regenerated this
+-** table from scratch and wrote my own decoder. */
+-static unsigned char utf8_seq_length[256] = {
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+-    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+-    4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 0, 0
++static unsigned char utf8SeqLength[256] = {
++
++  /* utf8SeqLength[B] is the number of bytes in a UTF-8 sequence that starts
++     with byte B.  Except zero indicates an illegal initial byte.
++
++     Fredrik Lundh's UTF-8 decoder Python 2.0 uses a similar table.  But since
++     Python 2.0 has the icky CNRI license, I generated this table from scratch
++     and wrote my own decoder.
++  */
++
++          /* 0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  */
++  /* 0 */    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++  /* 1 */    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++  /* 2 */    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++  /* 3 */    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++  /* 4 */    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++  /* 5 */    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++  /* 6 */    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++  /* 7 */    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++  /* 8 */    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++  /* 9 */    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++  /* A */    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++  /* B */    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
++  /* C */    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++  /* D */    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
++  /* E */    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
++  /* F */    4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 0, 0
+ };
+ /* The minimum legal character value for a UTF-8 sequence of the given
+@@ -118,14 +121,129 @@ static uint32_t const utf8_min_char_for_length[] = {
+ #if HAVE_UNICODE_WCHAR
++static void
++validateContinuation(xmlrpc_env * const envP,
++                     char         const c) {
++
++    if (!IS_CONTINUATION(c))
++        xmlrpc_env_set_fault_formatted(
++            envP, XMLRPC_INVALID_UTF8_ERROR,
++            "UTF-8 multibyte sequence contains character 0x%02x, "
++            "which does not indicate continuation.", c);
++}
++
++
++
++static void
++validateUtf16(xmlrpc_env * const envP,
++              wchar_t      const wc) {
++
++    if (wc > UCS2_MAX_LEGAL_CHARACTER)
++        xmlrpc_env_set_fault_formatted(
++            envP, XMLRPC_INVALID_UTF8_ERROR,
++            "UCS-2 characters > U+FFFD are illegal.  String contains 0x%04x",
++            (unsigned)wc);
++    else if (UTF16_FIRST_SURROGATE <= wc && wc <= UTF16_LAST_SURROGATE)
++        xmlrpc_env_set_fault_formatted(
++            envP, XMLRPC_INVALID_UTF8_ERROR,
++            "UTF-16 surrogates may not appear in UTF-8 data.  "
++            "String contains %04x", (unsigned)wc);
++}
++
++
++
++/* Microsoft Visual C in debug mode produces code that complains about
++   returning an undefined value from xmlrpc_datetime_new_str().  It's a bogus
++   complaint, because this function is defined to return nothing meaningful
++   those cases.  So we disable the check.
++*/
++#pragma runtime_checks("u", off)
++
++static void
++decodeMultibyte(xmlrpc_env * const envP,
++                const char * const utf8_seq,
++                size_t       const length,
++                wchar_t *    const wcP) {
++/*----------------------------------------------------------------------------
++   Decode the multibyte UTF-8 sequence which is 'length' characters
++   at 'utf8_data'.
++
++   Return the character in UTF-16 format as *wcP.
++-----------------------------------------------------------------------------*/
++    wchar_t wc;
++
++    assert(utf8_seq[0] & 0x80); /* High bit set: this is multibyte seq */
++
++    switch (length) {
++    case 2:
++        /* 110xxxxx 10xxxxxx */
++        validateContinuation(envP, utf8_seq[1]);
++
++        if (!envP->fault_occurred)
++            wc = ((((wchar_t) (utf8_seq[0] & 0x1F)) <<  6) |
++                  (((wchar_t) (utf8_seq[1] & 0x3F))));
++        break;
++                
++    case 3:
++        /* 1110xxxx 10xxxxxx 10xxxxxx */
++        validateContinuation(envP, utf8_seq[1]);
++        if (!envP->fault_occurred) {
++            validateContinuation(envP, utf8_seq[2]);
++            if (!envP->fault_occurred)
++                wc = ((((wchar_t) (utf8_seq[0] & 0x0F)) << 12) |
++                      (((wchar_t) (utf8_seq[1] & 0x3F)) <<  6) |
++                      (((wchar_t) (utf8_seq[2] & 0x3F))));
++        }
++        break;
++
++    case 4:
++        /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */
++    case 5:
++        /* 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */
++    case 6:
++        /* 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */
++        /* This would require more than 16 bits in UTF-16, so
++           it can't be represented in UCS-2, so it's beyond
++           our capability.  Characters in the BMP fit in 16
++           bits.
++        */
++        xmlrpc_env_set_fault_formatted(
++            envP, XMLRPC_INVALID_UTF8_ERROR,
++            "UTF-8 string contains a character not in the "
++            "Basic Multilingual Plane (first byte 0x%02x)",
++            utf8_seq[0]);
++        break;
++
++    default:
++        xmlrpc_faultf(envP,
++                      "Internal error: Impossible UTF-8 sequence length %u",
++                      (unsigned)length);
++    }
++
++    if (!envP->fault_occurred)
++        validateUtf16(envP, wc);
++
++    if (!envP->fault_occurred)
++        if ((uint32_t)wc < utf8_min_char_for_length[length])
++            xmlrpc_env_set_fault_formatted(
++                envP, XMLRPC_INVALID_UTF8_ERROR,
++                "Overlong UTF-8 sequence not allowed");
++
++    *wcP = wc;
++}
++
++#pragma runtime_checks("u", restore)
++
++
++
+ static void 
+-decode_utf8(xmlrpc_env * const envP,
+-            const char * const utf8_data,
+-            size_t       const utf8_len,
+-            wchar_t *    const ioBuff,
+-            size_t *     const outBuffLenP) {
++decodeUtf8(xmlrpc_env * const envP,
++           const char * const utf8_data,
++           size_t       const utf8_len,
++           wchar_t *    const ioBuff,
++           size_t *     const outBuffLenP) {
+ /*----------------------------------------------------------------------------
+-  Decode to UCS-2 (or validates as UTF-8 that can be decoded to UCS-2)
++  Decode to UCS-2 (or validate as UTF-8 that can be decoded to UCS-2)
+   a UTF-8 string.  To validate, set ioBuff and outBuffLenP to NULL.
+   To decode, allocate a sufficiently large buffer, pass it as ioBuff,
+   and pass a pointer as as outBuffLenP.  The data will be written to
+@@ -134,132 +252,60 @@ decode_utf8(xmlrpc_env * const envP,
+   We assume that wchar_t holds a single UCS-2 character in native-endian
+   byte ordering.
+ -----------------------------------------------------------------------------*/
+-    size_t i, length, out_pos;
+-    char init, con1, con2;
+-    wchar_t wc;
++    size_t utf8Cursor;
++    size_t outPos;
+     XMLRPC_ASSERT_ENV_OK(envP);
+     XMLRPC_ASSERT_PTR_OK(utf8_data);
+-    XMLRPC_ASSERT((!ioBuff && !outBuffLenP) ||
+-                  (ioBuff && outBuffLenP));
++    XMLRPC_ASSERT((!ioBuff && !outBuffLenP) || (ioBuff && outBuffLenP));
++
++    for (utf8Cursor = 0, outPos = 0;
++         utf8Cursor < utf8_len && !envP->fault_occurred;
++        ) {
+-    /* Suppress GCC warning about possibly undefined variable. */
+-    wc = 0;
++        char const init = utf8_data[utf8Cursor];
++            /* Initial byte of the UTF-8 sequence */
++
++        wchar_t wc;
+-    i = 0;
+-    out_pos = 0;
+-    while (i < utf8_len) {
+-        init = utf8_data[i];
+         if ((init & 0x80) == 0x00) {
+             /* Convert ASCII character to wide character. */
+             wc = init;
+-            i++;
++            ++utf8Cursor;
+         } else {
+             /* Look up the length of this UTF-8 sequence. */
+-            length = utf8_seq_length[(unsigned char) init];
+-            
+-            /* Check to make sure we have enough bytes to convert. */
+-            if (i + length > utf8_len)
+-                XMLRPC_FAIL(envP, XMLRPC_INVALID_UTF8_ERROR,
+-                            "Truncated UTF-8 sequence");
+-            
+-            /* Decode a multibyte UTF-8 sequence. */
+-            switch (length) {
+-            case 0:
+-                XMLRPC_FAIL(envP, XMLRPC_INVALID_UTF8_ERROR,
+-                            "Invalid UTF-8 initial byte");
+-                
+-            case 2:
+-                /* 110xxxxx 10xxxxxx */
+-                con1 = utf8_data[i+1];
+-                if (!IS_CONTINUATION(con1))
+-                    XMLRPC_FAIL(envP, XMLRPC_INVALID_UTF8_ERROR,
+-                                "UTF-8 sequence too short");
+-                wc = ((((wchar_t) (init & 0x1F)) <<  6) |
+-                      (((wchar_t) (con1 & 0x3F))));
+-                break;
+-                
+-            case 3:
+-                /* 1110xxxx 10xxxxxx 10xxxxxx */
+-                con1 = utf8_data[i+1];
+-                con2 = utf8_data[i+2];
+-                if (!IS_CONTINUATION(con1) || !IS_CONTINUATION(con2))
+-                    XMLRPC_FAIL(envP, XMLRPC_INVALID_UTF8_ERROR,
+-                                "UTF-8 sequence too short");
+-                wc = ((((wchar_t) (init & 0x0F)) << 12) |
+-                      (((wchar_t) (con1 & 0x3F)) <<  6) |
+-                      (((wchar_t) (con2 & 0x3F))));
+-                break;
+-                
+-            case 4:
+-                /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */
+-            case 5:
+-                /* 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */
+-            case 6:
+-                /* 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */
+-                /* This would require more than 16 bits in UTF-16, so
+-                   it can't be represented in UCS-2, so it's beyond
+-                   our capability.  Characters in the BMP fit in 16
+-                   bits.
+-                */
++            size_t const length = utf8SeqLength[(unsigned char) init];
++
++            if (length == 0)
+                 xmlrpc_env_set_fault_formatted(
+                     envP, XMLRPC_INVALID_UTF8_ERROR,
+-                    "UTF-8 string contains a character not in the "
+-                    "Basic Multilingual Plane (first byte %08x)",
+-                    init);
+-                goto cleanup;
+-                
+-            default:
+-                XMLRPC_ASSERT("Error in UTF-8 decoder tables");
++                    "Unrecognized UTF-8 initial byte value 0x%02x", init);
++            else {
++                /* Make sure we have enough bytes to convert. */
++                if (utf8Cursor + length > utf8_len) {
++                    xmlrpc_env_set_fault_formatted(
++                        envP, XMLRPC_INVALID_UTF8_ERROR,
++                        "Invalid UTF-8 sequence indicates a %u-byte sequence "
++                        "when only %u bytes are left in the string",
++                        (unsigned)length, (unsigned)(utf8_len - utf8Cursor));
++                } else {
++                    decodeMultibyte(envP, &utf8_data[utf8Cursor], length, &wc);
++                    
++                    /* Advance to the end of the sequence. */
++                    utf8Cursor += length;
++                }
+             }
+-            
+-            /* Advance to the end of the sequence. */
+-            i += length;
+-            
+-            /* Check for illegal UCS-2 characters. */
+-            if (wc > UCS2_MAX_LEGAL_CHARACTER)
+-                XMLRPC_FAIL(envP, XMLRPC_INVALID_UTF8_ERROR,
+-                            "UCS-2 characters > U+FFFD are illegal");
+-            
+-            /* Check for UTF-16 surrogates. */
+-            if (UTF16_FIRST_SURROGATE <= wc && wc <= UTF16_LAST_SURROGATE)
+-                XMLRPC_FAIL(envP, XMLRPC_INVALID_UTF8_ERROR,
+-                            "UTF-16 surrogates may not appear in UTF-8 data");
+-            
+-            /* Check for overlong sequences. */
+-            if ((uint32_t)wc < utf8_min_char_for_length[length])
+-                XMLRPC_FAIL(envP, XMLRPC_INVALID_UTF8_ERROR,
+-                            "Overlong UTF-8 sequence not allowed");
+         }
+-        
+-        /* If we have a buffer, write our character to it. */
+-        if (ioBuff) {
+-            ioBuff[out_pos++] = wc;
++
++        if (!envP->fault_occurred) {
++            /* If we have a buffer, write our character to it. */
++            if (ioBuff)
++                ioBuff[outPos++] = wc;
+         }
+     }
+-    
+-    /* Record the number of characters we found. */
+-    if (outBuffLenP)
+-        *outBuffLenP = out_pos;
+-    
+-            cleanup:
+-    if (envP->fault_occurred) {
+-        if (outBuffLenP)
+-            *outBuffLenP = 0;
+-    }
+-}
+-
+-
+-void 
+-xmlrpc_validate_utf8(xmlrpc_env * const env,
+-                     const char * const utf8_data,
+-                     size_t       const utf8_len) {
+-/*----------------------------------------------------------------------------
+-   Validate that a string is valid UTF-8.
+------------------------------------------------------------------------------*/
+-
+-    decode_utf8(env, utf8_data, utf8_len, NULL, NULL);
++    if (outBuffLenP)
++        *outBuffLenP = envP->fault_occurred ? 0 : outPos;
+ }
+@@ -286,9 +332,9 @@ xmlrpc_utf8_to_wcs(xmlrpc_env * const envP,
+     wcsP = XMLRPC_MEMBLOCK_NEW(wchar_t, envP, utf8_len);
+     if (!envP->fault_occurred) {
+         /* Decode the UTF-8 data. */
+-        decode_utf8(envP, utf8_data, utf8_len,
+-                    XMLRPC_MEMBLOCK_CONTENTS(wchar_t, wcsP),
+-                    &wcs_length);
++        decodeUtf8(envP, utf8_data, utf8_len,
++                   XMLRPC_MEMBLOCK_CONTENTS(wchar_t, wcsP),
++                   &wcs_length);
+         if (!envP->fault_occurred) {
+             /* We can't have overrun our buffer. */
+             XMLRPC_ASSERT(wcs_length <= utf8_len);
+@@ -329,7 +375,8 @@ xmlrpc_wcs_to_utf8(xmlrpc_env *    const envP,
+     utf8P = XMLRPC_MEMBLOCK_NEW(char, envP, estimate);
+     if (!envP->fault_occurred) {
+-        unsigned char * const buffer = XMLRPC_MEMBLOCK_CONTENTS(char, utf8P);
++        unsigned char * const buffer =
++            XMLRPC_MEMBLOCK_CONTENTS(unsigned char, utf8P);
+         size_t bytesUsed;
+         size_t i;
+@@ -401,13 +448,12 @@ xmlrpc_force_to_utf8(char * const buffer) {
+     char * p;
+     for (p = &buffer[0]; *p;) {
+-        uint const length = utf8_seq_length[(unsigned char) *p];
++        unsigned int const length = utf8SeqLength[(unsigned char) *p];
+         bool forceDel;
+         uint32_t decoded;
+-        forceDel = false;
+-        decoded  = 0;  /* suppress compiler warning; valid when !forceDel */
++        forceDel = false;  /* initial value */
+         switch (length) {
+         case 1:
+@@ -482,7 +528,7 @@ xmlrpc_force_to_xml_chars(char * const buffer) {
+     char * p;
+     for (p = &buffer[0]; *p;) {
+-        uint const length = utf8_seq_length[(unsigned char) *p];
++        unsigned int const length = utf8SeqLength[(unsigned char) *p];
+         if (length == 1) {
+             if (*p < 0x20 && *p != '\r' && *p != '\n' && *p != '\t')
+@@ -505,7 +551,31 @@ xmlrpc_force_to_xml_chars(char * const buffer) {
++void 
++xmlrpc_validate_utf8(xmlrpc_env * const envP,
++                     const char * const utf8_data,
++                     size_t       const utf8_len) {
++/*----------------------------------------------------------------------------
++   Validate that a string is valid UTF-8.
++-----------------------------------------------------------------------------*/
++    xmlrpc_env env;
++    xmlrpc_env_init(&env);
+-
+-
++#if HAVE_UNICODE_WCHAR
++    decodeUtf8(&env, utf8_data, utf8_len, NULL, NULL);
++#else
++    /* We don't have a convenient way to validate, so we just fake it and
++       call it valid.
++    */
++#endif
++
++    if (env.fault_occurred) {
++        xmlrpc_env_set_fault_formatted(
++            envP, XMLRPC_INVALID_UTF8_ERROR,
++            "%" XMLRPC_PRId64 "-byte "
++            "supposed UTF-8 string is not valid UTF-8.  %s",
++            (XMLRPC_INT64)utf8_len, env.fault_string);
++    }
++    xmlrpc_env_clean(&env);
++}
+diff --git a/libs/xmlrpc-c/lib/libwww_transport/Makefile b/libs/xmlrpc-c/lib/libwww_transport/Makefile
+index 1bb362c..c8c51fa 100644
+--- a/libs/xmlrpc-c/lib/libwww_transport/Makefile
++++ b/libs/xmlrpc-c/lib/libwww_transport/Makefile
+@@ -22,15 +22,18 @@ OMIT_LIBWWW_TRANSPORT_RULE=Y
+ include $(SRCDIR)/common.mk
+-LIBWWW_INCLUDES := $(shell libwww-config --cflags)
++# This 'common.mk' dependency makes sure the symlinks get built before
++# this make file is used for anything.
++
++$(SRCDIR)/common.mk: srcdir blddir
+-CFLAGS = $(CFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
++LIBWWW_INCLUDES := $(shell libwww-config --cflags)
+ INCLUDES = \
+   -I$(BLDDIR) \
+   -I$(BLDDIR)/include \
+-  -I$(SRCDIR)/include \
+-  -I$(SRCDIR)/lib/util/include \
++  -Isrcdir/include \
++  -Isrcdir/lib/util/include \
+   $(LIBWWW_INCLUDES)
+ .PHONY: clean
+@@ -51,8 +54,8 @@ install:
+ .PHONY: dep
+ dep: dep-common
+-include Makefile.depend
++include depend.mk
+-# Need this dependency for those who don't use Makefile.depend.
++# Need this dependency for those who don't use depend.mk.
+ # Without it, version.h doesn't get created.
+ xmlrpc_libwww_transport.o xmlrpc_libwww_transport.osh: version.h
+diff --git a/libs/xmlrpc-c/lib/libwww_transport/xmlrpc_libwww_transport.c b/libs/xmlrpc-c/lib/libwww_transport/xmlrpc_libwww_transport.c
+index 10866c1..1a0fcc7 100644
+--- a/libs/xmlrpc-c/lib/libwww_transport/xmlrpc_libwww_transport.c
++++ b/libs/xmlrpc-c/lib/libwww_transport/xmlrpc_libwww_transport.c
+@@ -884,6 +884,7 @@ sendRequest(xmlrpc_env *                     const envP,
+             const xmlrpc_server_info *       const serverP,
+             xmlrpc_mem_block *               const xmlP,
+             xmlrpc_transport_asynch_complete       complete,
++            xmlrpc_transport_progress              progress ATTR_UNUSED,
+             struct xmlrpc_call_info *        const callInfoP) {
+ /*----------------------------------------------------------------------------
+    Initiate an XML-RPC rpc asynchronously.  Don't wait for it to go to
+diff --git a/libs/xmlrpc-c/lib/libwww_transport/xmlrpc_libwww_transport.h b/libs/xmlrpc-c/lib/libwww_transport/xmlrpc_libwww_transport.h
+deleted file mode 100644
+index 66d8048..0000000
+--- a/libs/xmlrpc-c/lib/libwww_transport/xmlrpc_libwww_transport.h
++++ /dev/null
+@@ -1,8 +0,0 @@
+-#ifndef XMLRPC_LIBWWW_TRANSPORT_H
+-#define XMLRPC_LIBWWW_TRANSPORT_H
+-
+-#include "xmlrpc-c/transport.h"
+-
+-extern struct xmlrpc_client_transport_ops xmlrpc_libwww_transport_ops;
+-
+-#endif
+diff --git a/libs/xmlrpc-c/lib/util/Makefile b/libs/xmlrpc-c/lib/util/Makefile
+index a061b2e..d79b905 100644
+--- a/libs/xmlrpc-c/lib/util/Makefile
++++ b/libs/xmlrpc-c/lib/util/Makefile
+@@ -33,6 +33,11 @@ OMIT_UTILS_RULE = Y
+ include $(SRCDIR)/common.mk
++# This 'common.mk' dependency makes sure the symlinks get built before
++# this make file is used for anything.
++
++$(SRCDIR)/common.mk: srcdir blddir
++
+ LIBOBJS = \
+   casprintf.o \
+   cmdline_parser.o \
+@@ -44,17 +49,15 @@ LIBOBJS = \
+ .PHONY: all
+ all: $(LIBOBJS)
+-INCLUDES = -I$(SRCDIR)/$(SUBDIR)/include -I$(BLDDIR)
+-
+-CFLAGS = $(CFLAGS_COMMON) $(INCLUDES) $(CFLAGS_PERSONAL) $(CADD)
++INCLUDES = -Isrcdir/$(SUBDIR)/include -I$(BLDDIR)
+ %.o:%.c
+-      $(CC) -c $(CFLAGS) $<
++      $(CC) -c $(CFLAGS_ALL) $<
+ %.o:%.cpp
+-      $(CXX) -c $(CFLAGS) $<
++      $(CXX) -c $(CXXFLAGS_ALL) $<
+-include Makefile.depend
++include depend.mk
+ .PHONY: clean distclean
+ clean: clean-common
+diff --git a/libs/xmlrpc-c/lib/util/casprintf.c b/libs/xmlrpc-c/lib/util/casprintf.c
+index 959e4ce..0a26f4d 100644
+--- a/libs/xmlrpc-c/lib/util/casprintf.c
++++ b/libs/xmlrpc-c/lib/util/casprintf.c
+@@ -1,43 +1,87 @@
+-//#define _GNU_SOURCE
++#ifndef _GNU_SOURCE
++      #define _GNU_SOURCE   /* But only when HAVE_ASPRINTF */
++#endif
++
+ #include <stdarg.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <limits.h>
+ #include "xmlrpc_config.h"  /* For HAVE_ASPRINTF, __inline__ */
++#include "bool.h"
+ #include "casprintf.h"
+ static __inline__ void
++newVsnprintf(char *       const buffer,
++             size_t       const bufferSize,
++             const char * const fmt,
++             va_list            varargs,
++             size_t *     const formattedSizeP) {
++/*----------------------------------------------------------------------------
++   This is vsnprintf() with the new behavior, where not fitting in the buffer
++   is not a failure.
++
++   Unfortunately, we can't practically return the size of the formatted string
++   if the C library has old vsnprintf() and the formatted string doesn't fit
++   in the buffer, so in that case we just return something larger than the
++   buffer.
++-----------------------------------------------------------------------------*/
++    if (bufferSize > INT_MAX/2) {
++        /* There's a danger we won't be able to coerce the return value
++           of XMLRPC_VSNPRINTF to an integer (which we have to do because,
++           while for POSIX its return value is ssize_t, on Windows it is int),
++           or return double the buffer size.
++        */
++        *formattedSizeP = 0;
++    } else {
++        int rc;
++
++        rc = XMLRPC_VSNPRINTF(buffer, bufferSize, fmt, varargs);
++
++        if (rc < 0) {
++            /* We have old vsnprintf() (or Windows) and the formatted value
++               doesn't fit in the buffer, but we don't know how big a buffer it
++               needs.
++            */
++            *formattedSizeP = bufferSize * 2;
++        } else {
++            /* Either the string fits in the buffer or we have new vsnprintf()
++               which tells us how big the string is regardless.
++            */
++            *formattedSizeP = rc;
++        }
++    }
++}
++
++
++
++static __inline__ void
+ simpleVasprintf(char **      const retvalP,
+                 const char * const fmt,
+                 va_list            varargs) {
+ /*----------------------------------------------------------------------------
+    This is a poor man's implementation of vasprintf(), of GNU fame.
+ -----------------------------------------------------------------------------*/
+-    size_t const initialSize = 4096;
+     char * result;
+-
+-    result = malloc(initialSize);
+-    if (result != NULL) {
+-        size_t bytesNeeded;
+-        bytesNeeded = XMLRPC_VSNPRINTF(result, initialSize, fmt, varargs);
+-        if (bytesNeeded > initialSize) {
+-            free(result);
+-            result = malloc(bytesNeeded);
+-            if (result != NULL)
+-                XMLRPC_VSNPRINTF(result, bytesNeeded, fmt, varargs);
+-        } else if (bytesNeeded == initialSize) {
+-            if (result[initialSize-1] != '\0') {
+-                /* This is one of those old systems where vsnprintf()
+-                   returns the number of bytes it used, instead of the
+-                   number that it needed, and it in fact needed more than
+-                   we gave it.  Rather than mess with this highly unlikely
+-                   case (old system and string > 4095 characters), we just
+-                   treat this like an out of memory failure.
+-                */
++    size_t bufferSize;
++    bool outOfMemory;
++
++    for (result = NULL, bufferSize = 4096, outOfMemory = false;
++         !result && !outOfMemory;
++        ) {
++
++        result = malloc(bufferSize);
++        if (!result)
++            outOfMemory = true;
++        else {
++            size_t bytesNeeded;
++            newVsnprintf(result, bufferSize, fmt, varargs, &bytesNeeded);
++            if (bytesNeeded > bufferSize) {
+                 free(result);
+                 result = NULL;
++                bufferSize = bytesNeeded;
+             }
+         }
+     }
+diff --git a/libs/xmlrpc-c/lib/util/cmdline_parser.c b/libs/xmlrpc-c/lib/util/cmdline_parser.c
+index 37caadb..cc33d8d 100644
+--- a/libs/xmlrpc-c/lib/util/cmdline_parser.c
++++ b/libs/xmlrpc-c/lib/util/cmdline_parser.c
+@@ -1,3 +1,5 @@
++#define _XOPEN_SOURCE 600 /* Make sure <string.h> has strdup() */
++
+ #include "xmlrpc_config.h"  /* prereq for mallocvar.h -- defines __inline__ */
+ #include <sys/types.h>
+diff --git a/libs/xmlrpc-c/lib/util/include/int.h b/libs/xmlrpc-c/lib/util/include/int.h
+index 253ea34..3c7b216 100644
+--- a/libs/xmlrpc-c/lib/util/include/int.h
++++ b/libs/xmlrpc-c/lib/util/include/int.h
+@@ -11,6 +11,14 @@
+    long long mask= ULL(1) << 33;
+ */
++/* 'uint' is quite convenient, but there's no simple way have it everywhere.
++   Some systems have it in the base system (e.g. GNU C library has it in
++   <sys/types.h>, and others (e.g. Solaris - 08.12.02) don't.  Since we
++   can't define it unless we know it's not defined already, and we don't
++   want to burden the reader with a special Xmlrpc-c name such as xuint,
++   we just use standard "unsigned int" instead.
++*/
++
+ #ifdef _MSC_VER
+ #  define PRId64 "I64d"
+ #  define PRIu64 "I64u"
+@@ -33,9 +41,6 @@ typedef __int64           int64_t;
+ #ifndef uint64_t
+ typedef unsigned __int64  uint64_t;
+ #endif
+-#ifndef uint
+-typedef unsigned int      uint;
+-#endif
+ #ifndef uint8_t
+ typedef unsigned char     uint8_t;
+ #endif
+@@ -44,6 +49,11 @@ typedef unsigned char     uint8_t;
+ #define LL(x) x ## i64
+ #define ULL(x) x ## u64
++#elif defined(__INTERIX)
++#  include <stdint.h>
++#  define PRId64 "I64d"
++#  define PRIu64 "I64u"
++
+ #else
+   /* Not Microsoft compiler */
+   #include <inttypes.h>
+diff --git a/libs/xmlrpc-c/lib/util/include/mallocvar.h b/libs/xmlrpc-c/lib/util/include/mallocvar.h
+index 5dd9fc9..12ca9d9 100644
+--- a/libs/xmlrpc-c/lib/util/include/mallocvar.h
++++ b/libs/xmlrpc-c/lib/util/include/mallocvar.h
+@@ -18,7 +18,7 @@
+ static __inline__ void
+ mallocProduct(void **      const resultP, 
+               unsigned int const factor1,
+-              unsigned int const factor2) {
++              size_t       const factor2) {
+ /*----------------------------------------------------------------------------
+    malloc a space whose size in bytes is the product of 'factor1' and
+    'factor2'.  But if that size cannot be represented as an unsigned int,
+@@ -102,7 +102,7 @@ do { \
+ #define MALLOCVAR(varName) \
+-    if (varName = malloc(sizeof(*varName))) memset(varName, 0, sizeof(*varName))
++    varName = malloc(sizeof(*varName))
+ #define MALLOCVAR_NOFAIL(varName) \
+     do {if ((varName = malloc(sizeof(*varName))) == NULL) abort();} while(0)
+diff --git a/libs/xmlrpc-c/lib/util/include/pthreadx.h b/libs/xmlrpc-c/lib/util/include/pthreadx.h
+index 3ec8f2a..bf5a45f 100644
+--- a/libs/xmlrpc-c/lib/util/include/pthreadx.h
++++ b/libs/xmlrpc-c/lib/util/include/pthreadx.h
+@@ -26,10 +26,12 @@
+ #ifndef PTHREADX_H_INCLUDED
+ #define PTHREADX_H_INCLUDED
+-#ifndef WIN32
++#include "xmlrpc_config.h"
++
++#if HAVE_PTHREAD
+ #  define _REENTRANT
+ #  include <pthread.h>
+-#elif defined (WIN32)
++#elif HAVE_WINDOWS_THREAD
+ #include <windows.h>
+ #ifdef __cplusplus
+@@ -52,11 +54,7 @@ struct {
+     int attrs; /* currently unused. placeholder. */
+ } pthread_mutexattr_t;
+-/* We make pthread_func identical to a Windows thread start function
+-   so we can use Windows thread functions to implement these pthread
+-   functions directly.
+-*/
+-typedef unsigned (WINAPI pthread_func)(void *);
++typedef void * pthread_func(void *);
+ extern int pthread_create(pthread_t *            const new_thread_ID,
+                           const pthread_attr_t * const attr,
+@@ -75,6 +73,10 @@ extern int pthread_mutex_destroy(pthread_mutex_t * const mp);
+ #ifdef __cplusplus
+ }
+ #endif
+-#endif  /* WIN32 */
++#else  /* HAVE_WINDOWS_THREAD */
++  #error "You don't have any thread facility.  (According to "
++  #error "HAVE_PTHREAD and HAVE_WINDOWS_THREAD macros defined in "
++  #error "xmlrpc_config.h)"
++#endif
+ #endif
+diff --git a/libs/xmlrpc-c/lib/util/include/sstring.h b/libs/xmlrpc-c/lib/util/include/sstring.h
+deleted file mode 100644
+index c493cf2..0000000
+--- a/libs/xmlrpc-c/lib/util/include/sstring.h
++++ /dev/null
+@@ -1,15 +0,0 @@
+-#ifndef SSTRING_H_INCLUDED
+-#define SSTRING_H_INCLUDED
+-
+-/* This file contains string functions that are cognizant of the
+-   declared size of the destination data structure.
+-*/
+-
+-
+-/* Copy string pointed by B to array A with size checking.  */
+-#define SSTRCPY(A,B) \
+-      (strncpy((A), (B), sizeof(A)), *((A)+sizeof(A)-1) = '\0')
+-#define SSTRCMP(A,B) \
+-      (strncmp((A), (B), sizeof(A)))
+-
+-#endif
+diff --git a/libs/xmlrpc-c/lib/util/include/stdargx.h b/libs/xmlrpc-c/lib/util/include/stdargx.h
+index ee54464..0441f54 100644
+--- a/libs/xmlrpc-c/lib/util/include/stdargx.h
++++ b/libs/xmlrpc-c/lib/util/include/stdargx.h
+@@ -56,7 +56,7 @@ init_va_listx(va_listx * const argsxP,
+ #if VA_LIST_IS_ARRAY
+     /* 'args' is NOT a va_list.  It is a pointer to the first element of a
+        'va_list', which is the same address as a pointer to the va_list
+-       itself.
++       itself.  (That's what happens when you pass an array in C).
+     */
+     memcpy(&argsxP->v, args, sizeof(argsxP->v));
+ #else
+diff --git a/libs/xmlrpc-c/lib/util/pthreadx_win32.c b/libs/xmlrpc-c/lib/util/pthreadx_win32.c
+index 6a8446a..91e3f37 100644
+--- a/libs/xmlrpc-c/lib/util/pthreadx_win32.c
++++ b/libs/xmlrpc-c/lib/util/pthreadx_win32.c
+@@ -25,31 +25,65 @@
+ #include "xmlrpc_config.h"
+-#ifdef WIN32
++#include <process.h>
+-#include "pthreadx.h"
++#include "mallocvar.h"
+-#include <process.h>
++#include "pthreadx.h"
+ #undef PACKAGE
+ #undef VERSION
++struct winStartArg {
++    pthread_func * func;
++    void *         arg;
++};
++
++
++
++static unsigned int __stdcall 
++winThreadStart(void * const arg) {
++/*----------------------------------------------------------------------------
++   This is a thread start/root function for the Windows threading facility
++   (i.e. this can be an argument to _beginthreadex()).
++
++   All we do is call the real start/root function, which expects to be
++   called in the pthread format.
++-----------------------------------------------------------------------------*/
++    struct winStartArg * const winStartArgP = arg;
++
++    winStartArgP->func(winStartArgP->arg);
++
++    free(winStartArgP);
++
++    return 0;
++}
++
++
++
+ int
+-pthread_create(pthread_t *            const new_thread_ID,
++pthread_create(pthread_t *            const newThreadIdP,
+                const pthread_attr_t * const attr,
+                pthread_func *               func,
+                void *                 const arg) {
+     HANDLE hThread;
+     DWORD dwThreadID;
++    struct winStartArg * winStartArgP;
++
++    MALLOCVAR_NOFAIL(winStartArgP);
+-    hThread = (HANDLE) _beginthreadex (
+-        NULL, 0, func, (LPVOID)arg, CREATE_SUSPENDED, &dwThreadID);
++    winStartArgP->func = func;
++    winStartArgP->arg  = arg;
+-    SetThreadPriority (hThread, THREAD_PRIORITY_NORMAL); 
+-    ResumeThread (hThread);
++    hThread = (HANDLE) _beginthreadex(
++        NULL, 0, &winThreadStart, (LPVOID)winStartArgP, CREATE_SUSPENDED,
++        &dwThreadID);
+-    *new_thread_ID = hThread;
++    SetThreadPriority(hThread, THREAD_PRIORITY_NORMAL); 
++    ResumeThread(hThread);
++
++    *newThreadIdP = hThread;
+     return hThread ? 0 : -1;
+ }
+@@ -119,5 +153,3 @@ pthread_mutex_destroy(pthread_mutex_t * const mp) {
+     DeleteCriticalSection(mp);
+     return 0;
+ }
+-
+-#endif
+diff --git a/libs/xmlrpc-c/lib/util/string_parser.c b/libs/xmlrpc-c/lib/util/string_parser.c
+index 32879f5..3c1fdf5 100644
+--- a/libs/xmlrpc-c/lib/util/string_parser.c
++++ b/libs/xmlrpc-c/lib/util/string_parser.c
+@@ -50,7 +50,7 @@ interpretUll(const char *  const string,
+         
+         errno = 0;  /* So we can tell if strtoull() overflowed */
+-        *ullP = strtoull(strippedString, &tail, 10);
++        *ullP = XMLRPC_STRTOULL(strippedString, &tail, 10);
+         
+         if (tail[0] != '\0')
+             casprintf(errorP, "Non-digit stuff in string: %s", tail);
+@@ -80,7 +80,7 @@ interpretLl(const char *  const string,
+         
+         errno = 0;  /* So we can tell if strtoll() overflowed */
+-        *llP = strtoll(string, &tail, 10);
++        *llP = XMLRPC_STRTOLL(string, &tail, 10);
+         
+         if (tail[0] != '\0')
+             casprintf(errorP, "Non-digit stuff in string: %s", tail);
+@@ -94,9 +94,9 @@ interpretLl(const char *  const string,
+ void
+-interpretUint(const char *  const string,
+-              uint *        const uintP,
+-              const char ** const errorP) {
++interpretUint(const char *   const string,
++              unsigned int * const uintP,
++              const char **  const errorP) {
+     /* strtoul() does a lousy job of dealing with invalid numbers.  A null
+        string is just zero; a negative number is a large positive one; a
+diff --git a/libs/xmlrpc-c/lib/util/stripcaseeq.c b/libs/xmlrpc-c/lib/util/stripcaseeq.c
+index 348a868..861da10 100644
+--- a/libs/xmlrpc-c/lib/util/stripcaseeq.c
++++ b/libs/xmlrpc-c/lib/util/stripcaseeq.c
+@@ -1,4 +1,3 @@
+-//#define _GNU_SOURCE
+ #include <ctype.h>
+ #include "bool.h"
+diff --git a/libs/xmlrpc-c/lib/wininet_transport/Makefile b/libs/xmlrpc-c/lib/wininet_transport/Makefile
+index 648c6c3..1b24efc 100644
+--- a/libs/xmlrpc-c/lib/wininet_transport/Makefile
++++ b/libs/xmlrpc-c/lib/wininet_transport/Makefile
+@@ -22,13 +22,16 @@ OMIT_WININET_TRANSPORT_RULE=Y
+ include $(SRCDIR)/common.mk
+-CFLAGS = $(CFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
++# This 'common.mk' dependency makes sure the symlinks get built before
++# this make file is used for anything.
++
++$(SRCDIR)/common.mk: srcdir blddir
+ INCLUDES = \
+   -I$(BLDDIR) \
+   -I$(BLDDIR)/include \
+-  -I$(SRCDIR)/include \
+-  -I$(SRCDIR)/lib/util/include \
++  -Isrcdir/include \
++  -Isrcdir/lib/util/include \
+ .PHONY: clean
+ clean: clean-common
+@@ -48,8 +51,8 @@ install:
+ .PHONY: dep
+ dep: dep-common
+-include Makefile.depend
++include depend.mk
+-# Need this dependency for those who don't use Makefile.depend.
++# Need this dependency for those who don't use depend.mk.
+ # Without it, version.h doesn't get created.
+ xmlrpc_wininet_transport.o xmlrpc_wininet_transport.osh: version.h
+diff --git a/libs/xmlrpc-c/lib/wininet_transport/xmlrpc_wininet_transport.c b/libs/xmlrpc-c/lib/wininet_transport/xmlrpc_wininet_transport.c
+index d81c6ea..b5efb93 100644
+--- a/libs/xmlrpc-c/lib/wininet_transport/xmlrpc_wininet_transport.c
++++ b/libs/xmlrpc-c/lib/wininet_transport/xmlrpc_wininet_transport.c
+@@ -398,6 +398,15 @@ performWinInetTransaction(
+         XMLRPC_FAIL(envP, XMLRPC_INTERNAL_ERROR,
+                     "Could not set Content-Type.");
++    {
++        /* By default, a request times out after 30 seconds.  We don't want
++           it to timeout at all, since we don't know what the user is doing.
++        */
++        DWORD dwTimeOut = 0x7FFFFFFF;  /* Approximation of infinity */
++        InternetSetOption(winInetTransactionP->hHttpRequest,
++                          INTERNET_OPTION_RECEIVE_TIMEOUT,
++                          &dwTimeOut, sizeof(dwTimeOut));
++    }
+ Again:
+     /* Send the requested XML remote procedure command */ 
+     succeeded = HttpSendRequest(winInetTransactionP->hHttpRequest, NULL, 0, 
+@@ -558,17 +567,22 @@ Again:
+-static unsigned __stdcall 
++static void *
+ doAsyncRpc(void * const arg) {
++
+     rpc * const rpcP = arg;
++
+     xmlrpc_env env;
+     xmlrpc_env_init(&env);
++
+     performWinInetTransaction(&env, rpcP->winInetTransactionP,
+                               rpcP->clientTransportP );
++
+     rpcP->complete(rpcP->callInfoP, rpcP->responseXmlP, env);
++
+     xmlrpc_env_clean(&env);
+-    return 0;
++    return NULL;
+ }
+@@ -837,6 +851,7 @@ sendRequest(xmlrpc_env *                     const envP,
+             const xmlrpc_server_info *       const serverP,
+             xmlrpc_mem_block *               const callXmlP,
+             xmlrpc_transport_asynch_complete       complete,
++            xmlrpc_transport_progress              progress,
+             struct xmlrpc_call_info *        const callInfoP) {
+ /*----------------------------------------------------------------------------
+    Initiate an XML-RPC rpc asynchronously.  Don't wait for it to go to
+diff --git a/libs/xmlrpc-c/lib/wininet_transport/xmlrpc_wininet_transport.h b/libs/xmlrpc-c/lib/wininet_transport/xmlrpc_wininet_transport.h
+deleted file mode 100644
+index d9f2b39..0000000
+--- a/libs/xmlrpc-c/lib/wininet_transport/xmlrpc_wininet_transport.h
++++ /dev/null
+@@ -1,8 +0,0 @@
+-#ifndef XMLRPC_WININET_TRANSPORT_H
+-#define XMLRPC_WININET_TRANSPORT_H
+-
+-#include "xmlrpc-c/transport.h"
+-
+-extern struct xmlrpc_client_transport_ops xmlrpc_wininet_transport_ops;
+-
+-#endif
+diff --git a/libs/xmlrpc-c/ltconfig b/libs/xmlrpc-c/ltconfig
+deleted file mode 100755
+index a01334f..0000000
+--- a/libs/xmlrpc-c/ltconfig
++++ /dev/null
+@@ -1,3078 +0,0 @@
+-#! /bin/sh
+-
+-# ltconfig - Create a system-specific libtool.
+-# Copyright (C) 1996-1999 Free Software Foundation, Inc.
+-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+-#
+-# This file is free software; you can redistribute it and/or modify it
+-# under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2 of the License, or
+-# (at your option) any later version.
+-#
+-# This program is distributed in the hope that it will be useful, but
+-# WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-# General Public License for more details.
+-#
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-#
+-# As a special exception to the GNU General Public License, if you
+-# distribute this file as part of a program that contains a
+-# configuration script generated by Autoconf, you may include it under
+-# the same distribution terms that you use for the rest of that program.
+-
+-# A lot of this script is taken from autoconf-2.10.
+-
+-# Check that we are running under the correct shell.
+-SHELL=${CONFIG_SHELL-/bin/sh}
+-echo=echo
+-if test "X$1" = X--no-reexec; then
+-  # Discard the --no-reexec flag, and continue.
+-  shift
+-elif test "X$1" = X--fallback-echo; then
+-  # Avoid inline document here, it may be left over
+-  :
+-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+-  # Yippee, $echo works!
+-  :
+-else
+-  # Restart under the correct shell.
+-  exec "$SHELL" "$0" --no-reexec ${1+"$@"}
+-fi
+-
+-if test "X$1" = X--fallback-echo; then
+-  # used as fallback echo
+-  shift
+-  cat <<EOF
+-$*
+-EOF
+-  exit 0
+-fi
+-
+-# Find the correct PATH separator.  Usually this is `:', but
+-# DJGPP uses `;' like DOS.
+-if test "X${PATH_SEPARATOR+set}" != Xset; then
+-  UNAME=${UNAME-`uname 2>/dev/null`}
+-  case X$UNAME in
+-    *-DOS) PATH_SEPARATOR=';' ;;
+-    *)     PATH_SEPARATOR=':' ;;
+-  esac
+-fi
+-
+-# The HP-UX ksh and POSIX shell print the target directory to stdout
+-# if CDPATH is set.
+-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+-
+-if test "X${echo_test_string+set}" != Xset; then
+-  # find a string as large as possible, as long as the shell can cope with it
+-  for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+-    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+-       echo_test_string="`eval $cmd`" &&
+-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then
+-      break
+-    fi
+-  done
+-fi
+-
+-if test "X`($echo '\t') 2>/dev/null`" != 'X\t' ||
+-   test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then
+-  # The Solaris, AIX, and Digital Unix default echo programs unquote
+-  # backslashes.  This makes it impossible to quote backslashes using
+-  #   echo "$something" | sed 's/\\/\\\\/g'
+-  #
+-  # So, first we look for a working echo in the user's PATH.
+-
+-  IFS="${IFS=         }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+-  for dir in $PATH /usr/ucb; do
+-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+-       test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+-      echo="$dir/echo"
+-      break
+-    fi
+-  done
+-  IFS="$save_ifs"
+-
+-  if test "X$echo" = Xecho; then
+-    # We didn't find a better echo, so look for alternatives.
+-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+-       test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+-      # This shell has a builtin print -r that does the trick.
+-      echo='print -r'
+-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+-       test "X$CONFIG_SHELL" != X/bin/ksh; then
+-      # If we have ksh, try running ltconfig again with it.
+-      ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}"
+-      export ORIGINAL_CONFIG_SHELL
+-      CONFIG_SHELL=/bin/ksh
+-      export CONFIG_SHELL
+-      exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
+-    else
+-      # Try using printf.
+-      echo='printf "%s\n"'
+-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+-       test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+-      # Cool, printf works
+-      :
+-      elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
+-         test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+-      CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL"
+-      export CONFIG_SHELL
+-      SHELL="$CONFIG_SHELL"
+-      export SHELL
+-      echo="$CONFIG_SHELL $0 --fallback-echo"
+-      elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
+-         test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+-      echo="$CONFIG_SHELL $0 --fallback-echo"
+-      else
+-      # maybe with a smaller string...
+-      prev=:
+-
+-      for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+-        if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then
+-          break
+-        fi
+-        prev="$cmd"
+-      done
+-
+-      if test "$prev" != 'sed 50q "$0"'; then
+-        echo_test_string=`eval $prev`
+-        export echo_test_string
+-        exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"}
+-      else
+-        # Oops.  We lost completely, so just stick with echo.
+-        echo=echo
+-      fi
+-      fi
+-    fi
+-  fi
+-fi
+-
+-# Sed substitution that helps us do robust quoting.  It backslashifies
+-# metacharacters that are still active within double-quoted strings.
+-Xsed='sed -e s/^X//'
+-sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+-
+-# Same as above, but do not quote variable references.
+-double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+-
+-# Sed substitution to delay expansion of an escaped shell variable in a
+-# double_quote_subst'ed string.
+-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+-
+-# The name of this program.
+-progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
+-
+-# Constants:
+-PROGRAM=ltconfig
+-PACKAGE=libtool
+-VERSION=1.3.4
+-TIMESTAMP=" (1.385.2.196 1999/12/07 21:47:57)"
+-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+-rm="rm -f"
+-
+-help="Try \`$progname --help' for more information."
+-
+-# Global variables:
+-default_ofile=libtool
+-can_build_shared=yes
+-enable_shared=yes
+-# All known linkers require a `.a' archive for static linking (except M$VC,
+-# which needs '.lib').
+-enable_static=yes
+-enable_fast_install=yes
+-enable_dlopen=unknown
+-enable_win32_dll=no
+-ltmain=
+-silent=
+-srcdir=
+-ac_config_guess=
+-ac_config_sub=
+-host=
+-nonopt=
+-ofile="$default_ofile"
+-verify_host=yes
+-with_gcc=no
+-with_gnu_ld=no
+-need_locks=yes
+-ac_ext=c
+-objext=o
+-libext=a
+-exeext=
+-cache_file=
+-
+-old_AR="$AR"
+-old_CC="$CC"
+-old_CFLAGS="$CFLAGS"
+-old_CPPFLAGS="$CPPFLAGS"
+-old_LDFLAGS="$LDFLAGS"
+-old_LD="$LD"
+-old_LN_S="$LN_S"
+-old_LIBS="$LIBS"
+-old_NM="$NM"
+-old_RANLIB="$RANLIB"
+-old_DLLTOOL="$DLLTOOL"
+-old_OBJDUMP="$OBJDUMP"
+-old_AS="$AS"
+-
+-# Parse the command line options.
+-args=
+-prev=
+-for option
+-do
+-  case "$option" in
+-  -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+-  *) optarg= ;;
+-  esac
+-
+-  # If the previous option needs an argument, assign it.
+-  if test -n "$prev"; then
+-    eval "$prev=\$option"
+-    prev=
+-    continue
+-  fi
+-
+-  case "$option" in
+-  --help) cat <<EOM
+-Usage: $progname [OPTION]... [HOST [LTMAIN]]
+-
+-Generate a system-specific libtool script.
+-
+-    --debug                enable verbose shell tracing
+-    --disable-shared       do not build shared libraries
+-    --disable-static       do not build static libraries
+-    --disable-fast-install do not optimize for fast installation
+-    --enable-dlopen        enable dlopen support
+-    --enable-win32-dll     enable building dlls on win32 hosts
+-    --help                 display this help and exit
+-    --no-verify            do not verify that HOST is a valid host type
+--o, --output=FILE          specify the output file [default=$default_ofile]
+-    --quiet                same as \`--silent'
+-    --silent               do not print informational messages
+-    --srcdir=DIR           find \`config.guess' in DIR
+-    --version              output version information and exit
+-    --with-gcc             assume that the GNU C compiler will be used
+-    --with-gnu-ld          assume that the C compiler uses the GNU linker
+-    --disable-lock         disable file locking
+-    --cache-file=FILE      configure cache file
+-
+-LTMAIN is the \`ltmain.sh' shell script fragment or \`ltmain.c' program
+-that provides basic libtool functionality.
+-
+-HOST is the canonical host system name [default=guessed].
+-EOM
+-  exit 0
+-  ;;
+-
+-  --debug)
+-    echo "$progname: enabling shell trace mode"
+-    set -x
+-    ;;
+-
+-  --disable-shared) enable_shared=no ;;
+-
+-  --disable-static) enable_static=no ;;
+-
+-  --disable-fast-install) enable_fast_install=no ;;
+-
+-  --enable-dlopen) enable_dlopen=yes ;;
+-
+-  --enable-win32-dll) enable_win32_dll=yes ;;
+-
+-  --quiet | --silent) silent=yes ;;
+-
+-  --srcdir) prev=srcdir ;;
+-  --srcdir=*) srcdir="$optarg" ;;
+-
+-  --no-verify) verify_host=no ;;
+-
+-  --output | -o) prev=ofile ;;
+-  --output=*) ofile="$optarg" ;;
+-
+-  --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"; exit 0 ;;
+-
+-  --with-gcc) with_gcc=yes ;;
+-  --with-gnu-ld) with_gnu_ld=yes ;;
+-
+-  --disable-lock) need_locks=no ;;
+-
+-  --cache-file=*) cache_file="$optarg" ;;
+-
+-  -*)
+-    echo "$progname: unrecognized option \`$option'" 1>&2
+-    echo "$help" 1>&2
+-    exit 1
+-    ;;
+-
+-  *)
+-    if test -z "$ltmain"; then
+-      ltmain="$option"
+-    elif test -z "$host"; then
+-# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1
+-#      if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then
+-#        echo "$progname: warning \`$option' is not a valid host type" 1>&2
+-#      fi
+-      host="$option"
+-    else
+-      echo "$progname: too many arguments" 1>&2
+-      echo "$help" 1>&2
+-      exit 1
+-    fi ;;
+-  esac
+-done
+-
+-if test -z "$ltmain"; then
+-  echo "$progname: you must specify a LTMAIN file" 1>&2
+-  echo "$help" 1>&2
+-  exit 1
+-fi
+-
+-if test ! -f "$ltmain"; then
+-  echo "$progname: \`$ltmain' does not exist" 1>&2
+-  echo "$help" 1>&2
+-  exit 1
+-fi
+-
+-# Quote any args containing shell metacharacters.
+-ltconfig_args=
+-for arg
+-do
+-  case "$arg" in
+-  *" "*|*"    "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+-  ltconfig_args="$ltconfig_args '$arg'" ;;
+-  *) ltconfig_args="$ltconfig_args $arg" ;;
+-  esac
+-done
+-
+-# A relevant subset of AC_INIT.
+-
+-# File descriptor usage:
+-# 0 standard input
+-# 1 file creation
+-# 2 errors and warnings
+-# 3 some systems may open it to /dev/tty
+-# 4 used on the Kubota Titan
+-# 5 compiler messages saved in config.log
+-# 6 checking for... messages and results
+-if test "$silent" = yes; then
+-  exec 6>/dev/null
+-else
+-  exec 6>&1
+-fi
+-exec 5>>./config.log
+-
+-# NLS nuisances.
+-# Only set LANG and LC_ALL to C if already set.
+-# These must not be set unconditionally because not all systems understand
+-# e.g. LANG=C (notably SCO).
+-if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi
+-if test "X${LANG+set}"   = Xset; then LANG=C;   export LANG;   fi
+-
+-if test -n "$cache_file" && test -r "$cache_file"; then
+-  echo "loading cache $cache_file within ltconfig"
+-  . $cache_file
+-fi
+-
+-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+-  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+-  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+-    ac_n= ac_c='
+-' ac_t='      '
+-  else
+-    ac_n=-n ac_c= ac_t=
+-  fi
+-else
+-  ac_n= ac_c='\c' ac_t=
+-fi
+-
+-if test -z "$srcdir"; then
+-  # Assume the source directory is the same one as the path to LTMAIN.
+-  srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'`
+-  test "$srcdir" = "$ltmain" && srcdir=.
+-fi
+-
+-trap "$rm conftest*; exit 1" 1 2 15
+-if test "$verify_host" = yes; then
+-  # Check for config.guess and config.sub.
+-  ac_aux_dir=
+-  for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+-    if test -f $ac_dir/config.guess; then
+-      ac_aux_dir=$ac_dir
+-      break
+-    fi
+-  done
+-  if test -z "$ac_aux_dir"; then
+-    echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2
+-    echo "$help" 1>&2
+-    exit 1
+-  fi
+-  ac_config_guess=$ac_aux_dir/config.guess
+-  ac_config_sub=$ac_aux_dir/config.sub
+-
+-  # Make sure we can run config.sub.
+-  if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then :
+-  else
+-    echo "$progname: cannot run $ac_config_sub" 1>&2
+-    echo "$help" 1>&2
+-    exit 1
+-  fi
+-
+-  echo $ac_n "checking host system type""... $ac_c" 1>&6
+-
+-  host_alias=$host
+-  case "$host_alias" in
+-  "")
+-    if host_alias=`$SHELL $ac_config_guess`; then :
+-    else
+-      echo "$progname: cannot guess host type; you must specify one" 1>&2
+-      echo "$help" 1>&2
+-      exit 1
+-    fi ;;
+-  esac
+-  host=`$SHELL $ac_config_sub $host_alias`
+-  echo "$ac_t$host" 1>&6
+-
+-  # Make sure the host verified.
+-  test -z "$host" && exit 1
+-
+-elif test -z "$host"; then
+-  echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2
+-  echo "$help" 1>&2
+-  exit 1
+-else
+-  host_alias=$host
+-fi
+-
+-# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+-case "$host_os" in
+-linux-gnu*) ;;
+-linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+-esac
+-
+-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+-
+-case "$host_os" in
+-aix3*)
+-  # AIX sometimes has problems with the GCC collect2 program.  For some
+-  # reason, if we set the COLLECT_NAMES environment variable, the problems
+-  # vanish in a puff of smoke.
+-  if test "X${COLLECT_NAMES+set}" != Xset; then
+-    COLLECT_NAMES=
+-    export COLLECT_NAMES
+-  fi
+-  ;;
+-esac
+-
+-# Determine commands to create old-style static archives.
+-old_archive_cmds='$AR cru $oldlib$oldobjs'
+-old_postinstall_cmds='chmod 644 $oldlib'
+-old_postuninstall_cmds=
+-
+-# Set a sane default for `AR'.
+-test -z "$AR" && AR=ar
+-
+-# Set a sane default for `OBJDUMP'.
+-test -z "$OBJDUMP" && OBJDUMP=objdump
+-
+-# If RANLIB is not set, then run the test.
+-if test "${RANLIB+set}" != "set"; then
+-  result=no
+-
+-  echo $ac_n "checking for ranlib... $ac_c" 1>&6
+-  IFS="${IFS=         }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+-  for dir in $PATH; do
+-    test -z "$dir" && dir=.
+-    if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then
+-      RANLIB="ranlib"
+-      result="ranlib"
+-      break
+-    fi
+-  done
+-  IFS="$save_ifs"
+-
+-  echo "$ac_t$result" 1>&6
+-fi
+-
+-if test -n "$RANLIB"; then
+-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+-  old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+-fi
+-
+-# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin.
+-test -z "$DLLTOOL" && DLLTOOL=dlltool
+-test -z "$OBJDUMP" && OBJDUMP=objdump
+-test -z "$AS" && AS=as
+-
+-# Check to see if we are using GCC.
+-if test "$with_gcc" != yes || test -z "$CC"; then
+-  # If CC is not set, then try to find GCC or a usable CC.
+-  if test -z "$CC"; then
+-    echo $ac_n "checking for gcc... $ac_c" 1>&6
+-    IFS="${IFS=       }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+-    for dir in $PATH; do
+-      test -z "$dir" && dir=.
+-      if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then
+-      CC="gcc"
+-      break
+-      fi
+-    done
+-    IFS="$save_ifs"
+-
+-    if test -n "$CC"; then
+-      echo "$ac_t$CC" 1>&6
+-    else
+-      echo "$ac_t"no 1>&6
+-    fi
+-  fi
+-
+-  # Not "gcc", so try "cc", rejecting "/usr/ucb/cc".
+-  if test -z "$CC"; then
+-    echo $ac_n "checking for cc... $ac_c" 1>&6
+-    IFS="${IFS=       }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+-    cc_rejected=no
+-    for dir in $PATH; do
+-      test -z "$dir" && dir=.
+-      if test -f $dir/cc || test -f $dir/cc$ac_exeext; then
+-      if test "$dir/cc" = "/usr/ucb/cc"; then
+-        cc_rejected=yes
+-        continue
+-      fi
+-      CC="cc"
+-      break
+-      fi
+-    done
+-    IFS="$save_ifs"
+-    if test $cc_rejected = yes; then
+-      # We found a bogon in the path, so make sure we never use it.
+-      set dummy $CC
+-      shift
+-      if test $# -gt 0; then
+-      # We chose a different compiler from the bogus one.
+-      # However, it has the same name, so the bogon will be chosen
+-      # first if we set CC to just the name; use the full file name.
+-      shift
+-      set dummy "$dir/cc" "$@"
+-      shift
+-      CC="$@"
+-      fi
+-    fi
+-
+-    if test -n "$CC"; then
+-      echo "$ac_t$CC" 1>&6
+-    else
+-      echo "$ac_t"no 1>&6
+-    fi
+-
+-    if test -z "$CC"; then
+-      echo "$progname: error: no acceptable cc found in \$PATH" 1>&2
+-      exit 1
+-    fi
+-  fi
+-
+-  # Now see if the compiler is really GCC.
+-  with_gcc=no
+-  echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
+-  echo "$progname:581: checking whether we are using GNU C" >&5
+-
+-  $rm conftest.c
+-  cat > conftest.c <<EOF
+-#ifdef __GNUC__
+-  yes;
+-#endif
+-EOF
+-  if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:589: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+-    with_gcc=yes
+-  fi
+-  $rm conftest.c
+-  echo "$ac_t$with_gcc" 1>&6
+-fi
+-
+-# Allow CC to be a program name with arguments.
+-set dummy $CC
+-compiler="$2"
+-
+-echo $ac_n "checking for object suffix... $ac_c" 1>&6
+-$rm conftest*
+-echo 'int i = 1;' > conftest.c
+-echo "$progname:603: checking for object suffix" >& 5
+-if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then
+-  # Append any warnings to the config.log.
+-  cat conftest.err 1>&5
+-
+-  for ac_file in conftest.*; do
+-    case $ac_file in
+-    *.c) ;;
+-    *) objext=`echo $ac_file | sed -e s/conftest.//` ;;
+-    esac
+-  done
+-else
+-  cat conftest.err 1>&5
+-  echo "$progname: failed program was:" >&5
+-  cat conftest.c >&5
+-fi
+-$rm conftest*
+-echo "$ac_t$objext" 1>&6
+-
+-echo $ac_n "checking for executable suffix... $ac_c" 1>&6
+-if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  ac_cv_exeext="no"
+-  $rm conftest*
+-  echo 'main () { return 0; }' > conftest.c
+-  echo "$progname:629: checking for executable suffix" >& 5
+-  if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then
+-    # Append any warnings to the config.log.
+-    cat conftest.err 1>&5
+-
+-    for ac_file in conftest.*; do
+-      case $ac_file in
+-      *.c | *.err | *.$objext ) ;;
+-      *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;;
+-      esac
+-    done
+-  else
+-    cat conftest.err 1>&5
+-    echo "$progname: failed program was:" >&5
+-    cat conftest.c >&5
+-  fi
+-  $rm conftest*
+-fi
+-if test "X$ac_cv_exeext" = Xno; then
+-  exeext=""
+-else
+-  exeext="$ac_cv_exeext"
+-fi
+-echo "$ac_t$ac_cv_exeext" 1>&6
+-
+-echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6
+-pic_flag=
+-special_shlib_compile_flags=
+-wl=
+-link_static_flag=
+-no_builtin_flag=
+-
+-if test "$with_gcc" = yes; then
+-  wl='-Wl,'
+-  link_static_flag='-static'
+-
+-  case "$host_os" in
+-  beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
+-    # PIC is the default for these OSes.
+-    ;;
+-  aix*)
+-    # Below there is a dirty hack to force normal static linking with -ldl
+-    # The problem is because libdl dynamically linked with both libc and
+-    # libC (AIX C++ library), which obviously doesn't included in libraries
+-    # list by gcc. This cause undefined symbols with -static flags.
+-    # This hack allows C programs to be linked with "-static -ldl", but
+-    # we not sure about C++ programs.
+-    link_static_flag="$link_static_flag ${wl}-lC"
+-    ;;
+-  cygwin* | mingw* | os2*)
+-    # We can build DLLs from non-PIC.
+-    ;;
+-  amigaos*)
+-    # FIXME: we need at least 68020 code to build shared libraries, but
+-    # adding the `-m68020' flag to GCC prevents building anything better,
+-    # like `-m68040'.
+-    pic_flag='-m68020 -resident32 -malways-restore-a4'
+-    ;;
+-  sysv4*MP*)
+-    if test -d /usr/nec; then
+-       pic_flag=-Kconform_pic
+-    fi
+-    ;;
+-  *)
+-    pic_flag='-fPIC'
+-    ;;
+-  esac
+-else
+-  # PORTME Check for PIC flags for the system compiler.
+-  case "$host_os" in
+-  aix3* | aix4*)
+-    # All AIX code is PIC.
+-    link_static_flag='-bnso -bI:/lib/syscalls.exp'
+-    ;;
+-
+-  hpux9* | hpux10* | hpux11*)
+-    # Is there a better link_static_flag that works with the bundled CC?
+-    wl='-Wl,'
+-    link_static_flag="${wl}-a ${wl}archive"
+-    pic_flag='+Z'
+-    ;;
+-
+-  irix5* | irix6*)
+-    wl='-Wl,'
+-    link_static_flag='-non_shared'
+-    # PIC (with -KPIC) is the default.
+-    ;;
+-
+-  cygwin* | mingw* | os2*)
+-    # We can build DLLs from non-PIC.
+-    ;;
+-
+-  osf3* | osf4* | osf5*)
+-    # All OSF/1 code is PIC.
+-    wl='-Wl,'
+-    link_static_flag='-non_shared'
+-    ;;
+-
+-  sco3.2v5*)
+-    pic_flag='-Kpic'
+-    link_static_flag='-dn'
+-    special_shlib_compile_flags='-belf'
+-    ;;
+-
+-  solaris*)
+-    pic_flag='-KPIC'
+-    link_static_flag='-Bstatic'
+-    wl='-Wl,'
+-    ;;
+-
+-  sunos4*)
+-    pic_flag='-PIC'
+-    link_static_flag='-Bstatic'
+-    wl='-Qoption ld '
+-    ;;
+-
+-  sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+-    pic_flag='-KPIC'
+-    link_static_flag='-Bstatic'
+-    wl='-Wl,'
+-    ;;
+-
+-  uts4*)
+-    pic_flag='-pic'
+-    link_static_flag='-Bstatic'
+-    ;;
+-  sysv4*MP*)
+-    if test -d /usr/nec ;then
+-      pic_flag='-Kconform_pic'
+-      link_static_flag='-Bstatic'
+-    fi
+-    ;;
+-  *)
+-    can_build_shared=no
+-    ;;
+-  esac
+-fi
+-
+-if test -n "$pic_flag"; then
+-  echo "$ac_t$pic_flag" 1>&6
+-
+-  # Check to make sure the pic_flag actually works.
+-  echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6
+-  $rm conftest*
+-  echo "int some_variable = 0;" > conftest.c
+-  save_CFLAGS="$CFLAGS"
+-  CFLAGS="$CFLAGS $pic_flag -DPIC"
+-  echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5
+-  if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
+-    # Append any warnings to the config.log.
+-    cat conftest.err 1>&5
+-    
+-    case "$host_os" in
+-    hpux9* | hpux10* | hpux11*)
+-      # On HP-UX, both CC and GCC only warn that PIC is supported... then they
+-      # create non-PIC objects.  So, if there were any warnings, we assume that
+-      # PIC is not supported.
+-      if test -s conftest.err; then
+-      echo "$ac_t"no 1>&6
+-      can_build_shared=no
+-      pic_flag=
+-      else
+-      echo "$ac_t"yes 1>&6
+-      pic_flag=" $pic_flag"
+-      fi
+-      ;;
+-    *)
+-      echo "$ac_t"yes 1>&6
+-      pic_flag=" $pic_flag"
+-      ;;
+-    esac
+-  else
+-    # Append any errors to the config.log.
+-    cat conftest.err 1>&5
+-    can_build_shared=no
+-    pic_flag=
+-    echo "$ac_t"no 1>&6
+-  fi
+-  CFLAGS="$save_CFLAGS"
+-  $rm conftest*
+-else
+-  echo "$ac_t"none 1>&6
+-fi
+-
+-# Check to see if options -o and -c are simultaneously supported by compiler
+-echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6
+-$rm -r conftest 2>/dev/null
+-mkdir conftest
+-cd conftest
+-$rm conftest*
+-echo "int some_variable = 0;" > conftest.c
+-mkdir out
+-# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+-# that will create temporary files in the current directory regardless of
+-# the output directory.  Thus, making CWD read-only will cause this test
+-# to fail, enabling locking or at least warning the user not to do parallel
+-# builds.
+-chmod -w .
+-save_CFLAGS="$CFLAGS"
+-CFLAGS="$CFLAGS -o out/conftest2.o"
+-echo "$progname:829: checking if $compiler supports -c -o file.o" >&5
+-if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then
+-
+-  # The compiler can only warn and ignore the option if not recognized
+-  # So say no if there are warnings
+-    if test -s out/conftest.err; then
+-      echo "$ac_t"no 1>&6
+-      compiler_c_o=no
+-    else
+-      echo "$ac_t"yes 1>&6
+-      compiler_c_o=yes
+-    fi
+-else
+-  # Append any errors to the config.log.
+-  cat out/conftest.err 1>&5
+-  compiler_c_o=no
+-  echo "$ac_t"no 1>&6
+-fi
+-CFLAGS="$save_CFLAGS"
+-chmod u+w .
+-$rm conftest* out/*
+-rmdir out
+-cd ..
+-rmdir conftest
+-$rm -r conftest 2>/dev/null
+-
+-if test x"$compiler_c_o" = x"yes"; then
+-  # Check to see if we can write to a .lo
+-  echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6
+-  $rm conftest*
+-  echo "int some_variable = 0;" > conftest.c
+-  save_CFLAGS="$CFLAGS"
+-  CFLAGS="$CFLAGS -c -o conftest.lo"
+-  echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5
+-if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then
+-
+-    # The compiler can only warn and ignore the option if not recognized
+-    # So say no if there are warnings
+-      if test -s conftest.err; then
+-      echo "$ac_t"no 1>&6
+-      compiler_o_lo=no
+-      else
+-      echo "$ac_t"yes 1>&6
+-      compiler_o_lo=yes
+-      fi
+-  else
+-    # Append any errors to the config.log.
+-    cat conftest.err 1>&5
+-    compiler_o_lo=no
+-    echo "$ac_t"no 1>&6
+-  fi
+-  CFLAGS="$save_CFLAGS"
+-  $rm conftest*
+-else
+-  compiler_o_lo=no
+-fi
+-
+-# Check to see if we can do hard links to lock some files if needed
+-hard_links="nottested"
+-if test "$compiler_c_o" = no && test "$need_locks" != no; then
+-  # do not overwrite the value of need_locks provided by the user
+-  echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6
+-  hard_links=yes
+-  $rm conftest*
+-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+-  touch conftest.a
+-  ln conftest.a conftest.b 2>&5 || hard_links=no
+-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+-  echo "$ac_t$hard_links" 1>&6
+-  $rm conftest*
+-  if test "$hard_links" = no; then
+-    echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2
+-    need_locks=warn
+-  fi
+-else
+-  need_locks=no
+-fi
+-
+-if test "$with_gcc" = yes; then
+-  # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
+-  echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6
+-  $rm conftest*
+-  echo "int some_variable = 0;" > conftest.c
+-  save_CFLAGS="$CFLAGS"
+-  CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c"
+-  echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+-  if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
+-
+-    # The compiler can only warn and ignore the option if not recognized
+-    # So say no if there are warnings
+-      if test -s conftest.err; then
+-      echo "$ac_t"no 1>&6
+-      compiler_rtti_exceptions=no
+-      else
+-      echo "$ac_t"yes 1>&6
+-      compiler_rtti_exceptions=yes
+-      fi
+-  else
+-    # Append any errors to the config.log.
+-    cat conftest.err 1>&5
+-    compiler_rtti_exceptions=no
+-    echo "$ac_t"no 1>&6
+-  fi
+-  CFLAGS="$save_CFLAGS"
+-  $rm conftest*
+-
+-  if test "$compiler_rtti_exceptions" = "yes"; then
+-    no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
+-  else
+-    no_builtin_flag=' -fno-builtin'
+-  fi
+-  
+-fi
+-
+-# Check for any special shared library compilation flags.
+-if test -n "$special_shlib_compile_flags"; then
+-  echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2
+-  if echo "$old_CC $old_CFLAGS " | egrep -e "[        ]$special_shlib_compile_flags[  ]" >/dev/null; then :
+-  else
+-    echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2
+-    can_build_shared=no
+-  fi
+-fi
+-
+-echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6
+-$rm conftest*
+-echo 'main(){return(0);}' > conftest.c
+-save_LDFLAGS="$LDFLAGS"
+-LDFLAGS="$LDFLAGS $link_static_flag"
+-echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5
+-if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+-  echo "$ac_t$link_static_flag" 1>&6
+-else
+-  echo "$ac_t"none 1>&6
+-  link_static_flag=
+-fi
+-LDFLAGS="$save_LDFLAGS"
+-$rm conftest*
+-
+-if test -z "$LN_S"; then
+-  # Check to see if we can use ln -s, or we need hard links.
+-  echo $ac_n "checking whether ln -s works... $ac_c" 1>&6
+-  $rm conftest.dat
+-  if ln -s X conftest.dat 2>/dev/null; then
+-    $rm conftest.dat
+-    LN_S="ln -s"
+-  else
+-    LN_S=ln
+-  fi
+-  if test "$LN_S" = "ln -s"; then
+-    echo "$ac_t"yes 1>&6
+-  else
+-    echo "$ac_t"no 1>&6
+-  fi
+-fi
+-
+-# Make sure LD is an absolute path.
+-if test -z "$LD"; then
+-  ac_prog=ld
+-  if test "$with_gcc" = yes; then
+-    # Check if gcc -print-prog-name=ld gives a path.
+-    echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
+-    echo "$progname:991: checking for ld used by GCC" >&5
+-    ac_prog=`($CC -print-prog-name=ld) 2>&5`
+-    case "$ac_prog" in
+-    # Accept absolute paths.
+-    [\\/]* | [A-Za-z]:[\\/]*)
+-      re_direlt='/[^/][^/]*/\.\./'
+-      # Canonicalize the path of ld
+-      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+-      ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+-      done
+-      test -z "$LD" && LD="$ac_prog"
+-      ;;
+-    "")
+-      # If it fails, then pretend we are not using GCC.
+-      ac_prog=ld
+-      ;;
+-    *)
+-      # If it is relative, then search for the first ld in PATH.
+-      with_gnu_ld=unknown
+-      ;;
+-    esac
+-  elif test "$with_gnu_ld" = yes; then
+-    echo $ac_n "checking for GNU ld... $ac_c" 1>&6
+-    echo "$progname:1015: checking for GNU ld" >&5
+-  else
+-    echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
+-    echo "$progname:1018: checking for non-GNU ld" >&5
+-  fi
+-
+-  if test -z "$LD"; then
+-    IFS="${IFS=       }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+-    for ac_dir in $PATH; do
+-      test -z "$ac_dir" && ac_dir=.
+-      if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+-      LD="$ac_dir/$ac_prog"
+-      # Check to see if the program is GNU ld.  I'd rather use --version,
+-      # but apparently some GNU ld's only accept -v.
+-      # Break only if it was the GNU/non-GNU ld that we prefer.
+-      if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+-        test "$with_gnu_ld" != no && break
+-      else
+-        test "$with_gnu_ld" != yes && break
+-      fi
+-      fi
+-    done
+-    IFS="$ac_save_ifs"
+-  fi
+-
+-  if test -n "$LD"; then
+-    echo "$ac_t$LD" 1>&6
+-  else
+-    echo "$ac_t"no 1>&6
+-  fi
+-
+-  if test -z "$LD"; then
+-    echo "$progname: error: no acceptable ld found in \$PATH" 1>&2
+-    exit 1
+-  fi
+-fi
+-
+-# Check to see if it really is or is not GNU ld.
+-echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6
+-# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+-  with_gnu_ld=yes
+-else
+-  with_gnu_ld=no
+-fi
+-echo "$ac_t$with_gnu_ld" 1>&6
+-
+-# See if the linker supports building shared libraries.
+-echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6
+-
+-allow_undefined_flag=
+-no_undefined_flag=
+-need_lib_prefix=unknown
+-need_version=unknown
+-# when you set need_version to no, make sure it does not cause -set_version
+-# flags to be left without arguments
+-archive_cmds=
+-archive_expsym_cmds=
+-old_archive_from_new_cmds=
+-export_dynamic_flag_spec=
+-whole_archive_flag_spec=
+-thread_safe_flag_spec=
+-hardcode_libdir_flag_spec=
+-hardcode_libdir_separator=
+-hardcode_direct=no
+-hardcode_minus_L=no
+-hardcode_shlibpath_var=unsupported
+-runpath_var=
+-always_export_symbols=no
+-export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
+-# include_expsyms should be a list of space-separated symbols to be *always*
+-# included in the symbol list
+-include_expsyms=
+-# exclude_expsyms can be an egrep regular expression of symbols to exclude
+-# it will be wrapped by ` (' and `)$', so one must not match beginning or
+-# end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+-# as well as any symbol that contains `d'.
+-exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+-# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+-# platforms (ab)use it in PIC code, but their linkers get confused if
+-# the symbol is explicitly referenced.  Since portable code cannot
+-# rely on this symbol name, it's probably fine to never include it in
+-# preloaded symbol tables.
+-
+-case "$host_os" in
+-cygwin* | mingw*)
+-  # FIXME: the MSVC++ port hasn't been tested in a loooong time
+-  # When not using gcc, we currently assume that we are using
+-  # Microsoft Visual C++.
+-  if test "$with_gcc" != yes; then
+-    with_gnu_ld=no
+-  fi
+-  ;;
+-
+-esac
+-
+-ld_shlibs=yes
+-if test "$with_gnu_ld" = yes; then
+-  # If archive_cmds runs LD, not CC, wlarc should be empty
+-  wlarc='${wl}'
+-
+-  # See if GNU ld supports shared libraries.
+-  case "$host_os" in
+-  aix3* | aix4*)
+-    # On AIX, the GNU linker is very broken
+-    ld_shlibs=no
+-    cat <<EOF 1>&2
+-
+-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+-*** to be unable to reliably create shared libraries on AIX.
+-*** Therefore, libtool is disabling shared libraries support.  If you
+-*** really care for shared libraries, you may want to modify your PATH
+-*** so that a non-GNU linker is found, and then restart.
+-
+-EOF
+-    ;;
+-
+-  amigaos*)
+-    archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
+-    hardcode_libdir_flag_spec='-L$libdir'
+-    hardcode_minus_L=yes
+-
+-    # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+-    # that the semantics of dynamic libraries on AmigaOS, at least up
+-    # to version 4, is to share data among multiple programs linked
+-    # with the same dynamic library.  Since this doesn't match the
+-    # behavior of shared libraries on other platforms, we can use
+-    # them.
+-    ld_shlibs=no
+-    ;;
+-
+-  beos*)
+-    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+-      allow_undefined_flag=unsupported
+-      # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+-      # support --undefined.  This deserves some investigation.  FIXME
+-      archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+-    else
+-      ld_shlibs=no
+-    fi
+-    ;;
+-
+-  cygwin* | mingw*)
+-    # hardcode_libdir_flag_spec is actually meaningless, as there is
+-    # no search path for DLLs.
+-    hardcode_libdir_flag_spec='-L$libdir'
+-    allow_undefined_flag=unsupported
+-    always_export_symbols=yes
+-
+-    # Extract the symbol export list from an `--export-all' def file,
+-    # then regenerate the def file from the symbol export list, so that
+-    # the compiled dll only exports the symbol export list.
+-    export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
+-      test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~
+-      $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def  $objdir/$soname-ltdll.$objext $libobjs $convenience~
+-      sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]* ; *//" < $objdir/$soname-def > $export_symbols'
+-
+-    archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~
+-      _lt_hint=1;
+-      for symbol in `cat $export_symbols`; do
+-      echo "  \$symbol @ \$_lt_hint ; " >> $objdir/$soname-def;
+-      _lt_hint=`expr 1 + \$_lt_hint`;
+-      done~
+-      test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
+-      test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~
+-      $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
+-      $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
+-      $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
+-      $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
+-      $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
+-
+-      old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a' 
+-    ;;
+-
+-  netbsd*)
+-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+-      archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+-      archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+-    else
+-      archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib'
+-      # can we support soname and/or expsyms with a.out? -oliva
+-    fi
+-    ;;
+-
+-  solaris* | sysv5*)
+-    if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+-      ld_shlibs=no
+-      cat <<EOF 1>&2
+-
+-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+-*** create shared libraries on Solaris systems.  Therefore, libtool
+-*** is disabling shared libraries support.  We urge you to upgrade GNU
+-*** binutils to release 2.9.1 or newer.  Another option is to modify
+-*** your PATH or compiler configuration so that the native linker is
+-*** used, and then restart.
+-
+-EOF
+-    elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+-      archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+-      archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+-    else
+-      ld_shlibs=no
+-    fi
+-    ;;      
+-
+-  sunos4*)
+-    archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linkopts'
+-    wlarc=
+-    hardcode_direct=yes
+-    hardcode_shlibpath_var=no
+-    ;;
+-
+-  *)
+-    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+-      archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+-      archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+-    else
+-      ld_shlibs=no
+-    fi
+-    ;;
+-  esac
+-
+-  if test "$ld_shlibs" = yes; then
+-    runpath_var=LD_RUN_PATH
+-    hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+-    export_dynamic_flag_spec='${wl}--export-dynamic'
+-    case $host_os in
+-    cygwin* | mingw*)
+-      # dlltool doesn't understand --whole-archive et. al.
+-      whole_archive_flag_spec=
+-      ;;
+-    *)
+-      # ancient GNU ld didn't support --whole-archive et. al.
+-      if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
+-        whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+-      else
+-        whole_archive_flag_spec=
+-      fi
+-      ;;
+-    esac
+-  fi
+-else
+-  # PORTME fill in a description of your system's linker (not GNU ld)
+-  case "$host_os" in
+-  aix3*)
+-    allow_undefined_flag=unsupported
+-    always_export_symbols=yes
+-    archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
+-    # Note: this linker hardcodes the directories in LIBPATH if there
+-    # are no directories specified by -L.
+-    hardcode_minus_L=yes
+-    if test "$with_gcc" = yes && test -z "$link_static_flag"; then
+-      # Neither direct hardcoding nor static linking is supported with a
+-      # broken collect2.
+-      hardcode_direct=unsupported
+-    fi
+-    ;;
+-
+-  aix4*)
+-    hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib'
+-    hardcode_libdir_separator=':'
+-    if test "$with_gcc" = yes; then
+-      collect2name=`${CC} -print-prog-name=collect2`
+-      if test -f "$collect2name" && \
+-       strings "$collect2name" | grep resolve_lib_name >/dev/null
+-      then
+-      # We have reworked collect2
+-      hardcode_direct=yes
+-      else
+-      # We have old collect2
+-      hardcode_direct=unsupported
+-      # It fails to find uninstalled libraries when the uninstalled
+-      # path is not listed in the libpath.  Setting hardcode_minus_L
+-      # to unsupported forces relinking
+-      hardcode_minus_L=yes
+-      hardcode_libdir_flag_spec='-L$libdir'
+-      hardcode_libdir_separator=
+-      fi
+-      shared_flag='-shared'
+-    else
+-      shared_flag='${wl}-bM:SRE'
+-      hardcode_direct=yes
+-    fi
+-    allow_undefined_flag=' ${wl}-berok'
+-    archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}'
+-    archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}'
+-    case "$host_os" in aix4.[01]|aix4.[01].*)
+-      # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on
+-      always_export_symbols=yes ;;
+-    esac
+-   ;;
+-
+-  amigaos*)
+-    archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
+-    hardcode_libdir_flag_spec='-L$libdir'
+-    hardcode_minus_L=yes
+-    # see comment about different semantics on the GNU ld section
+-    ld_shlibs=no
+-    ;;
+-
+-  cygwin* | mingw*)
+-    # When not using gcc, we currently assume that we are using
+-    # Microsoft Visual C++.
+-    # hardcode_libdir_flag_spec is actually meaningless, as there is
+-    # no search path for DLLs.
+-    hardcode_libdir_flag_spec=' '
+-    allow_undefined_flag=unsupported
+-    # Tell ltmain to make .lib files, not .a files.
+-    libext=lib
+-    # FIXME: Setting linknames here is a bad hack.
+-    archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+-    # The linker will automatically build a .lib file if we build a DLL.
+-    old_archive_from_new_cmds='true'
+-    # FIXME: Should let the user specify the lib program.
+-    old_archive_cmds='lib /OUT:$oldlib$oldobjs'
+-    fix_srcfile_path='`cygpath -w $srcfile`'
+-    ;;
+-
+-  freebsd1*)
+-    ld_shlibs=no
+-    ;;
+-
+-  # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+-  # support.  Future versions do this automatically, but an explicit c++rt0.o
+-  # does not break anything, and helps significantly (at the cost of a little
+-  # extra space).
+-  freebsd2.2*)
+-    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o'
+-    hardcode_libdir_flag_spec='-R$libdir'
+-    hardcode_direct=yes
+-    hardcode_shlibpath_var=no
+-    ;;
+-
+-  # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+-  freebsd2*)
+-    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
+-    hardcode_direct=yes
+-    hardcode_minus_L=yes
+-    hardcode_shlibpath_var=no
+-    ;;
+-
+-  # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+-  freebsd*)
+-    archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts'
+-    hardcode_libdir_flag_spec='-R$libdir'
+-    hardcode_direct=yes
+-    hardcode_shlibpath_var=no
+-    ;;
+-
+-  hpux9* | hpux10* | hpux11*)
+-    case "$host_os" in
+-    hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;;
+-    *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;;
+-    esac
+-    hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+-    hardcode_libdir_separator=:
+-    hardcode_direct=yes
+-    hardcode_minus_L=yes # Not in the search PATH, but as the default
+-                       # location of the library.
+-    export_dynamic_flag_spec='${wl}-E'
+-    ;;
+-
+-  irix5* | irix6*)
+-    if test "$with_gcc" = yes; then
+-      archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+-    else
+-      archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+-    fi
+-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+-    hardcode_libdir_separator=:
+-    ;;
+-
+-  netbsd*)
+-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'  # a.out
+-    else
+-      archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts'      # ELF
+-    fi
+-    hardcode_libdir_flag_spec='${wl}-R$libdir'
+-    hardcode_direct=yes
+-    hardcode_shlibpath_var=no
+-    ;;
+-
+-  openbsd*)
+-    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
+-    hardcode_libdir_flag_spec='-R$libdir'
+-    hardcode_direct=yes
+-    hardcode_shlibpath_var=no
+-    ;;
+-
+-  os2*)
+-    hardcode_libdir_flag_spec='-L$libdir'
+-    hardcode_minus_L=yes
+-    allow_undefined_flag=unsupported
+-    archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def'
+-    old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
+-    ;;
+-
+-  osf3*)
+-    if test "$with_gcc" = yes; then
+-      allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+-      archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+-    else
+-      allow_undefined_flag=' -expect_unresolved \*'
+-      archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+-    fi
+-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+-    hardcode_libdir_separator=:
+-    ;;
+-
+-  osf4* | osf5*)  # As osf3* with the addition of the -msym flag
+-    if test "$with_gcc" = yes; then
+-      allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+-      archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+-    else
+-      allow_undefined_flag=' -expect_unresolved \*'
+-      archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+-    fi
+-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+-    hardcode_libdir_separator=:
+-    ;;
+-
+-  sco3.2v5*)
+-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+-    hardcode_shlibpath_var=no
+-    runpath_var=LD_RUN_PATH
+-    hardcode_runpath_var=yes
+-    ;;
+-
+-  solaris*)
+-    no_undefined_flag=' -z text'
+-    # $CC -shared without GNU ld will not create a library from C++
+-    # object files and a static libstdc++, better avoid it by now
+-    archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
+-    archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+-              $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
+-    hardcode_libdir_flag_spec='-R$libdir'
+-    hardcode_shlibpath_var=no
+-    case "$host_os" in
+-    solaris2.[0-5] | solaris2.[0-5].*) ;;
+-    *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+-      whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+-    esac
+-    ;;
+-
+-  sunos4*)
+-    archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts'
+-    hardcode_libdir_flag_spec='-L$libdir'
+-    hardcode_direct=yes
+-    hardcode_minus_L=yes
+-    hardcode_shlibpath_var=no
+-    ;;
+-
+-  sysv4)
+-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+-    runpath_var='LD_RUN_PATH'
+-    hardcode_shlibpath_var=no
+-    hardcode_direct=no #Motorola manual says yes, but my tests say they lie 
+-    ;;  
+-
+-  sysv4.3*)
+-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+-    hardcode_shlibpath_var=no
+-    export_dynamic_flag_spec='-Bexport'
+-    ;;
+-
+-  sysv5*)
+-    no_undefined_flag=' -z text'
+-    # $CC -shared without GNU ld will not create a library from C++
+-    # object files and a static libstdc++, better avoid it by now
+-    archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
+-    archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+-              $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
+-    hardcode_libdir_flag_spec=
+-    hardcode_shlibpath_var=no
+-    runpath_var='LD_RUN_PATH'
+-    ;;
+-
+-  uts4*)
+-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+-    hardcode_libdir_flag_spec='-L$libdir'
+-    hardcode_shlibpath_var=no
+-    ;;
+-
+-  dgux*)
+-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+-    hardcode_libdir_flag_spec='-L$libdir'
+-    hardcode_shlibpath_var=no
+-    ;;
+-
+-  sysv4*MP*)
+-    if test -d /usr/nec; then
+-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+-      hardcode_shlibpath_var=no
+-      runpath_var=LD_RUN_PATH
+-      hardcode_runpath_var=yes
+-      ld_shlibs=yes
+-    fi
+-    ;;
+-
+-  sysv4.2uw2*)
+-    archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts'
+-    hardcode_direct=yes
+-    hardcode_minus_L=no
+-    hardcode_shlibpath_var=no
+-    hardcode_runpath_var=yes
+-    runpath_var=LD_RUN_PATH
+-    ;;
+-
+-  unixware7*)
+-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+-    runpath_var='LD_RUN_PATH'
+-    hardcode_shlibpath_var=no
+-    ;;
+-
+-  *)
+-    ld_shlibs=no
+-    ;;
+-  esac
+-fi
+-echo "$ac_t$ld_shlibs" 1>&6
+-test "$ld_shlibs" = no && can_build_shared=no
+-
+-if test -z "$NM"; then
+-  echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6
+-  case "$NM" in
+-  [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path.
+-  *)
+-    IFS="${IFS=       }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+-    for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do
+-      test -z "$ac_dir" && ac_dir=.
+-      if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext; then
+-      # Check to see if the nm accepts a BSD-compat flag.
+-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+-      #   nm: unknown option "B" ignored
+-      if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+-        NM="$ac_dir/nm -B"
+-        break
+-      elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+-        NM="$ac_dir/nm -p"
+-        break
+-      else
+-        NM=${NM="$ac_dir/nm"} # keep the first match, but
+-        continue # so that we can try to find one that supports BSD flags
+-      fi
+-      fi
+-    done
+-    IFS="$ac_save_ifs"
+-    test -z "$NM" && NM=nm
+-    ;;
+-  esac
+-  echo "$ac_t$NM" 1>&6
+-fi
+-
+-# Check for command to grab the raw symbol name followed by C symbol from nm.
+-echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6
+-
+-# These are sane defaults that work on at least a few old systems.
+-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+-
+-# Character class describing NM global symbol codes.
+-symcode='[BCDEGRST]'
+-
+-# Regexp to match symbols that can be accessed directly from C.
+-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+-
+-# Transform the above into a raw symbol and a C symbol.
+-symxfrm='\1 \2\3 \3'
+-
+-# Transform an extracted symbol line into a proper C declaration
+-global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
+-
+-# Define system-specific variables.
+-case "$host_os" in
+-aix*)
+-  symcode='[BCDT]'
+-  ;;
+-cygwin* | mingw*)
+-  symcode='[ABCDGISTW]'
+-  ;;
+-hpux*) # Its linker distinguishes data from code symbols
+-  global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
+-  ;;
+-irix*)
+-  symcode='[BCDEGRST]'
+-  ;;
+-solaris*)
+-  symcode='[BDT]'
+-  ;;
+-sysv4)
+-  symcode='[DFNSTU]'
+-  ;;
+-esac
+-
+-# If we're using GNU nm, then use its standard symbol codes.
+-if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
+-  symcode='[ABCDGISTW]'
+-fi
+-
+-# Try without a prefix undercore, then with it.
+-for ac_symprfx in "" "_"; do
+-
+-  # Write the raw and C identifiers.
+-  global_symbol_pipe="sed -n -e 's/^.*[       ]\($symcode\)[  ][      ]*\($ac_symprfx\)$sympat$/$symxfrm/p'"
+-
+-  # Check to see that the pipe works correctly.
+-  pipe_works=no
+-  $rm conftest*
+-  cat > conftest.c <<EOF
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-char nm_test_var;
+-void nm_test_func(){}
+-#ifdef __cplusplus
+-}
+-#endif
+-main(){nm_test_var='a';nm_test_func();return(0);}
+-EOF
+-
+-  echo "$progname:1635: checking if global_symbol_pipe works" >&5
+-  if { (eval echo $progname:1636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
+-    # Now try to grab the symbols.
+-    nlist=conftest.nm
+-    if { echo "$progname:1639: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
+-
+-      # Try sorting and uniquifying the output.
+-      if sort "$nlist" | uniq > "$nlist"T; then
+-      mv -f "$nlist"T "$nlist"
+-      else
+-      rm -f "$nlist"T
+-      fi
+-
+-      # Make sure that we snagged all the symbols we need.
+-      if egrep ' nm_test_var$' "$nlist" >/dev/null; then
+-      if egrep ' nm_test_func$' "$nlist" >/dev/null; then
+-        cat <<EOF > conftest.c
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+-EOF
+-        # Now generate the symbol file.
+-        eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c'
+-
+-        cat <<EOF >> conftest.c
+-#if defined (__STDC__) && __STDC__
+-# define lt_ptr_t void *
+-#else
+-# define lt_ptr_t char *
+-# define const
+-#endif
+-
+-/* The mapping between symbol names and symbols. */
+-const struct {
+-  const char *name;
+-  lt_ptr_t address;
+-}
+-lt_preloaded_symbols[] =
+-{
+-EOF
+-        sed 's/^. \(.*\) \(.*\)$/  {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c
+-        cat <<\EOF >> conftest.c
+-  {0, (lt_ptr_t) 0}
+-};
+-
+-#ifdef __cplusplus
+-}
+-#endif
+-EOF
+-        # Now try linking the two files.
+-        mv conftest.$objext conftstm.$objext
+-        save_LIBS="$LIBS"
+-        save_CFLAGS="$CFLAGS"
+-        LIBS="conftstm.$objext"
+-        CFLAGS="$CFLAGS$no_builtin_flag"
+-        if { (eval echo $progname:1691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+-          pipe_works=yes
+-        else
+-          echo "$progname: failed program was:" >&5
+-          cat conftest.c >&5
+-        fi
+-        LIBS="$save_LIBS"
+-      else
+-        echo "cannot find nm_test_func in $nlist" >&5
+-      fi
+-      else
+-      echo "cannot find nm_test_var in $nlist" >&5
+-      fi
+-    else
+-      echo "cannot run $global_symbol_pipe" >&5
+-    fi
+-  else
+-    echo "$progname: failed program was:" >&5
+-    cat conftest.c >&5
+-  fi
+-  $rm conftest* conftst*
+-
+-  # Do not use the global_symbol_pipe unless it works.
+-  if test "$pipe_works" = yes; then
+-    break
+-  else
+-    global_symbol_pipe=
+-  fi
+-done
+-if test "$pipe_works" = yes; then
+-  echo "${ac_t}ok" 1>&6
+-else
+-  echo "${ac_t}failed" 1>&6
+-fi
+-
+-if test -z "$global_symbol_pipe"; then
+-  global_symbol_to_cdecl=
+-fi
+-
+-# Check hardcoding attributes.
+-echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6
+-hardcode_action=
+-if test -n "$hardcode_libdir_flag_spec" || \
+-   test -n "$runpath_var"; then
+-
+-  # We can hardcode non-existant directories.
+-  if test "$hardcode_direct" != no &&
+-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+-     # have to relink, otherwise we might link with an installed library
+-     # when we should be linking with a yet-to-be-installed one
+-     ## test "$hardcode_shlibpath_var" != no &&
+-     test "$hardcode_minus_L" != no; then
+-    # Linking always hardcodes the temporary library directory.
+-    hardcode_action=relink
+-  else
+-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+-    hardcode_action=immediate
+-  fi
+-else
+-  # We cannot hardcode anything, or else we can only hardcode existing
+-  # directories.
+-  hardcode_action=unsupported
+-fi
+-echo "$ac_t$hardcode_action" 1>&6
+-
+-
+-reload_flag=
+-reload_cmds='$LD$reload_flag -o $output$reload_objs'
+-echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6
+-# PORTME Some linkers may need a different reload flag.
+-reload_flag='-r'
+-echo "$ac_t$reload_flag" 1>&6
+-test -n "$reload_flag" && reload_flag=" $reload_flag"
+-
+-# PORTME Fill in your ld.so characteristics
+-library_names_spec=
+-libname_spec='lib$name'
+-soname_spec=
+-postinstall_cmds=
+-postuninstall_cmds=
+-finish_cmds=
+-finish_eval=
+-shlibpath_var=
+-shlibpath_overrides_runpath=unknown
+-version_type=none
+-dynamic_linker="$host_os ld.so"
+-sys_lib_dlsearch_path_spec="/lib /usr/lib"
+-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+-file_magic_cmd=
+-file_magic_test_file=
+-deplibs_check_method='unknown'
+-# Need to set the preceding variable on all platforms that support
+-# interlibrary dependencies.
+-# 'none' -- dependencies not supported.
+-# `unknown' -- same as none, but documents that we really don't know.
+-# 'pass_all' -- all dependencies passed with no checks.
+-# 'test_compile' -- check by making test program.
+-# 'file_magic [regex]' -- check by looking for files in library path
+-# which responds to the $file_magic_cmd with a given egrep regex.
+-# If you have `file' or equivalent on your system and you're not sure
+-# whether `pass_all' will *always* work, you probably want this one.
+-echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
+-case "$host_os" in
+-aix3*)
+-  version_type=linux
+-  library_names_spec='${libname}${release}.so$versuffix $libname.a'
+-  shlibpath_var=LIBPATH
+-
+-  # AIX has no versioning support, so we append a major version to the name.
+-  soname_spec='${libname}${release}.so$major'
+-  ;;
+-
+-aix4*)
+-  version_type=linux
+-  # AIX has no versioning support, so currently we can not hardcode correct
+-  # soname into executable. Probably we can add versioning support to
+-  # collect2, so additional links can be useful in future.
+-  # We preserve .a as extension for shared libraries though AIX4.2
+-  # and later linker supports .so
+-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a'
+-  shlibpath_var=LIBPATH
+-  deplibs_check_method=pass_all
+-  ;;
+-
+-amigaos*)
+-  library_names_spec='$libname.ixlibrary $libname.a'
+-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+-  ;;
+-
+-beos*)
+-  library_names_spec='${libname}.so'
+-  dynamic_linker="$host_os ld.so"
+-  shlibpath_var=LIBRARY_PATH
+-  deplibs_check_method=pass_all
+-  lt_cv_dlopen="load_add_on"
+-  lt_cv_dlopen_libs=
+-  lt_cv_dlopen_self=yes
+-  ;;
+-
+-bsdi4*)
+-  version_type=linux
+-  need_version=no
+-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+-  soname_spec='${libname}${release}.so$major'
+-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+-  file_magic_cmd=/usr/bin/file
+-  file_magic_test_file=/shlib/libc.so
+-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+-  export_dynamic_flag_spec=-rdynamic
+-  # the default ld.so.conf also contains /usr/contrib/lib and
+-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+-  # libtool to hard-code these into programs
+-  ;;
+-
+-cygwin* | mingw*)
+-  version_type=windows
+-  need_version=no
+-  need_lib_prefix=no
+-  if test "$with_gcc" = yes; then
+-    library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a'
+-  else
+-    library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
+-  fi
+-  dynamic_linker='Win32 ld.exe'
+-  deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+-  file_magic_cmd='${OBJDUMP} -f'
+-  # FIXME: first we should search . and the directory the executable is in
+-  shlibpath_var=PATH
+-  lt_cv_dlopen="LoadLibrary"
+-  lt_cv_dlopen_libs=
+-  ;;
+-
+-freebsd1*)
+-  dynamic_linker=no
+-  ;;
+-  
+-freebsd*)
+-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+-  version_type=freebsd-$objformat
+-  case "$version_type" in
+-    freebsd-elf*)
+-      deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
+-      file_magic_cmd=/usr/bin/file
+-      file_magic_test_file=`echo /usr/lib/libc.so*`
+-      library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+-      need_version=no
+-      need_lib_prefix=no
+-      ;;
+-    freebsd-*)
+-      deplibs_check_method=unknown
+-      library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
+-      need_version=yes
+-      ;;
+-  esac
+-  shlibpath_var=LD_LIBRARY_PATH
+-  case "$host_os" in
+-  freebsd2* | freebsd3.[01]* | freebsdelf3.[01]*)
+-    shlibpath_overrides_runpath=yes
+-    ;;
+-  *) # from 3.2 on
+-    shlibpath_overrides_runpath=no
+-    ;;
+-  esac
+-  ;;
+-
+-gnu*)
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
+-  soname_spec='${libname}${release}.so$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  ;;
+-
+-hpux9* | hpux10* | hpux11*)
+-  # Give a soname corresponding to the major version so that dld.sl refuses to
+-  # link against other versions.
+-  dynamic_linker="$host_os dld.sl"
+-  version_type=sunos
+-  need_lib_prefix=no
+-  need_version=no
+-  shlibpath_var=SHLIB_PATH
+-  shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+-  library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
+-  soname_spec='${libname}${release}.sl$major'
+-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+-  postinstall_cmds='chmod 555 $lib'
+-  ;;
+-
+-irix5* | irix6*)
+-  version_type=irix
+-  need_lib_prefix=no
+-  need_version=no
+-  soname_spec='${libname}${release}.so.$major'
+-  library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so'
+-  case "$host_os" in
+-  irix5*)
+-    libsuff= shlibsuff=
+-    # this will be overridden with pass_all, but let us keep it just in case
+-    deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+-    ;;
+-  *)
+-    case "$LD" in # libtool.m4 will add one of these switches to LD
+-    *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
+-    *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
+-    *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
+-    *) libsuff= shlibsuff= libmagic=never-match;;
+-    esac
+-    ;;
+-  esac
+-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+-  shlibpath_overrides_runpath=no
+-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+-  file_magic_cmd=/usr/bin/file
+-  file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+-  deplibs_check_method='pass_all'
+-  ;;
+-
+-# No shared lib support for Linux oldld, aout, or coff.
+-linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
+-  dynamic_linker=no
+-  ;;
+-
+-# This must be Linux ELF.
+-linux-gnu*)
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+-  soname_spec='${libname}${release}.so$major'
+-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=no
+-  deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+-  file_magic_cmd=/usr/bin/file
+-  file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+-
+-  if test -f /lib/ld.so.1; then
+-    dynamic_linker='GNU ld.so'
+-  else
+-    # Only the GNU ld.so supports shared libraries on MkLinux.
+-    case "$host_cpu" in
+-    powerpc*) dynamic_linker=no ;;
+-    *) dynamic_linker='Linux ld.so' ;;
+-    esac
+-  fi
+-  ;;
+-
+-netbsd*)
+-  version_type=sunos
+-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+-    library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+-    dynamic_linker='NetBSD (a.out) ld.so'
+-  else
+-    library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
+-    soname_spec='${libname}${release}.so$major'
+-    dynamic_linker='NetBSD ld.elf_so'
+-  fi
+-  shlibpath_var=LD_LIBRARY_PATH
+-  ;;
+-
+-openbsd*)
+-  version_type=sunos
+-  if test "$with_gnu_ld" = yes; then
+-    need_lib_prefix=no
+-    need_version=no
+-  fi
+-  library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  ;;
+-
+-os2*)
+-  libname_spec='$name'
+-  need_lib_prefix=no
+-  library_names_spec='$libname.dll $libname.a'
+-  dynamic_linker='OS/2 ld.exe'
+-  shlibpath_var=LIBPATH
+-  ;;
+-
+-osf3* | osf4* | osf5*)
+-  version_type=osf
+-  need_version=no
+-  soname_spec='${libname}${release}.so'
+-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  # this will be overridden with pass_all, but let us keep it just in case
+-  deplibs_check_method='file_magic COFF format alpha shared library'
+-  file_magic_cmd=/usr/bin/file
+-  file_magic_test_file=/shlib/libc.so
+-  deplibs_check_method='pass_all'
+-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+-  ;;
+-
+-sco3.2v5*)
+-  version_type=osf
+-  soname_spec='${libname}${release}.so$major'
+-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  ;;
+-
+-solaris*)
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+-  soname_spec='${libname}${release}.so$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=yes
+-  # ldd complains unless libraries are executable
+-  postinstall_cmds='chmod +x $lib'
+-  deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib"
+-  file_magic_cmd=/usr/bin/file
+-  file_magic_test_file=/lib/libc.so
+-  ;;
+-
+-sunos4*)
+-  version_type=sunos
+-  library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  shlibpath_overrides_runpath=yes
+-  if test "$with_gnu_ld" = yes; then
+-    need_lib_prefix=no
+-  fi
+-  need_version=yes
+-  ;;
+-
+-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+-  version_type=linux
+-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+-  soname_spec='${libname}${release}.so$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  case "$host_vendor" in
+-    ncr)
+-      deplibs_check_method='pass_all'
+-      ;;
+-    motorola)
+-      need_lib_prefix=no
+-      need_version=no
+-      shlibpath_overrides_runpath=no
+-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+-      deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+-      file_magic_cmd=/usr/bin/file
+-      file_magic_test_file=`echo /usr/lib/libc.so*`
+-      ;;
+-  esac
+-  ;;
+-
+-uts4*)
+-  version_type=linux
+-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+-  soname_spec='${libname}${release}.so$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  ;;
+-
+-dgux*)
+-  version_type=linux
+-  need_lib_prefix=no
+-  need_version=no
+-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+-  soname_spec='${libname}${release}.so$major'
+-  shlibpath_var=LD_LIBRARY_PATH
+-  ;;
+-
+-sysv4*MP*)
+-  if test -d /usr/nec ;then
+-    version_type=linux
+-    library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
+-    soname_spec='$libname.so.$major'
+-    shlibpath_var=LD_LIBRARY_PATH
+-  fi
+-  ;;
+-
+-*)
+-  dynamic_linker=no
+-  ;;
+-esac
+-echo "$ac_t$dynamic_linker" 1>&6
+-test "$dynamic_linker" = no && can_build_shared=no
+-
+-# Report the final consequences.
+-echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6
+-
+-# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in
+-# configure.in, otherwise build static only libraries.
+-case "$host_os" in
+-cygwin* | mingw* | os2*)
+-  if test x$can_build_shared = xyes; then
+-    test x$enable_win32_dll = xno && can_build_shared=no
+-    echo "checking if package supports dlls... $can_build_shared" 1>&6
+-  fi
+-;;
+-esac
+-
+-if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then
+-  case "$deplibs_check_method" in
+-  "file_magic "*)
+-    file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+-    if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+-       egrep "$file_magic_regex" > /dev/null; then
+-      :
+-    else
+-      cat <<EOF 1>&2
+-
+-*** Warning: the command libtool uses to detect shared libraries,
+-*** $file_magic_cmd, produces output that libtool cannot recognize.
+-*** The result is that libtool may fail to recognize shared libraries
+-*** as such.  This will affect the creation of libtool libraries that
+-*** depend on shared libraries, but programs linked with such libtool
+-*** libraries will work regardless of this problem.  Nevertheless, you
+-*** may want to report the problem to your system manager and/or to
+-*** bug-libtool@gnu.org
+-
+-EOF
+-    fi ;;
+-  esac
+-fi
+-
+-echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6
+-test "$can_build_shared" = "no" && enable_shared=no
+-
+-# On AIX, shared libraries and static libraries use the same namespace, and
+-# are all built from PIC.
+-case "$host_os" in
+-aix3*)
+-  test "$enable_shared" = yes && enable_static=no
+-  if test -n "$RANLIB"; then
+-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+-    postinstall_cmds='$RANLIB $lib'
+-  fi
+-  ;;
+-
+-aix4*)
+-  test "$enable_shared" = yes && enable_static=no
+-  ;;
+-esac
+-
+-echo "$ac_t$enable_shared" 1>&6
+-
+-# Make sure either enable_shared or enable_static is yes.
+-test "$enable_shared" = yes || enable_static=yes
+-
+-echo "checking whether to build static libraries... $enable_static" 1>&6
+-
+-if test "$hardcode_action" = relink; then
+-  # Fast installation is not supported
+-  enable_fast_install=no
+-elif test "$shlibpath_overrides_runpath" = yes ||
+-     test "$enable_shared" = no; then
+-  # Fast installation is not necessary
+-  enable_fast_install=needless
+-fi
+-
+-echo $ac_n "checking for objdir... $ac_c" 1>&6
+-rm -f .libs 2>/dev/null
+-mkdir .libs 2>/dev/null
+-if test -d .libs; then
+-  objdir=.libs
+-else
+-  # MS-DOS does not allow filenames that begin with a dot.
+-  objdir=_libs
+-fi
+-rmdir .libs 2>/dev/null
+-echo "$ac_t$objdir" 1>&6
+-
+-if test "x$enable_dlopen" != xyes; then
+-  enable_dlopen=unknown
+-  enable_dlopen_self=unknown
+-  enable_dlopen_self_static=unknown
+-else
+-if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then
+-  lt_cv_dlopen=no lt_cv_dlopen_libs=
+-echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
+-echo "$progname:2212: checking for dlopen in -ldl" >&5
+-ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
+-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  ac_save_LIBS="$LIBS"
+-LIBS="-ldl  $LIBS"
+-cat > conftest.$ac_ext <<EOF
+-#line 2220 "ltconfig"
+-/* Override any gcc2 internal prototype to avoid an error.  */
+-/* We use char because int might match the return type of a gcc2
+-    builtin and then its argument prototype would still apply.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char dlopen();
+-
+-int main() {
+-dlopen()
+-; return 0; }
+-EOF
+-if { (eval echo $progname:2233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=yes"
+-else
+-  echo "$progname: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=no"
+-fi
+-rm -f conftest*
+-LIBS="$ac_save_LIBS"
+-
+-fi
+-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
+-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+-else
+-  echo "$ac_t""no" 1>&6
+-echo $ac_n "checking for dlopen""... $ac_c" 1>&6
+-echo "$progname:2252: checking for dlopen" >&5
+-if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  cat > conftest.$ac_ext <<EOF
+-#line 2257 "ltconfig"
+-/* System header to define __stub macros and hopefully few prototypes,
+-    which can conflict with char dlopen(); below.  */
+-#include <assert.h>
+-/* Override any gcc2 internal prototype to avoid an error.  */
+-/* We use char because int might match the return type of a gcc2
+-    builtin and then its argument prototype would still apply.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char dlopen();
+-
+-int main() {
+-
+-/* The GNU C library defines this for functions which it implements
+-    to always fail with ENOSYS.  Some functions are actually named
+-    something starting with __ and the normal name is an alias.  */
+-#if defined (__stub_dlopen) || defined (__stub___dlopen)
+-choke me
+-#else
+-dlopen();
+-#endif
+-
+-; return 0; }
+-EOF
+-if { (eval echo $progname:2282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
+-  eval "ac_cv_func_dlopen=yes"
+-else
+-  echo "$progname: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_func_dlopen=no"
+-fi
+-rm -f conftest*
+-fi
+-if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
+-  lt_cv_dlopen="dlopen"
+-else
+-  echo "$ac_t""no" 1>&6
+-echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
+-echo "$progname:2299: checking for dld_link in -ldld" >&5
+-ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'`
+-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  ac_save_LIBS="$LIBS"
+-LIBS="-ldld  $LIBS"
+-cat > conftest.$ac_ext <<EOF
+-#line 2307 "ltconfig"
+-/* Override any gcc2 internal prototype to avoid an error.  */
+-/* We use char because int might match the return type of a gcc2
+-    builtin and then its argument prototype would still apply.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char dld_link();
+-
+-int main() {
+-dld_link()
+-; return 0; }
+-EOF
+-if { (eval echo $progname:2320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=yes"
+-else
+-  echo "$progname: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=no"
+-fi
+-rm -f conftest*
+-LIBS="$ac_save_LIBS"
+-
+-fi
+-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
+-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+-else
+-  echo "$ac_t""no" 1>&6
+-echo $ac_n "checking for shl_load""... $ac_c" 1>&6
+-echo "$progname:2339: checking for shl_load" >&5
+-if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  cat > conftest.$ac_ext <<EOF
+-#line 2344 "ltconfig"
+-/* System header to define __stub macros and hopefully few prototypes,
+-    which can conflict with char shl_load(); below.  */
+-#include <assert.h>
+-/* Override any gcc2 internal prototype to avoid an error.  */
+-/* We use char because int might match the return type of a gcc2
+-    builtin and then its argument prototype would still apply.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char shl_load();
+-
+-int main() {
+-
+-/* The GNU C library defines this for functions which it implements
+-    to always fail with ENOSYS.  Some functions are actually named
+-    something starting with __ and the normal name is an alias.  */
+-#if defined (__stub_shl_load) || defined (__stub___shl_load)
+-choke me
+-#else
+-shl_load();
+-#endif
+-
+-; return 0; }
+-EOF
+-if { (eval echo $progname:2369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
+-  eval "ac_cv_func_shl_load=yes"
+-else
+-  echo "$progname: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_func_shl_load=no"
+-fi
+-rm -f conftest*
+-fi
+-
+-if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
+-  lt_cv_dlopen="shl_load"
+-else
+-  echo "$ac_t""no" 1>&6
+-echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
+-echo "$progname:2387: checking for shl_load in -ldld" >&5
+-ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
+-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  ac_save_LIBS="$LIBS"
+-LIBS="-ldld  $LIBS"
+-cat > conftest.$ac_ext <<EOF
+-#line 2395 "ltconfig"
+-#include "confdefs.h"
+-/* Override any gcc2 internal prototype to avoid an error.  */
+-/* We use char because int might match the return type of a gcc2
+-    builtin and then its argument prototype would still apply.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char shl_load();
+-
+-int main() {
+-shl_load()
+-; return 0; }
+-EOF
+-if { (eval echo $progname:2409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=yes"
+-else
+-  echo "$progname: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=no"
+-fi
+-rm -f conftest*
+-LIBS="$ac_save_LIBS"
+-
+-fi
+-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
+-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+-else
+-  echo "$ac_t""no" 1>&6
+-fi
+-
+-
+-fi
+-
+-    
+-fi
+-
+-  
+-fi
+-
+-
+-fi
+-
+-fi
+-
+-  if test "x$lt_cv_dlopen" != xno; then
+-    enable_dlopen=yes
+-  fi
+-
+-  case "$lt_cv_dlopen" in
+-  dlopen)
+-for ac_hdr in dlfcn.h; do
+-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "$progname:2452: checking for $ac_hdr" >&5
+-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  cat > conftest.$ac_ext <<EOF
+-#line 2457 "ltconfig"
+-#include <$ac_hdr>
+-int fnord = 0;
+-EOF
+-ac_try="$ac_compile >/dev/null 2>conftest.out"
+-{ (eval echo $progname:2462: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+-if test -z "$ac_err"; then
+-  rm -rf conftest*
+-  eval "ac_cv_header_$ac_safe=yes"
+-else
+-  echo "$ac_err" >&5
+-  echo "$progname: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_header_$ac_safe=no"
+-fi
+-rm -f conftest*
+-fi
+-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
+-else
+-  echo "$ac_t""no" 1>&6
+-fi
+-done
+-
+-    if test "x$ac_cv_header_dlfcn_h" = xyes; then
+-      CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+-    fi
+-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+-    LIBS="$lt_cv_dlopen_libs $LIBS"
+-
+-  echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
+-echo "$progname:2490: checking whether a program can dlopen itself" >&5
+-if test "${lt_cv_dlopen_self+set}" = set; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  if test "$cross_compiling" = yes; then
+-    lt_cv_dlopen_self=cross
+-  else
+-    cat > conftest.c <<EOF
+-#line 2498 "ltconfig"
+-
+-#if HAVE_DLFCN_H
+-#include <dlfcn.h>
+-#endif
+-
+-#include <stdio.h>
+-
+-#ifdef RTLD_GLOBAL
+-# define LTDL_GLOBAL  RTLD_GLOBAL
+-#else
+-# ifdef DL_GLOBAL
+-#  define LTDL_GLOBAL DL_GLOBAL
+-# else
+-#  define LTDL_GLOBAL 0
+-# endif
+-#endif
+-
+-/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
+-   find out it does not work in some platform. */
+-#ifndef LTDL_LAZY_OR_NOW
+-# ifdef RTLD_LAZY
+-#  define LTDL_LAZY_OR_NOW    RTLD_LAZY
+-# else
+-#  ifdef DL_LAZY
+-#   define LTDL_LAZY_OR_NOW   DL_LAZY
+-#  else
+-#   ifdef RTLD_NOW
+-#    define LTDL_LAZY_OR_NOW  RTLD_NOW
+-#   else
+-#    ifdef DL_NOW
+-#     define LTDL_LAZY_OR_NOW DL_NOW
+-#    else
+-#     define LTDL_LAZY_OR_NOW 0
+-#    endif
+-#   endif
+-#  endif
+-# endif
+-#endif
+-
+-fnord() { int i=42;}
+-main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
+-    if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
+-             if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } 
+-
+-EOF
+-if { (eval echo $progname:2544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+-then
+-  lt_cv_dlopen_self=yes
+-else
+-  echo "$progname: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -fr conftest*
+-  lt_cv_dlopen_self=no
+-fi
+-rm -fr conftest*
+-fi
+-
+-fi
+-
+-echo "$ac_t""$lt_cv_dlopen_self" 1>&6
+-
+-  if test "$lt_cv_dlopen_self" = yes; then
+-    LDFLAGS="$LDFLAGS $link_static_flag"
+-  echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
+-echo "$progname:2563: checking whether a statically linked program can dlopen itself" >&5
+-if test "${lt_cv_dlopen_self_static+set}" = set; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  if test "$cross_compiling" = yes; then
+-    lt_cv_dlopen_self_static=cross
+-  else
+-    cat > conftest.c <<EOF
+-#line 2571 "ltconfig"
+-
+-#if HAVE_DLFCN_H
+-#include <dlfcn.h>
+-#endif
+-
+-#include <stdio.h>
+-
+-#ifdef RTLD_GLOBAL
+-# define LTDL_GLOBAL  RTLD_GLOBAL
+-#else
+-# ifdef DL_GLOBAL
+-#  define LTDL_GLOBAL DL_GLOBAL
+-# else
+-#  define LTDL_GLOBAL 0
+-# endif
+-#endif
+-
+-/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
+-   find out it does not work in some platform. */
+-#ifndef LTDL_LAZY_OR_NOW
+-# ifdef RTLD_LAZY
+-#  define LTDL_LAZY_OR_NOW    RTLD_LAZY
+-# else
+-#  ifdef DL_LAZY
+-#   define LTDL_LAZY_OR_NOW   DL_LAZY
+-#  else
+-#   ifdef RTLD_NOW
+-#    define LTDL_LAZY_OR_NOW  RTLD_NOW
+-#   else
+-#    ifdef DL_NOW
+-#     define LTDL_LAZY_OR_NOW DL_NOW
+-#    else
+-#     define LTDL_LAZY_OR_NOW 0
+-#    endif
+-#   endif
+-#  endif
+-# endif
+-#endif
+-
+-fnord() { int i=42;}
+-main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
+-    if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
+-    if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } 
+-
+-EOF
+-if { (eval echo $progname:2617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+-then
+-  lt_cv_dlopen_self_static=yes
+-else
+-  echo "$progname: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -fr conftest*
+-  lt_cv_dlopen_self_static=no
+-fi
+-rm -fr conftest*
+-fi
+-
+-fi
+-
+-echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6
+-fi
+-    ;;
+-  esac
+-
+-  case "$lt_cv_dlopen_self" in
+-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+-  *) enable_dlopen_self=unknown ;;
+-  esac
+-
+-  case "$lt_cv_dlopen_self_static" in
+-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+-  *) enable_dlopen_self_static=unknown ;;
+-  esac
+-fi
+-
+-# Copy echo and quote the copy, instead of the original, because it is
+-# used later.
+-ltecho="$echo"
+-if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+-   ltecho="$CONFIG_SHELL \$0 --fallback-echo"
+-fi
+-LTSHELL="$SHELL"
+-
+-LTCONFIG_VERSION="$VERSION"
+-
+-# Only quote variables if we're using ltmain.sh.
+-case "$ltmain" in
+-*.sh)
+-  # Now quote all the things that may contain metacharacters.
+-  for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \
+-    old_LD old_LDFLAGS old_LIBS \
+-    old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \
+-    AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \
+-    reload_flag reload_cmds wl \
+-    pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
+-    thread_safe_flag_spec whole_archive_flag_spec libname_spec \
+-    library_names_spec soname_spec \
+-    RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
+-    old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \
+-    file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \
+-    finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
+-    hardcode_libdir_flag_spec hardcode_libdir_separator  \
+-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+-    compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
+-
+-    case "$var" in
+-    reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
+-    old_postinstall_cmds | old_postuninstall_cmds | \
+-    export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
+-    postinstall_cmds | postuninstall_cmds | \
+-    finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+-      # Double-quote double-evaled strings.
+-      eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+-      ;;
+-    *)
+-      eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+-      ;;
+-    esac
+-  done
+-
+-  case "$ltecho" in
+-  *'\$0 --fallback-echo"')
+-    ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+-    ;;
+-  esac
+-
+-  trap "$rm \"$ofile\"; exit 1" 1 2 15
+-  echo "creating $ofile"
+-  $rm "$ofile"
+-  cat <<EOF > "$ofile"
+-#! $SHELL
+-
+-# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+-# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
+-#
+-# Copyright (C) 1996-1999 Free Software Foundation, Inc.
+-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+-#
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2 of the License, or
+-# (at your option) any later version.
+-#
+-# This program is distributed in the hope that it will be useful, but
+-# WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-# General Public License for more details.
+-#
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-#
+-# As a special exception to the GNU General Public License, if you
+-# distribute this file as part of a program that contains a
+-# configuration script generated by Autoconf, you may include it under
+-# the same distribution terms that you use for the rest of that program.
+-
+-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+-Xsed="sed -e s/^X//"
+-
+-# The HP-UX ksh and POSIX shell print the target directory to stdout
+-# if CDPATH is set.
+-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+-
+-### BEGIN LIBTOOL CONFIG
+-EOF
+-  cfgfile="$ofile"
+-  ;;
+-
+-*)
+-  # Double-quote the variables that need it (for aesthetics).
+-  for var in old_CC old_CFLAGS old_CPPFLAGS \
+-    old_LD old_LDFLAGS old_LIBS \
+-    old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do
+-    eval "$var=\\\"\$var\\\""
+-  done
+-
+-  # Just create a config file.
+-  cfgfile="$ofile.cfg"
+-  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+-  echo "creating $cfgfile"
+-  $rm "$cfgfile"
+-  cat <<EOF > "$cfgfile"
+-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file.
+-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+-EOF
+-  ;;
+-esac
+-
+-cat <<EOF >> "$cfgfile"
+-# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+-#
+-# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\
+-# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\
+-# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\
+-# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\
+-#   $0$ltconfig_args
+-#
+-# Compiler and other test output produced by $progname, useful for
+-# debugging $progname, is in ./config.log if it exists.
+-
+-# The version of $progname that generated this script.
+-LTCONFIG_VERSION=$LTCONFIG_VERSION
+-
+-# Shell to use when invoking shell scripts.
+-SHELL=$LTSHELL
+-
+-# Whether or not to build shared libraries.
+-build_libtool_libs=$enable_shared
+-
+-# Whether or not to build static libraries.
+-build_old_libs=$enable_static
+-
+-# Whether or not to optimize for fast installation.
+-fast_install=$enable_fast_install
+-
+-# The host system.
+-host_alias=$host_alias
+-host=$host
+-
+-# An echo program that does not interpret backslashes.
+-echo=$ltecho
+-
+-# The archiver.
+-AR=$AR
+-
+-# The default C compiler.
+-CC=$CC
+-
+-# The linker used to build libraries.
+-LD=$LD
+-
+-# Whether we need hard or soft links.
+-LN_S=$LN_S
+-
+-# A BSD-compatible nm program.
+-NM=$NM
+-
+-# Used on cygwin: DLL creation program.
+-DLLTOOL="$DLLTOOL"
+-
+-# Used on cygwin: object dumper.
+-OBJDUMP="$OBJDUMP"
+-
+-# Used on cygwin: assembler.
+-AS="$AS"
+-
+-# The name of the directory that contains temporary libtool files.
+-objdir=$objdir
+-
+-# How to create reloadable object files.
+-reload_flag=$reload_flag
+-reload_cmds=$reload_cmds
+-
+-# How to pass a linker flag through the compiler.
+-wl=$wl
+-
+-# Object file suffix (normally "o").
+-objext="$objext"
+-
+-# Old archive suffix (normally "a").
+-libext="$libext"
+-
+-# Executable file suffix (normally "").
+-exeext="$exeext"
+-
+-# Additional compiler flags for building library objects.
+-pic_flag=$pic_flag
+-
+-# Does compiler simultaneously support -c and -o options?
+-compiler_c_o=$compiler_c_o
+-
+-# Can we write directly to a .lo ?
+-compiler_o_lo=$compiler_o_lo
+-
+-# Must we lock files when doing compilation ?
+-need_locks=$need_locks
+-
+-# Do we need the lib prefix for modules?
+-need_lib_prefix=$need_lib_prefix
+-
+-# Do we need a version for libraries?
+-need_version=$need_version
+-
+-# Whether dlopen is supported.
+-dlopen=$enable_dlopen
+-
+-# Whether dlopen of programs is supported.
+-dlopen_self=$enable_dlopen_self
+-
+-# Whether dlopen of statically linked programs is supported.
+-dlopen_self_static=$enable_dlopen_self_static
+-
+-# Compiler flag to prevent dynamic linking.
+-link_static_flag=$link_static_flag
+-
+-# Compiler flag to turn off builtin functions.
+-no_builtin_flag=$no_builtin_flag
+-
+-# Compiler flag to allow reflexive dlopens.
+-export_dynamic_flag_spec=$export_dynamic_flag_spec
+-
+-# Compiler flag to generate shared objects directly from archives.
+-whole_archive_flag_spec=$whole_archive_flag_spec
+-
+-# Compiler flag to generate thread-safe objects.
+-thread_safe_flag_spec=$thread_safe_flag_spec
+-
+-# Library versioning type.
+-version_type=$version_type
+-
+-# Format of library name prefix.
+-libname_spec=$libname_spec
+-
+-# List of archive names.  First name is the real one, the rest are links.
+-# The last name is the one that the linker finds with -lNAME.
+-library_names_spec=$library_names_spec
+-
+-# The coded name of the library, if different from the real name.
+-soname_spec=$soname_spec
+-
+-# Commands used to build and install an old-style archive.
+-RANLIB=$RANLIB
+-old_archive_cmds=$old_archive_cmds
+-old_postinstall_cmds=$old_postinstall_cmds
+-old_postuninstall_cmds=$old_postuninstall_cmds
+-
+-# Create an old-style archive from a shared archive.
+-old_archive_from_new_cmds=$old_archive_from_new_cmds
+-
+-# Commands used to build and install a shared archive.
+-archive_cmds=$archive_cmds
+-archive_expsym_cmds=$archive_expsym_cmds
+-postinstall_cmds=$postinstall_cmds
+-postuninstall_cmds=$postuninstall_cmds
+-
+-# Method to check whether dependent libraries are shared objects.
+-deplibs_check_method=$deplibs_check_method
+-
+-# Command to use when deplibs_check_method == file_magic.
+-file_magic_cmd=$file_magic_cmd
+-
+-# Flag that allows shared libraries with undefined symbols to be built.
+-allow_undefined_flag=$allow_undefined_flag
+-
+-# Flag that forces no undefined symbols.
+-no_undefined_flag=$no_undefined_flag
+-
+-# Commands used to finish a libtool library installation in a directory.
+-finish_cmds=$finish_cmds
+-
+-# Same as above, but a single script fragment to be evaled but not shown.
+-finish_eval=$finish_eval
+-
+-# Take the output of nm and produce a listing of raw symbols and C names.
+-global_symbol_pipe=$global_symbol_pipe
+-
+-# Transform the output of nm in a proper C declaration
+-global_symbol_to_cdecl=$global_symbol_to_cdecl
+-
+-# This is the shared library runtime path variable.
+-runpath_var=$runpath_var
+-
+-# This is the shared library path variable.
+-shlibpath_var=$shlibpath_var
+-
+-# Is shlibpath searched before the hard-coded library search path?
+-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+-
+-# How to hardcode a shared library path into an executable.
+-hardcode_action=$hardcode_action
+-
+-# Flag to hardcode \$libdir into a binary during linking.
+-# This must work even if \$libdir does not exist.
+-hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
+-
+-# Whether we need a single -rpath flag with a separated argument.
+-hardcode_libdir_separator=$hardcode_libdir_separator
+-
+-# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+-# resulting binary.
+-hardcode_direct=$hardcode_direct
+-
+-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+-# resulting binary.
+-hardcode_minus_L=$hardcode_minus_L
+-
+-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+-# the resulting binary.
+-hardcode_shlibpath_var=$hardcode_shlibpath_var
+-
+-# Compile-time system search path for libraries
+-sys_lib_search_path_spec=$sys_lib_search_path_spec
+-
+-# Run-time system search path for libraries
+-sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec
+-
+-# Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path="$fix_srcfile_path"
+-
+-# Set to yes if exported symbols are required.
+-always_export_symbols=$always_export_symbols
+-
+-# The commands to list exported symbols.
+-export_symbols_cmds=$export_symbols_cmds
+-
+-# Symbols that should not be listed in the preloaded symbols.
+-exclude_expsyms=$exclude_expsyms
+-
+-# Symbols that must always be exported.
+-include_expsyms=$include_expsyms
+-
+-EOF
+-
+-case "$ltmain" in
+-*.sh)
+-  echo '### END LIBTOOL CONFIG' >> "$ofile"
+-  echo >> "$ofile"
+-  case "$host_os" in
+-  aix3*)
+-    cat <<\EOF >> "$ofile"
+-
+-# AIX sometimes has problems with the GCC collect2 program.  For some
+-# reason, if we set the COLLECT_NAMES environment variable, the problems
+-# vanish in a puff of smoke.
+-if test "X${COLLECT_NAMES+set}" != Xset; then
+-  COLLECT_NAMES=
+-  export COLLECT_NAMES
+-fi
+-EOF
+-    ;;
+-  esac
+-
+-  # Append the ltmain.sh script.
+-  sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)
+-  # We use sed instead of cat because bash on DJGPP gets confused if
+-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+-  # text mode, it properly converts lines to CR/LF.  This bash problem
+-  # is reportedly fixed, but why not run on old versions too?
+-
+-  chmod +x "$ofile"
+-  ;;
+-
+-*)
+-  # Compile the libtool program.
+-  echo "FIXME: would compile $ltmain"
+-  ;;
+-esac
+-
+-test -n "$cache_file" || exit 0
+-
+-# AC_CACHE_SAVE
+-trap '' 1 2 15
+-cat > confcache <<\EOF
+-# This file is a shell script that caches the results of configure
+-# tests run on this system so they can be shared between configure
+-# scripts and configure runs.  It is not useful on other systems.
+-# If it contains results you don't want to keep, you may remove or edit it.
+-#
+-# By default, configure uses ./config.cache as the cache file,
+-# creating it if it does not exist already.  You can give configure
+-# the --cache-file=FILE option to use a different cache file; that is
+-# what configure does when it calls configure scripts in
+-# subdirectories, so they share the cache.
+-# Giving --cache-file=/dev/null disables caching, for debugging configure.
+-# config.status only pays attention to the cache file if you give it the
+-# --recheck option to rerun configure.
+-#
+-EOF
+-# The following way of writing the cache mishandles newlines in values,
+-# but we know of no workaround that is simple, portable, and efficient.
+-# So, don't put newlines in cache variables' values.
+-# Ultrix sh set writes to stderr and can't be redirected directly,
+-# and sets the high bit in the cache file unless we assign to the vars.
+-(set) 2>&1 |
+-  case `(ac_space=' '; set | grep ac_space) 2>&1` in
+-  *ac_space=\ *)
+-    # `set' does not quote correctly, so add quotes (double-quote substitution
+-    # turns \\\\ into \\, and sed turns \\ into \).
+-    sed -n \
+-      -e "s/'/'\\\\''/g" \
+-      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+-    ;;
+-  *)
+-    # `set' quotes correctly as required by POSIX, so do not add quotes.
+-    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+-    ;;
+-  esac >> confcache
+-if cmp -s $cache_file confcache; then
+-  :
+-else
+-  if test -w $cache_file; then
+-    echo "updating cache $cache_file"
+-    cat confcache > $cache_file
+-  else
+-    echo "not updating unwritable cache $cache_file"
+-  fi
+-fi
+-rm -f confcache
+-
+-exit 0
+-
+-# Local Variables:
+-# mode:shell-script
+-# sh-indentation:2
+-# End:
+diff --git a/libs/xmlrpc-c/src/.cvsignore b/libs/xmlrpc-c/src/.cvsignore
+deleted file mode 100644
+index b808ac3..0000000
+--- a/libs/xmlrpc-c/src/.cvsignore
++++ /dev/null
+@@ -1,6 +0,0 @@
+-Makefile
+-rpctest
+-rpctest.static
+-cpptest
+-efrpctest
+-efrpctest_wrapper
+diff --git a/libs/xmlrpc-c/src/Makefile b/libs/xmlrpc-c/src/Makefile
+index 50514b2..36300e9 100644
+--- a/libs/xmlrpc-c/src/Makefile
++++ b/libs/xmlrpc-c/src/Makefile
+@@ -48,15 +48,18 @@ SHARED_LIBS_TO_INSTALL := $(TARGET_LIBRARY_NAMES)
+ TRANSPORT_MODS =
+ TRANSPORT_LIBDEP =
+ ifeq ($(MUST_BUILD_WININET_CLIENT),yes)
+-  TRANSPORT_MODS += $(BLDDIR)/lib/wininet_transport/xmlrpc_wininet_transport
++  TRANSPORT_MODS += blddir/lib/wininet_transport/xmlrpc_wininet_transport
+   TRANSPORT_LIBDEP += $(shell wininet-config --libs)
+ endif
+ ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
+-  TRANSPORT_MODS += $(BLDDIR)/lib/curl_transport/xmlrpc_curl_transport
++  TRANSPORT_MODS += blddir/lib/curl_transport/xmlrpc_curl_transport
++  TRANSPORT_MODS += blddir/lib/curl_transport/curltransaction
++  TRANSPORT_MODS += blddir/lib/curl_transport/curlmulti
++  TRANSPORT_MODS += blddir/lib/curl_transport/lock_pthread
+   TRANSPORT_LIBDEP += $(shell curl-config --libs)
+ endif
+ ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
+-  TRANSPORT_MODS += $(BLDDIR)/lib/libwww_transport/xmlrpc_libwww_transport
++  TRANSPORT_MODS += blddir/lib/libwww_transport/xmlrpc_libwww_transport
+   TRANSPORT_LIBDEP += $(shell libwww-config --libs)
+ endif
+@@ -66,14 +69,18 @@ ifeq ($(ENABLE_LIBXML2_BACKEND),yes)
+   XML_PARSER_LIBDEP_DEP =
+ else
+   XMLRPC_XML_PARSER = xmlrpc_expat
+-  XML_PARSER_LIBDEP = -L$(BLDDIR)/lib/expat/xmlparse -lxmlrpc_xmlparse
+-  XML_PARSER_LIBDEP_DEP = $(LIBXMLRPC_XMLPARSE)
++  XML_PARSER_LIBDEP = \
++    -Lblddir/lib/expat/xmlparse -lxmlrpc_xmlparse \
++    -Lblddir/lib/expat/xmltok -lxmlrpc_xmltok
++  XML_PARSER_LIBDEP_DEP = $(LIBXMLRPC_XMLPARSE) $(LIBXMLRPC_XMLTOK)
+ endif
+ # LIBxxx_OBJS is the list of object files that make up library libxxx.
+ LIBXMLRPC_MODS = \
+         double \
++      json \
++      parse_datetime \
+       parse_value \
+         resource \
+       trace \
+@@ -130,7 +137,7 @@ all: \
+ # Extra dependencies to make parallel make work in spite of all the submakes
+ # (See top level make file for details)
+ ifeq ($MUST_BUILD_CLIENT),yes)
+-cpp/all: $(BLDDIR)/transport_config.h
++cpp/all: $(BLDDIR)/transport_config.h $(TARGET_SHARED_LE_LIBS)
+ endif
+ #-----------------------------------------------------------------------------
+@@ -160,7 +167,7 @@ $(LIBXMLRPC_SERVER): \
+   $(call shliblefn, libxmlrpc)
+ $(LIBXMLRPC_SERVER): LIBOBJECTS = $(LIBXMLRPC_SERVER_MODS:%=%.osh)
+ $(LIBXMLRPC_SERVER): LIBDEP = \
+-  -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util -L. -lxmlrpc
++   -L. -lxmlrpc $(XML_PARSER_LIBDEP) -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util
+ LIBXMLRPC_SERVER_ABYSS = $(call shlibfn, libxmlrpc_server_abyss)
+@@ -172,10 +179,9 @@ $(LIBXMLRPC_SERVER_ABYSS): \
+   $(call shliblefn, libxmlrpc)
+ $(LIBXMLRPC_SERVER_ABYSS): LIBOBJECTS = $(LIBXMLRPC_SERVER_ABYSS_MODS:%=%.osh)
+ $(LIBXMLRPC_SERVER_ABYSS): LIBDEP = \
+-  -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util \
+   -L. -lxmlrpc_server \
+   -L$(LIBXMLRPC_ABYSS_DIR) -lxmlrpc_abyss \
+-  -lxmlrpc
++  -L. -lxmlrpc $(XML_PARSER_LIBDEP) -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util
+ LIBXMLRPC_SERVER_CGI = $(call shlibfn, libxmlrpc_server_cgi)
+@@ -186,7 +192,8 @@ $(LIBXMLRPC_SERVER_CGI): \
+   $(call shliblefn, libxmlrpc)
+ $(LIBXMLRPC_SERVER_CGI): LIBOBJECTS = $(LIBXMLRPC_SERVER_CGI_MODS:%=%.osh)
+ $(LIBXMLRPC_SERVER_CGI): LIBDEP = \
+-  -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util -L. -lxmlrpc_server -lxmlrpc
++  -L. -lxmlrpc_server \
++  -L. -lxmlrpc $(XML_PARSER_LIBDEP) -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util
+ LIBXMLRPC_CLIENT = $(call shlibfn, libxmlrpc_client)
+@@ -199,10 +206,8 @@ $(LIBXMLRPC_CLIENT): LIBOBJECTS = \
+   $(LIBXMLRPC_CLIENT_MODS:%=%.osh) \
+   $(TRANSPORT_MODS:%=%.osh)
+ $(LIBXMLRPC_CLIENT): LIBDEP = \
+-  -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util \
+-  -L. -lxmlrpc \
+-  $(TRANSPORT_LIBDEP)
+-
++  $(TRANSPORT_LIBDEP) \
++  -L. -lxmlrpc $(XML_PARSER_LIBDEP) -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util
+ libxmlrpc.a: $(LIBXMLRPC_MODS:%=%.o)
+ libxmlrpc.a: LIBOBJECTS = $(LIBXMLRPC_MODS:%=%.o)
+@@ -229,20 +234,20 @@ libxmlrpc_client.a: LIBOBJECTS = \
+ # Rules for these are in common.mk, courtesy of TARGET_MODS:
+ BASIC_INCLUDES = \
+-  -I$(BLDDIR) \
+-  -I$(BLDDIR)/include \
+-  -I$(SRCDIR)/include \
+-  -I$(SRCDIR)/lib/util/include \
++  -Iblddir \
++  -Iblddir/include \
++  -Isrcdir/include \
++  -Isrcdir/lib/util/include \
+ TRANSPORT_INCLUDES = \
+-  -I$($SRCDIR)/lib/wininet_transport \
+-  -I$(SRCDIR)/lib/curl_transport \
+-  -I$(SRCDIR)/lib/libwww_transport \
++  -Isrcdir/lib/wininet_transport \
++  -Isrcdir/lib/curl_transport \
++  -Isrcdir/lib/libwww_transport \
+ ifeq ($(ENABLE_LIBXML2_BACKEND),yes)
+   LIBXML_INCLUDES = $(shell xml2-config --cflags)
+ else
+-  LIBXML_INCLUDES = -I$(SRCDIR)/lib/expat/xmlparse
++  LIBXML_INCLUDES = -Isrcdir/lib/expat/xmlparse
+ endif
+ $(LIBXMLRPC_MODS:%=%.o) \
+@@ -259,14 +264,12 @@ $(LIBXMLRPC_SERVER_MODS:%=%.osh): \
+ $(LIBXMLRPC_SERVER_ABYSS_MODS:%=%.o) \
+ $(LIBXMLRPC_SERVER_ABYSS_MODS:%=%.osh): \
+-  INCLUDES = $(BASIC_INCLUDES) -I$(SRCDIR)/lib/abyss/src
++  INCLUDES = $(BASIC_INCLUDES) -Isrcdir/lib/abyss/src
+ $(LIBXMLRPC_SERVER_CGI_MODS:%=%.o) \
+ $(LIBXMLRPC_SERVER_CGI_MODS:%=%.osh): \
+   INCLUDES = $(BASIC_INCLUDES)
+-CFLAGS = $(CFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
+-
+ check:
+       $(MAKE) -C test runtests
+@@ -275,12 +278,15 @@ check:
+ .PHONY: install
+ install: install-common $(SUBDIRS:%=%/install)
+-.PHONY: clean clean-local distclean
+-clean: clean-common clean-local $(SUBDIRS:%=%/clean)
++.PHONY: clean clean-local distclean distclean-local
++clean: clean-common clean-local
+ clean-local:
+       $(MAKE) -C test clean
+-distclean: clean-common clean-local distclean-common $(SUBDIRS:%=%/distclean)
++distclean: clean distclean-local distclean-common
++
++distclean-local:
++      $(MAKE) -C test distclean
+ .PHONY: dep
+ dep: $(SUBDIRS:%=%/dep) $(BLDDIR)/transport_config.h dep-common
+@@ -293,4 +299,4 @@ xmlrpc_client.o xmlrpc_client.osh: $(BLDDIR)/version.h
+ registry.o registry.osh: $(BLDDIR)/version.h
+ version.o version.osh: $(BLDDIR)/version.h
+-include Makefile.depend
++include depend.mk
+diff --git a/libs/xmlrpc-c/src/cpp/.cvsignore b/libs/xmlrpc-c/src/cpp/.cvsignore
+deleted file mode 100644
+index 19bccb9..0000000
+--- a/libs/xmlrpc-c/src/cpp/.cvsignore
++++ /dev/null
+@@ -1 +0,0 @@
+-cpptest
+diff --git a/libs/xmlrpc-c/src/cpp/Makefile b/libs/xmlrpc-c/src/cpp/Makefile
+index fa2fac4..9142fcb 100644
+--- a/libs/xmlrpc-c/src/cpp/Makefile
++++ b/libs/xmlrpc-c/src/cpp/Makefile
+@@ -13,22 +13,26 @@ default: all
+ # libxmlrpc_cpp is the legacy C++ wrapper library.  The others are the
+ # more elaborate replacements.
+-TARGET_LIB_NAMES_PP := \
++TARGET_LIB_NAMES_PP = \
+   libxmlrpc_cpp \
+-  libxmlrpc++ \
++  lib$(LIBXMLRPCPP_NAME) \
+   libxmlrpc_server++ \
+-  libxmlrpc_server_abyss++ \
++  libxmlrpc_server_cgi++ \
+   libxmlrpc_server_pstream++ \
+   libxmlrpc_packetsocket \
++ifeq ($(ENABLE_ABYSS_SERVER),yes)
++  TARGET_LIB_NAMES_PP += libxmlrpc_server_abyss++
++endif
++
+ ifeq ($(MUST_BUILD_CLIENT),yes)
+   TARGET_LIB_NAMES_PP += libxmlrpc_client++
+ endif
+ STATIC_LIBRARIES_TO_INSTALL = $(TARGET_STATIC_LIBRARIES)
+-SHARED_LIBS_TO_BUILD := $(TARGET_LIB_NAMES_PP)
+-SHARED_LIBS_TO_INSTALL := $(TARGET_LIB_NAMES_PP)
++SHARED_LIBS_TO_BUILD = $(TARGET_LIB_NAMES_PP)
++SHARED_LIBS_TO_INSTALL = $(TARGET_LIB_NAMES_PP)
+ # INCLUDES and DEP_SOURCES are used by dep-common target
+ INCLUDES = $(BASIC_INCLUDES) $(CLIENT_INCLUDES) $(LIBXML_INCLUDES) \
+@@ -45,11 +49,20 @@ else
+   LIBXML_INCLUDES = -Isrcdir/lib/expat/xmlparse
+ endif
++ifeq ($(ENABLE_LIBXML2_BACKEND),yes)
++  XML_PARSER_LIBDEP = $(shell xml2-config --libs)
++else
++  XML_PARSER_LIBDEP = \
++    -L$(BLDDIR)/lib/expat/xmlparse -lxmlrpc_xmlparse \
++    -L$(BLDDIR)/lib/expat/xmltok -lxmlrpc_xmltok
++endif
++
+ LIBXMLRPCPP_MODS = \
+   base64 env_wrap fault girerr girmem outcome param_list value xml
+ LIBXMLRPC_SERVERPP_MODS = registry
+ LIBXMLRPC_SERVER_ABYSSPP_MODS = server_abyss
+-LIBXMLRPC_SERVER_PSTREAMPP_MODS = server_pstream
++LIBXMLRPC_SERVER_CGIPP_MODS = server_cgi
++LIBXMLRPC_SERVER_PSTREAMPP_MODS = server_pstream_conn server_pstream
+ LIBXMLRPC_CLIENTPP_MODS = client client_simple curl libwww wininet pstream
+ LIBXMLRPC_PACKETSOCKET_MODS = packetsocket
+@@ -58,12 +71,13 @@ TARGET_MODS_PP = \
+   $(LIBXMLRPCPP_MODS) \
+   $(LIBXMLRPC_SERVERPP_MODS) \
+   $(LIBXMLRPC_SERVER_ABYSSPP_MODS) \
++  $(LIBXMLRPC_SERVER_CGIPP_MODS) \
+   $(LIBXMLRPC_SERVER_PSTREAMPP_MODS) \
+   $(LIBXMLRPC_CLIENTPP_MODS) \
+   $(LIBXMLRPC_PACKETSOCKET_MODS) \
+ OMIT_CPP_LIB_RULES = Y
+-MAJ=4
++MAJ = 7
+   # Major number of shared libraries in this directory
+ include $(SRCDIR)/common.mk
+@@ -104,63 +118,120 @@ all: \
+ # shlibfn generates e.g. libxmlrpc.so.3.1
+ # shliblefn generates e.g. libxmlrpc.so
+-LIBXMLRPC_CPP = $(call shlibfn, libxmlrpc_cpp)
++LIBXMLRPC_CPP_SH = $(call shlibfn, libxmlrpc_cpp)
+-$(LIBXMLRPC_CPP): XmlRpcCpp.osh
+-$(LIBXMLRPC_CPP): LIBOBJECTS = XmlRpcCpp.osh
++$(LIBXMLRPC_CPP_SH): XmlRpcCpp.osh \
++  $(LIBXMLRPC_UTIL) \
++  $(LIBXMLRPC) \
++  $(LIBXMLRPC_SERVER) \
++  $(LIBXMLRPC_UTIL)
++$(LIBXMLRPC_CPP_SH): LIBOBJECTS = XmlRpcCpp.osh
++$(LIBXMLRPC_CPP_SH): LIBDEP = \
++  -Lblddir/src  -lxmlrpc_server -lxmlrpc \
++  $(XML_PARSER_LIBDEP) \
++  -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util
+-LIBXMLRPCPP = $(call shlibfn, libxmlrpc++)
++LIBXMLRPCPP_SH = $(call shlibfn, lib$(LIBXMLRPCPP_NAME))
+-$(LIBXMLRPCPP): $(LIBXMLRPCPP_MODS:%=%.osh) \
+-  $(LIBXMLRPC)
+-$(LIBXMLRPCPP): LIBOBJECTS = $(LIBXMLRPCPP_MODS:%=%.osh)
+-$(LIBXMLRPCPP): LIBDEP = -Lblddir/src -lxmlrpc
++$(LIBXMLRPCPP_SH): $(LIBXMLRPCPP_MODS:%=%.osh) \
++  $(LIBXMLRPC) \
++  $(LIBXMLRPC_UTIL)
++$(LIBXMLRPCPP_SH): LIBOBJECTS = $(LIBXMLRPCPP_MODS:%=%.osh)
++$(LIBXMLRPCPP_SH): LIBDEP = \
++  -Lblddir/src -lxmlrpc \
++  $(XML_PARSER_LIBDEP) \
++  -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util
+-LIBXMLRPC_SERVERPP = $(call shlibfn, libxmlrpc_server++)
+-$(LIBXMLRPC_SERVERPP): $(LIBXMLRPC_SERVERPP_MODS:%=%.osh) \
++LIBXMLRPC_SERVERPP_SH = $(call shlibfn, libxmlrpc_server++)
++
++$(LIBXMLRPC_SERVERPP_SH): $(LIBXMLRPC_SERVERPP_MODS:%=%.osh) \
+   $(LIBXMLRPC_SERVER) \
++  $(call shliblefn, lib$(LIBXMLRPCPP_NAME)) \
++  $(LIBXMLRPC_UTIL) \
+   $(LIBXMLRPC)
+-$(LIBXMLRPC_SERVERPP): LIBOBJECTS = $(LIBXMLRPC_SERVERPP_MODS:%=%.osh)
+-$(LIBXMLRPC_SERVERPP): LIBDEP = -Lblddir/src -lxmlrpc_server -lxmlrpc
++$(LIBXMLRPC_SERVERPP_SH): LIBOBJECTS = $(LIBXMLRPC_SERVERPP_MODS:%=%.osh)
++$(LIBXMLRPC_SERVERPP_SH): LIBDEP = \
++  -L. -l$(LIBXMLRPCPP_NAME) \
++  -Lblddir/src -lxmlrpc_server -lxmlrpc \
++  $(XML_PARSER_LIBDEP) \
++  -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util
+-LIBXMLRPC_SERVER_ABYSSPP = $(call shlibfn, libxmlrpc_server_abyss++)
++LIBXMLRPC_SERVER_ABYSSPP_SH = $(call shlibfn, libxmlrpc_server_abyss++)
+-$(LIBXMLRPC_SERVER_ABYSSPP): $(LIBXMLRPC_SERVER_ABYSSPP_MODS:%=%.osh) \
++$(LIBXMLRPC_SERVER_ABYSSPP_SH): $(LIBXMLRPC_SERVER_ABYSSPP_MODS:%=%.osh) \
+   $(LIBXMLRPC_ABYSS) \
++  $(LIBXMLRPC_SERVER_ABYSS) \
++  $(call shliblefn, lib$(LIBXMLRPCPP_NAME)) \
++  $(call shlibfn, libxmlrpc_server++) \
++  $(LIBXMLRPC_UTIL) \
++  $(LIBXMLRPC)
++$(LIBXMLRPC_SERVER_ABYSSPP_SH): LIBOBJECTS = $(LIBXMLRPC_SERVER_ABYSSPP_MODS:%=%.osh)
++$(LIBXMLRPC_SERVER_ABYSSPP_SH): LIBDEP = \
++   -L. -lxmlrpc_server++  -l$(LIBXMLRPCPP_NAME) \
++   -Lblddir/src -lxmlrpc_server_abyss -lxmlrpc_server -lxmlrpc \
++   $(XML_PARSER_LIBDEP) \
++   -L$(LIBXMLRPC_ABYSS_DIR) -lxmlrpc_abyss \
++   -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util \
++
++LIBXMLRPC_SERVER_CGIPP_SH = $(call shlibfn, libxmlrpc_server_cgi++)
++
++$(LIBXMLRPC_SERVER_CGIPP_SH): $(LIBXMLRPC_SERVER_CGIPP_MODS:%=%.osh) \
++  $(call shliblefn, libxmlrpc_server++) \
++  $(call shliblefn, lib$(LIBXMLRPCPP_NAME)) \
+   $(LIBXMLRPC)
+-$(LIBXMLRPC_SERVER_ABYSSPP): LIBOBJECTS = $(LIBXMLRPC_SERVER_ABYSSPP_MODS:%=%.osh)
+-$(LIBXMLRPC_SERVER_ABYSSPP): LIBDEP = \
+-  -L$(LIBXMLRPC_ABYSS_DIR) -lxmlrpc_abyss -Lblddir/src -lxmlrpc
++$(LIBXMLRPC_SERVER_CGIPP_SH): LIBOBJECTS = $(LIBXMLRPC_SERVER_CGIPP_MODS:%=%.osh)
++$(LIBXMLRPC_SERVER_CGIPP_SH): LIBDEP = \
++  -L. -lxmlrpc_server++  -l$(LIBXMLRPCPP_NAME) \
++  -Lblddir/src -lxmlrpc_server -lxmlrpc \
++  $(XML_PARSER_LIBDEP) \
++ -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util
+-LIBXMLRPC_SERVER_PSTREAMPP = $(call shlibfn, libxmlrpc_server_pstream++)
++LIBXMLRPC_SERVER_PSTREAMPP_SH = $(call shlibfn, libxmlrpc_server_pstream++)
+-$(LIBXMLRPC_SERVER_PSTREAMPP): $(LIBXMLRPC_SERVER_PSTREAMPP_MODS:%=%.osh) \
++$(LIBXMLRPC_SERVER_PSTREAMPP_SH): $(LIBXMLRPC_SERVER_PSTREAMPP_MODS:%=%.osh) \
+   $(LIBXMLRPC_SERVER) \
+-  $(LIBXMLRPC_PACKETSOCKET)
+-$(LIBXMLRPC_SERVER_PSTREAMPP): LIBOBJECTS = $(LIBXMLRPC_SERVER_PSTREAMPP_MODS:%=%.osh)
+-$(LIBXMLRPC_SERVER_PSTREAMPP): LIBDEP = \
+-  -Lblddir/src -lxmlrpc_server -L. -lxmlrpc_packetsocket
+-
+-LIBXMLRPC_CLIENTPP = $(call shlibfn, libxmlrpc_client++)
+-
+-$(LIBXMLRPC_CLIENTPP): $(LIBXMLRPC_CLIENTPP_MODS:%=%.osh) \
+-  $(LIBXMLRPCPP) \
++  $(call shliblefn, lib$(LIBXMLRPCPP_NAME)) \
++  $(call shliblefn, libxmlrpc_packetsocket) \
++  $(call shliblefn, libxmlrpc_server++)
++$(LIBXMLRPC_SERVER_PSTREAMPP_SH): LIBOBJECTS = $(LIBXMLRPC_SERVER_PSTREAMPP_MODS:%=%.osh)
++$(LIBXMLRPC_SERVER_PSTREAMPP_SH): LIBDEP = \
++  -L. -lxmlrpc_server++ -l$(LIBXMLRPCPP_NAME) -lxmlrpc_packetsocket \
++  -Lblddir/src -lxmlrpc_server -lxmlrpc \
++  $(XML_PARSER_LIBDEP) \
++  -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util \
++
++LIBXMLRPC_CLIENTPP_SH = $(call shlibfn, libxmlrpc_client++)
++
++$(LIBXMLRPC_CLIENTPP_SH): $(LIBXMLRPC_CLIENTPP_MODS:%=%.osh) \
++  $(LIBXMLRPC_UTIL) \
++  $(call shliblefn, libxmlrpc_packetsocket) \
++  $(LIBXMLRPC) \
++  $(call shliblefn, lib$(LIBXMLRPCPP_NAME)) \
+   $(LIBXMLRPC_CLIENT)
+-$(LIBXMLRPC_CLIENTPP): LIBOBJECTS = $(LIBXMLRPC_CLIENTPP_MODS:%=%.osh)
+-$(LIBXMLRPC_CLIENTPP): LIBDEP = \
+-  -L. -lxmlrpc++ -Lblddir/src -lxmlrpc_client
+-
+-LIBXMLRPC_PACKETSOCKET = $(call shlibfn, libxmlrpc_packetsocket)
+-
+-$(LIBXMLRPC_PACKETSOCKET): $(LIBXMLRPC_PACKETSOCKET_MODS:%=%.osh)
+-$(LIBXMLRPC_PACKETSOCKET): LIBOBJECTS = $(LIBXMLRPC_PACKETSOCKET_MODS:%=%.osh)
++$(LIBXMLRPC_CLIENTPP_SH): LIBOBJECTS = $(LIBXMLRPC_CLIENTPP_MODS:%=%.osh)
++$(LIBXMLRPC_CLIENTPP_SH): LIBDEP = \
++  -L. -l$(LIBXMLRPCPP_NAME) -lxmlrpc_packetsocket \
++  -Lblddir/src -lxmlrpc_client -lxmlrpc \
++  $(XML_PARSER_LIBDEP) \
++  -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util
++
++LIBXMLRPC_PACKETSOCKET_SH = $(call shlibfn, libxmlrpc_packetsocket)
++
++$(LIBXMLRPC_PACKETSOCKET_SH): $(LIBXMLRPC_PACKETSOCKET_MODS:%=%.osh) \
++  $(call shliblefn, lib$(LIBXMLRPCPP_NAME))
++$(LIBXMLRPC_PACKETSOCKET_SH): LIBOBJECTS = $(LIBXMLRPC_PACKETSOCKET_MODS:%=%.osh)
++$(LIBXMLRPC_PACKETSOCKET_SH): LIBDEP = \
++  -L. -l$(LIBXMLRPCPP_NAME) \
++  -Lblddir/src -lxmlrpc \
++  $(XML_PARSER_LIBDEP) \
++  -L$(LIBXMLRPC_UTIL_DIR) -lxmlrpc_util
+ libxmlrpc_cpp.a: XmlRpcCpp.o
+ libxmlrpc_cpp.a: LIBOBJECTS = XmlRpcCpp.o
+-libxmlrpc++.a: $(LIBXMLRPCPP_MODS:%=%.o)
+-libxmlrpc++.a: LIBOBJECTS = $(LIBXMLRPCPP_MODS:%=%.o)
++lib$(LIBXMLRPCPP_NAME).a: $(LIBXMLRPCPP_MODS:%=%.o)
++lib$(LIBXMLRPCPP_NAME).a: LIBOBJECTS = $(LIBXMLRPCPP_MODS:%=%.o)
+ libxmlrpc_server++.a: $(LIBXMLRPC_SERVERPP_MODS:%=%.o)
+ libxmlrpc_server++.a: LIBOBJECTS = $(LIBXMLRPC_SERVERPP_MODS:%=%.o)
+@@ -168,6 +239,9 @@ libxmlrpc_server++.a: LIBOBJECTS = $(LIBXMLRPC_SERVERPP_MODS:%=%.o)
+ libxmlrpc_server_abyss++.a: $(LIBXMLRPC_SERVER_ABYSSPP_MODS:%=%.o)
+ libxmlrpc_server_abyss++.a: LIBOBJECTS=$(LIBXMLRPC_SERVER_ABYSSPP_MODS:%=%.o)
++libxmlrpc_server_cgi++.a: $(LIBXMLRPC_SERVER_CGIPP_MODS:%=%.o)
++libxmlrpc_server_cgi++.a: LIBOBJECTS=$(LIBXMLRPC_SERVER_CGIPP_MODS:%=%.o)
++
+ libxmlrpc_server_pstream++.a: $(LIBXMLRPC_SERVER_PSTREAMPP_MODS:%=%.o)
+ libxmlrpc_server_pstream++.a: LIBOBJECTS=$(LIBXMLRPC_SERVER_PSTREAMPP_MODS:%=%.o)
+@@ -197,11 +271,15 @@ $(LIBXMLRPC_SERVERPP_MODS:%=%.osh): \
+   INCLUDES = $(SERVER_INCLUDES)
+ $(LIBXMLRPC_SERVER_ABYSSPP_MODS:%=%.o) \
+-$(LIBXMLRPC_SERVER_ABYSSPP_MODS:%=%.o): \
++$(LIBXMLRPC_SERVER_ABYSSPP_MODS:%=%.osh): \
++  INCLUDES = $(SERVER_INCLUDES)
++
++$(LIBXMLRPC_SERVER_CGIPP_MODS:%=%.o) \
++$(LIBXMLRPC_SERVER_CGIPP_MODS:%=%.osh): \
+   INCLUDES = $(SERVER_INCLUDES)
+ $(LIBXMLRPC_SERVER_PSTREAMPP_MODS:%=%.o) \
+-$(LIBXMLRPC_SERVER_PSTREAMPP_MODS:%=%.o): \
++$(LIBXMLRPC_SERVER_PSTREAMPP_MODS:%=%.osh): \
+   INCLUDES = $(SERVER_INCLUDES)
+ $(LIBXMLRPC_CLIENTPP_MODS:%=%.o) \
+@@ -212,7 +290,10 @@ $(LIBXMLRPC_PACKETSOCKET_MODS:%=%.o) \
+ $(LIBXMLRPC_PACKETSOCKET_MODS:%=%.osh): \
+   INCLUDES = $(BASIC_INCLUDES)
+-CXXFLAGS = $(CXXFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
++# <sstream> in Glibc 2.2 has some failed inlines, so we disable that warning:
++$(LIBXMLRPC_PACKETSOCKET_MODS:%=%.o) \
++$(LIBXMLRPC_PACKETSOCKET_MODS:%=%.osh): \
++  CFLAGS_LOCAL = -Wno-inline
+ TRANSPORT_CONFIG_USERS = client curl libwww wininet
+@@ -242,4 +323,4 @@ distclean-local:
+ .PHONY: dep
+ dep: dep-common $(BLDDIR)/transport_config.h
+-include Makefile.depend
++include depend.mk
+diff --git a/libs/xmlrpc-c/src/cpp/base64.cpp b/libs/xmlrpc-c/src/cpp/base64.cpp
+index f9c0dac..dd07e1c 100644
+--- a/libs/xmlrpc-c/src/cpp/base64.cpp
++++ b/libs/xmlrpc-c/src/cpp/base64.cpp
+@@ -77,7 +77,7 @@ public:
+         assert(bitsInBuffer >= 8);
+-        *outputP = (this->buffer >> (this->bitsInBuffer - 8)) & 0x3f;
++        *outputP = (this->buffer >> (this->bitsInBuffer - 8)) & 0xff;
+         this->bitsInBuffer -= 8;
+     }
+diff --git a/libs/xmlrpc-c/src/cpp/client.cpp b/libs/xmlrpc-c/src/cpp/client.cpp
+index 2dba1bd..4ca8db0 100644
+--- a/libs/xmlrpc-c/src/cpp/client.cpp
++++ b/libs/xmlrpc-c/src/cpp/client.cpp
+@@ -26,6 +26,7 @@ using girmem::autoObject;
+ #include "xmlrpc-c/transport.h"
+ #include "xmlrpc-c/base.hpp"
+ #include "xmlrpc-c/xml.hpp"
++#include "xmlrpc-c/timeout.hpp"
+ #include "xmlrpc-c/client.hpp"
+ #include "transport_config.h"
+@@ -127,7 +128,7 @@ carriageParmPtr::operator->() const {
+ carriageParm *
+ carriageParmPtr::get() const {
+-    return dynamic_cast<carriageParm *>(objectP);
++    return dynamic_cast<carriageParm *>(this->objectP);
+ }
+@@ -371,6 +372,15 @@ xmlTransaction::finishErr(error const&) const {
++void
++xmlTransaction::progress(struct xmlrpc_progress_data const&) const {
++
++    // This is just the base class method.  A derived class may override
++    // this with something substantial.
++}
++
++
++
+ xmlTransactionPtr::xmlTransactionPtr() {}
+@@ -503,6 +513,18 @@ clientXmlTransport::asyncComplete(
+ void
++clientXmlTransport::progress(
++    struct xmlrpc_call_info *   const callInfoP,
++    struct xmlrpc_progress_data const progressData) {
++
++    xmlTranCtl * const xmlTranCtlP = reinterpret_cast<xmlTranCtl *>(callInfoP);
++
++    xmlTranCtlP->xmlTranP->progress(progressData);
++}
++
++
++
++void
+ clientXmlTransport::setInterrupt(int *) {
+     throwf("The client XML transport is not interruptible");
+@@ -600,7 +622,7 @@ clientXmlTransport_http::start(
+             this->c_transportP,
+             carriageParmHttpP->c_serverInfoP,
+             tranCtlP->callXmlP,
+-            &this->asyncComplete,
++            &this->asyncComplete, &this->progress,
+             reinterpret_cast<xmlrpc_call_info *>(tranCtlP));
+         throwIfError(env);
+@@ -1095,8 +1117,20 @@ rpc::notifyComplete() {
+ }
++
++
++void
++rpc::progress(struct xmlrpc_progress_data const&) const {
++/*----------------------------------------------------------------------------
++  If the user is interested in tracking the progress of the RPC, he will
++  derive a class from xmlrpc_c::rpc and override this with a progress()
++  that does something, such as display a progress bar.
++-----------------------------------------------------------------------------*/
++
++}
+     
++
+ value
+ rpc::getResult() const {
+@@ -1214,6 +1248,15 @@ xmlTransaction_client::finishErr(error const& error) const {
++void
++xmlTransaction_client::progress(
++    struct xmlrpc_progress_data const& progressData) const {
++
++    this->tranP->progress(progressData);
++}
++
++
++
+ xmlTransaction_clientPtr::xmlTransaction_clientPtr() {}
+diff --git a/libs/xmlrpc-c/src/cpp/cpptest.cpp b/libs/xmlrpc-c/src/cpp/cpptest.cpp
+deleted file mode 100644
+index 2d07793..0000000
+--- a/libs/xmlrpc-c/src/cpp/cpptest.cpp
++++ /dev/null
+@@ -1,1187 +0,0 @@
+-#include <string>
+-#include <iostream>
+-#include <iomanip>
+-#include <vector>
+-#include <sstream>
+-#include <memory>
+-#include <time.h>
+-
+-#include "xmlrpc-c/girerr.hpp"
+-using girerr::error;
+-#include "transport_config.h"
+-#include "xmlrpc-c/base.hpp"
+-#include "xmlrpc-c/oldcppwrapper.hpp"
+-#include "xmlrpc-c/registry.hpp"
+-#include "xmlrpc-c/client.hpp"
+-#include "xmlrpc-c/client_simple.hpp"
+-using namespace xmlrpc_c;
+-
+-using namespace std;
+-
+-//=========================================================================
+-//  Test Harness
+-//=========================================================================
+-// 
+-//  There are two styles of test in here.  The older ones are vaguely
+-//  inspired by Kent Beck's book on eXtreme Programming (XP) and use
+-//  the TEST...() macros.
+-//
+-//  But this style is not really appropriate for C++.  It's based on
+-//  code that explicitly tests for errors, as one would do in C.  In C++,
+-//  it is cumbersome to catch exceptions on every call, so we don't in
+-//  the new style.
+-
+-//  And there's not much point in trying to count test successes and
+-//  failures.  Any failure is a problem, so in the new style, we just
+-//  quit after we recognize one (again, more in line with regular exception
+-//  throwing).  With exception throwing, you can't count what _didn't_
+-//  cause an exception, so there's no meaningful count of test successes.
+-//
+-//  To run the tests, type './cpptest'.
+-//  To check for memory leaks, install RedHat's 'memprof' utility, and
+-//  type 'memprof cpptest'.
+-//
+-//  If you add new tests to this file, please deallocate any data
+-//  structures you use in the appropriate fashion. This allows us to test
+-//  various destructor code for memory leaks.
+-
+-
+-// This is a good place to set a breakpoint.
+-static void 
+-logFailedTest(const char * const fileName, 
+-              unsigned int const lineNum, 
+-              const char * const statement) {
+-
+-    ostringstream msg;
+-
+-    msg << endl
+-        << fileName << ":" << lineNum 
+-        << ": expected (" << statement << ")" << endl;
+-
+-    throw(error(msg.str()));
+-}
+-
+-
+-#define TEST(statement) \
+-    do { \
+-        if (!(statement)) \
+-            logFailedTest(__FILE__, __LINE__, #statement); \
+-    } while (0)
+-
+-
+-#define TEST_PASSED() \
+-    do { } while (0)
+-
+-#define TEST_FAILED(reason) \
+-    do { \
+-        logFailedTest(__FILE__, __LINE__, (reason)); \
+-    } while (0)
+-
+-
+-
+-#define EXPECT_ERROR(statement) \
+-    do { try { statement } catch (error) {break;} \
+-      throw(fileLineError(__FILE__, __LINE__, "Didn't get expected error")); \
+-    } while (0)
+-
+-#define trickToStraightenOutEmacsIndentation \
+-;
+-
+-namespace {
+-error
+-fileLineError(string       const filename,
+-              unsigned int const lineNumber,
+-              string       const description) {
+-    
+-    ostringstream combined;
+-    
+-    combined << filename << ":" << lineNumber << " " << description;
+-    
+-    return error(combined.str());
+-}
+-} // namespace
+-
+-
+-
+-class sampleAddMethod : public method {
+-public:
+-    sampleAddMethod() {
+-        this->_signature = "ii";
+-        this->_help = "This method adds two integers together";
+-    }
+-    void
+-    execute(xmlrpc_c::paramList const& paramList,
+-            value *             const  retvalP) {
+-        
+-        int const addend(paramList.getInt(0));
+-        int const adder(paramList.getInt(1));
+-        
+-        paramList.verifyEnd(2);
+-        
+-        *retvalP = value_int(addend + adder);
+-    }
+-};
+-
+-
+-
+-class nameMethod : public defaultMethod {
+-
+-    void
+-    execute(string              const& methodName,
+-            xmlrpc_c::paramList const& ,  // paramList
+-            value *             const  retvalP) {
+-        
+-        *retvalP = value_string(string("no such method: ") + methodName);
+-    }
+-};
+-
+-
+-//=========================================================================
+-//  Test Suites
+-//=========================================================================
+-
+-void 
+-test_fault (void) {
+-
+-    // Create a new fault and perform basic operations.
+-    XmlRpcFault fault1 = XmlRpcFault(6, "Sample fault");
+-    TEST(fault1.getFaultCode() == 6);
+-    TEST(fault1.getFaultString() == "Sample fault");
+-
+-    // Extract and examine the underlying xmlrpc_env struct.
+-    xmlrpc_env *env1 = fault1.getFaultEnv();
+-    TEST(env1 != NULL);
+-    TEST(env1->fault_occurred);
+-    TEST(env1->fault_code == 6);
+-    TEST(strcmp(env1->fault_string, "Sample fault") == 0);
+-
+-    // Test our copy constructor.
+-    XmlRpcFault fault2 = fault1;
+-    TEST(fault2.getFaultCode() == 6);
+-    TEST(fault2.getFaultString() == "Sample fault");
+-    
+-    // Construct a fault from a pre-existing xmlrpc_env structure.
+-    xmlrpc_env env3;
+-    xmlrpc_env_init(&env3);
+-    xmlrpc_env_set_fault(&env3, 7, "Another fault");
+-    XmlRpcFault fault3 = XmlRpcFault(&env3);
+-    xmlrpc_env_clean(&env3);
+-    TEST(fault3.getFaultCode() == 7);
+-    TEST(fault3.getFaultString() == "Another fault");
+-    
+-    // Attempt to construct a fault from a fault-free xmlrpc_env.
+-    xmlrpc_env env4;
+-    xmlrpc_env_init(&env4);
+-    try {
+-        XmlRpcFault fault4 = XmlRpcFault(&env4);
+-        TEST_FAILED("Constructed invalid XmlRpcFault");
+-    } catch (XmlRpcFault& fault) {
+-        TEST_PASSED();
+-        TEST(fault.getFaultCode() == XMLRPC_INTERNAL_ERROR);
+-    }
+-    xmlrpc_env_clean(&env4);
+-}
+-
+-
+-
+-void test_env (void) {
+-
+-    // Declare these here to prevent silly compiler warnings about
+-    // potentially uninitialized variables.
+-    XmlRpcEnv env1;
+-    XmlRpcEnv env2;
+-
+-    // Perform simple environment tests.
+-    TEST(!env1.hasFaultOccurred());
+-    xmlrpc_env_set_fault(env1, 8, "Fault 8");
+-    TEST(env1.hasFaultOccurred());
+-    XmlRpcFault fault1 = env1.getFault();
+-    TEST(fault1.getFaultCode() == 8);
+-    TEST(fault1.getFaultString() == "Fault 8");
+-
+-    // Test throwIfFaultOccurred.
+-    try {
+-        env2.throwIfFaultOccurred();
+-        TEST_PASSED();
+-    } catch (XmlRpcFault& fault) {
+-        TEST_FAILED("We threw a fault when one hadn't occurred");
+-    } 
+-    xmlrpc_env_set_fault(env2, 9, "Fault 9");
+-    try {
+-        env2.throwIfFaultOccurred();
+-        TEST_FAILED("A fault occurred, and we didn't throw it");
+-    } catch (XmlRpcFault& fault) {
+-        TEST_PASSED();
+-        TEST(fault.getFaultCode() == 9);
+-        TEST(fault.getFaultString() == "Fault 9");
+-    } 
+-    
+-    // Make sure we can't get a fault if one hasn't occurred.
+-    XmlRpcEnv env3;
+-    try {
+-        XmlRpcFault fault3 = env3.getFault();
+-        TEST_FAILED("We retrieved a non-existant fault");
+-    } catch (XmlRpcFault& fault) {
+-        TEST_PASSED();
+-        TEST(fault.getFaultCode() == XMLRPC_INTERNAL_ERROR);
+-    }
+-}
+-
+-void test_value (void) {
+-    XmlRpcEnv env;
+-
+-    // Test basic reference counting behavior.
+-    xmlrpc_value *v = xmlrpc_build_value(env, "i", (xmlrpc_int32) 1);
+-    env.throwIfFaultOccurred();
+-    XmlRpcValue val1 = XmlRpcValue(v, XmlRpcValue::CONSUME_REFERENCE);
+-    v = xmlrpc_build_value(env, "i", (xmlrpc_int32) 2);
+-    env.throwIfFaultOccurred();
+-    XmlRpcValue val2 = v;
+-    xmlrpc_DECREF(v);
+-
+-    // Borrow a reference.
+-    v = xmlrpc_build_value(env, "i", (xmlrpc_int32) 3);
+-    env.throwIfFaultOccurred();
+-    XmlRpcValue val3 = XmlRpcValue(v, XmlRpcValue::CONSUME_REFERENCE);
+-    xmlrpc_value *borrowed = val3.borrowReference();
+-    TEST(borrowed == v);
+-
+-    // Make a reference.
+-    v = xmlrpc_build_value(env, "i", (xmlrpc_int32) 4);
+-    env.throwIfFaultOccurred();
+-    XmlRpcValue val4 = XmlRpcValue(v, XmlRpcValue::CONSUME_REFERENCE);
+-    xmlrpc_value *made = val4.makeReference();
+-    TEST(made == v);
+-    xmlrpc_DECREF(made);
+-
+-    // Test our default constructor.
+-    XmlRpcValue val5;
+-    TEST(val5.getBool() == false);
+-
+-    // Test our type introspection.
+-    TEST(XmlRpcValue::makeInt(0).getType() == XMLRPC_TYPE_INT);
+-    
+-    // Test our basic data types.
+-    TEST(XmlRpcValue::makeInt(30).getInt() == 30);
+-    TEST(XmlRpcValue::makeInt(-30).getInt() == -30);
+-    TEST(XmlRpcValue::makeBool(true).getBool() == true);
+-    TEST(XmlRpcValue::makeBool(false).getBool() == false);
+-    TEST(XmlRpcValue::makeDateTime("19980717T14:08:55").getRawDateTime() ==
+-         "19980717T14:08:55");
+-    TEST(XmlRpcValue::makeString("foo").getString() == "foo");
+-    TEST(XmlRpcValue::makeString("bar", 3).getString() == "bar");
+-    TEST(XmlRpcValue::makeString("bar", 3).getString() == "bar");
+-    TEST(XmlRpcValue::makeString("a\0b").getString() == string("a\0b"));
+-    XmlRpcValue::makeArray().getArray();
+-    XmlRpcValue::makeStruct().getStruct();
+-
+-    // Test Base64 values.
+-    const unsigned char *b64_data;
+-    size_t b64_len;
+-    XmlRpcValue val6 = XmlRpcValue::makeBase64((unsigned char*) "a\0\0b", 4);
+-    val6.getBase64(b64_data, b64_len);
+-    TEST(b64_len == 4);
+-    TEST(memcmp(b64_data, "a\0\0b", 4) == 0);
+-
+-    // Test arrays.
+-    XmlRpcValue array = XmlRpcValue::makeArray();
+-    TEST(array.arraySize() == 0);
+-    array.arrayAppendItem(XmlRpcValue::makeString("foo"));
+-    TEST(array.arraySize() == 1);
+-    array.arrayAppendItem(XmlRpcValue::makeString("bar"));
+-    TEST(array.arraySize() == 2);
+-    TEST(array.arrayGetItem(0).getString() == "foo");
+-    TEST(array.arrayGetItem(1).getString() == "bar");
+-
+-    // Test structs.
+-    XmlRpcValue strct = XmlRpcValue::makeStruct();
+-    TEST(strct.structSize() == 0);
+-    strct.structSetValue("foo", XmlRpcValue::makeString("fooval"));
+-    TEST(strct.structSize() == 1);
+-    strct.structSetValue("bar", XmlRpcValue::makeString("barval"));
+-    TEST(strct.structSize() == 2);
+-    TEST(strct.structHasKey("bar"));
+-    TEST(!strct.structHasKey("nosuch"));
+-    for (size_t i = 0; i < strct.structSize(); i++) {
+-        string key;
+-        XmlRpcValue value;
+-        strct.structGetKeyAndValue(i, key, value);
+-        TEST(key + "val" == value.getString());
+-    }
+-}
+-
+-void test_errors (void) {
+-    // XXX - Test typechecks on get* methods.
+-    // XXX - Test typechceks on array and struct methods.
+-    // XXX - Test bounds checks on arrayGetItem, structGetKeyAndValue.
+-}
+-
+-
+-static void
+-testXmlRpcCpp() {
+-/*----------------------------------------------------------------------------
+-   Test the legacy XmlRpcCpp.cpp library
+------------------------------------------------------------------------------*/
+-    cout << "Testing XmlRpcCpp library..." << endl;
+-
+-    test_fault();
+-    test_env();
+-    test_value();
+-    test_errors();
+-}
+-
+-
+-
+-class testSuite {
+-/*----------------------------------------------------------------------------
+-   This is a base class for a test suite.  Give the suite a name
+-   (to be used in messages about it) and some test code via
+-   virtual methods suiteName() and runtests(), respectively.
+-
+-   runtests() should throw either an 'error' object or an 'XmlRpcFault'
+-   object if the test fails.  It should throw something else if the
+-   test can't run.  It should throw nothing if the tests pass.
+-
+-   You don't normally keep an object of this class around.  You don't
+-   even give it a name.  You simply refer to a literal object, like so:
+-
+-     myTestSuite().run(0)
+------------------------------------------------------------------------------*/
+-public:
+-    void run(unsigned int const indentation);
+-
+-    virtual void runtests(unsigned int const) {
+-        throw(error("test suite does not have a runtests() method"));
+-    };
+-    virtual string suiteName() {
+-        return "unnamed test suite";
+-    }
+-};
+-
+-void
+-testSuite::run(unsigned int const indentation) {
+-    try {
+-        cout << string(indentation*2, ' ') 
+-             << "Running " << suiteName() << endl;
+-        runtests(indentation);
+-    } catch (error thisError) {
+-        throw(error(suiteName() + string(" failed.  ") + thisError.what()));
+-    } catch (...) {
+-        throw(error(suiteName() + string(" failed.  ") +
+-                    string("It threw an unexpected type of object")));
+-    }
+-    cout << string(indentation*2, ' ') 
+-         << suiteName() << " tests passed." << endl;
+-}
+-
+-
+-
+-class intTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "intTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        value_int int1(7);
+-        TEST(static_cast<int>(int1) == 7);
+-        value_int int2(-7);
+-        TEST(static_cast<int>(int2) == -7);
+-        value val1(int1);
+-        TEST(val1.type() == value::TYPE_INT);
+-        value_int int3(val1);
+-        TEST(static_cast<int>(int3) == 7);
+-        try {
+-            value_int int4(value_double(3.7));
+-            TEST_FAILED("invalid cast double-int suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class doubleTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "doubleTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        value_double double1(3.14);
+-        TEST(static_cast<double>(double1) == 3.14);
+-        value val1(double1);
+-        TEST(val1.type() == value::TYPE_DOUBLE);
+-        value_double double2(val1);
+-        TEST(static_cast<double>(double2) == 3.14);
+-        try {
+-            value_double double4(value_int(4));
+-            TEST_FAILED("invalid cast int-double suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class booleanTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "booleanTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        value_boolean boolean1(true); 
+-        TEST(static_cast<bool>(boolean1) == true);
+-        value_boolean boolean2(false);
+-        TEST(static_cast<bool>(boolean2) == false);
+-        value val1(boolean1);
+-        TEST(val1.type() == value::TYPE_BOOLEAN);
+-        value_boolean boolean3(val1);
+-        TEST(static_cast<bool>(boolean3) == true);
+-        try {
+-            value_boolean boolean4(value_int(4));
+-            TEST_FAILED("invalid cast int-boolean suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class datetimeTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "datetimeTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        time_t const testTime(900684535);
+-        value_datetime datetime1("19980717T14:08:55");
+-        TEST(static_cast<time_t>(datetime1) == testTime);
+-        value_datetime datetime2(testTime);
+-        TEST(static_cast<time_t>(datetime2) == testTime);
+-        value val1(datetime1);
+-        TEST(val1.type() == value::TYPE_DATETIME);
+-        value_datetime datetime3(val1);
+-        TEST(static_cast<time_t>(datetime3) == testTime);
+-        try {
+-            value_datetime datetime4(value_int(4));
+-            TEST_FAILED("invalid cast int-datetime suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class stringTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "stringTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        value_string string1("hello world");
+-        TEST(static_cast<string>(string1) == "hello world");
+-        value_string string2("embedded\0null");
+-        TEST(static_cast<string>(string2) == "embedded\0null");
+-        value val1(string1);
+-        TEST(val1.type() == value::TYPE_STRING);
+-        value_string string3(val1);
+-        TEST(static_cast<string>(string3) == "hello world");
+-        try {
+-            value_string string4(value_int(4));
+-            TEST_FAILED("invalid cast int-string suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class bytestringTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "bytestringTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        unsigned char bytestringArray[] = {0x10, 0x11, 0x12, 0x13, 0x14};
+-        vector<unsigned char> 
+-            bytestringData(&bytestringArray[0], &bytestringArray[4]);
+-        value_bytestring bytestring1(bytestringData);
+-
+-        vector<unsigned char> const dataReadBack1(
+-            bytestring1.vectorUcharValue());
+-        TEST(dataReadBack1 == bytestringData);
+-        value val1(bytestring1);
+-        TEST(val1.type() == value::TYPE_BYTESTRING);
+-        value_bytestring bytestring2(val1);
+-        vector<unsigned char> const dataReadBack2(
+-            bytestring2.vectorUcharValue());
+-        TEST(dataReadBack2 == bytestringData);
+-        try {
+-            value_bytestring bytestring4(value_int(4));
+-            TEST_FAILED("invalid cast int-bytestring suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class nilTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "nilTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        value_nil nil1;
+-        value val1(nil1);
+-        TEST(val1.type() == value::TYPE_NIL);
+-        value_nil nil2(val1);
+-        try {
+-            value_nil nil4(value_int(4));
+-            TEST_FAILED("invalid cast int-nil suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class structTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "structTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        map<string, value> structData;
+-        pair<string, value> member("the_integer", value_int(9));
+-        structData.insert(member);
+-        
+-        value_struct struct1(structData);
+-
+-        map<string, value> dataReadBack(struct1);
+-
+-        TEST(static_cast<int>(value_int(dataReadBack["the_integer"])) == 9);
+-
+-        value val1(struct1);
+-        TEST(val1.type() == value::TYPE_STRUCT);
+-        value_struct struct2(val1);
+-        try {
+-            value_struct struct4(value_int(4));
+-            TEST_FAILED("invalid cast int-struct suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class arrayTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "arrayTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        vector<value> arrayData;
+-        arrayData.push_back(value_int(7));
+-        arrayData.push_back(value_double(2.78));
+-        arrayData.push_back(value_string("hello world"));
+-        value_array array1(arrayData);
+-
+-        TEST(array1.size() == 3);
+-        vector<value> dataReadBack1(array1.vectorValueValue());
+-        TEST(dataReadBack1[0].type() ==  value::TYPE_INT);
+-        TEST(static_cast<int>(value_int(dataReadBack1[0])) == 7);
+-        TEST(dataReadBack1[1].type() ==  value::TYPE_DOUBLE);
+-        TEST(static_cast<double>(value_double(dataReadBack1[1])) == 2.78);
+-        TEST(dataReadBack1[2].type() ==  value::TYPE_STRING);
+-        TEST(static_cast<string>(value_string(dataReadBack1[2])) == 
+-             "hello world");
+-
+-        value val1(array1);
+-        TEST(val1.type() == value::TYPE_ARRAY);
+-        value_array array2(val1);
+-        TEST(array2.size() == 3);
+-        try {
+-            value_array array4(value_int(4));
+-            TEST_FAILED("invalid cast int-array suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class valueTestSuite : public testSuite {
+-
+-public:
+-    virtual string suiteName() {
+-        return "valueTestSuite";
+-    }
+-    virtual void runtests(unsigned int const indentation) {
+-
+-        intTestSuite().run(indentation+1);
+-        doubleTestSuite().run(indentation+1);
+-        booleanTestSuite().run(indentation+1);
+-        datetimeTestSuite().run(indentation+1);
+-        stringTestSuite().run(indentation+1);
+-        bytestringTestSuite().run(indentation+1);
+-        nilTestSuite().run(indentation+1);
+-        structTestSuite().run(indentation+1);
+-        arrayTestSuite().run(indentation+1);
+-    }
+-};
+-
+-
+-namespace {
+-string const noElementFoundXml(
+-    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"
+-    "<methodResponse>\r\n"
+-    "<fault>\r\n"
+-    "<value><struct>\r\n"
+-    "<member><name>faultCode</name>\r\n"
+-    "<value><i4>-503</i4></value></member>\r\n"
+-    "<member><name>faultString</name>\r\n"
+-    "<value><string>Call is not valid XML.  "
+-    "no element found</string></value></member>\r\n"
+-    "</struct></value>\r\n"
+-    "</fault>\r\n"
+-    "</methodResponse>\r\n"
+-    );
+-
+-string const sampleAddGoodCallXml(
+-    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"
+-    "<methodCall>\r\n"
+-    "<methodName>sample.add</methodName>\r\n"
+-    "<params>\r\n"
+-    "<param><value><i4>5</i4></value></param>\r\n"
+-    "<param><value><i4>7</i4></value></param>\r\n"
+-    "</params>\r\n"
+-    "</methodCall>\r\n"
+-    );
+-
+-string const sampleAddGoodResponseXml(
+-    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"
+-    "<methodResponse>\r\n"
+-    "<params>\r\n"
+-    "<param><value><i4>12</i4></value></param>\r\n"
+-    "</params>\r\n"
+-    "</methodResponse>\r\n"
+-    );
+-
+-
+-string const sampleAddBadCallXml(
+-    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"
+-    "<methodCall>\r\n"
+-    "<methodName>sample.add</methodName>\r\n"
+-    "<params>\r\n"
+-    "<param><value><i4>5</i4></value></param>\r\n"
+-    "</params>\r\n"
+-    "</methodCall>\r\n"
+-    );
+-
+-string const sampleAddBadResponseXml(
+-    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"
+-    "<methodResponse>\r\n"
+-    "<fault>\r\n"
+-    "<value><struct>\r\n"
+-    "<member><name>faultCode</name>\r\n"
+-    "<value><i4>-501</i4></value></member>\r\n"
+-    "<member><name>faultString</name>\r\n"
+-    "<value><string>Not enough parameters</string></value></member>\r\n"
+-    "</struct></value>\r\n"
+-    "</fault>\r\n"
+-    "</methodResponse>\r\n"
+-    );
+-
+-
+-string const nonexistentMethodCallXml(
+-    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"
+-    "<methodCall>\r\n"
+-    "<methodName>nosuchmethod</methodName>\r\n"
+-    "<params>\r\n"
+-    "<param><value><i4>5</i4></value></param>\r\n"
+-    "<param><value><i4>7</i4></value></param>\r\n"
+-    "</params>\r\n"
+-    "</methodCall>\r\n"
+-    );
+-
+-string const nonexistentMethodYesDefResponseXml(
+-    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"
+-    "<methodResponse>\r\n"
+-    "<params>\r\n"
+-    "<param><value><string>no such method: nosuchmethod</string>"
+-    "</value></param>\r\n"
+-    "</params>\r\n"
+-    "</methodResponse>\r\n"
+-    );
+-
+-string const nonexistentMethodNoDefResponseXml(
+-    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"
+-    "<methodResponse>\r\n"
+-    "<fault>\r\n"
+-    "<value><struct>\r\n"
+-    "<member><name>faultCode</name>\r\n"
+-    "<value><i4>-506</i4></value></member>\r\n"
+-    "<member><name>faultString</name>\r\n"
+-    "<value><string>Method 'nosuchmethod' not defined</string></value>"
+-    "</member>\r\n"
+-    "</struct></value>\r\n"
+-    "</fault>\r\n"
+-    "</methodResponse>\r\n"
+-    );
+-
+-} // namespace
+-
+-
+-class paramListTestSuite : public testSuite {
+-
+-public:
+-    virtual string suiteName() {
+-        return "paramListTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-
+-        paramList paramList1;
+-        TEST(paramList1.size() == 0);
+-
+-        paramList1.add(value_int(7));
+-        paramList1.add(value_boolean(true));
+-        paramList1.add(value_double(3.14));
+-        time_t const timeZero(0);
+-        paramList1.add(value_datetime(timeZero));
+-        time_t const timeFuture(time(NULL)+100);
+-        paramList1.add(value_datetime(timeFuture));
+-        paramList1.add(value_string("hello world"));
+-        unsigned char bytestringArray[] = {0x10, 0x11, 0x12, 0x13, 0x14};
+-        vector<unsigned char> 
+-            bytestringData(&bytestringArray[0], &bytestringArray[4]);
+-        paramList1.add(value_bytestring(bytestringData));
+-        vector<value> arrayData;
+-        arrayData.push_back(value_int(7));
+-        arrayData.push_back(value_double(2.78));
+-        arrayData.push_back(value_string("hello world"));
+-        paramList1.add(value_array(arrayData));
+-        map<string, value> structData;
+-        pair<string, value> member("the_integer", value_int(9));
+-        structData.insert(member);
+-        paramList1.add(value_struct(structData));
+-        paramList1.add(value_nil());
+-
+-        TEST(paramList1.size() == 10);
+-
+-        TEST(paramList1.getInt(0) == 7);
+-        TEST(paramList1.getInt(0, 7) == 7);
+-        TEST(paramList1.getInt(0, -5, 7) == 7);
+-        TEST(paramList1.getBoolean(1) == true);
+-        TEST(paramList1.getDouble(2) == 3.14);
+-        TEST(paramList1.getDouble(2, 1) == 3.14);
+-        TEST(paramList1.getDouble(2, 1, 4) == 3.14);
+-        TEST(paramList1.getDatetime_sec(3) == 0);
+-        TEST(paramList1.getDatetime_sec(3, paramList::TC_ANY) == timeZero);
+-        TEST(paramList1.getDatetime_sec(3, paramList::TC_NO_FUTURE) 
+-             == timeZero);
+-        TEST(paramList1.getDatetime_sec(4, paramList::TC_NO_PAST)
+-             == timeFuture);
+-        TEST(paramList1.getString(5) == "hello world");
+-        TEST(paramList1.getBytestring(6)[0] == 0x10);
+-        TEST(paramList1.getArray(7).size() == 3);
+-        TEST(paramList1.getArray(7, 3).size() == 3);
+-        TEST(paramList1.getArray(7, 1, 3).size() == 3);
+-        paramList1.getStruct(8)["the_integer"];
+-        paramList1.getNil(9);
+-        paramList1.verifyEnd(10);
+-
+-        paramList paramList2(5);
+-        TEST(paramList2.size() == 0);
+-    }
+-};
+-
+-class registryRegMethodTestSuite : public testSuite {
+-
+-public:
+-    virtual string suiteName() {
+-        return "registryRegMethodTestSuite";
+-    }
+-    virtual void runtests(unsigned int) {
+-
+-        xmlrpc_c::registry myRegistry;
+-        
+-        myRegistry.addMethod("sample.add", 
+-                             xmlrpc_c::methodPtr(new sampleAddMethod));
+-        
+-        myRegistry.disableIntrospection();
+-        {
+-            string response;
+-            myRegistry.processCall("", &response);
+-            TEST(response == noElementFoundXml);
+-        }
+-        {
+-            string response;
+-            myRegistry.processCall(sampleAddGoodCallXml, &response);
+-            TEST(response == sampleAddGoodResponseXml);
+-        }
+-        {
+-            string response;
+-            myRegistry.processCall(sampleAddBadCallXml, &response);
+-            TEST(response == sampleAddBadResponseXml);
+-        }
+-    }
+-};
+-
+-
+-
+-class registryDefaultMethodTestSuite : public testSuite {
+-
+-public:
+-    virtual string suiteName() {
+-        return "registryDefaultMethodTestSuite";
+-    }
+-    virtual void runtests(unsigned int) {
+-
+-        xmlrpc_c::registry myRegistry;
+-        
+-        myRegistry.addMethod("sample.add", methodPtr(new sampleAddMethod));
+-
+-        {
+-            string response;
+-            myRegistry.processCall(sampleAddGoodCallXml, &response);
+-            TEST(response == sampleAddGoodResponseXml);
+-        }
+-        {
+-            string response;
+-            myRegistry.processCall(nonexistentMethodCallXml, &response);
+-            TEST(response == nonexistentMethodNoDefResponseXml);
+-        }
+-        // We're actually violating the spirit of setDefaultMethod by
+-        // doing this to a registry that's already been used, but as long
+-        // as it works, it's a convenient way to implement this test.
+-        myRegistry.setDefaultMethod(defaultMethodPtr(new nameMethod));
+-
+-        {
+-            string response;
+-            myRegistry.processCall(nonexistentMethodCallXml, &response);
+-            TEST(response == nonexistentMethodYesDefResponseXml);
+-        }
+-    }
+-};
+-
+-
+-
+-class registryTestSuite : public testSuite {
+-
+-public:
+-    virtual string suiteName() {
+-        return "registryTestSuite";
+-    }
+-    virtual void runtests(unsigned int const indentation) {
+-
+-        registryRegMethodTestSuite().run(indentation+1);
+-        registryDefaultMethodTestSuite().run(indentation+1);
+-    }
+-};
+-
+-
+-
+-class clientXmlTransportTestSuite : public testSuite {
+-
+-public:
+-    virtual string suiteName() {
+-        return "clientXmlTransportTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-#if MUST_BUILD_CURL_CLIENT
+-        clientXmlTransport_curl transportc0;
+-        clientXmlTransport_curl transportc1("eth0");
+-        clientXmlTransport_curl transportc2("eth0", true);
+-        clientXmlTransport_curl transportc3("eth0", true, true);
+-#else
+-        EXPECT_ERROR(clientXmlTransport_curl transportc0;);
+-        EXPECT_ERROR(clientXmlTransport_curl transportc1("eth0"););
+-        EXPECT_ERROR(clientXmlTransport_curl transportc0("eth0", true););
+-        EXPECT_ERROR(clientXmlTransport_curl transportc0("eth0", true, true););
+-#endif
+-
+-#if MUST_BUILD_LIBWWW_CLIENT
+-        clientXmlTransport_libwww transportl0;
+-        clientXmlTransport_libwww transportl1("getbent");
+-        clientXmlTransport_libwww transportl2("getbent", "1.0");
+-#else
+-        EXPECT_ERROR(clientXmlTransport_libwww transportl0;);
+-        EXPECT_ERROR(clientXmlTransport_libwww transportl1("getbent"););
+-        EXPECT_ERROR(clientXmlTransport_libwww transportl2("getbent", "1.0"););
+-#endif
+-#if MUST_BUILD_WININET_CLIENT
+-        clientXmlTransport_wininet transportw0;
+-        clientXmlTransport_wininet transportw1(true);
+-#else
+-        EXPECT_ERROR(clientXmlTransport_wininet transportw0;);
+-        EXPECT_ERROR(clientXmlTransport_wininet transportw1(true););
+-#endif
+-    }
+-};
+-
+-
+-
+-class clientSimpleTestSuite : public testSuite {
+-
+-public:
+-    virtual string suiteName() {
+-        return "clientSimpleTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-
+-        clientSimple clientS0;
+-        paramList paramList0;
+-
+-        value result0;
+-
+-        // These will fail because there's no such server
+-        EXPECT_ERROR(clientS0.call("http://mf.comm", "biteme", &result0););
+-
+-        EXPECT_ERROR(
+-            clientS0.call("http://mf.comm", "biteme", "s", &result0, "hard");
+-            );
+-
+-        EXPECT_ERROR(
+-            clientS0.call("http://mf.comm", "biteme", paramList0, &result0);
+-            );
+-    }
+-};
+-        
+-
+-
+-class carriageParm_direct : public carriageParm {
+-public:
+-    carriageParm_direct(registry * const registryP) : registryP(registryP) {}
+-
+-    registry * registryP;
+-};
+-
+-
+-class clientXmlTransport_direct : public clientXmlTransport {
+-
+-public:    
+-    void
+-    call(xmlrpc_c::carriageParm * const  carriageParmP,
+-         string                   const& callXml,
+-         string *                 const  responseXmlP) {
+-
+-        carriageParm_direct * const parmP =
+-            dynamic_cast<carriageParm_direct *>(carriageParmP);
+-
+-        if (parmP == NULL)
+-            throw(error("Carriage parameter passed to the direct "
+-                        "transport is not type carriageParm_direct"));
+-
+-        parmP->registryP->processCall(callXml, responseXmlP);
+-    }
+-};
+-
+-
+-
+-class clientDirectAsyncTestSuite : public testSuite {
+-/*----------------------------------------------------------------------------
+-   See clientDirectTestSuite for a description of how we use a
+-   clientXmlTransport_direct object to test client functions.
+-
+-   The object of this class tests the async client functions.  With
+-   clientXmlTransport_direct, these are pretty simple because the
+-   transport doesn't even implement an asynchronous interface; it
+-   relies on the base class' emulation of start() using call().
+-
+-   Some day, we should add true asynchronous capability to
+-   clientXmlTransport_direct and really test things.
+------------------------------------------------------------------------------*/
+-public:
+-    virtual string suiteName() {
+-        return "clientDirectAsyncTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        
+-        registry myRegistry;
+-        
+-        myRegistry.addMethod("sample.add", methodPtr(new sampleAddMethod));
+-        
+-        carriageParm_direct carriageParmDirect(&myRegistry);
+-        clientXmlTransport_direct transportDirect;
+-        client_xml clientDirect(&transportDirect);
+-        paramList paramListSampleAdd1;
+-        paramListSampleAdd1.add(value_int(5));
+-        paramListSampleAdd1.add(value_int(7));
+-        paramList paramListSampleAdd2;
+-        paramListSampleAdd2.add(value_int(30));
+-        paramListSampleAdd2.add(value_int(-10));
+-
+-        rpcPtr const rpcSampleAdd1P("sample.add", paramListSampleAdd1);
+-        rpcSampleAdd1P->start(&clientDirect, &carriageParmDirect);
+-        rpcPtr const rpcSampleAdd2P("sample.add", paramListSampleAdd2);
+-        rpcSampleAdd2P->start(&clientDirect, &carriageParmDirect);
+-        
+-        TEST(rpcSampleAdd1P->isFinished());
+-        TEST(rpcSampleAdd1P->isSuccessful());
+-        value_int const result1(rpcSampleAdd1P->getResult());
+-        TEST(static_cast<int>(result1) == 12);
+-        
+-        TEST(rpcSampleAdd2P->isFinished());
+-        TEST(rpcSampleAdd1P->isSuccessful());
+-        value_int const result2(rpcSampleAdd2P->getResult());
+-        TEST(static_cast<int>(result2) == 20);
+-
+-        EXPECT_ERROR(clientDirect.finishAsync(timeout()););
+-        EXPECT_ERROR(clientDirect.finishAsync(timeout(50)););
+-    }
+-};
+-
+-
+-
+-class clientDirectTestSuite : public testSuite {
+-/*----------------------------------------------------------------------------
+-  The object of this class tests the client facilities by using a
+-  special client XML transport defined above and an XML-RPC server we
+-  build ourselves and run inline.  We build the server out of a
+-  xmlrpc_c::registry object and our transport just delivers XML
+-  directly to the registry object and gets the response XML from it
+-  and delivers that back.  There's no network or socket or pipeline or
+-  anything -- the transport actually executes the XML-RPC method.
+------------------------------------------------------------------------------*/
+-public:
+-    virtual string suiteName() {
+-        return "clientDirectTestSuite";
+-    }
+-    virtual void runtests(unsigned int const indentation) {
+-        registry myRegistry;
+-        
+-        myRegistry.addMethod("sample.add", methodPtr(new sampleAddMethod));
+-        
+-        carriageParm_direct carriageParmDirect(&myRegistry);
+-        clientXmlTransport_direct transportDirect;
+-        client_xml clientDirect(&transportDirect);
+-        paramList paramListSampleAdd;
+-        paramListSampleAdd.add(value_int(5));
+-        paramListSampleAdd.add(value_int(7));
+-        paramList paramListEmpty;
+-        {
+-            /* Test a successful RPC */
+-            rpcPtr rpcSampleAddP("sample.add", paramListSampleAdd);
+-            rpcSampleAddP->call(&clientDirect, &carriageParmDirect);
+-            TEST(rpcSampleAddP->isFinished());
+-            TEST(rpcSampleAddP->isSuccessful());
+-            EXPECT_ERROR(fault fault0(rpcSampleAddP->getFault()););
+-            value_int const resultDirect(rpcSampleAddP->getResult());
+-            TEST(static_cast<int>(resultDirect) == 12);
+-        }
+-        {
+-            /* Test a failed RPC */
+-            rpcPtr const rpcSampleAddP("sample.add", paramListEmpty);
+-            rpcSampleAddP->call(&clientDirect, &carriageParmDirect);
+-            TEST(rpcSampleAddP->isFinished());
+-            TEST(!rpcSampleAddP->isSuccessful());
+-            EXPECT_ERROR(value result(rpcSampleAddP->getResult()););
+-            fault const fault0(rpcSampleAddP->getFault());
+-            TEST(fault0.getCode() == fault::CODE_TYPE);
+-        }
+-
+-        clientDirectAsyncTestSuite().run(indentation+1);
+-    }
+-};
+-
+-
+-
+-class clientTestSuite : public testSuite {
+-
+-public:
+-    virtual string suiteName() {
+-        return "clientTestSuite";
+-    }
+-    virtual void runtests(unsigned int const indentation) {
+-
+-        clientDirectTestSuite().run(indentation+1);
+-
+-        clientXmlTransportTestSuite().run(indentation+1);
+-
+-        carriageParm_http0 carriageParm1("http://suckthis.comm");
+-        carriageParm_curl0 carriageParm2("http://suckthis.comm");
+-        carriageParm_libwww0 carriageParm3("http://suckthis.comm");
+-        carriageParm_wininet0 carriageParm4("http://suckthis.comm");
+-
+-#if MUST_BUILD_CURL_CLIENT
+-        clientXmlTransport_curl transportc0;
+-        client_xml client0(&transportc0);
+-        connection connection0(&client0, &carriageParm1);
+-        
+-        paramList paramList0;
+-
+-        rpcPtr rpc0P("blowme", paramList0);
+-
+-        // This fails because RPC has not been executed
+-        EXPECT_ERROR(value result(rpc0P->getResult()););
+-
+-        // This fails because server doesn't exist
+-        EXPECT_ERROR(rpc0P->call(&client0, &carriageParm2););
+-
+-        rpcPtr rpc1P("blowme", paramList0);
+-        // This fails because server doesn't exist
+-        EXPECT_ERROR(rpc1P->call(connection0););
+-
+-        rpcPtr rpc2P("blowme", paramList0);
+-
+-        rpc2P->start(&client0, &carriageParm2);
+-
+-        client0.finishAsync(timeout());
+-
+-        // This fails because the RPC failed because server doesn't exist
+-        EXPECT_ERROR(value result(rpc2P->getResult()););
+-
+-        // This fails because the RPC has already been executed
+-        EXPECT_ERROR(rpc2P->start(connection0););
+-
+-        rpcPtr rpc3P("blowme", paramList0);
+-        rpc3P->start(connection0);
+-
+-        client0.finishAsync(timeout());
+-        
+-        // This fails because the RPC failed because server doesn't exist
+-        EXPECT_ERROR(value result(rpc3P->getResult()););
+-#endif
+-        clientSimpleTestSuite().run(indentation+1);
+-    }
+-};
+-
+-//=========================================================================
+-//  Test Driver
+-//=========================================================================
+-
+-int 
+-main(int argc, char**) {
+-    
+-    int retval;
+-
+-    if (argc-1 > 0) {
+-        cout << "Program takes no arguments" << endl;
+-        exit(1);
+-    }
+-
+-    bool testsPassed;
+-
+-    try {
+-        // Add your test suites here.
+-        valueTestSuite().run(0);
+-        paramListTestSuite().run(0);
+-        registryTestSuite().run(0);
+-        clientTestSuite().run(0);
+-
+-        testXmlRpcCpp();
+-
+-        testsPassed = true;
+-    } catch (error thisError) {
+-        cout << "Unexpected error thrown:  " << thisError.what() << endl;
+-        testsPassed = false;
+-    } catch (XmlRpcFault& fault) {
+-        cout << "Unexpected XML-RPC fault when running test suites." << endl
+-             << "Fault #" << fault.getFaultCode()
+-             << ": " << fault.getFaultString() << endl;
+-        testsPassed = false;
+-    } catch (...) {
+-        cout << "Unexpected exception when running test suites." << endl;
+-        testsPassed = false;
+-    }
+-
+-    if (testsPassed) {
+-        cout << "PASSED" << endl;
+-        retval = 0;
+-    } else {
+-        cout << "FAILED" << endl;
+-        retval = 1;
+-    }
+-    return retval;
+-}
+diff --git a/libs/xmlrpc-c/src/cpp/curl.cpp b/libs/xmlrpc-c/src/cpp/curl.cpp
+index 6181929..5751385 100644
+--- a/libs/xmlrpc-c/src/cpp/curl.cpp
++++ b/libs/xmlrpc-c/src/cpp/curl.cpp
+@@ -127,27 +127,93 @@ carriageParm_curl0Ptr::operator->() const {
+-clientXmlTransport_curl::constrOpt::constrOpt() {
++struct clientXmlTransport_curl::constrOpt_impl {
++
++    constrOpt_impl();
++
++    struct {
++        std::string  network_interface;
++        bool         no_ssl_verifypeer;
++        bool         no_ssl_verifyhost;
++        bool         dont_advertise;
++        std::string  user_agent;
++        std::string  ssl_cert;
++        std::string  sslcerttype;
++        std::string  sslcertpasswd;
++        std::string  sslkey;
++        std::string  sslkeytype;
++        std::string  sslkeypasswd;
++        std::string  sslengine;
++        bool         sslengine_default;
++        xmlrpc_sslversion sslversion;
++        std::string  cainfo;
++        std::string  capath;
++        std::string  randomfile;
++        std::string  egdsocket;
++        std::string  ssl_cipher_list;
++        unsigned int timeout;
++        std::string  proxy;
++        unsigned int proxy_auth;
++        unsigned int proxy_port;
++        std::string  proxy_userpwd;
++        xmlrpc_httpproxytype proxy_type;
++    } value;
++    struct {
++        bool network_interface;
++        bool no_ssl_verifypeer;
++        bool no_ssl_verifyhost;
++        bool dont_advertise;
++        bool user_agent;
++        bool ssl_cert;
++        bool sslcerttype;
++        bool sslcertpasswd;
++        bool sslkey;
++        bool sslkeytype;
++        bool sslkeypasswd;
++        bool sslengine;
++        bool sslengine_default;
++        bool sslversion;
++        bool cainfo;
++        bool capath;
++        bool randomfile;
++        bool egdsocket;
++        bool ssl_cipher_list;
++        bool timeout;
++        bool proxy;
++        bool proxy_auth;
++        bool proxy_port;
++        bool proxy_userpwd;
++        bool proxy_type;
++    } present;
++};
++
++clientXmlTransport_curl::constrOpt_impl::constrOpt_impl() {
+     present.network_interface = false;
+     present.no_ssl_verifypeer = false;
+     present.no_ssl_verifyhost = false;
+-    present.user_agent = false;
+-    present.ssl_cert = false;
+-    present.sslcerttype = false;
+-    present.sslcertpasswd = false;
+-    present.sslkey = false;
+-    present.sslkeytype = false;
+-    present.sslkeypasswd = false;
+-    present.sslengine = false;
++    present.dont_advertise    = false;
++    present.user_agent        = false;
++    present.ssl_cert          = false;
++    present.sslcerttype       = false;
++    present.sslcertpasswd     = false;
++    present.sslkey            = false;
++    present.sslkeytype        = false;
++    present.sslkeypasswd      = false;
++    present.sslengine         = false;
+     present.sslengine_default = false;
+-    present.sslversion = false;
+-    present.cainfo = false;
+-    present.capath = false;
+-    present.randomfile = false;
+-    present.egdsocket = false;
+-    present.ssl_cipher_list = false;
+-    present.timeout = false;
++    present.sslversion        = false;
++    present.cainfo            = false;
++    present.capath            = false;
++    present.randomfile        = false;
++    present.egdsocket         = false;
++    present.ssl_cipher_list   = false;
++    present.timeout           = false;
++    present.proxy             = false;
++    present.proxy_port        = false;
++    present.proxy_auth        = false;
++    present.proxy_userpwd     = false;
++    present.proxy_type        = false;
+ }
+@@ -155,14 +221,15 @@ clientXmlTransport_curl::constrOpt::constrOpt() {
+ #define DEFINE_OPTION_SETTER(OPTION_NAME, TYPE) \
+ clientXmlTransport_curl::constrOpt & \
+ clientXmlTransport_curl::constrOpt::OPTION_NAME(TYPE const& arg) { \
+-    this->value.OPTION_NAME = arg; \
+-    this->present.OPTION_NAME = true; \
++    this->implP->value.OPTION_NAME = arg; \
++    this->implP->present.OPTION_NAME = true; \
+     return *this; \
+ }
+ DEFINE_OPTION_SETTER(network_interface, string);
+ DEFINE_OPTION_SETTER(no_ssl_verifypeer, bool);
+ DEFINE_OPTION_SETTER(no_ssl_verifyhost, bool);
++DEFINE_OPTION_SETTER(dont_advertise, bool);
+ DEFINE_OPTION_SETTER(user_agent, string);
+ DEFINE_OPTION_SETTER(ssl_cert, string);
+ DEFINE_OPTION_SETTER(sslcerttype, string);
+@@ -179,13 +246,41 @@ DEFINE_OPTION_SETTER(randomfile, string);
+ DEFINE_OPTION_SETTER(egdsocket, string);
+ DEFINE_OPTION_SETTER(ssl_cipher_list, string);
+ DEFINE_OPTION_SETTER(timeout, unsigned int);
++DEFINE_OPTION_SETTER(proxy, string);
++DEFINE_OPTION_SETTER(proxy_port, unsigned int);
++DEFINE_OPTION_SETTER(proxy_auth, unsigned int);
++DEFINE_OPTION_SETTER(proxy_userpwd, string);
++DEFINE_OPTION_SETTER(proxy_type, xmlrpc_httpproxytype);
+ #undef DEFINE_OPTION_SETTER
++clientXmlTransport_curl::constrOpt::constrOpt() {
++
++    this->implP = new clientXmlTransport_curl::constrOpt_impl();
++}
++
++
++
++clientXmlTransport_curl::constrOpt::~constrOpt() {
++
++    delete(this->implP);
++}
++
++
++
++clientXmlTransport_curl::constrOpt::constrOpt(constrOpt& arg) {
++
++    this->implP = new constrOpt_impl(*arg.implP);
++}
++
++
++
+ #if MUST_BUILD_CURL_CLIENT
+ void
+-clientXmlTransport_curl::initialize(constrOpt const& opt) {
++clientXmlTransport_curl::initialize(constrOpt const& optExt) {
++    constrOpt_impl const opt(*optExt.implP);
++
+     struct xmlrpc_curl_xportparms transportParms; 
+     transportParms.network_interface = opt.present.network_interface ?
+@@ -194,6 +289,8 @@ clientXmlTransport_curl::initialize(constrOpt const& opt) {
+         opt.value.no_ssl_verifypeer         : false;
+     transportParms.no_ssl_verifyhost = opt.present.no_ssl_verifyhost ? 
+         opt.value.no_ssl_verifyhost         : false;
++    transportParms.dont_advertise    = opt.present.dont_advertise ?
++        opt.value.dont_advertise            : false;
+     transportParms.user_agent        = opt.present.user_agent ?
+         opt.value.user_agent.c_str()        : NULL;
+     transportParms.ssl_cert          = opt.present.ssl_cert ?
+@@ -226,6 +323,16 @@ clientXmlTransport_curl::initialize(constrOpt const& opt) {
+         opt.value.ssl_cipher_list.c_str()   : NULL;
+     transportParms.timeout           = opt.present.timeout ? 
+         opt.value.timeout                   : 0;
++    transportParms.proxy             = opt.present.proxy ? 
++        opt.value.proxy.c_str()             : NULL;
++    transportParms.proxy_port        = opt.present.proxy_port ? 
++        opt.value.proxy_port                : 0;
++    transportParms.proxy_auth        = opt.present.proxy_auth ? 
++        opt.value.proxy_auth                : XMLRPC_HTTPAUTH_NONE;
++    transportParms.proxy_userpwd     = opt.present.proxy_userpwd ? 
++        opt.value.proxy_userpwd.c_str()     : NULL;
++    transportParms.proxy_type        = opt.present.proxy_type ? 
++        opt.value.proxy_type                : XMLRPC_HTTPPROXY_HTTP;
+     this->c_transportOpsP = &xmlrpc_curl_transport_ops;
+@@ -233,7 +340,7 @@ clientXmlTransport_curl::initialize(constrOpt const& opt) {
+     xmlrpc_curl_transport_ops.create(
+         &env.env_c, 0, "", "",
+-        &transportParms, XMLRPC_CXPSIZE(timeout),
++        &transportParms, XMLRPC_CXPSIZE(dont_advertise),
+         &this->c_transportP);
+     if (env.env_c.fault_occurred)
+diff --git a/libs/xmlrpc-c/src/cpp/env_wrap.hpp b/libs/xmlrpc-c/src/cpp/env_wrap.hpp
+index 0172f2b..f31cb0e 100644
+--- a/libs/xmlrpc-c/src/cpp/env_wrap.hpp
++++ b/libs/xmlrpc-c/src/cpp/env_wrap.hpp
+@@ -1,11 +1,12 @@
+ #ifndef ENV_INT_HPP_INCLUDED
+ #define ENV_INT_HPP_INCLUDED
++#include "xmlrpc-c/c_util.h"
+ #include "xmlrpc-c/util.h"
+ namespace xmlrpc_c {
+-class env_wrap {
++class XMLRPC_DLLEXPORT env_wrap {
+ /*----------------------------------------------------------------------------
+    A wrapper to assist in using the Xmlrpc-c C libraries in
+    Xmlrpc-c C++ code.
+diff --git a/libs/xmlrpc-c/src/cpp/libwww.cpp b/libs/xmlrpc-c/src/cpp/libwww.cpp
+index 1e2998c..3a2e9a6 100644
+--- a/libs/xmlrpc-c/src/cpp/libwww.cpp
++++ b/libs/xmlrpc-c/src/cpp/libwww.cpp
+@@ -141,7 +141,8 @@ clientXmlTransport_libwww::clientXmlTransport_libwww(
+ }
+ #else  // MUST_BUILD_LIBWWW_CLIENT
+- clientXmlTransport_libwww::clientXmlTransport_libwww(string, string) {
++ clientXmlTransport_libwww::clientXmlTransport_libwww(string const,
++                                                      string const) {
+     throw(error("There is no Libwww client XML transport "
+                 "in this XML-RPC client library"));
+diff --git a/libs/xmlrpc-c/src/cpp/packetsocket.cpp b/libs/xmlrpc-c/src/cpp/packetsocket.cpp
+index c984215..28fd09f 100644
+--- a/libs/xmlrpc-c/src/cpp/packetsocket.cpp
++++ b/libs/xmlrpc-c/src/cpp/packetsocket.cpp
+@@ -37,15 +37,15 @@
+      All bytes not part of a control word are literal bytes of a packet.
+-  You can create a packet socket from any file descriptor from which
+-  you can read and write a bidirectional character stream.  Typically,
+-  it's a TCP socket.
++  You can create a packet socket from a POSIX stream socket or a
++  Windows emulation of one.
+   One use of the NOP control word is to validate that the connection
+   is still working.  You might send one periodically to detect, for
+   example, an unplugged TCP/IP network cable.  It's probably better
+   to use the TCP keepalive facility for that.
+ ============================================================================*/
++#include "xmlrpc_config.h"
+ #include <cassert>
+ #include <string>
+@@ -54,10 +54,18 @@
+ #include <sstream>
+ #include <cstdio>
+ #include <cstdlib>
+-#include <unistd.h>
++
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <poll.h>
++#if MSVCRT
++# include <winsock2.h>
++# include <io.h>
++#else
++# include <unistd.h>
++# include <poll.h>
++# include <sys/socket.h>
++#endif
++
+ #include <sys/types.h>
+ #include "c_util.h"
+@@ -67,10 +75,266 @@ using girerr::throwf;
+ #include "xmlrpc-c/packetsocket.hpp"
++using namespace std;
+ #define ESC 0x1B   //  ASCII Escape character
+ #define ESC_STR "\x1B"
++class XMLRPC_DLLEXPORT socketx {
++
++public:
++    socketx(int const sockFd);
++
++    ~socketx();
++
++    void
++    waitForReadable() const;
++
++    void
++    waitForWritable() const;
++
++    void
++    read(unsigned char * const buffer,
++         size_t          const bufferSize,
++         bool *          const wouldblockP,
++         size_t *        const bytesReadP) const;
++
++    void
++    writeWait(const unsigned char * const data,
++              size_t                const size) const;
++private:
++    int fd;
++    bool fdIsBorrowed;
++};
++
++
++
++/* Sockets are similar, but not identical between Unix and Windows.
++   Some Unix socket functions appear to be available on Windows (a
++   Unix compatibility feature), but work only for file descriptor
++   numbers < 32, so we don't use those.
++*/
++
++socketx::socketx(int const sockFd) {
++#if MSVCRT        
++    // We don't have any way to duplicate; we'll just have to borrow.
++    this->fdIsBorrowed = true;
++    this->fd = sockFd;
++    u_long iMode(1);  // Nonblocking mode yes
++    ioctlsocket(this->fd, FIONBIO, &iMode);  // Make socket nonblocking
++#else
++    this->fdIsBorrowed = false;
++
++    int dupRc;
++
++    dupRc = dup(sockFd);
++
++    if (dupRc < 0)
++        throwf("dup() failed.  errno=%d (%s)", errno, strerror(errno));
++    else {
++        this->fd = dupRc;
++        fcntl(this->fd, F_SETFL, O_NONBLOCK);  // Make socket nonblocking
++    }
++#endif
++}
++
++
++
++socketx::~socketx() {
++
++    if (!this->fdIsBorrowed) {
++#if MSVCRT
++        ::closesocket(SOCKET(this->fd));
++#else
++        close(this->fd);
++#endif
++    }
++}
++
++
++
++void
++socketx::waitForReadable() const {
++    /* Return when there is something to read from the socket
++       (an EOF indication counts as something to read).  Also
++       return if there is a signal (handled, of course).  Rarely,
++       it is OK to return when there isn't anything to read.
++    */
++#if  MSVCRT
++    // poll() is not available; settle for select().
++    // Starting in Windows Vista, there is WSApoll()
++    fd_set rd_set;
++    FD_ZERO(&rd_set);
++    FD_SET(this->fd, &rd_set);
++
++    select(this->fd + 1, &rd_set, 0, 0, 0);
++#else
++    // poll() beats select() because higher file descriptor numbers
++    // work.
++    struct pollfd pollfds[1];
++
++    pollfds[0].fd = this->fd;
++    pollfds[0].events = POLLIN;
++
++    poll(pollfds, ARRAY_SIZE(pollfds), -1);
++#endif
++}
++
++
++
++void
++socketx::waitForWritable() const {
++    /* Return when socket is able to be written to. */
++#if MSVCRT
++    fd_set wr_set;
++    FD_ZERO(&wr_set);
++    FD_SET(this->fd, &wr_set);
++
++    select(this->fd + 1, 0, &wr_set, 0, 0);
++#else
++    struct pollfd pollfds[1];
++        
++    pollfds[0].fd = this->fd;
++    pollfds[0].events = POLLOUT;
++        
++    poll(pollfds, ARRAY_SIZE(pollfds), -1);
++#endif
++}
++
++
++
++static bool
++wouldBlock() {
++/*----------------------------------------------------------------------------
++   The most recently executed system socket function, which we assume failed,
++   failed because the situation was such that it wanted to block, but the
++   socket had the nonblocking option.
++-----------------------------------------------------------------------------*/
++#if MSVCRT
++    return (WSAGetLastError() == WSAEWOULDBLOCK ||
++            WSAGetLastError() == WSAEINPROGRESS);
++#else
++    /* EWOULDBLOCK and EAGAIN are normally synonyms, but POSIX allows them
++       to be separate and allows the OS to return whichever one it wants
++       for the "would block" condition.
++    */
++    return (errno == EWOULDBLOCK || errno == EAGAIN);
++#endif
++}
++
++
++
++static string
++lastErrorDesc() {
++/*----------------------------------------------------------------------------
++   A description suitable for an error message of why the most recent
++   failed system socket function failed.
++-----------------------------------------------------------------------------*/
++    ostringstream msg;
++#if MSVCRT
++    int const lastError = WSAGetLastError();
++    msg << "winsock error code " << lastError << " "
++        << "(" << strerror(lastError) << ")";
++#else
++    msg << "errno = " << errno << ", (" << strerror(errno);
++#endif
++    return msg.str();
++}
++
++
++
++
++void
++socketx::read(unsigned char * const buffer,
++              size_t          const bufferSize,
++              bool *          const wouldblockP,
++              size_t *        const bytesReadP) const {
++    
++    int rc;
++
++    // We've seen a Windows library whose recv() expects a char * buffer
++    // (cf POSIX void *), so we cast.
++
++    rc = recv(this->fd, (char *)buffer, bufferSize, 0);
++
++    if (rc < 0) {
++        if (wouldBlock()) {
++            *wouldblockP = true;
++            *bytesReadP  = 0;
++        } else
++            throwf("read() of socket failed with %s", lastErrorDesc().c_str());
++    } else {
++        *wouldblockP = false;
++        *bytesReadP  = rc;
++    }
++}
++
++
++
++static void
++writeFd(int                   const fd,
++        const unsigned char * const data,
++        size_t                const size,
++        size_t *              const bytesWrittenP) {
++
++    size_t totalBytesWritten;
++    bool full;  // File image is "full" for now - won't take any more data
++
++    full = false;
++    totalBytesWritten = 0;
++
++    while (totalBytesWritten < size && !full) {
++        int rc;
++
++        rc = send(fd, (char*)&data[totalBytesWritten],
++                  size - totalBytesWritten, 0);
++
++        if (rc < 0) {
++            if (wouldBlock())
++                full = true;
++            else
++                throwf("write() of socket failed with %s",
++                       lastErrorDesc().c_str());
++        } else if (rc == 0)
++            throwf("Zero byte short write.");
++        else {
++            size_t const bytesWritten(rc);
++            totalBytesWritten += bytesWritten;
++        }
++    }
++    *bytesWrittenP = totalBytesWritten;
++}
++
++
++
++void
++socketx::writeWait(const unsigned char * const data,
++                   size_t                const size) const {
++/*----------------------------------------------------------------------------
++   Write the 'size' bytes at 'data' to the socket.  Wait as long
++   as it takes for the file image to be able to take all the data.
++-----------------------------------------------------------------------------*/
++    size_t totalBytesWritten;
++
++    // We do the first one blind because it will probably just work
++    // and we don't want to waste the poll() call and buffer arithmetic.
++
++    writeFd(this->fd, data, size, &totalBytesWritten);
++
++    while (totalBytesWritten < size) {
++        this->waitForWritable();
++
++        size_t bytesWritten;
++
++        writeFd(this->fd, &data[totalBytesWritten], size - totalBytesWritten,
++                &bytesWritten);
++
++        totalBytesWritten += bytesWritten;
++    }
++}
++
++
++
+ namespace xmlrpc_c {
+@@ -86,7 +350,7 @@ packet::initialize(const unsigned char * const data,
+     this->bytes = reinterpret_cast<unsigned char *>(malloc(dataLength));
+     if (this->bytes == NULL)
+-        throwf("Can't get storage for a %u-byte packet.", dataLength);
++        throwf("Can't get storage for a %u-byte packet", (unsigned)dataLength);
+     this->allocSize = dataLength;
+@@ -138,7 +402,7 @@ packet::addData(const unsigned char * const data,
+             realloc(this->bytes, neededSize));
+     if (this->bytes == NULL)
+-        throwf("Can't get storage for a %u-byte packet.", neededSize);
++        throwf("Can't get storage for a %u-byte packet", (unsigned)neededSize);
+     memcpy(this->bytes + this->length, data, dataLength);
+@@ -166,33 +430,83 @@ packetPtr::operator->() const {
+-packetSocket::packetSocket(int const sockFd) {
+-
+-    int dupRc;
+-
+-    dupRc = dup(sockFd);
+-    
+-    if (dupRc < 0)
+-        throwf("dup() failed.  errno=%d (%s)", errno, strerror(errno));
+-    else {
+-        this->sockFd = dupRc;
+-
+-        this->inEscapeSeq = false;
+-        this->inPacket    = false;
+-
+-        this->escAccum.len = 0;
+-        
+-        fcntl(this->sockFd, F_SETFL, O_NONBLOCK);
++class packetSocket_impl {
+-        this->eof = false;
+-    }
+-}
++public:
++    packetSocket_impl(int const sockFd);
++    void
++    writeWait(packetPtr const& packetP) const;
++    void
++    read(bool *      const eofP,
++         bool *      const gotPacketP,
++         packetPtr * const packetPP);
+-packetSocket::~packetSocket() {
++    void
++    readWait(volatile const int * const interruptP,
++             bool *               const eofP,
++             bool *               const gotPacketP,
++             packetPtr *          const packetPP);
+-    close(this->sockFd);
++private:
++    socketx sock;
++        // The kernel stream socket we use.
++    bool eof;
++        // The packet socket is at end-of-file for reads.
++        // 'readBuffer' is empty and there won't be any more data to fill
++        // it because the underlying stream socket is closed.
++    std::queue<packetPtr> readBuffer;
++    packetPtr packetAccumP;
++        // The receive packet we're currently accumulating; it will join
++        // 'readBuffer' when we've received the whole packet (and we've
++        // seen the END escape sequence so we know we've received it all).
++        // If we're not currently accumulating a packet (haven't seen a
++        // PKT escape sequence), this points to nothing.
++    bool inEscapeSeq;
++        // In our trek through the data read from the underlying stream
++        // socket, we are after an ESC character and before the end of the
++        // escape sequence.  'escAccum' shows what of the escape sequence
++        // we've seen so far.
++    bool inPacket;
++        // We're now receiving packet data from the underlying stream
++        // socket.  We've seen a complete PKT escape sequence, but have not
++        // seen a complete END escape sequence since.
++    struct {
++        unsigned char bytes[3];
++        size_t len;
++    } escAccum;
++
++    void
++    takeSomeEscapeSeq(const unsigned char * const buffer,
++                                    size_t                const length,
++                                    size_t *              const bytesTakenP);
++
++    void
++    takeSomePacket(const unsigned char * const buffer,
++                   size_t                const length,
++                   size_t *              const bytesTakenP);
++
++    void
++    verifyNothingAccumulated();
++
++    void
++    processBytesRead(const unsigned char * const buffer,
++                     size_t                const bytesRead);
++
++    void
++    readFromFile();
++};
++
++
++
++packetSocket_impl::packetSocket_impl(int const sockFd) :
++    sock(sockFd) {
++
++    this->inEscapeSeq  = false;
++    this->inPacket     = false;
++    this->escAccum.len = 0;
++    this->eof          = false;
+ }
+@@ -229,106 +543,27 @@ packetSocket::~packetSocket() {
+ -----------------------------------------------------------------------------*/
+-static void
+-writeFd(int                   const fd,
+-        const unsigned char * const data,
+-        size_t                const size,
+-        size_t *              const bytesWrittenP) {
+-
+-    size_t totalBytesWritten;
+-    bool full;  // File image is "full" for now - won't take any more data
+-
+-    full = false;
+-    totalBytesWritten = 0;
+-
+-    while (totalBytesWritten < size && !full) {
+-        ssize_t rc;
+-
+-        rc = write(fd, &data[totalBytesWritten], size - totalBytesWritten);
+-
+-        if (rc < 0) {
+-            if (errno == EAGAIN)
+-                full = true;
+-            else
+-                throwf("write() of socket failed with errno %d (%s)",
+-                       errno, strerror(errno));
+-        } else if (rc == 0)
+-            throwf("Zero byte short write.");
+-        else {
+-            size_t const bytesWritten(rc);
+-            totalBytesWritten += bytesWritten;
+-        }
+-    }
+-    *bytesWrittenP = totalBytesWritten;
+-}
+-
+-
+-
+-static void
+-writeFdWait(int                   const fd,
+-            const unsigned char * const data,
+-            size_t                const size) {
+-/*----------------------------------------------------------------------------
+-   Write the 'size' bytes at 'data' to the file image 'fd'.  Wait as long
+-   as it takes for the file image to be able to take all the data.
+------------------------------------------------------------------------------*/
+-    size_t totalBytesWritten;
+-
+-    // We do the first one blind because it will probably just work
+-    // and we don't want to waste the poll() call and buffer arithmetic.
+-
+-    writeFd(fd, data, size, &totalBytesWritten);
+-
+-    while (totalBytesWritten < size) {
+-        struct pollfd pollfds[1];
+-        
+-        pollfds[0].fd = fd;
+-        pollfds[0].events = POLLOUT;
+-        
+-        poll(pollfds, ARRAY_SIZE(pollfds), -1);
+-
+-        size_t bytesWritten;
+-
+-        writeFd(fd, &data[totalBytesWritten], size - totalBytesWritten,
+-                &bytesWritten);
+-
+-        totalBytesWritten += bytesWritten;
+-    }
+-}
+-
+-
+-
+ void
+-packetSocket::writeWait(packetPtr const& packetP) const {
++packetSocket_impl::writeWait(packetPtr const& packetP) const {
+     const unsigned char * const packetStart(
+         reinterpret_cast<const unsigned char *>(ESC_STR "PKT"));
+     const unsigned char * const packetEnd(
+         reinterpret_cast<const unsigned char *>(ESC_STR "END"));
+-    writeFdWait(this->sockFd, packetStart, 4);
+-
+-    writeFdWait(this->sockFd, packetP->getBytes(), packetP->getLength());
++    this->sock.writeWait(packetStart, 4);
+-    writeFdWait(this->sockFd, packetEnd, 4);
+-}
+-
+-
+-
+-static ssize_t
+-libc_read(int    const fd,
+-          void * const buf,
+-          size_t const count) {
++    this->sock.writeWait(packetP->getBytes(), packetP->getLength());
+-    return read(fd, buf, count);
++    this->sock.writeWait(packetEnd, 4);
+ }
+ void
+-packetSocket::takeSomeEscapeSeq(const unsigned char * const buffer,
+-                                size_t                const length,
+-                                size_t *              const bytesTakenP) {
++packetSocket_impl::takeSomeEscapeSeq(const unsigned char * const buffer,
++                                     size_t                const length,
++                                     size_t *              const bytesTakenP) {
+ /*----------------------------------------------------------------------------
+    Take and process some bytes from the incoming stream 'buffer',
+    which contains 'length' bytes, assuming they are within an escape
+@@ -378,9 +613,9 @@ packetSocket::takeSomeEscapeSeq(const unsigned char * const buffer,
+ void
+-packetSocket::takeSomePacket(const unsigned char * const buffer,
+-                             size_t                const length,
+-                             size_t *              const bytesTakenP) {
++packetSocket_impl::takeSomePacket(const unsigned char * const buffer,
++                                  size_t                const length,
++                                  size_t *              const bytesTakenP) {
+     assert(!this->inEscapeSeq);
+@@ -408,7 +643,7 @@ packetSocket::takeSomePacket(const unsigned char * const buffer,
+ void
+-packetSocket::verifyNothingAccumulated() {
++packetSocket_impl::verifyNothingAccumulated() {
+ /*----------------------------------------------------------------------------
+    Throw an error if there is a partial packet accumulated.
+ -----------------------------------------------------------------------------*/
+@@ -419,14 +654,14 @@ packetSocket::verifyNothingAccumulated() {
+     if (this->inPacket)
+         throwf("Stream socket closed in the middle of a packet "
+                "(%u bytes of packet received; no END marker to mark "
+-               "end of packet)", this->packetAccumP->getLength());
++               "end of packet)", (unsigned)this->packetAccumP->getLength());
+ }
+ void
+-packetSocket::processBytesRead(const unsigned char * const buffer,
+-                               size_t                const bytesRead) {
++packetSocket_impl::processBytesRead(const unsigned char * const buffer,
++                                    size_t                const bytesRead) {
+     unsigned int cursor;  // Cursor into buffer[]
+     cursor = 0;
+@@ -456,7 +691,7 @@ packetSocket::processBytesRead(const unsigned char * const buffer,
+ void
+-packetSocket::readFromFile() {
++packetSocket_impl::readFromFile() {
+ /*----------------------------------------------------------------------------
+    Read some data from the underlying stream socket.  Read as much as is
+    available right now, up to 4K.  Update 'this' to reflect the data read.
+@@ -473,19 +708,11 @@ packetSocket::readFromFile() {
+     while (this->readBuffer.empty() && !this->eof && !wouldblock) {
+         unsigned char buffer[4096];
+-        ssize_t rc;
++        size_t bytesRead;
+-        rc = libc_read(this->sockFd, buffer, sizeof(buffer));
+-
+-        if (rc < 0) {
+-            if (errno == EWOULDBLOCK)
+-                wouldblock = true;
+-            else
+-                throwf("read() of socket failed with errno %d (%s)",
+-                       errno, strerror(errno));
+-        } else {
+-            size_t const bytesRead(rc);
++        this->sock.read(buffer, sizeof(buffer), &wouldblock, &bytesRead);
++        if (!wouldblock) {
+             if (bytesRead == 0) {
+                 this->eof = true;
+                 this->verifyNothingAccumulated();
+@@ -498,9 +725,9 @@ packetSocket::readFromFile() {
+ void
+-packetSocket::read(bool *      const eofP,
+-                   bool *      const gotPacketP,
+-                   packetPtr * const packetPP) {
++packetSocket_impl::read(bool *      const eofP,
++                        bool *      const gotPacketP,
++                        packetPtr * const packetPP) {
+ /*----------------------------------------------------------------------------
+    Read one packet from the socket, through the internal packet buffer.
+@@ -535,10 +762,10 @@ packetSocket::read(bool *      const eofP,
+ void
+-packetSocket::readWait(volatile const int * const interruptP,
+-                       bool *               const eofP,
+-                       bool *               const gotPacketP,
+-                       packetPtr *          const packetPP) {
++packetSocket_impl::readWait(volatile const int * const interruptP,
++                            bool *               const eofP,
++                            bool *               const gotPacketP,
++                            packetPtr *          const packetPP) {
+     bool gotPacket;
+     bool eof;
+@@ -547,13 +774,8 @@ packetSocket::readWait(volatile const int * const interruptP,
+     eof = false;
+     while (!gotPacket && !eof && !*interruptP) {
+-        struct pollfd pollfds[1];
+-
+-        pollfds[0].fd = this->sockFd;
+-        pollfds[0].events = POLLIN;
+-
+-        poll(pollfds, ARRAY_SIZE(pollfds), -1);
++        this->sock.waitForReadable();
+         this->read(&eof, &gotPacket, packetPP);
+     }
+@@ -563,6 +785,49 @@ packetSocket::readWait(volatile const int * const interruptP,
++packetSocket::packetSocket(int const sockFd) {
++
++    this->implP = new packetSocket_impl(sockFd);
++}
++
++
++
++packetSocket::~packetSocket() {
++
++    delete(this->implP);
++}
++
++
++
++void
++packetSocket::writeWait(packetPtr const& packetP) const {
++
++    implP->writeWait(packetP);
++}
++
++
++
++void
++packetSocket::read(bool *      const eofP,
++                   bool *      const gotPacketP,
++                   packetPtr * const packetPP) {
++
++    this->implP->read(eofP, gotPacketP, packetPP);
++}
++
++
++
++void
++packetSocket::readWait(volatile const int * const interruptP,
++                       bool *               const eofP,
++                       bool *               const gotPacketP,
++                       packetPtr *          const packetPP) {
++
++    this->implP->readWait(interruptP, eofP, gotPacketP, packetPP);
++}
++
++
++
+ void
+ packetSocket::readWait(volatile const int * const interruptP,
+                        bool *               const eofP,
+@@ -570,7 +835,7 @@ packetSocket::readWait(volatile const int * const interruptP,
+     bool gotPacket;
+-    this->readWait(interruptP, eofP, &gotPacket, packetPP);
++    this->implP->readWait(interruptP, eofP, &gotPacket, packetPP);
+     if (!gotPacket)
+         throwf("Packet read was interrupted");
+diff --git a/libs/xmlrpc-c/src/cpp/pstream.cpp b/libs/xmlrpc-c/src/cpp/pstream.cpp
+index 6a75160..fd2a31d 100644
+--- a/libs/xmlrpc-c/src/cpp/pstream.cpp
++++ b/libs/xmlrpc-c/src/cpp/pstream.cpp
+@@ -37,9 +37,24 @@ using namespace std;
+ namespace xmlrpc_c {
+-clientXmlTransport_pstream::constrOpt::constrOpt() {
+-    present.fd = false;
++struct clientXmlTransport_pstream::constrOpt_impl {
++
++    constrOpt_impl();
++
++    struct {
++        int         fd;
++    } value;
++    struct {
++        bool fd;
++    } present;
++};
++
++
++
++clientXmlTransport_pstream::constrOpt_impl::constrOpt_impl() {
++
++    this->present.fd = false;
+ }
+@@ -47,8 +62,8 @@ clientXmlTransport_pstream::constrOpt::constrOpt() {
+ #define DEFINE_OPTION_SETTER(OPTION_NAME, TYPE) \
+ clientXmlTransport_pstream::constrOpt & \
+ clientXmlTransport_pstream::constrOpt::OPTION_NAME(TYPE const& arg) { \
+-    this->value.OPTION_NAME = arg; \
+-    this->present.OPTION_NAME = true; \
++    this->implP->value.OPTION_NAME = arg; \
++    this->implP->present.OPTION_NAME = true; \
+     return *this; \
+ }
+@@ -58,7 +73,31 @@ DEFINE_OPTION_SETTER(fd, xmlrpc_socket);
+-clientXmlTransport_pstream::clientXmlTransport_pstream(constrOpt const& opt) {
++clientXmlTransport_pstream::constrOpt::constrOpt() {
++
++    this->implP = new clientXmlTransport_pstream::constrOpt_impl();
++}
++
++
++
++clientXmlTransport_pstream::constrOpt::~constrOpt() {
++
++    delete(this->implP);
++}
++
++
++
++clientXmlTransport_pstream::constrOpt::constrOpt(constrOpt& arg) {
++
++    this->implP = new clientXmlTransport_pstream::constrOpt_impl(*arg.implP);
++}
++
++
++
++clientXmlTransport_pstream::clientXmlTransport_pstream(
++    constrOpt const& optExt) {
++
++    constrOpt_impl const opt(*optExt.implP);
+     if (!opt.present.fd)
+         throwf("You must provide a 'fd' constructor option.");
+diff --git a/libs/xmlrpc-c/src/cpp/registry.cpp b/libs/xmlrpc-c/src/cpp/registry.cpp
+index 26bfa95..9b3bc3e 100644
+--- a/libs/xmlrpc-c/src/cpp/registry.cpp
++++ b/libs/xmlrpc-c/src/cpp/registry.cpp
+@@ -59,6 +59,24 @@ methodPtr::operator->() const {
++method2::method2() {}
++
++
++
++method2::~method2() {}
++
++
++void
++method2::execute(xmlrpc_c::paramList const& paramList,
++                 xmlrpc_c::value *   const  resultP) {
++
++    callInfo const nullCallInfo;
++
++    execute(paramList, &nullCallInfo, resultP);
++}
++
++
++
+ defaultMethod::~defaultMethod() {}
+@@ -90,7 +108,32 @@ defaultMethodPtr::get() const {
+-registry::registry() {
++struct registry_impl {
++
++    xmlrpc_registry * c_registryP;
++        // Pointer to the C registry object we use to implement this
++        // object.
++
++    std::list<xmlrpc_c::methodPtr> methodList;
++        // This is a list of all the method objects (actually, pointers
++        // to them).  But since the real registry is the C registry object,
++        // all this list is for is to maintain references to the objects
++        // to which the C registry points so that they continue to exist.
++
++    xmlrpc_c::defaultMethodPtr defaultMethodP;
++        // The real identifier of the default method is the C registry
++        // object; this member exists only to maintain a reference to the
++        // object to which the C registry points so that it will continue
++        // to exist.
++
++    registry_impl();
++
++    ~registry_impl();
++};
++
++
++
++registry_impl::registry_impl() {
+     env_wrap env;
+@@ -101,12 +144,25 @@ registry::registry() {
+-registry::~registry(void) {
++registry_impl::~registry_impl() {
+     xmlrpc_registry_free(this->c_registryP);
+ }
++registry::registry() {
++
++    this->implP = new registry_impl();
++}
++
++
++
++registry::~registry(void) {
++
++    delete(this->implP);
++}
++
++
+ registryPtr::registryPtr() {}
+@@ -173,7 +229,8 @@ pListFromXmlrpcArray(xmlrpc_value * const arrayP) {
+ static xmlrpc_value *
+ c_executeMethod(xmlrpc_env *   const envP,
+                 xmlrpc_value * const paramArrayP,
+-                void *         const methodPtr) {
++                void *         const methodPtr,
++                void *         const callInfoPtr) {
+ /*----------------------------------------------------------------------------
+    This is a function designed to be called via a C registry to
+    execute an XML-RPC method, but use a C++ method object to do the
+@@ -188,18 +245,25 @@ c_executeMethod(xmlrpc_env *   const envP,
+    encounter in processing the result it returns, and turn it into an
+    XML-RPC method failure.  This will cause a leak if the execute()
+    method actually created a result, since it will not get destroyed.
++
++   This function is of type 'xmlrpc_method2'.
+ -----------------------------------------------------------------------------*/
+-    xmlrpc_c::method * const methodP = 
+-        static_cast<xmlrpc_c::method *>(methodPtr);
+-    xmlrpc_c::paramList const paramList(pListFromXmlrpcArray(paramArrayP));
++    method * const methodP(static_cast<method *>(methodPtr));
++    paramList const paramList(pListFromXmlrpcArray(paramArrayP));
++    callInfo * const callInfoP(static_cast<callInfo *>(callInfoPtr));
+     xmlrpc_value * retval;
++    retval = NULL; // silence used-before-set warning
+     try {
+-        xmlrpc_c::value result;
++        value result;
+         try {
+-            methodP->execute(paramList, &result);
++            method2 * const method2P(dynamic_cast<method2 *>(methodP));
++            if (method2P)
++                method2P->execute(paramList, callInfoP, &result);
++            else 
++                methodP->execute(paramList, &result);
+         } catch (xmlrpc_c::fault const& fault) {
+             xmlrpc_env_set_fault(envP, fault.getCode(), 
+                                  fault.getDescription().c_str()); 
+@@ -256,6 +320,7 @@ c_executeDefaultMethod(xmlrpc_env *   const envP,
+     paramList const paramList(pListFromXmlrpcArray(paramArrayP));
+     xmlrpc_value * retval;
++    retval = NULL; // silence used-before-set warning
+     try {
+         xmlrpc_c::value result;
+@@ -296,15 +361,22 @@ void
+ registry::addMethod(string    const name,
+                     methodPtr const methodP) {
+-    this->methodList.push_back(methodP);
++    this->implP->methodList.push_back(methodP);
++    struct xmlrpc_method_info3 methodInfo;
+     env_wrap env;
++
++    methodInfo.methodName      = name.c_str();
++    methodInfo.methodFunction  = &c_executeMethod;
++    methodInfo.serverInfo      = methodP.get();
++    methodInfo.stackSize       = 0;
++    string const signatureString(methodP->signature());
++    methodInfo.signatureString = signatureString.c_str();
++    string const help(methodP->help());
++    methodInfo.help            = help.c_str();
+     
+-      xmlrpc_registry_add_method_w_doc(
+-        &env.env_c, this->c_registryP, NULL,
+-        name.c_str(), &c_executeMethod, 
+-        (void*) methodP.get(), 
+-        methodP->signature().c_str(), methodP->help().c_str());
++      xmlrpc_registry_add_method3(&env.env_c, this->implP->c_registryP,
++                                &methodInfo);
+     throwIfError(env);
+ }
+@@ -314,12 +386,12 @@ registry::addMethod(string    const name,
+ void
+ registry::setDefaultMethod(defaultMethodPtr const methodP) {
+-    this->defaultMethodP = methodP;
++    this->implP->defaultMethodP = methodP;
+     env_wrap env;
+     
+     xmlrpc_registry_set_default_method(
+-        &env.env_c, this->c_registryP,
++        &env.env_c, this->implP->c_registryP,
+         &c_executeDefaultMethod, (void*) methodP.get());
+     throwIfError(env);
+@@ -330,7 +402,7 @@ registry::setDefaultMethod(defaultMethodPtr const methodP) {
+ void
+ registry::disableIntrospection() {
+-    xmlrpc_registry_disable_introspection(this->c_registryP);
++    xmlrpc_registry_disable_introspection(this->implP->c_registryP);
+ }
+@@ -362,7 +434,7 @@ registry::setShutdown(const registry::shutdown * const shutdownP) {
+     void * const context(const_cast<registry::shutdown *>(shutdownP));
+-    xmlrpc_registry_set_shutdown(this->c_registryP,
++    xmlrpc_registry_set_shutdown(this->implP->c_registryP,
+                                  &shutdownServer,
+                                  context);
+ }
+@@ -374,9 +446,49 @@ registry::setDialect(xmlrpc_dialect const dialect) {
+     env_wrap env;
+-    xmlrpc_registry_set_dialect(&env.env_c, this->c_registryP, dialect);
++    xmlrpc_registry_set_dialect(&env.env_c, this->implP->c_registryP, dialect);
++
++    throwIfError(env);
++}
++
++
++
++void
++registry::processCall(string           const& callXml,
++                      const callInfo * const  callInfoP,
++                      string *         const  responseXmlP) const {
++/*----------------------------------------------------------------------------
++   Process an XML-RPC call whose XML is 'callXml'.
++
++   Return the response XML as *responseXmlP.
++
++   If we are unable to execute the call, we throw an error.  But if
++   the call executes and the method merely fails in an XML-RPC sense, we
++   don't.  In that case, *responseXmlP indicates the failure.
++-----------------------------------------------------------------------------*/
++    env_wrap env;
++    xmlrpc_mem_block * response;
++
++    // For the pure C++ version, this will have to parse 'callXml'
++    // into a method name and parameters, look up the method name in
++    // the registry, call the method's execute() method, then marshall
++    // the result into XML and return it as *responseXmlP.  It will
++    // also have to execute system methods (e.g. introspection)
++    // itself.  This will be more or less like what
++    // xmlrpc_registry_process_call() does.
++
++    xmlrpc_registry_process_call2(
++        &env.env_c, this->implP->c_registryP,
++        callXml.c_str(), callXml.length(),
++        const_cast<callInfo *>(callInfoP),
++        &response);
+     throwIfError(env);
++
++    *responseXmlP = string(XMLRPC_MEMBLOCK_CONTENTS(char, response),
++                           XMLRPC_MEMBLOCK_SIZE(char, response));
++    
++    xmlrpc_mem_block_free(response);
+ }
+@@ -405,7 +517,7 @@ registry::processCall(string   const& callXml,
+     // xmlrpc_registry_process_call() does.
+     output = xmlrpc_registry_process_call(
+-        &env.env_c, this->c_registryP, NULL,
++        &env.env_c, this->implP->c_registryP, NULL,
+         callXml.c_str(), callXml.length());
+     throwIfError(env);
+@@ -416,12 +528,24 @@ registry::processCall(string   const& callXml,
+     xmlrpc_mem_block_free(output);
+ }
+-xmlrpc_registry *
+-registry::c_registry() const {
+-    return this->c_registryP;
++
++#define PROCESS_CALL_STACK_SIZE 256
++    // This is our liberal estimate of how much stack space
++    // registry::processCall() needs, not counting what
++    // the call the to C registry uses.
++
++
++
++size_t
++registry::maxStackSize() const {
++
++    return xmlrpc_registry_max_stackSize(this->implP->c_registryP) +
++        PROCESS_CALL_STACK_SIZE;
+ }
++
++
+ }  // namespace
+diff --git a/libs/xmlrpc-c/src/cpp/server_abyss.cpp b/libs/xmlrpc-c/src/cpp/server_abyss.cpp
+index 3501f35..58fdd9b 100644
+--- a/libs/xmlrpc-c/src/cpp/server_abyss.cpp
++++ b/libs/xmlrpc-c/src/cpp/server_abyss.cpp
+@@ -1,10 +1,11 @@
++#include "xmlrpc_config.h"
+ #include <cstdlib>
+ #include <string>
+ #include <memory>
+ #include <signal.h>
+ #include <errno.h>
+ #include <iostream>
+-#ifndef _WIN32
++#if !MSVCRT
+ #include <sys/wait.h>
+ #endif
+@@ -14,9 +15,13 @@
+ using girerr::error;
+ using girerr::throwf;
+ #include "xmlrpc-c/base.h"
++#include "xmlrpc-c/util.h"
+ #include "xmlrpc-c/base.hpp"
++#include "xmlrpc-c/abyss.h"
+ #include "xmlrpc-c/server_abyss.h"
+ #include "xmlrpc-c/registry.hpp"
++#include "env_wrap.hpp"
++
+ #include "xmlrpc-c/server_abyss.hpp"
+ using namespace std;
+@@ -43,14 +48,13 @@ sigchld(int const ASSERT_ONLY_ARG(signalClass)) {
+    This is a signal handler for a SIGCHLD signal (which informs us that
+    one of our child processes has terminated).
+-   We respond by reaping the zombie process.
+-
+-   Implementation note: In some systems, just setting the signal handler
+-   to SIG_IGN (ignore signal) does this.  In some, the system does this
+-   automatically if the signal is blocked.
++   The only child processes we have are those that belong to the Abyss
++   server (and then only if the Abyss server was configured to use
++   forking as a threading mechanism), so we respond by passing the
++   signal on to the Abyss server.  And reaping the dead child.
+ -----------------------------------------------------------------------------*/
+ #ifndef _WIN32
+-    /* Reap zombie children until there aren't any more. */
++    // Reap zombie children / report to Abyss until there aren't any more.
+     bool zombiesExist;
+     bool error;
+@@ -71,7 +75,8 @@ sigchld(int const ASSERT_ONLY_ARG(signalClass)) {
+                 // This is OK - it's a ptrace notification
+             } else
+                 error = true;
+-        }
++        } else
++            ServerHandleSigchld(pid);
+     }
+ #endif /* _WIN32 */
+ }
+@@ -160,41 +165,78 @@ public:
+-serverAbyss::shutdown::shutdown(serverAbyss * const serverAbyssP) :
+-    serverAbyssP(serverAbyssP) {}
+-
+-
+-
+-serverAbyss::shutdown::~shutdown() {}
+-
+-
+-
+-void
+-serverAbyss::shutdown::doit(string const&,
+-                            void * const) const {
+-
+-    this->serverAbyssP->terminate();
+-}
++callInfo_serverAbyss::callInfo_serverAbyss(
++    serverAbyss * const serverAbyssP,
++    TSession *    const abyssSessionP) :
++    serverAbyssP(serverAbyssP), abyssSessionP(abyssSessionP) {}
++
++
++
++struct serverAbyss::constrOpt_impl {
++
++    constrOpt_impl();
++
++    struct value {
++        xmlrpc_c::registryPtr      registryPtr;
++        const xmlrpc_c::registry * registryP;
++        XMLRPC_SOCKET  socketFd;
++        unsigned int   portNumber;
++        std::string    logFileName;
++        unsigned int   keepaliveTimeout;
++        unsigned int   keepaliveMaxConn;
++        unsigned int   timeout;
++        bool           dontAdvertise;
++        std::string    uriPath;
++        bool           chunkResponse;
++        std::string    allowOrigin;
++        unsigned int   accessCtlMaxAge;
++        bool           serverOwnsSignals;
++        bool           expectSigchld;
++    } value;
++    struct {
++        bool registryPtr;
++        bool registryP;
++        bool socketFd;
++        bool portNumber;
++        bool logFileName;
++        bool keepaliveTimeout;
++        bool keepaliveMaxConn;
++        bool timeout;
++        bool dontAdvertise;
++        bool uriPath;
++        bool chunkResponse;
++        bool allowOrigin;
++        bool accessCtlMaxAge;
++        bool serverOwnsSignals;
++        bool expectSigchld;
++    } present;
++};
+-serverAbyss::constrOpt::constrOpt() {
+-    present.registryPtr      = false;
+-    present.registryP        = false;
+-    present.socketFd         = false;
+-    present.portNumber       = false;
+-    present.logFileName      = false;
+-    present.keepaliveTimeout = false;
+-    present.keepaliveMaxConn = false;
+-    present.timeout          = false;
+-    present.dontAdvertise    = false;
+-    present.uriPath          = false;
+-    present.chunkResponse    = false;
++serverAbyss::constrOpt_impl::constrOpt_impl() {
++    present.registryPtr       = false;
++    present.registryP         = false;
++    present.socketFd          = false;
++    present.portNumber        = false;
++    present.logFileName       = false;
++    present.keepaliveTimeout  = false;
++    present.keepaliveMaxConn  = false;
++    present.timeout           = false;
++    present.dontAdvertise     = false;
++    present.uriPath           = false;
++    present.chunkResponse     = false;
++    present.allowOrigin       = false;
++    present.accessCtlMaxAge  = false;
++    present.serverOwnsSignals = false;
++    present.expectSigchld     = false;
+     
+     // Set default values
+-    value.dontAdvertise  = false;
+-    value.uriPath        = string("/RPC2");
+-    value.chunkResponse  = false;
++    value.dontAdvertise     = false;
++    value.uriPath           = string("/RPC2");
++    value.chunkResponse     = false;
++    value.serverOwnsSignals = true;
++    value.expectSigchld     = false;
+ }
+@@ -202,40 +244,40 @@ serverAbyss::constrOpt::constrOpt() {
+ #define DEFINE_OPTION_SETTER(OPTION_NAME, TYPE) \
+ serverAbyss::constrOpt & \
+ serverAbyss::constrOpt::OPTION_NAME(TYPE const& arg) { \
+-    this->value.OPTION_NAME = arg; \
+-    this->present.OPTION_NAME = true; \
++    this->implP->value.OPTION_NAME = arg; \
++    this->implP->present.OPTION_NAME = true; \
+     return *this; \
+ }
+-DEFINE_OPTION_SETTER(registryPtr,      xmlrpc_c::registryPtr);
+-DEFINE_OPTION_SETTER(registryP,        const registry *);
+-DEFINE_OPTION_SETTER(socketFd,         XMLRPC_SOCKET);
+-DEFINE_OPTION_SETTER(portNumber,       unsigned int);
+-DEFINE_OPTION_SETTER(logFileName,      string);
+-DEFINE_OPTION_SETTER(keepaliveTimeout, unsigned int);
+-DEFINE_OPTION_SETTER(keepaliveMaxConn, unsigned int);
+-DEFINE_OPTION_SETTER(timeout,          unsigned int);
+-DEFINE_OPTION_SETTER(dontAdvertise,    bool);
+-DEFINE_OPTION_SETTER(uriPath,          string);
+-DEFINE_OPTION_SETTER(chunkResponse,    bool);
++DEFINE_OPTION_SETTER(registryPtr,       xmlrpc_c::registryPtr);
++DEFINE_OPTION_SETTER(registryP,         const registry *);
++DEFINE_OPTION_SETTER(socketFd,          XMLRPC_SOCKET);
++DEFINE_OPTION_SETTER(portNumber,        unsigned int);
++DEFINE_OPTION_SETTER(logFileName,       string);
++DEFINE_OPTION_SETTER(keepaliveTimeout,  unsigned int);
++DEFINE_OPTION_SETTER(keepaliveMaxConn,  unsigned int);
++DEFINE_OPTION_SETTER(timeout,           unsigned int);
++DEFINE_OPTION_SETTER(dontAdvertise,     bool);
++DEFINE_OPTION_SETTER(uriPath,           string);
++DEFINE_OPTION_SETTER(chunkResponse,     bool);
++DEFINE_OPTION_SETTER(allowOrigin,       string);
++DEFINE_OPTION_SETTER(accessCtlMaxAge,   unsigned int);
++DEFINE_OPTION_SETTER(serverOwnsSignals, bool);
++DEFINE_OPTION_SETTER(expectSigchld,     bool);
++
++#undef DEFINE_OPTION_SETTER
++serverAbyss::constrOpt::constrOpt() {
+-void
+-serverAbyss::setAdditionalServerParms(constrOpt const& opt) {
++    this->implP = new serverAbyss::constrOpt_impl();
++}
+-    /* The following ought to be parameters on ServerCreate(), but it
+-       looks like plugging them straight into the TServer structure is
+-       the only way to set them.  
+-    */
+-    if (opt.present.keepaliveTimeout)
+-        ServerSetKeepaliveTimeout(&this->cServer, opt.value.keepaliveTimeout);
+-    if (opt.present.keepaliveMaxConn)
+-        ServerSetKeepaliveMaxConn(&this->cServer, opt.value.keepaliveMaxConn);
+-    if (opt.present.timeout)
+-        ServerSetTimeout(&this->cServer, opt.value.timeout);
+-    ServerSetAdvertise(&this->cServer, !opt.value.dontAdvertise);
++
++serverAbyss::constrOpt::~constrOpt() {
++
++    delete(this->implP);
+ }
+@@ -280,10 +322,155 @@ createServer(bool         const  logFileNameGiven,
++struct serverAbyss_impl {
++    registryPtr regPtr;
++        // This just holds a reference to the registry so that it may
++        // get destroyed when the serverAbyss gets destroyed.  If the
++        // creator of the serverAbyss is managing lifetime himself,
++        // this is a null pointer.  'registryP' is what you really use
++        // to access the registry.
++    
++    const registry * registryP;
++
++    TServer cServer;
++
++    serverAbyss_impl(serverAbyss::constrOpt_impl const& opt,
++                     serverAbyss *               const serverAbyssP);
++
++    ~serverAbyss_impl();
++
++    void
++    setAdditionalServerParms(serverAbyss::constrOpt_impl const& opt);
++
++    void
++    setHttpReqHandlers(string       const& uriPath,
++                       bool         const  chunkResponse,
++                       bool         const  doHttpAccessControl,
++                       string       const& allowOrigin,
++                       bool         const  accessCtlExpires,
++                       unsigned int const  accessCtlMaxAge);
++    void
++    run();
++
++    void
++    processCall(std::string   const& call,
++                TSession *    const  abyssSessionP,
++                std::string * const  responseP);
++
++    serverAbyss * const serverAbyssP;
++        // The server for which we are the implementation.
++
++    bool expectSigchld;
++    bool serverOwnsSignals;
++};
++
++
++
++static void
++processXmlrpcCall(xmlrpc_env *        const envP,
++                  void *              const arg,
++                  const char *        const callXml,
++                  size_t              const callXmlLen,
++                  TSession *          const abyssSessionP,                  
++                  xmlrpc_mem_block ** const responseXmlPP) {
++/*----------------------------------------------------------------------------
++   This is an XML-RPC XML call processor, as called by the HTTP request
++   handler of the libxmlrpc_server_abyss C library.
++
++   'callXml'/'callXmlLen' is the XML text of a supposed XML-RPC call.
++   We execute the RPC and return the XML text of the XML-RPC response
++   as *responseXmlPP.
++
++   'arg' carries the information that tells us how to do that; e.g.
++   what XML-RPC methods are defined.
++-----------------------------------------------------------------------------*/
++    serverAbyss_impl * const implP(
++        static_cast<serverAbyss_impl *>(arg));
++
++    try {
++        string const call(callXml, callXmlLen);
++
++        string response;
++
++        implP->processCall(call, abyssSessionP, &response);
++
++        xmlrpc_mem_block * responseMbP;
++
++        responseMbP = XMLRPC_MEMBLOCK_NEW(char, envP, 0);
++
++        if (!envP->fault_occurred) {
++            XMLRPC_MEMBLOCK_APPEND(char, envP, responseMbP,
++                                   response.c_str(), response.length());
++
++            *responseXmlPP = responseMbP;
++        }
++    } catch (exception const& e) {
++        xmlrpc_env_set_fault(envP, XMLRPC_INTERNAL_ERROR, e.what());
++    }
++}
++
++
++
+ void
+-serverAbyss::initialize(constrOpt const& opt) {
++serverAbyss_impl::setAdditionalServerParms(
++    serverAbyss::constrOpt_impl const& opt) {
+-    const registry * registryP;
++    // The following ought to be parameters on ServerCreate().
++
++    if (opt.present.keepaliveTimeout)
++        ServerSetKeepaliveTimeout(&this->cServer, opt.value.keepaliveTimeout);
++    if (opt.present.keepaliveMaxConn)
++        ServerSetKeepaliveMaxConn(&this->cServer, opt.value.keepaliveMaxConn);
++    if (opt.present.timeout)
++        ServerSetTimeout(&this->cServer, opt.value.timeout);
++    ServerSetAdvertise(&this->cServer, !opt.value.dontAdvertise);
++    if (opt.value.expectSigchld)
++        ServerUseSigchld(&this->cServer);
++}
++
++
++
++void
++serverAbyss_impl::setHttpReqHandlers(string       const& uriPath,
++                                     bool         const  chunkResponse,
++                                     bool         const  doHttpAccessControl,
++                                     string       const& allowOrigin,
++                                     bool         const  accessCtlExpires,
++                                     unsigned int const  accessCtlMaxAge) {
++/*----------------------------------------------------------------------------
++   This is a constructor helper.  Don't assume *this is complete.
++-----------------------------------------------------------------------------*/
++    env_wrap env;
++    xmlrpc_server_abyss_handler_parms parms;
++
++    parms.xml_processor = &processXmlrpcCall;
++    parms.xml_processor_arg = this;
++    parms.xml_processor_max_stack = this->registryP->maxStackSize();
++    parms.uri_path = uriPath.c_str();
++    parms.chunk_response = chunkResponse;
++    parms.allow_origin = doHttpAccessControl ? allowOrigin.c_str() : NULL;
++    parms.access_ctl_expires = accessCtlExpires;
++    parms.access_ctl_max_age = accessCtlMaxAge;
++
++    xmlrpc_server_abyss_set_handler3(
++        &env.env_c, &this->cServer,
++        &parms, XMLRPC_AHPSIZE(access_ctl_max_age));
++    
++    if (env.env_c.fault_occurred)
++        throwf("Failed to register the HTTP handler for XML-RPC "
++               "with the underlying Abyss HTTP server.  "
++               "xmlrpc_server_abyss_set_handler3() failed with:  %s",
++               env.env_c.fault_string);
++
++    xmlrpc_server_abyss_set_default_handler(&this->cServer);
++}
++        
++
++
++serverAbyss_impl::serverAbyss_impl(
++    serverAbyss::constrOpt_impl const& opt,
++    serverAbyss *          const serverAbyssP) :
++    serverAbyssP(serverAbyssP) {
+     if (!opt.present.registryP && !opt.present.registryPtr)
+         throwf("You must specify the 'registryP' or 'registryPtr' option");
+@@ -292,15 +479,21 @@ serverAbyss::initialize(constrOpt const& opt) {
+                "the 'registryPtr' options");
+     else {
+         if (opt.present.registryP)
+-            registryP = opt.value.registryP;
++            this->registryP = opt.value.registryP;
+         else {
+-            this->registryPtr = opt.value.registryPtr;
+-            registryP = this->registryPtr.get();
++            this->regPtr = opt.value.registryPtr;
++            this->registryP = this->regPtr.get();
+         }
+     }
+     if (opt.present.portNumber && opt.present.socketFd)
+         throwf("You can't specify both portNumber and socketFd options");
++    this->serverOwnsSignals = opt.value.serverOwnsSignals;
++    
++    if (opt.value.serverOwnsSignals && opt.value.expectSigchld)
++        throwf("You can't specify both expectSigchld "
++               "and serverOwnsSignals options");
++
+     DateInit();
+     
+     createServer(opt.present.logFileName, opt.value.logFileName,
+@@ -309,18 +502,16 @@ serverAbyss::initialize(constrOpt const& opt) {
+                  &this->cServer);
+     try {
+-        setAdditionalServerParms(opt);
++        this->setAdditionalServerParms(opt);
++
++        this->setHttpReqHandlers(opt.value.uriPath,
++                                 opt.value.chunkResponse,
++                                 opt.present.allowOrigin,
++                                 opt.value.allowOrigin,
++                                 opt.present.accessCtlMaxAge,
++                                 opt.value.accessCtlMaxAge);
++
+-        // chunked response implementation is incomplete.  We must
+-        // eventually get away from libxmlrpc_server_abyss and
+-        // register our own handler with the Abyss server.  At that
+-        // time, we'll have some place to pass
+-        // opt.value.chunkResponse.
+-        
+-        xmlrpc_c::server_abyss_set_handlers(&this->cServer,
+-                                            registryP,
+-                                            opt.value.uriPath);
+-        
+         if (opt.present.portNumber || opt.present.socketFd)
+             ServerInit(&this->cServer);
+     } catch (...) {
+@@ -331,6 +522,94 @@ serverAbyss::initialize(constrOpt const& opt) {
++serverAbyss_impl::~serverAbyss_impl() {
++
++    ServerFree(&this->cServer);
++}
++
++
++
++static void
++setupSignalsAndRunAbyss(TServer * const abyssServerP) {
++
++    /* We do some pretty ugly stuff for an object method: we set signal
++       handlers, which are process-global.
++
++       One example of where this can be hairy is: Caller has a child
++       process unrelated to the Abyss server.  That child dies.  We
++       get his death of a child signal and Caller never knows.
++
++       We really expect to be the only thing in the process, at least
++       for the time we're running.  If you want the Abyss Server
++       to behave more like an object and own the signals yourself,
++       use runOnce() in a loop instead of run().
++    */
++    signalHandlers oldHandlers;
++
++    setupSignalHandlers(&oldHandlers);
++
++    ServerUseSigchld(abyssServerP);
++
++    ServerRun(abyssServerP);
++
++    restoreSignalHandlers(oldHandlers);
++}
++
++
++
++void
++serverAbyss_impl::run() {
++
++    if (this->serverOwnsSignals)
++        setupSignalsAndRunAbyss(&this->cServer);
++    else {
++        if (this->expectSigchld)
++            ServerUseSigchld(&this->cServer);
++
++        ServerRun(&this->cServer);
++    }
++}
++
++
++
++void
++serverAbyss_impl::processCall(string     const& call,
++                              TSession * const  abyssSessionP,
++                              string *   const  responseP) {
++
++    callInfo_serverAbyss const callInfo(this->serverAbyssP, abyssSessionP);
++
++    this->registryP->processCall(call, &callInfo, responseP);
++}
++
++
++
++serverAbyss::shutdown::shutdown(serverAbyss * const serverAbyssP) :
++    serverAbyssP(serverAbyssP) {}
++
++
++
++serverAbyss::shutdown::~shutdown() {}
++
++
++
++void
++serverAbyss::shutdown::doit(string const&,
++                            void * const) const {
++
++    this->serverAbyssP->terminate();
++}
++
++
++
++void
++serverAbyss::initialize(constrOpt const& opt) {
++
++    this->implP = new serverAbyss_impl(*opt.implP, this);
++}
++
++
++
+ serverAbyss::serverAbyss(constrOpt const& opt) {
+     initialize(opt);
+@@ -376,7 +655,7 @@ serverAbyss::serverAbyss(
+ serverAbyss::~serverAbyss() {
+-    ServerFree(&this->cServer);
++    delete(this->implP);
+ }
+@@ -384,83 +663,147 @@ serverAbyss::~serverAbyss() {
+ void
+ serverAbyss::run() {
+-    /* We do some pretty ugly stuff for an object method: we set signal
+-       handlers, which are process-global.
++    this->implP->run();
++}
++ 
+-       One example of where this can be hairy is: Caller has a child
+-       process unrelated to the Abyss server.  That child dies.  We
+-       get his death of a child signal and Caller never knows.
+-       We really expect to be the only thing in the process, at least
+-       for the time we're running.  If you want the Abyss Server
+-       to behave more like an object and own the signals yourself,
+-       use runOnce() in a loop instead of run().
+-    */
+-    signalHandlers oldHandlers;
++void
++serverAbyss::runOnce() {
+-    setupSignalHandlers(&oldHandlers);
++    ServerRunOnce(&this->implP->cServer);
++}
+-    ServerRun(&this->cServer);
+-    restoreSignalHandlers(oldHandlers);
++
++void
++serverAbyss::runConn(int const socketFd) {
++
++    ServerRunConn(&this->implP->cServer, socketFd);
+ }
+- 
++
++#ifndef WIN32
+ void
+-serverAbyss::runOnce() {
++serverAbyss::sigchld(pid_t const pid) {
++
++    // There's a hole in the design here, because the Abyss server uses
++    // a process-global list of children (so there can't be more than one
++    // Abyss object in the process), so while this is an object method,
++    // it doesn't really refer to the object at all.
+-    ServerRunOnce(&this->cServer);
++    // We might conceivably fix Abyss some day, then this method would do
++    // what you expect -- affect only its own object.  But forking Abyss is
++    // obsolete anyway, so we just don't worry about it.
++
++    ServerHandleSigchld(pid);
+ }
++#endif
+ void
+-serverAbyss::runConn(int const socketFd) {
++serverAbyss::terminate() {
+-    ServerRunConn(&this->cServer, socketFd);
++    ServerTerminate(&this->implP->cServer);
+ }
++callInfo_abyss::callInfo_abyss(TSession * const abyssSessionP) :
++    abyssSessionP(abyssSessionP) {}
++
++
++
+ void
+-serverAbyss::terminate() {
++processXmlrpcCall2(xmlrpc_env *        const envP,
++                   void *              const arg,
++                   const char *        const callXml,
++                   size_t              const callXmlLen,
++                   TSession *          const abyssSessionP,                  
++                   xmlrpc_mem_block ** const responseXmlPP) {
++/*----------------------------------------------------------------------------
++   This is an XML-RPC XML call processor, as called by the HTTP request
++   handler of the libxmlrpc_server_abyss C library.
++
++   'callXml'/'callXmlLen' is the XML text of a supposed XML-RPC call.
++   We execute the RPC and return the XML text of the XML-RPC response
++   as *responseXmlPP.
++
++   'arg' carries the information that tells us how to do that; e.g.
++   what XML-RPC methods are defined.
++-----------------------------------------------------------------------------*/
++    const registry * const registryP(static_cast<registry *>(arg));
++
++    try {
++        string const call(callXml, callXmlLen);
++        callInfo_abyss const callInfo(abyssSessionP);
+-    ServerTerminate(&this->cServer);
++        string response;
++
++        registryP->processCall(call, &callInfo, &response);
++
++        xmlrpc_mem_block * responseMbP;
++
++        responseMbP = XMLRPC_MEMBLOCK_NEW(char, envP, response.length());
++
++        if (!envP->fault_occurred) {
++            XMLRPC_MEMBLOCK_APPEND(char, envP, responseMbP,
++                                   response.c_str(), response.length());
++
++            *responseXmlPP = responseMbP;
++        }
++    } catch (exception const& e) {
++        xmlrpc_env_set_fault(envP, XMLRPC_INTERNAL_ERROR, e.what());
++    }
+ }
++
++
++static void
++setHandlers(TServer * const  serverP,
++            string    const& uriPath,
++            registry  const& registry) {
++
++    xmlrpc_server_abyss_set_handler2(
++        serverP, uriPath.c_str(),
++        processXmlrpcCall2,
++        const_cast<xmlrpc_c::registry *>(&registry),
++        registry.maxStackSize(),
++        false);
++
++    xmlrpc_server_abyss_set_default_handler(serverP);
++}
++
++
++
+ void
+-server_abyss_set_handlers(TServer * const  srvP,
++server_abyss_set_handlers(TServer * const  serverP,
+                           registry  const& registry,
+                           string    const& uriPath) {
+-    xmlrpc_server_abyss_set_handlers2(srvP,
+-                                      uriPath.c_str(),
+-                                      registry.c_registry());
++    setHandlers(serverP, uriPath, registry);
+ }
+ void
+-server_abyss_set_handlers(TServer *        const  srvP,
++server_abyss_set_handlers(TServer *        const  serverP,
+                           const registry * const  registryP,
+                           string           const& uriPath) {
+-    xmlrpc_server_abyss_set_handlers2(srvP,
+-                                      uriPath.c_str(),
+-                                      registryP->c_registry());
++    setHandlers(serverP, uriPath, *registryP);
+ }
+ void
+-server_abyss_set_handlers(TServer *   const  srvP,
++server_abyss_set_handlers(TServer *   const  serverP,
+                           registryPtr const  registryPtr,
+                           string      const& uriPath) {
+-    xmlrpc_server_abyss_set_handlers2(srvP,
+-                                      uriPath.c_str(),
+-                                      registryPtr->c_registry());
++    setHandlers(serverP, uriPath, *registryPtr.get());
+ }
+diff --git a/libs/xmlrpc-c/src/cpp/server_pstream.cpp b/libs/xmlrpc-c/src/cpp/server_pstream.cpp
+index 86f2cc9..a1b19f8 100644
+--- a/libs/xmlrpc-c/src/cpp/server_pstream.cpp
++++ b/libs/xmlrpc-c/src/cpp/server_pstream.cpp
+@@ -9,24 +9,27 @@
+    is an Xmlrpc-c invention.  It is an almost trivial representation of
+    a sequence of packets on a byte stream.
+-   You can create a pstream server from any file descriptor from which
+-   you can read and write a bidirectional character stream.  Typically,
+-   it's a TCP socket.  Such a server talks to one client its entire life.
+-
+-   Some day, we'll also have a version that you create from a "listening"
+-   socket, which can talk to multiple clients serially (a client connects,
+-   does some RPCs, and disconnects).
+-
+-   By Bryan Henderson 07.05.12.
++   By Bryan Henderson 09.03.22
+    Contributed to the public domain by its author.
+ =============================================================================*/
++#include "xmlrpc_config.h"
++#if MSVCRT
++#ifndef _CRT_SECURE_NO_WARNINGS
++#define _CRT_SECURE_NO_WARNINGS
++#endif
++#include <winsock.h>
++typedef int socklen_t;
++#else
++#include <sys/socket.h>
++#endif
++#include <errno.h>
++#include <cstring>
+ #include <memory>
+ #include "xmlrpc-c/girerr.hpp"
+ using girerr::throwf;
+-#include "xmlrpc-c/packetsocket.hpp"
+ #include "xmlrpc-c/server_pstream.hpp"
+@@ -35,20 +38,52 @@ using namespace std;
+ namespace xmlrpc_c {
+-serverPstreamConn::constrOpt::constrOpt() {
++struct serverPstream::constrOpt_impl {
++
++    constrOpt_impl();
++
++    struct value {
++        xmlrpc_c::registryPtr      registryPtr;
++        const xmlrpc_c::registry * registryP;
++        XMLRPC_SOCKET              socketFd;
++    } value;
++    struct {
++        bool registryPtr;
++        bool registryP;
++        bool socketFd;
++    } present;
++};
++
++
++
++serverPstream::constrOpt_impl::constrOpt_impl() {
++
++    this->present.socketFd    = false;
++    this->present.registryP   = false;
++    this->present.registryPtr = false;
++}
++
++
++
++serverPstream::constrOpt::constrOpt() {
+-    present.socketFd    = false;
+-    present.registryP   = false;
+-    present.registryPtr = false;
++    this->implP = new serverPstream::constrOpt_impl();
++}
++
++
++
++serverPstream::constrOpt::~constrOpt() {
++
++    delete(this->implP);
+ }
+ #define DEFINE_OPTION_SETTER(OPTION_NAME, TYPE) \
+-serverPstreamConn::constrOpt & \
+-serverPstreamConn::constrOpt::OPTION_NAME(TYPE const& arg) { \
+-    this->value.OPTION_NAME = arg; \
+-    this->present.OPTION_NAME = true; \
++serverPstream::constrOpt & \
++serverPstream::constrOpt::OPTION_NAME(TYPE const& arg) { \
++    this->implP->value.OPTION_NAME = arg; \
++    this->implP->present.OPTION_NAME = true; \
+     return *this; \
+ }
+@@ -60,8 +95,63 @@ DEFINE_OPTION_SETTER(registryPtr, xmlrpc_c::registryPtr);
++struct serverPstream_impl {
++
++    serverPstream_impl(serverPstream::constrOpt_impl const& opt);
++
++    ~serverPstream_impl();
++
++    void
++    establishRegistry(serverPstream::constrOpt_impl const& opt);
++
++    // 'registryP' is what we actually use; 'registryHolder' just holds a
++    // reference to 'registryP' so the registry doesn't disappear while
++    // this server exists.  But note that if the creator doesn't supply
++    // a registryPtr, 'registryHolder' is just a placeholder variable and
++    // the creator is responsible for making sure the registry doesn't
++    // go anywhere while the server exists.
++
++    registryPtr registryHolder;
++    const registry * registryP;
++
++    XMLRPC_SOCKET listenSocketFd;
++        // The socket on which we accept connections from clients.  This comes
++        // to us from the creator, already bound and in listen mode.  That
++        // way, this object doesn't have to know anything about socket
++        // addresses or listen parameters such as the maximum connection
++        // backlog size.
++    
++    bool termRequested;
++        // User has requested that the run method return ASAP; i.e. that
++        // the server cease servicing RPCs.
++};
++
++
++
++serverPstream_impl::serverPstream_impl(
++    serverPstream::constrOpt_impl const& opt) {
++
++    this->establishRegistry(opt);
++
++    if (!opt.present.socketFd)
++        throwf("You must provide a 'socketFd' constructor option.");
++    
++    this->listenSocketFd = opt.value.socketFd;
++
++    this->termRequested = false;
++}
++
++
++
++serverPstream_impl::~serverPstream_impl() {
++
++}
++
++
++
+ void
+-serverPstreamConn::establishRegistry(constrOpt const& opt) {
++serverPstream_impl::establishRegistry(
++    serverPstream::constrOpt_impl const& opt) {
+     if (!opt.present.registryP && !opt.present.registryPtr)
+         throwf("You must specify the 'registryP' or 'registryPtr' option");
+@@ -79,109 +169,110 @@ serverPstreamConn::establishRegistry(constrOpt const& opt) {
+ }
++/*-----------------------------------------------------------------------------
++   serverPstream::shutdown is a derived class of registry::shutdown.  You give
++   it to the registry object to allow XML-RPC method 'system.shutdown' to
++-----------------------------------------------------------------------------*/
+-void
+-serverPstreamConn::establishPacketSocket(constrOpt const& opt) {
++serverPstream::shutdown::shutdown(serverPstream * const serverPstreamP) :
++    serverPstreamP(serverPstreamP) {}
+-    if (!opt.present.socketFd)
+-        throwf("You must provide a 'socketFd' constructor option.");
+-
+-    auto_ptr<packetSocket> packetSocketAP;
+-    try {
+-        auto_ptr<packetSocket> p(new packetSocket(opt.value.socketFd));
+-        packetSocketAP = p;
+-    } catch (exception const& e) {
+-        throwf("Unable to create packet socket out of file descriptor %d.  %s",
+-               opt.value.socketFd, e.what());
+-    }
+-    this->packetSocketP = packetSocketAP.get();
+-    packetSocketAP.release();
+-}
++serverPstream::shutdown::~shutdown() {}
+-serverPstreamConn::serverPstreamConn(constrOpt const& opt) {
+-    this->establishRegistry(opt);
++void
++serverPstream::shutdown::doit(string const&,
++                              void * const) const {
+-    this->establishPacketSocket(opt);
++    this->serverPstreamP->terminate();
+ }
++/*---------------------------------------------------------------------------*/
+-serverPstreamConn::~serverPstreamConn() {
++serverPstream::serverPstream(constrOpt const& opt) {
+-    delete(this->packetSocketP);
++    this->implP = new serverPstream_impl(*opt.implP);
+ }
+-void
+-processCall(const registry * const  registryP,
+-            packetPtr        const& callPacketP,
+-            packetPtr *      const  responsePacketPP) {
++serverPstream::~serverPstream() {
+-    string const callXml(reinterpret_cast<char *>(callPacketP->getBytes()),
+-                         callPacketP->getLength());
++    delete(this->implP);
++}
+-    string responseXml;
+-    registryP->processCall(callXml, &responseXml);
+-    *responsePacketPP = packetPtr(new packet(responseXml.c_str(),
+-                                             responseXml.length()));
++void
++serverPstream::runSerial(volatile const int * const interruptP) {
++
++    while (!this->implP->termRequested && !*interruptP) {
++        struct sockaddr peerAddr;
++        socklen_t size = sizeof(peerAddr);
++        int rc;
++
++        rc = accept(this->implP->listenSocketFd, &peerAddr, &size);
++
++        if (!*interruptP) {
++            if (rc < 0)
++                if (errno == EINTR) {
++                    // system call was interrupted, but user doesn't want
++                    // to interrupt the server, so just keep trying
++                } else
++                    throwf("Failed to accept a connection "
++                           "on the listening socket.  accept() failed "
++                           "with errno %d (%s)", errno, strerror(errno));
++            else {
++                int const acceptedFd = rc;
++
++                serverPstreamConn connectionServer(
++                    xmlrpc_c::serverPstreamConn::constrOpt()
++                    .socketFd(acceptedFd)
++                    .registryP(this->implP->registryP));
++
++                callInfo_serverPstream callInfo(this, peerAddr, size);
++
++                connectionServer.run(&callInfo, interruptP);
++            }
++        }
++    }
+ }
+ void
+-serverPstreamConn::runOnce(volatile const int * const interruptP,
+-                           bool *               const eofP) {
+-/*----------------------------------------------------------------------------
+-   Get and execute one RPC from the client.
++serverPstream::runSerial() {
+-   Unless *interruptP gets set nonzero first.
+------------------------------------------------------------------------------*/
+-    bool gotPacket;
+-    packetPtr callPacketP;
+-
+-    try {
+-        this->packetSocketP->readWait(interruptP, eofP, &gotPacket,
+-                                      &callPacketP);
+-    } catch (exception const& e) {
+-        throwf("Error reading a packet from the packet socket.  %s",
+-               e.what());
+-    }
+-    if (gotPacket) {
+-        packetPtr responsePacketP;
+-        try {
+-            processCall(this->registryP, callPacketP, &responsePacketP);
+-        } catch (exception const& e) {
+-            throwf("Error executing received packet as an XML-RPC RPC.  %s",
+-                   e.what());
+-        }
+-        try {
+-            this->packetSocketP->writeWait(responsePacketP);
+-        } catch (exception const& e) {
+-            throwf("Failed to write the response to the packet socket.  %s",
+-                   e.what());
+-        }
+-    }
++    int const interrupt(0);  // Never interrupt
++
++    this->runSerial(&interrupt);
+ }
+ void
+-serverPstreamConn::runOnce(bool * const eofP) {
+-/*----------------------------------------------------------------------------
+-   Get and execute one RPC from the client.
+------------------------------------------------------------------------------*/
+-    int const interrupt(0);  // Never interrupt
++serverPstream::terminate() {
+-    this->runOnce(&interrupt, eofP);
++    this->implP->termRequested = true;
+ }
++callInfo_serverPstream::callInfo_serverPstream(
++    serverPstream * const serverP,
++    struct sockaddr const clientAddr,
++    socklen_t const clientAddrSize) :
++
++    serverP(serverP),
++    clientAddr(clientAddr),
++    clientAddrSize(clientAddrSize)
++
++{}
++
++
++
+ } // namespace
+diff --git a/libs/xmlrpc-c/src/cpp/test/Makefile b/libs/xmlrpc-c/src/cpp/test/Makefile
+index ff6750f..ccde8f5 100644
+--- a/libs/xmlrpc-c/src/cpp/test/Makefile
++++ b/libs/xmlrpc-c/src/cpp/test/Makefile
+@@ -17,20 +17,16 @@ all: $(PROGS)
+ XMLRPC_C_CONFIG = $(BLDDIR)/xmlrpc-c-config.test
+-CXXFLAGS = $(CXXFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
+-
+-LDFLAGS += $(shell $(XMLRPC_C_CONFIG) client --ldadd)
++LIBS := $(shell $(XMLRPC_C_CONFIG) client --ldadd)
+ ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
+-  LDFLAGS += $(shell curl-config --libs)
++  LIBS += $(shell curl-config --libs)
+ endif
+ ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
+-  LDFLAGS += $(shell libwww-config --libs)
++  LIBS += $(shell libwww-config --libs)
+ endif
+-LDFLAGS += "-lpthread"
+-
+-LDFLAGS += $(LADD)
++LIBS += -lpthread
+ INCLUDES = -Isrcdir/include -I$(BLDDIR) -Isrcdir -Isrcdir/lib/util/include
+@@ -42,7 +38,15 @@ Makefile: srcdir
+ include $(SRCDIR)/common.mk
+-TEST_OBJS = test.o registry.o server_abyss.o server_pstream.o tools.o
++TEST_OBJS = \
++  test.o \
++  base64.o \
++  registry.o \
++  server_abyss.o \
++  server_pstream.o \
++  tools.o \
++  value.o \
++  xml.o \
+ ifeq ($(MUST_BUILD_CLIENT),yes)
+   TEST_OBJS += testclient.o
+@@ -69,16 +73,17 @@ TEST_LIBS = \
+ ifneq ($(ENABLE_LIBXML2_BACKEND),yes)
+   # We're using the internal Expat XML parser
+   TEST_LIBS += $(LIBXMLRPC_XMLPARSE_A) $(LIBXMLRPC_XMLTOK_A)
+-  LDADD_XML =
++  LIB_XML =
++  registry.o: D_INTERNAL_EXPAT=-DINTERNAL_EXPAT
+ else
+-  LDADD_XML = $(shell xml2-config --libs)
++  LIB_XML = $(shell xml2-config --libs)
+ endif
+ test: $(TEST_OBJS) $(TEST_LIBS)
+-      $(CXXLD) -o $@ $(LDFLAGS) $(LDADD_XML) $^
++      $(CXXLD) -o $@ $(LDFLAGS) $(LADD) $^ $(LIB_XML) $(LIBS)
+ %.o:%.cpp
+-      $(CXX) -c $(INCLUDES) $(CXXFLAGS) $<
++      $(CXX) -c $(INCLUDES) $(CXXFLAGS_ALL) $(D_INTERNAL_EXPAT) $<
+ # Note the difference between 'check' and 'runtests'.  'check' means to check
+ # our own correctness.  'runtests' means to run the tests that check our
+@@ -104,4 +109,4 @@ distclean: clean distclean-common
+ .PHONY: dep
+ dep: dep-common
+-include Makefile.depend
++include depend.mk
+diff --git a/libs/xmlrpc-c/src/cpp/test/registry.cpp b/libs/xmlrpc-c/src/cpp/test/registry.cpp
+index 6ca265a..c7e6e42 100644
+--- a/libs/xmlrpc-c/src/cpp/test/registry.cpp
++++ b/libs/xmlrpc-c/src/cpp/test/registry.cpp
+@@ -20,11 +20,19 @@ using namespace xmlrpc_c;
+ using namespace std;
+-string const xmlPrologue("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
++namespace {
++
++static string const
++xmlPrologue("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
++
++static string const
++apacheUrl("http://ws.apache.org/xmlrpc/namespaces/extensions");
++
++static string const
++xmlnsApache("xmlns:ex=\"" + apacheUrl + "\"");
+-namespace {
+ string const noElementFoundXml(
+     xmlPrologue +
+     "<methodResponse>\r\n"
+@@ -41,6 +49,22 @@ string const noElementFoundXml(
+     "</methodResponse>\r\n"
+     );
++string const invalidXMLCall(
++    xmlPrologue +
++    "<methodResponse>\r\n"
++    "<fault>\r\n"
++    "<value><struct>\r\n"
++    "<member><name>faultCode</name>\r\n"
++    "<value><i4>-503</i4></value></member>\r\n"
++    "<member><name>faultString</name>\r\n"
++    "<value><string>Call XML not a proper XML-RPC call.  "
++    "Call is not valid XML.  XML parsing failed</string></value>"
++    "</member>\r\n"
++    "</struct></value>\r\n"
++    "</fault>\r\n"
++    "</methodResponse>\r\n"
++    );
++
+ string const sampleAddGoodCallXml(
+     xmlPrologue +
+     "<methodCall>\r\n"
+@@ -86,6 +110,24 @@ string const sampleAddBadResponseXml(
+     "</methodResponse>\r\n"
+     );
++string const testCallInfoCallXml(
++    xmlPrologue +
++    "<methodCall>\r\n"
++    "<methodName>test.callinfo</methodName>\r\n"
++    "<params>\r\n"
++    "</params>\r\n"
++    "</methodCall>\r\n"
++    );
++
++string const testCallInfoResponseXml(
++    xmlPrologue +
++    "<methodResponse>\r\n"
++    "<params>\r\n"
++    "<param><value><string>this is a test callInfo</string></value>"
++    "</param>\r\n"
++    "</params>\r\n"
++    "</methodResponse>\r\n"
++    );
+ string const nonexistentMethodCallXml(
+     xmlPrologue +
+@@ -123,31 +165,30 @@ string const nonexistentMethodNoDefResponseXml(
+     "</methodResponse>\r\n"
+     );
+-} // namespace
+ string const echoI8ApacheCall(
+     xmlPrologue +
+-    "<methodCall>\r\n"
++    "<methodCall " + xmlnsApache + ">\r\n"
+     "<methodName>echo</methodName>\r\n"
+     "<params>\r\n"
+-    "<param><value><ex.i8>5</ex.i8></value></param>\r\n"
++    "<param><value><ex:i8>5</ex:i8></value></param>\r\n"
+     "</params>\r\n"
+     "</methodCall>\r\n"
+     );
+ string const echoI8ApacheResponse(
+     xmlPrologue +
+-    "<methodResponse>\r\n"
++    "<methodResponse " + xmlnsApache + ">\r\n"
+     "<params>\r\n"
+-    "<param><value><ex.i8>5</ex.i8></value></param>\r\n"
++    "<param><value><ex:i8>5</ex:i8></value></param>\r\n"
+     "</params>\r\n"
+     "</methodResponse>\r\n"
+     );
+ string const echoNilApacheCall(
+     xmlPrologue +
+-    "<methodCall>\r\n"
++    "<methodCall " + xmlnsApache + ">\r\n"
+     "<methodName>echo</methodName>\r\n"
+     "<params>\r\n"
+     "<param><value><nil/></value></param>\r\n"
+@@ -157,14 +198,26 @@ string const echoNilApacheCall(
+ string const echoNilApacheResponse(
+     xmlPrologue +
+-    "<methodResponse>\r\n"
++    "<methodResponse " + xmlnsApache + ">\r\n"
+     "<params>\r\n"
+-    "<param><value><ex.nil/></value></param>\r\n"
++    "<param><value><ex:nil/></value></param>\r\n"
+     "</params>\r\n"
+     "</methodResponse>\r\n"
+     );
++class callInfo_test : public callInfo {
++
++public:
++    callInfo_test() : data("this is a test callInfo") {}
++
++    callInfo_test(string const& data) : data(data) {};
++
++    string data;
++};
++
++
++
+ class sampleAddMethod : public method {
+ public:
+     sampleAddMethod() {
+@@ -186,6 +239,51 @@ public:
++class sampleAddMethod2 : public method2 {
++public:
++    sampleAddMethod2() {
++        this->_signature = "i:ii";
++        this->_help = "This method adds two integers together";
++    }
++    void
++    execute(xmlrpc_c::paramList const& paramList,
++            const callInfo *    const,
++            value *             const  retvalP) {
++        
++        int const addend(paramList.getInt(0));
++        int const adder(paramList.getInt(1));
++        
++        paramList.verifyEnd(2);
++        
++        *retvalP = value_int(addend + adder);
++    }
++};
++
++
++
++class testCallInfoMethod : public method2 {
++public:
++    testCallInfoMethod() {
++        this->_signature = "s:";
++    }
++    void
++    execute(xmlrpc_c::paramList const& paramList,
++            const callInfo *    const  callInfoPtr,
++            value *             const  retvalP) {
++        
++        const callInfo_test * const callInfoP(
++            dynamic_cast<const callInfo_test *>(callInfoPtr));
++
++        TEST(callInfoP != NULL);
++
++        paramList.verifyEnd(0);
++        
++        *retvalP = value_string(callInfoP->data);
++    }
++};
++
++
++
+ class nameMethod : public defaultMethod {
+     void
+@@ -213,6 +311,22 @@ public:
++static void
++testEmptyXmlDocCall(xmlrpc_c::registry const& myRegistry) {
++
++    string response;
++    myRegistry.processCall("", &response);
++
++#ifdef INTERNAL_EXPAT
++    TEST(response == noElementFoundXml);
++#else
++    // This is what we get with libxml2
++    TEST(response == invalidXMLCall);
++#endif
++}
++
++
++
+ class registryRegMethodTestSuite : public testSuite {
+ public:
+@@ -227,11 +341,7 @@ public:
+                              xmlrpc_c::methodPtr(new sampleAddMethod));
+         
+         myRegistry.disableIntrospection();
+-        {
+-            string response;
+-            myRegistry.processCall("", &response);
+-            TEST(response == noElementFoundXml);
+-        }
++        testEmptyXmlDocCall(myRegistry);
+         {
+             string response;
+             myRegistry.processCall(sampleAddGoodCallXml, &response);
+@@ -242,6 +352,12 @@ public:
+             myRegistry.processCall(sampleAddBadCallXml, &response);
+             TEST(response == sampleAddBadResponseXml);
+         }
++        {
++            string response;
++            callInfo const callInfo;
++            myRegistry.processCall(sampleAddBadCallXml, &callInfo, &response);
++            TEST(response == sampleAddBadResponseXml);
++        }
+     }
+ };
+@@ -284,6 +400,93 @@ public:
++class method2TestSuite : public testSuite {
++
++public:
++    virtual string suiteName() {
++        return "method2TestSuite";
++    }
++    virtual void runtests(unsigned int const) {
++
++        xmlrpc_c::registry myRegistry;
++        
++        myRegistry.addMethod("sample.add", 
++                             xmlrpc_c::methodPtr(new sampleAddMethod2));
++        
++        myRegistry.addMethod("test.callinfo", 
++                             xmlrpc_c::methodPtr(new testCallInfoMethod));
++        
++        {
++            string response;
++            myRegistry.processCall(sampleAddGoodCallXml, &response);
++            TEST(response == sampleAddGoodResponseXml);
++        }
++        {
++            string response;
++            myRegistry.processCall(sampleAddBadCallXml, &response);
++            TEST(response == sampleAddBadResponseXml);
++        }
++        {
++            string response;
++            callInfo_test const callInfo;
++            myRegistry.processCall(testCallInfoCallXml, &callInfo, &response);
++            TEST(response == testCallInfoResponseXml);
++        }
++    }
++};
++
++
++
++class dialectTestSuite : public testSuite {
++
++public:
++    virtual string suiteName() {
++        return "dialectTestSuite";
++    }
++    virtual void runtests(unsigned int const) {
++
++        registry myRegistry;
++        string response;
++        
++        myRegistry.addMethod("sample.add", methodPtr(new sampleAddMethod));
++        myRegistry.addMethod("echo", methodPtr(new echoMethod));
++
++        myRegistry.setDialect(xmlrpc_dialect_i8);
++
++        myRegistry.setDialect(xmlrpc_dialect_apache);
++
++        myRegistry.processCall(echoI8ApacheCall, &response);
++
++        TEST(response == echoI8ApacheResponse);
++
++        myRegistry.processCall(echoNilApacheCall, &response);
++
++        TEST(response == echoNilApacheResponse);
++
++        EXPECT_ERROR(  // invalid dialect
++            myRegistry.setDialect(static_cast<xmlrpc_dialect>(300));
++            );
++    }
++};
++
++
++
++class testShutdown : public xmlrpc_c::registry::shutdown {
++/*----------------------------------------------------------------------------
++   This class is logically local to
++   registryShutdownTestSuite::runtests(), but if we declare it that
++   way, gcc 2.95.3 fails with some bogus messages about undefined
++   references from random functions when we do that.
++-----------------------------------------------------------------------------*/
++public:
++    void doit(string const&,
++              void * const) const {
++        
++    }
++};
++
++
++
+ class registryShutdownTestSuite : public testSuite {
+ public:
+@@ -294,15 +497,7 @@ public:
+         xmlrpc_c::registry myRegistry;
+-        class myshutdown : public xmlrpc_c::registry::shutdown {
+-        public:
+-            void doit(string const&,
+-                      void * const) const {
+-                
+-            }
+-        };
+-
+-        myshutdown shutdown;
++        testShutdown shutdown;
+         
+         myRegistry.setShutdown(&shutdown);
+     }
+@@ -310,6 +505,10 @@ public:
++} // unnamed namespace
++
++
++
+ string
+ registryTestSuite::suiteName() {
+     return "registryTestSuite";
+@@ -327,32 +526,19 @@ registryTestSuite::runtests(unsigned int const indentation) {
+     }
+     registryRegMethodTestSuite().run(indentation+1);
++
+     registryDefaultMethodTestSuite().run(indentation+1);
+-    registry myRegistry;
+-        
+-    myRegistry.addMethod("sample.add", methodPtr(new sampleAddMethod));
+-    myRegistry.addMethod("echo", methodPtr(new echoMethod));
++    method2TestSuite().run(indentation+1);
+-    string response;
++    registry myRegistry;
+     myRegistry.disableIntrospection();
+-    myRegistry.setDialect(xmlrpc_dialect_i8);
+-
+-    myRegistry.setDialect(xmlrpc_dialect_apache);
++    dialectTestSuite().run(indentation+1);
+     registryShutdownTestSuite().run(indentation+1);
+-    myRegistry.processCall(echoI8ApacheCall, &response);
+-
+-    TEST(response == echoI8ApacheResponse);
+-
+-    myRegistry.processCall(echoNilApacheCall, &response);
+-
+-    TEST(response == echoNilApacheResponse);
++    TEST(myRegistry.maxStackSize() >= 256);
+-    EXPECT_ERROR(  // invalid dialect
+-        myRegistry.setDialect(static_cast<xmlrpc_dialect>(300));
+-        );
+ }
+diff --git a/libs/xmlrpc-c/src/cpp/test/server_abyss.cpp b/libs/xmlrpc-c/src/cpp/test/server_abyss.cpp
+index 4b236ef..2b50688 100644
+--- a/libs/xmlrpc-c/src/cpp/test/server_abyss.cpp
++++ b/libs/xmlrpc-c/src/cpp/test/server_abyss.cpp
+@@ -10,6 +10,8 @@
+ #include <vector>
+ #include <sstream>
+ #include <memory>
++#include <cstring>
++#include <cstdlib>
+ #include <time.h>
+ #ifdef WIN32
+   #include <winsock.h>
+@@ -17,6 +19,7 @@
+   #include <sys/unistd.h>
+   #include <sys/socket.h>
+   #include <arpa/inet.h>
++  #include <netinet/in.h>
+ #endif
+ #include "xmlrpc-c/girerr.hpp"
+@@ -34,6 +37,9 @@ using namespace xmlrpc_c;
+ using namespace std;
++
++namespace {
++
+ static void
+ closesock(int const fd) {
+ #ifdef WIN32
+@@ -75,7 +81,7 @@ public:
+         closesock(this->fd);
+     }
+-    int fd;
++    XMLRPC_SOCKET fd;
+ };
+@@ -259,6 +265,10 @@ public:
+                                     .timeout(20)
+                                     .dontAdvertise(true)
+                                     .uriPath("/xmlrpc")
++                                    .chunkResponse(true)
++                                    .allowOrigin("*")
++                                    .serverOwnsSignals(false)
++                                    .expectSigchld(true)
+                 );
+     
+         }
+@@ -274,6 +284,54 @@ public:
++class testCallInfoMethod : public method2 {
++public:
++    void
++    execute(paramList        const& paramList,
++            const callInfo * const  callInfoPtr,
++            value *          const  retvalP) {
++
++        const callInfo_serverAbyss * const callInfoP(
++            dynamic_cast<const callInfo_serverAbyss *>(callInfoPtr));
++
++        TEST(callInfoP != NULL);
++        
++        paramList.verifyEnd(0);
++
++        TEST(callInfoP->serverAbyssP != NULL);
++        TEST(callInfoP->abyssSessionP != NULL);
++        
++        *retvalP = value_nil();
++    }
++};
++
++
++
++class callInfoTestSuite : public testSuite {
++
++public:
++    virtual string suiteName() {
++        return "callInfoTestSuite";
++    }
++    virtual void runtests(unsigned int const) {
++        
++        registry myRegistry;
++        
++        myRegistry.addMethod("sample.add", methodPtr(new testCallInfoMethod));
++
++        serverAbyss abyssServer(serverAbyss::constrOpt()
++                                .registryP(&myRegistry)
++                                .portNumber(12345)
++            );
++    }
++};
++
++
++
++} // unnamed namespace
++
++
++
+ string
+ serverAbyssTestSuite::suiteName() {
+     return "serverAbyssTestSuite";
+@@ -289,4 +347,5 @@ serverAbyssTestSuite::runtests(unsigned int const indentation) {
+     createTestSuite().run(indentation+1);
++    callInfoTestSuite().run(indentation+1);
+ }
+diff --git a/libs/xmlrpc-c/src/cpp/test/server_pstream.cpp b/libs/xmlrpc-c/src/cpp/test/server_pstream.cpp
+index 83b3e88..1d93273 100644
+--- a/libs/xmlrpc-c/src/cpp/test/server_pstream.cpp
++++ b/libs/xmlrpc-c/src/cpp/test/server_pstream.cpp
+@@ -4,16 +4,37 @@
+   Test the pstream server C++ facilities of XML-RPC for C/C++.
+   
+ =============================================================================*/
+-#include <unistd.h>
+-#include <sys/socket.h>
+-#include <arpa/inet.h>
++
++#include "xmlrpc_config.h"
++
++#if MSVCRT
++  #include <winsock2.h>
++  #include <io.h>
++#else
++  #include <unistd.h>
++  #include <sys/socket.h>
++  #include <arpa/inet.h>
++#endif
++
+ #include <errno.h>
+ #include <string>
++#include <cstring>
+ #include <fcntl.h>
++#include "xmlrpc-c/config.h"
++
++#if MSVCRT
++  int
++  xmlrpc_win32_socketpair(int    const domain,
++                          int    const type,
++                          int    const protocol,
++                          SOCKET       socks[2]);
++#endif
++
+ #include "xmlrpc-c/girerr.hpp"
+ using girerr::error;
+ using girerr::throwf;
++#include "xmlrpc-c/sleep_int.h"
+ #include "xmlrpc-c/base.hpp"
+ #include "xmlrpc-c/registry.hpp"
+ #include "xmlrpc-c/server_pstream.hpp"
+@@ -25,6 +46,41 @@ using namespace xmlrpc_c;
+ using namespace std;
++namespace {
++
++static void
++setNonBlocking(XMLRPC_SOCKET const socket) {
++    
++#if MSVCRT
++    u_long iMode = 1;
++    ioctlsocket(socket, FIONBIO, &iMode);
++#else
++    fcntl(socket, F_SETFL, O_NONBLOCK);
++#endif
++}
++
++
++
++#define ESC_STR "\x1B"
++
++
++static string const
++xmlPrologue("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
++
++static string const
++packetStart(ESC_STR "PKT");
++
++static string const
++packetEnd(ESC_STR "END");
++
++
++class callInfo_test : public callInfo {
++public:
++    callInfo_test() : info("this is a test") {}
++    string const info;
++};
++
++
+ class sampleAddMethod : public method {
+ public:
+@@ -45,51 +101,542 @@ public:
+     }
+ };
++string const sampleAddCallXml(
++    xmlPrologue +
++    "<methodCall>\r\n"
++    "<methodName>sample.add</methodName>\r\n"
++    "<params>\r\n"
++    "<param><value><i4>5</i4></value></param>\r\n"
++    "<param><value><i4>7</i4></value></param>\r\n"
++    "</params>\r\n"
++    "</methodCall>\r\n"
++    );
++    
++string const sampleAddResponseXml(
++    xmlPrologue +
++    "<methodResponse>\r\n"
++    "<params>\r\n"
++    "<param><value><i4>12</i4></value></param>\r\n"
++    "</params>\r\n"
++    "</methodResponse>\r\n"
++    );
++
++
++class testCallInfoMethod : public method2 {
++
++public:
++    virtual void
++    execute(paramList        const& paramList,
++            const callInfo * const  callInfoPtr,
++            value *          const  retvalP) {
++
++        const callInfo_test * const callInfoP(
++            dynamic_cast<const callInfo_test *>(callInfoPtr));
++
++        TEST(callInfoP != NULL);
++        
++        paramList.verifyEnd(0);
++
++        TEST(callInfoP->info == string("this is a test"));
++        
++        *retvalP = value_nil();
++    }
++};
++
++string const testCallInfoCallXml(
++    xmlPrologue +
++    "<methodCall>\r\n"
++    "<methodName>test.callinfo</methodName>\r\n"
++    "<params>\r\n"
++    "</params>\r\n"
++    "</methodCall>\r\n"
++    );
++
++string const testCallInfoResponseXml(
++    xmlPrologue +
++    "<methodResponse>\r\n"
++    "<params>\r\n"
++    "<param><value><nil/></value>"
++    "</param>\r\n"
++    "</params>\r\n"
++    "</methodResponse>\r\n"
++    );
++
+ static void
+-createTestFile(string const& contents,
+-               int *  const  fdP) {
++waitForNetworkTransport() {
++/*----------------------------------------------------------------------------
++   Wait for a message to travel through the network.
++
++   This is part of our hack to allow us to test client/server communication
++   without the bother of a separate thread for each.  One party writes
++   to a socket, causing the OS to buffer the message, then the other party
++   reads from the socket, getting the buffered message.  We never wait
++   to send or receive, because with only one thread to do both, we would
++   deadlock.  Instead, we just count on the buffer being big enough.
++
++   But on some systems, the message doesn't immediately travel like this.  It
++   takes action by an independent thread (provided by the OS) to move the
++   message.  In particular, we've seen this behavior on Windows (2010.10).
++
++   So we just sleep for a small amount of time to let the message move.
++-----------------------------------------------------------------------------*/
++
++    // xmlrpc_millisecond_sleep() is allowed to return early, and on Windows
++    // it does that in preference to returning late insofar as the clock
++    // resolution doesn't allow returning at the exact time.  It is rumored
++    // that Windows clock period may be as long as 40 milliseconds.
++
++    xmlrpc_millisecond_sleep(50);
++}
+-    string const filename("/tmp/xmlrpc_test_pstream");
+-    unlink(filename.c_str());
+-    int rc;
+-    rc = open(filename.c_str(), O_RDWR | O_CREAT);
+-    unlink(filename.c_str());
++
++
++class client {
++/*----------------------------------------------------------------------------
++   This is an object you can use as a client to test a packet stream
++   server.
++
++   You attach the 'serverFd' member to your packet stream server, then
++   call the 'sendCall' method to send a call to your server, then call
++   the 'recvResp' method to get the response.
++
++   Destroying the object closes the connection.
++
++   We rely on typical, though unguaranteed socket function: we need to
++   be able to write 'contents' to the socket in a single write()
++   system call before the other side reads anything -- i.e. the socket
++   has to have a buffer that big.  We do this because we're lazy; doing
++   it right would require forking a writer process.
++-----------------------------------------------------------------------------*/
++public:
++
++    client();
+     
++    ~client();
++
++    void
++    sendCall(string const& callBytes) const;
++
++    void
++    hangup();
++
++    void
++    recvResp(string * const respBytesP) const;
++
++    int serverFd;
++
++private:
++
++    int clientFd;
++};
++
++
++
++client::client() {
++
++    enum {
++        SERVER = 0,
++        CLIENT = 1,
++    };
++    XMLRPC_SOCKET sockets[2];
++    int rc;
++
++    rc = XMLRPC_SOCKETPAIR(AF_UNIX, SOCK_STREAM, 0, sockets);
++
+     if (rc < 0)
+-        throwf("Failed to create file '%s' as a test tool.  errno=%d (%s)",
+-               filename.c_str(), errno, strerror(errno));
++        throwf("Failed to create UNIX domain stream socket pair "
++               "as test tool.  errno=%d (%s)",
++               errno, strerror(errno));
+     else {
+-        int const fd(rc);
++        setNonBlocking(sockets[CLIENT]);
+-        int rc;
+-    
+-        rc = write(fd, contents.c_str(), contents.length());
+-
+-        if (rc < 0)
+-            throwf("write() of test file failed, errno=%d (%s)",
+-                   errno, strerror(errno));
+-        else {
+-            unsigned int bytesWritten(rc);
+-
+-            if (bytesWritten != contents.length())
+-                throwf("Short write");
+-            else {
+-                int rc;
+-                rc = lseek(fd, 0, SEEK_SET);
+-                
+-                if (rc < 0)
+-                    throwf("lseek(0) of test file failed, errno=%d (%s)",
+-                           errno, strerror(errno));
+-            }
+-        }
+-        *fdP = fd;
++        this->serverFd = sockets[SERVER];
++        this->clientFd = sockets[CLIENT];
+     }
+ }
++client::~client() {
++
++    XMLRPC_CLOSESOCKET(this->clientFd);
++    XMLRPC_CLOSESOCKET(this->serverFd);
++}
++
++
++
++void
++client::sendCall(string const& packetBytes) const {
++
++    int rc;
++
++    rc = send(this->clientFd, packetBytes.c_str(), packetBytes.length(), 0);
++
++    waitForNetworkTransport();
++
++    if (rc < 0)
++        throwf("send() of test data to socket failed, errno=%d (%s)",
++               errno, strerror(errno));
++    else {
++        unsigned int bytesWritten(rc);
++
++        if (bytesWritten != packetBytes.length())
++            throwf("Short write to socket");
++    }
++}
++
++
++
++void
++client::hangup() {
++
++    // Closing the socket (close()) would be a better simulation of the
++    // real world, and easier, but we shut down just the client->server
++    // half of the socket and remain open to receive an RPC response.
++    // That's because this test program is lazy and does the client and
++    // server in the same thread, depending on socket buffering on the
++    // receive side to provide parallelism.  We need to be able to do the
++    // following sequence:
++    //
++    //   - Client sends call
++    //   - Client hangs up
++    //   - Server gets call
++    //   - Server sends response
++    //   - Client gets response
++    //   - Server notices hangup
++
++    shutdown(this->clientFd, 1);  // Shutdown for transmission only
++}
++
++
++
++void
++client::recvResp(string * const packetBytesP) const {
++
++    char buffer[4096];
++    int rc;
++
++    waitForNetworkTransport();
++
++    rc = recv(this->clientFd, buffer, sizeof(buffer), 0);
++
++    if (rc < 0)
++        throwf("recv() from socket failed, errno=%d (%s)",
++               errno, strerror(errno));
++    else {
++        unsigned int bytesReceived(rc);
++
++        *packetBytesP = string(buffer, bytesReceived);
++    }
++}
++
++
++
++static void
++testEmptyStream(registry const& myRegistry) {
++/*----------------------------------------------------------------------------
++   Here we send the pstream server an empty stream; i.e. we close the
++   socket from the client end without sending anything.
++
++   This should cause the server to recognize EOF.
++-----------------------------------------------------------------------------*/
++
++    client client;
++
++    serverPstreamConn server(serverPstreamConn::constrOpt()
++                             .registryP(&myRegistry)
++                             .socketFd(client.serverFd));
++
++    client.hangup();
++
++    bool eof;
++    server.runOnce(&eof);
++
++    TEST(eof);
++}
++
++
++
++static void
++testBrokenPacket(registry const& myRegistry) {
++/*----------------------------------------------------------------------------
++   Here we send a stream that is not a legal packetsocket stream: it
++   doesn't have any control word.
++-----------------------------------------------------------------------------*/
++    client client;
++
++    serverPstreamConn server(serverPstreamConn::constrOpt()
++                             .registryP(&myRegistry)
++                             .socketFd(client.serverFd));
++
++    client.sendCall("junk");
++    client.hangup();
++
++    bool eof;
++
++    EXPECT_ERROR(
++        server.runOnce(&eof);
++        );
++}
++
++
++
++static void
++testEmptyPacket(registry const& myRegistry) {
++/*----------------------------------------------------------------------------
++   Here we send the pstream server one empty packet.  It should respond
++   with one packet, being an XML-RPC fault response complaining that the
++   call is not valid XML.
++-----------------------------------------------------------------------------*/
++    client client;
++
++    serverPstreamConn server(serverPstreamConn::constrOpt()
++                             .registryP(&myRegistry)
++                             .socketFd(client.serverFd));
++
++    client.sendCall(packetStart + packetEnd);
++
++    bool eof;
++    server.runOnce(&eof);
++
++    TEST(!eof);
++
++    string response;
++    client.recvResp(&response);
++
++    // We ought to validate that the response is a complaint about
++    // the empty call
++
++    client.hangup();
++
++    server.runOnce(&eof);
++
++    TEST(eof);
++}
++
++
++
++static void
++testCallInfo(client *            const  clientP,
++             serverPstreamConn * const  serverP) {
++    
++    string const testCallInfoCallStream(
++        packetStart + testCallInfoCallXml + packetEnd
++        );
++
++    string const testCallInfoResponseStream(
++        packetStart + testCallInfoResponseXml + packetEnd
++        );
++
++    clientP->sendCall(testCallInfoCallStream);
++    
++    callInfo_test callInfo;
++    int nointerrupt(0);
++    bool eof;
++    serverP->runOnce(&callInfo, &nointerrupt, &eof);
++
++    TEST(!eof);
++
++    string response;
++    clientP->recvResp(&response);
++
++    TEST(response == testCallInfoResponseStream);
++}
++
++
++
++static void
++testNormalCall(registry const& myRegistry) {
++
++    string const sampleAddGoodCallStream(
++        packetStart + sampleAddCallXml + packetEnd
++        );
++
++    string const sampleAddGoodResponseStream(
++        packetStart + sampleAddResponseXml + packetEnd
++        );
++
++    client client;
++
++    serverPstreamConn server(serverPstreamConn::constrOpt()
++                             .registryP(&myRegistry)
++                             .socketFd(client.serverFd));
++
++    client.sendCall(sampleAddGoodCallStream);
++
++    bool eof;
++
++    int interrupt(1);
++    server.runOnce(&interrupt, &eof); // returns without reading socket
++    TEST(!eof);
++
++    server.runOnce(&eof);
++
++    TEST(!eof);
++
++    string response;
++    client.recvResp(&response);
++
++    TEST(response == sampleAddGoodResponseStream);
++    
++    testCallInfo(&client, &server);
++
++    client.hangup();
++
++    server.runOnce(&eof);
++
++    TEST(eof);
++}
++
++
++
++static void
++testNoWaitCall(registry const& myRegistry) {
++
++    string const sampleAddGoodCallStream(
++        packetStart +
++        xmlPrologue +
++        "<methodCall>\r\n"
++        "<methodName>sample.add</methodName>\r\n"
++        "<params>\r\n"
++        "<param><value><i4>5</i4></value></param>\r\n"
++        "<param><value><i4>7</i4></value></param>\r\n"
++        "</params>\r\n"
++        "</methodCall>\r\n" +
++        packetEnd
++        );
++    
++
++    string const sampleAddGoodResponseStream(
++        packetStart +
++        xmlPrologue +
++        "<methodResponse>\r\n"
++        "<params>\r\n"
++        "<param><value><i4>12</i4></value></param>\r\n"
++        "</params>\r\n"
++        "</methodResponse>\r\n" +
++        packetEnd
++        );
++
++    client client;
++
++    serverPstreamConn server(serverPstreamConn::constrOpt()
++                             .registryP(&myRegistry)
++                             .socketFd(client.serverFd));
++
++    bool eof;
++    bool gotOne;
++    string response;
++
++    server.runOnceNoWait(&eof, &gotOne);
++
++    TEST(!eof);
++    TEST(!gotOne);
++
++    server.runOnceNoWait(&eof);
++
++    TEST(!eof);
++
++    client.sendCall(sampleAddGoodCallStream);
++
++    server.runOnceNoWait(&eof, &gotOne);
++
++    TEST(!eof);
++    TEST(gotOne);
++
++    client.recvResp(&response);
++
++    TEST(response == sampleAddGoodResponseStream);
++    
++    client.sendCall(sampleAddGoodCallStream);
++
++    server.runOnce(&eof);
++
++    TEST(!eof);
++    client.recvResp(&response);
++    TEST(response == sampleAddGoodResponseStream);
++
++    client.hangup();
++
++    server.runOnce(&eof);
++
++    TEST(eof);
++}
++
++
++
++static void
++testMultiRpcRunNoRpc(registry const& myRegistry) {
++
++    client client;
++
++    serverPstreamConn server(serverPstreamConn::constrOpt()
++                             .registryP(&myRegistry)
++                             .socketFd(client.serverFd));
++
++    client.hangup();
++
++    server.run();
++}
++
++
++
++static void
++testMultiRpcRunOneRpc(registry const& myRegistry) {
++
++    string const sampleAddGoodCallStream(
++        packetStart +
++        xmlPrologue +
++        "<methodCall>\r\n"
++        "<methodName>sample.add</methodName>\r\n"
++        "<params>\r\n"
++        "<param><value><i4>5</i4></value></param>\r\n"
++        "<param><value><i4>7</i4></value></param>\r\n"
++        "</params>\r\n"
++        "</methodCall>\r\n" +
++        packetEnd
++        );
++    
++
++    string const sampleAddGoodResponseStream(
++        packetStart +
++        xmlPrologue +
++        "<methodResponse>\r\n"
++        "<params>\r\n"
++        "<param><value><i4>12</i4></value></param>\r\n"
++        "</params>\r\n"
++        "</methodResponse>\r\n" +
++        packetEnd
++        );
++
++    client client;
++
++    serverPstreamConn server(serverPstreamConn::constrOpt()
++                             .registryP(&myRegistry)
++                             .socketFd(client.serverFd));
++
++
++    client.sendCall(sampleAddGoodCallStream);
++    client.hangup();
++
++    int interrupt;
++
++    interrupt = 1;
++    server.run(&interrupt);  // Returns without reading socket
++
++    interrupt = 0;
++    server.run(&interrupt);  // Does the buffered RPC
++
++    string response;
++    client.recvResp(&response);
++
++    TEST(response == sampleAddGoodResponseStream);
++}
++
++
++
+ class serverPstreamConnTestSuite : public testSuite {
+ public:
+@@ -97,14 +644,12 @@ public:
+         return "serverPstreamConnTestSuite";
+     }
+     virtual void runtests(unsigned int const) {
+-        int const devNullFd(open("/dev/null", 0));
+-
+-        if (devNullFd < 0)
+-            throwf("Failed to open /dev/null, needed for test.");
+-
+         registry myRegistry;
+         
+-        myRegistry.addMethod("sample.add", methodPtr(new sampleAddMethod));
++        myRegistry.addMethod("sample.add",
++                             methodPtr(new sampleAddMethod));
++        myRegistry.addMethod("test.callinfo",
++                             methodPtr(new testCallInfoMethod));
+         registryPtr myRegistryP(new registry);
+@@ -125,43 +670,140 @@ public:
+                                      .registryP(&myRegistry));
+             );
+         
+-        EXPECT_ERROR(  // No such file descriptor
+-            serverPstreamConn server(serverPstreamConn::constrOpt()
+-                                     .registryP(&myRegistry)
+-                                     .socketFd(37));
+-            );
++        testEmptyStream(myRegistry);
++
++        testBrokenPacket(myRegistry);
++
++        testEmptyPacket(myRegistry);
++
++        testNormalCall(myRegistry);
++
++        testNoWaitCall(myRegistry);
++
++        testMultiRpcRunNoRpc(myRegistry);
++
++        testMultiRpcRunOneRpc(myRegistry);
++    }
++};
++
++
++
++static void
++testMultiConnInterrupt(registry const& myRegistry) {
++
++    // We use a nonexistent file descriptor, but the server won't
++    // ever access it, so it won't know.
++
++    serverPstream server(serverPstream::constrOpt()
++                         .registryP(&myRegistry)
++                         .socketFd(37));
++
++    int interrupt(1);  // interrupt immediately
++
++    server.runSerial(&interrupt);
++}
++
++
++
++class derivedServer : public xmlrpc_c::serverPstream {
++public:
++    derivedServer(serverPstream::constrOpt const& constrOpt) :
++        serverPstream(constrOpt),
++        info("this is my derived server") {}
++
++    string const info;
++};
++
++
++
++class multiTestCallInfoMethod : public method2 {
++
++// The test isn't sophisticated enough actually to do an RPC, so this
++// code never runs.  We just want to see if it compiles.
++
++public:
++    virtual void
++    execute(paramList        const& paramList,
++            const callInfo * const  callInfoPtr,
++            value *          const  retvalP) {
++
++        const callInfo_serverPstream * const callInfoP(
++            dynamic_cast<const callInfo_serverPstream *>(callInfoPtr));
++
++        TEST(callInfoP != NULL);
+         
+-        {
+-            serverPstreamConn server(serverPstreamConn::constrOpt()
+-                                     .registryP(&myRegistry)
+-                                     .socketFd(devNullFd));
++        paramList.verifyEnd(0);
+-            bool eof;
+-            server.runOnce(&eof);
+-            TEST(eof);
+-        }
+-        {
+-            int fd;
+-            createTestFile("junk", &fd);
++        derivedServer * const derivedServerP(
++            dynamic_cast<derivedServer *>(callInfoP->serverP));
+-            serverPstreamConn server(serverPstreamConn::constrOpt()
+-                                     .registryP(&myRegistry)
+-                                     .socketFd(fd));
++        TEST(derivedServerP->info == string("this is my derived server"));
++
++        TEST(callInfoP->clientAddr.sa_family == AF_INET);
++        TEST(callInfoP->clientAddrSize >= sizeof(struct sockaddr_in));
++        
++        *retvalP = value_nil();
++    }
++};
++
++static void
++testMultiConnCallInfo() {
++
++    registry myRegistry;
++        
++    myRegistry.addMethod("testCallInfo",
++                         methodPtr(new multiTestCallInfoMethod));
++
++    derivedServer server(serverPstream::constrOpt()
++                         .registryP(&myRegistry)
++                         .socketFd(37));
++}
++
++
++
++class multiConnServerTestSuite : public testSuite {
++
++public:
++    virtual string suiteName() {
++        return "multiConnServerTestSuite";
++    }
++    virtual void runtests(unsigned int const) {
++        registry myRegistry;
++        
++        myRegistry.addMethod("sample.add",
++                             methodPtr(new sampleAddMethod));
++
++        registryPtr myRegistryP(new registry);
++
++        myRegistryP->addMethod("sample.add", methodPtr(new sampleAddMethod));
++
++        EXPECT_ERROR(  // Empty options
++            serverPstream::constrOpt opt;
++            serverPstream server(opt);
++            );
+-            bool eof;
++        EXPECT_ERROR(  // No registry
++            serverPstream server(serverPstream::constrOpt()
++                                 .socketFd(3));
++            );
+-            EXPECT_ERROR(   // EOF in the middle of a packet
+-                server.runOnce(&eof);
+-                );
+-            close(fd);
+-        }
++        EXPECT_ERROR(  // No socket fd
++            serverPstream server(serverPstream::constrOpt()
++                                 .registryP(&myRegistry));
++            );
++        
++        testMultiConnInterrupt(myRegistry);
+-        close(devNullFd);
++        testMultiConnCallInfo();
+     }
+ };
++} // unnamed namespace
++
++
++
+ string
+ serverPstreamTestSuite::suiteName() {
+     return "serverPstreamTestSuite";
+@@ -173,5 +815,6 @@ serverPstreamTestSuite::runtests(unsigned int const indentation) {
+     serverPstreamConnTestSuite().run(indentation + 1);
++    multiConnServerTestSuite().run(indentation + 1);
+ }
+diff --git a/libs/xmlrpc-c/src/cpp/test/test.cpp b/libs/xmlrpc-c/src/cpp/test/test.cpp
+index c92653f..e632595 100644
+--- a/libs/xmlrpc-c/src/cpp/test/test.cpp
++++ b/libs/xmlrpc-c/src/cpp/test/test.cpp
+@@ -4,6 +4,7 @@
+ #include <vector>
+ #include <sstream>
+ #include <memory>
++#include <cstring>
+ #include <time.h>
+ #include "xmlrpc-c/girerr.hpp"
+@@ -13,6 +14,9 @@ using girerr::error;
+ #include "xmlrpc-c/oldcppwrapper.hpp"
+ #include "xmlrpc-c/registry.hpp"
++#include "base64.hpp"
++#include "xml.hpp"
++#include "value.hpp"
+ #include "testclient.hpp"
+ #include "registry.hpp"
+ #include "server_abyss.hpp"
+@@ -189,7 +193,7 @@ void test_value (void) {
+     XmlRpcValue::makeArray().getArray();
+     XmlRpcValue::makeStruct().getStruct();
+-    // Test Base64 values.
++    // Test byte string values.
+     const unsigned char *b64_data;
+     size_t b64_len;
+     XmlRpcValue val6 = XmlRpcValue::makeBase64((unsigned char*) "a\0\0b", 4);
+@@ -216,7 +220,7 @@ void test_value (void) {
+     TEST(strct.structSize() == 2);
+     TEST(strct.structHasKey("bar"));
+     TEST(!strct.structHasKey("nosuch"));
+-    for (size_t i = 0; i < strct.structSize(); i++) {
++    for (int i = 0; i < (int)strct.structSize(); ++i) {
+         string key;
+         XmlRpcValue value;
+         strct.structGetKeyAndValue(i, key, value);
+@@ -240,285 +244,66 @@ testXmlRpcCpp() {
+-class intTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "intTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        value_int int1(7);
+-        TEST(static_cast<int>(int1) == 7);
+-        value_int int2(-7);
+-        TEST(static_cast<int>(int2) == -7);
+-        value val1(int1);
+-        TEST(val1.type() == value::TYPE_INT);
+-        value_int int3(val1);
+-        TEST(static_cast<int>(int3) == 7);
+-        try {
+-            value_int int4(value_double(3.7));
+-            TEST_FAILED("invalid cast double-int suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class doubleTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "doubleTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        value_double double1(3.14);
+-        TEST(static_cast<double>(double1) == 3.14);
+-        value val1(double1);
+-        TEST(val1.type() == value::TYPE_DOUBLE);
+-        value_double double2(val1);
+-        TEST(static_cast<double>(double2) == 3.14);
+-        try {
+-            value_double double4(value_int(4));
+-            TEST_FAILED("invalid cast int-double suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class booleanTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "booleanTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        value_boolean boolean1(true); 
+-        TEST(static_cast<bool>(boolean1) == true);
+-        value_boolean boolean2(false);
+-        TEST(static_cast<bool>(boolean2) == false);
+-        value val1(boolean1);
+-        TEST(val1.type() == value::TYPE_BOOLEAN);
+-        value_boolean boolean3(val1);
+-        TEST(static_cast<bool>(boolean3) == true);
+-        try {
+-            value_boolean boolean4(value_int(4));
+-            TEST_FAILED("invalid cast int-boolean suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class datetimeTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "datetimeTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        time_t const testTime(900684535);
+-        value_datetime datetime1("19980717T14:08:55");
+-        TEST(static_cast<time_t>(datetime1) == testTime);
+-        value_datetime datetime2(testTime);
+-        TEST(static_cast<time_t>(datetime2) == testTime);
+-        value val1(datetime1);
+-        TEST(val1.type() == value::TYPE_DATETIME);
+-        value_datetime datetime3(val1);
+-        TEST(static_cast<time_t>(datetime3) == testTime);
+-        try {
+-            value_datetime datetime4(value_int(4));
+-            TEST_FAILED("invalid cast int-datetime suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class stringTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "stringTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        value_string string1("hello world");
+-        TEST(static_cast<string>(string1) == "hello world");
+-        value_string string2("embedded\0null");
+-        TEST(static_cast<string>(string2) == "embedded\0null");
+-        value val1(string1);
+-        TEST(val1.type() == value::TYPE_STRING);
+-        value_string string3(val1);
+-        TEST(static_cast<string>(string3) == "hello world");
+-        try {
+-            value_string string4(value_int(4));
+-            TEST_FAILED("invalid cast int-string succeeded");
+-        } catch (error) {}
+-        value_string string5("hello world", value_string::nlCode_all);
+-        TEST(static_cast<string>(string5) == "hello world");
+-        value_string string6("hello\nthere\rworld\r\n\n",
+-                             value_string::nlCode_all);
+-        TEST(static_cast<string>(string6) == "hello\nthere\nworld\n\n");
+-        TEST(string6.crlfValue() == "hello\r\nthere\r\nworld\r\n\r\n");
+-        value_string string7("hello\nthere\rworld\r\n\n",
+-                             value_string::nlCode_lf);
+-        TEST(static_cast<string>(string7) == "hello\nthere\rworld\r\n\n");
+-    }
+-};
+-
+-
+-
+-class bytestringTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "bytestringTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        unsigned char bytestringArray[] = {0x10, 0x11, 0x12, 0x13, 0x14};
+-        vector<unsigned char> 
+-            bytestringData(&bytestringArray[0], &bytestringArray[4]);
+-        value_bytestring bytestring1(bytestringData);
+-
+-        vector<unsigned char> const dataReadBack1(
+-            bytestring1.vectorUcharValue());
+-        TEST(dataReadBack1 == bytestringData);
+-        value val1(bytestring1);
+-        TEST(val1.type() == value::TYPE_BYTESTRING);
+-        value_bytestring bytestring2(val1);
+-        vector<unsigned char> const dataReadBack2(
+-            bytestring2.vectorUcharValue());
+-        TEST(dataReadBack2 == bytestringData);
+-        try {
+-            value_bytestring bytestring4(value_int(4));
+-            TEST_FAILED("invalid cast int-bytestring suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class nilTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "nilTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        value_nil nil1;
+-        value val1(nil1);
+-        TEST(val1.type() == value::TYPE_NIL);
+-        value_nil nil2(val1);
+-        try {
+-            value_nil nil4(value_int(4));
+-            TEST_FAILED("invalid cast int-nil suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class i8TestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "i8TestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        value_i8 int1(7);
+-        TEST(static_cast<xmlrpc_int64>(int1) == 7);
+-        value_i8 int2(-7);
+-        TEST(static_cast<xmlrpc_int64>(int2) == -7);
+-        value_i8 int5(1ull << 40);
+-        TEST(static_cast<xmlrpc_int64>(int5) == (1ull << 40));
+-        value val1(int1);
+-        TEST(val1.type() == value::TYPE_I8);
+-        value_i8 int3(val1);
+-        TEST(static_cast<xmlrpc_int64>(int3) == 7);
+-        try {
+-            value_i8 int4(value_double(3.7));
+-            TEST_FAILED("invalid cast double-i8 suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class structTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "structTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        map<string, value> structData;
+-        pair<string, value> member("the_integer", value_int(9));
+-        structData.insert(member);
+-        
+-        value_struct struct1(structData);
+-
+-        map<string, value> dataReadBack(struct1);
+-
+-        TEST(static_cast<int>(value_int(dataReadBack["the_integer"])) == 9);
+-
+-        value val1(struct1);
+-        TEST(val1.type() == value::TYPE_STRUCT);
+-        value_struct struct2(val1);
+-        try {
+-            value_struct struct4(value_int(4));
+-            TEST_FAILED("invalid cast int-struct suceeded");
+-        } catch (error) {}
+-    }
+-};
+-
+-
+-
+-class arrayTestSuite : public testSuite {
+-public:
+-    virtual string suiteName() {
+-        return "arrayTestSuite";
+-    }
+-    virtual void runtests(unsigned int const) {
+-        vector<value> arrayData;
+-        arrayData.push_back(value_int(7));
+-        arrayData.push_back(value_double(2.78));
+-        arrayData.push_back(value_string("hello world"));
+-        value_array array1(arrayData);
+-
+-        TEST(array1.size() == 3);
+-        vector<value> dataReadBack1(array1.vectorValueValue());
+-        TEST(dataReadBack1[0].type() ==  value::TYPE_INT);
+-        TEST(static_cast<int>(value_int(dataReadBack1[0])) == 7);
+-        TEST(dataReadBack1[1].type() ==  value::TYPE_DOUBLE);
+-        TEST(static_cast<double>(value_double(dataReadBack1[1])) == 2.78);
+-        TEST(dataReadBack1[2].type() ==  value::TYPE_STRING);
+-        TEST(static_cast<string>(value_string(dataReadBack1[2])) == 
+-             "hello world");
+-
+-        value val1(array1);
+-        TEST(val1.type() == value::TYPE_ARRAY);
+-        value_array array2(val1);
+-        TEST(array2.size() == 3);
+-        try {
+-            value_array array4(value_int(4));
+-            TEST_FAILED("invalid cast int-array suceeded");
+-        } catch (error) {}
+-    }
+-};
++static void
++buildParamListWithAdd(paramList * const paramListP,
++                      time_t    const  timeFuture) {
++
++    paramListP->add(value_int(7));
++    paramListP->add(value_boolean(true)).add(value_double(3.14));
++    time_t const timeZero(0);
++    paramListP->add(value_datetime(timeZero));
++    paramListP->add(value_datetime(timeFuture));
++    paramListP->add(value_string("hello world"));
++    unsigned char bytestringArray[] = {0x10, 0x11, 0x12, 0x13, 0x14};
++    vector<unsigned char> 
++        bytestringData(&bytestringArray[0], &bytestringArray[4]);
++    paramListP->add(value_bytestring(bytestringData));
++    vector<value> arrayData;
++    arrayData.push_back(value_int(7));
++    arrayData.push_back(value_double(2.78));
++    arrayData.push_back(value_string("hello world"));
++    paramListP->add(value_array(arrayData));
++    map<string, value> structData;
++    pair<string, value> member("the_integer", value_int(9));
++    structData.insert(member);
++    paramListP->add(value_struct(structData));
++    paramListP->add(value_nil());
++    paramListP->add(value_i8((xmlrpc_int64)UINT_MAX + 1));
++}
+-class valueTestSuite : public testSuite {
++static void
++verifyParamList(paramList const& paramList,
++                time_t    const  timeFuture) {
++
++    TEST(paramList.size() == 11);
++
++    TEST(paramList.getInt(0) == 7);
++    TEST(paramList.getInt(0, 7) == 7);
++    TEST(paramList.getInt(0, -5, 7) == 7);
++    TEST(paramList.getBoolean(1) == true);
++    TEST(paramList.getDouble(2) == 3.14);
++    TEST(paramList.getDouble(2, 1) == 3.14);
++    TEST(paramList.getDouble(2, 1, 4) == 3.14);
++    time_t const timeZero(0);
++    TEST(paramList.getDatetime_sec(3) == timeZero);
++    TEST(paramList.getDatetime_sec(3, paramList::TC_ANY) == timeZero);
++    TEST(paramList.getDatetime_sec(3, paramList::TC_NO_FUTURE) 
++         == timeZero);
++    TEST(paramList.getDatetime_sec(4, paramList::TC_NO_PAST)
++         == timeFuture);
++    TEST(paramList.getString(5) == "hello world");
++    TEST(paramList.getBytestring(6)[0] == 0x10);
++    TEST(paramList.getArray(7).size() == 3);
++    TEST(paramList.getArray(7, 3).size() == 3);
++    TEST(paramList.getArray(7, 1, 3).size() == 3);
++    paramList.getStruct(8)["the_integer"];
++    paramList.getNil(9);
++    TEST(paramList.getI8(10) == (xmlrpc_int64)UINT_MAX + 1);
++    paramList.verifyEnd(11);
++}
+-public:
+-    virtual string suiteName() {
+-        return "valueTestSuite";
+-    }
+-    virtual void runtests(unsigned int const indentation) {
+-
+-        intTestSuite().run(indentation+1);
+-        doubleTestSuite().run(indentation+1);
+-        booleanTestSuite().run(indentation+1);
+-        datetimeTestSuite().run(indentation+1);
+-        stringTestSuite().run(indentation+1);
+-        bytestringTestSuite().run(indentation+1);
+-        nilTestSuite().run(indentation+1);
+-        i8TestSuite().run(indentation+1);
+-        structTestSuite().run(indentation+1);
+-        arrayTestSuite().run(indentation+1);
+-    }
+-};
+ class paramListTestSuite : public testSuite {
+@@ -529,60 +314,24 @@ public:
+     }
+     virtual void runtests(unsigned int const) {
++        time_t const timeFuture(time(NULL)+100);
++
+         paramList paramList1;
+         TEST(paramList1.size() == 0);
+-        paramList1.add(value_int(7));
+-        paramList1.add(value_boolean(true));
+-        paramList1.add(value_double(3.14));
+-        time_t const timeZero(0);
+-        paramList1.add(value_datetime(timeZero));
+-        time_t const timeFuture(time(NULL)+100);
+-        paramList1.add(value_datetime(timeFuture));
+-        paramList1.add(value_string("hello world"));
+-        unsigned char bytestringArray[] = {0x10, 0x11, 0x12, 0x13, 0x14};
+-        vector<unsigned char> 
+-            bytestringData(&bytestringArray[0], &bytestringArray[4]);
+-        paramList1.add(value_bytestring(bytestringData));
+-        vector<value> arrayData;
+-        arrayData.push_back(value_int(7));
+-        arrayData.push_back(value_double(2.78));
+-        arrayData.push_back(value_string("hello world"));
+-        paramList1.add(value_array(arrayData));
+-        map<string, value> structData;
+-        pair<string, value> member("the_integer", value_int(9));
+-        structData.insert(member);
+-        paramList1.add(value_struct(structData));
+-        paramList1.add(value_nil());
+-        paramList1.add(value_i8((xmlrpc_int64)UINT_MAX + 1));
+-
+-        TEST(paramList1.size() == 11);
+-
+-        TEST(paramList1.getInt(0) == 7);
+-        TEST(paramList1.getInt(0, 7) == 7);
+-        TEST(paramList1.getInt(0, -5, 7) == 7);
+-        TEST(paramList1.getBoolean(1) == true);
+-        TEST(paramList1.getDouble(2) == 3.14);
+-        TEST(paramList1.getDouble(2, 1) == 3.14);
+-        TEST(paramList1.getDouble(2, 1, 4) == 3.14);
+-        TEST(paramList1.getDatetime_sec(3) == 0);
+-        TEST(paramList1.getDatetime_sec(3, paramList::TC_ANY) == timeZero);
+-        TEST(paramList1.getDatetime_sec(3, paramList::TC_NO_FUTURE) 
+-             == timeZero);
+-        TEST(paramList1.getDatetime_sec(4, paramList::TC_NO_PAST)
+-             == timeFuture);
+-        TEST(paramList1.getString(5) == "hello world");
+-        TEST(paramList1.getBytestring(6)[0] == 0x10);
+-        TEST(paramList1.getArray(7).size() == 3);
+-        TEST(paramList1.getArray(7, 3).size() == 3);
+-        TEST(paramList1.getArray(7, 1, 3).size() == 3);
+-        paramList1.getStruct(8)["the_integer"];
+-        paramList1.getNil(9);
+-        TEST(paramList1.getI8(10) == (xmlrpc_int64)UINT_MAX + 1);
+-        paramList1.verifyEnd(11);
++        buildParamListWithAdd(&paramList1, timeFuture);
++
++        verifyParamList(paramList1, timeFuture);
+         paramList paramList2(5);
+         TEST(paramList2.size() == 0);
++
++        paramList2.addc(7);
++        paramList2.addc(true).addc(3.14);
++        TEST(paramList2.size() == 3);
++        TEST(paramList2.getInt(0) == 7);
++        TEST(paramList2.getBoolean(1) == true);
++        TEST(paramList2.getDouble(2) == 3.14);
+     }
+ };
+@@ -604,13 +353,13 @@ main(int argc, char**) {
+     try {
+         // Add your test suites here.
++        base64TestSuite().run(0);
++        xmlTestSuite().run(0);
+         valueTestSuite().run(0);
+         paramListTestSuite().run(0);
+         registryTestSuite().run(0);
+         serverAbyssTestSuite().run(0);
+-#ifndef  WIN32
+         serverPstreamTestSuite().run(0);
+-#endif
+         clientTestSuite().run(0);
+         testXmlRpcCpp();
+diff --git a/libs/xmlrpc-c/src/cpp/test/testclient.cpp b/libs/xmlrpc-c/src/cpp/test/testclient.cpp
+index 6eadf8d..f8a2b3a 100644
+--- a/libs/xmlrpc-c/src/cpp/test/testclient.cpp
++++ b/libs/xmlrpc-c/src/cpp/test/testclient.cpp
+@@ -32,10 +32,12 @@ using namespace std;
++namespace {
++
+ class sampleAddMethod : public method {
+ public:
+     sampleAddMethod() {
+-        this->_signature = "ii";
++        this->_signature = "i:ii";
+         this->_help = "This method adds two integers together";
+     }
+     void
+@@ -78,7 +80,15 @@ public:
+ class clientXmlTransport_direct : public clientXmlTransport {
++/*----------------------------------------------------------------------------
++   Though this fills the shoes of a client XML transport, it's really a
++   simulation, because it doesn't transport anything anywhere.  The call()
++   method, which is supposed to transport a call to a server and then
++   transport the response back, actually just executes the method itself.
++   Part of a carriage parameter for a transport of this class is the handle
++   of a method registry, so the transport knows how to execute the method.
++-----------------------------------------------------------------------------*/
+ public:    
+     void
+     call(xmlrpc_c::carriageParm * const  carriageParmP,
+@@ -158,6 +168,64 @@ public:
++class MyRpc : public rpc {
++
++public:
++    MyRpc(std::string const  methodName,
++          paramList   const& paramList) :
++        rpc(methodName, paramList) {}
++
++    void
++    progress(struct xmlrpc_progress_data const& data) const {
++
++        // The way the tests are currently written, this never actually
++        // runs; we're just testing for ability to compile.
++
++        cout << "Progress of " << this << ": "
++             << data.call.total << " "
++             << data.call.now << " "
++             << data.response.total << " "
++             << data.response.now
++             << endl;
++    }
++};
++
++
++
++class clientDerivedRpcTestSuite : public testSuite {
++/*----------------------------------------------------------------------------
++  The object of this class tests the ability to derive a class
++  from xmlrpc_c::rpc in order to override certain methods.
++-----------------------------------------------------------------------------*/
++public:
++    virtual string suiteName() {
++        return "clientDerivedRpcTestSuite";
++    }
++    virtual void runtests(unsigned int const ) {
++        registry myRegistry;
++        
++        myRegistry.addMethod("sample.add", methodPtr(new sampleAddMethod));
++        
++        carriageParm_direct carriageParmDirect(&myRegistry);
++        clientXmlTransport_direct transportDirect;
++        client_xml clientDirect(&transportDirect);
++        paramList paramListSampleAdd;
++        paramListSampleAdd.add(value_int(5));
++        paramListSampleAdd.add(value_int(7));
++        {
++            /* Test a successful RPC */
++            rpcPtr rpcSampleAddP(new MyRpc("sample.add", paramListSampleAdd));
++            rpcSampleAddP->call(&clientDirect, &carriageParmDirect);
++            TEST(rpcSampleAddP->isFinished());
++            TEST(rpcSampleAddP->isSuccessful());
++            value_int const resultDirect(rpcSampleAddP->getResult());
++            TEST(static_cast<int>(resultDirect) == 12);
++        }
++    }
++};
++
++
++
+ class clientDirectTestSuite : public testSuite {
+ /*----------------------------------------------------------------------------
+   The object of this class tests the client facilities by using a
+@@ -241,6 +309,8 @@ public:
+             // Same as above
+         
+         clientDirectAsyncTestSuite().run(indentation+1);
++
++        clientDerivedRpcTestSuite().run(indentation+1);
+     }
+ };
+@@ -263,6 +333,7 @@ public:
+             .network_interface("eth0")
+             .no_ssl_verifypeer(true)
+             .no_ssl_verifyhost(true)
++            .dont_advertise(true)
+             .user_agent("my user agent")
+             .ssl_cert("/etc/sslcert")
+             .sslcerttype("PEM")
+@@ -278,6 +349,10 @@ public:
+             .randomfile("/dev/random")
+             .egdsocket("/tmp/egdsocket")
+             .ssl_cipher_list("RC4-SHA:DEFAULT")
++            .proxy("example.com")
++            .proxy_port(8080)
++            .proxy_userpwd("password")
++            .proxy_type(XMLRPC_HTTPPROXY_SOCKS5)
+             );            
+         clientXmlTransport_curl transport5(
+@@ -831,6 +906,10 @@ public:
++} // unnamed namespace
++
++
++
+ string
+ clientTestSuite::suiteName() {
+     return "clientTestSuite";
+diff --git a/libs/xmlrpc-c/src/cpp/value.cpp b/libs/xmlrpc-c/src/cpp/value.cpp
+index 6dcba93..3af785c 100644
+--- a/libs/xmlrpc-c/src/cpp/value.cpp
++++ b/libs/xmlrpc-c/src/cpp/value.cpp
+@@ -64,6 +64,22 @@ public:
+         this->valueP = xmlrpc_datetime_new_sec(&env.env_c, cppvalue);
+         throwIfError(env);
+     }
++#if XMLRPC_HAVE_TIMEVAL
++    cDatetimeValueWrapper(struct timeval const cppvalue) {
++        env_wrap env;
++        
++        this->valueP = xmlrpc_datetime_new_timeval(&env.env_c, cppvalue);
++        throwIfError(env);
++    }
++#endif
++#if XMLRPC_HAVE_TIMESPEC
++    cDatetimeValueWrapper(struct timespec const cppvalue) {
++        env_wrap env;
++        
++        this->valueP = xmlrpc_datetime_new_timespec(&env.env_c, cppvalue);
++        throwIfError(env);
++    }
++#endif
+     ~cDatetimeValueWrapper() {
+         xmlrpc_DECREF(this->valueP);
+     }
+@@ -93,13 +109,13 @@ public:
+ namespace xmlrpc_c {
+-value::value() {
++value::value() {   // default constructor
+     this->cValueP = NULL;
+ }
+-value::value(xmlrpc_value * const valueP) {  // default constructor
++value::value(xmlrpc_value * const valueP) {
+     this->instantiate(valueP);
+ }
+@@ -135,7 +151,7 @@ value::~value() {
+ bool
+ value::isInstantiated() const {
+ /*----------------------------------------------------------------------------
+-   Return whether the value is actually a value, as opposed to a placeholder
++   Return whether the object is actually a value, as opposed to a placeholder
+    variable waiting to be assigned a value.
+ -----------------------------------------------------------------------------*/
+     return (this->cValueP != NULL);
+@@ -144,6 +160,20 @@ value::isInstantiated() const {
+ void
++value::validateInstantiated() const {    // private
++/*----------------------------------------------------------------------------
++   Throw an exception if the object is just a placeholder, rather than an
++   actual XML-RPC value.
++-----------------------------------------------------------------------------*/
++    if (!this->cValueP)
++        throw(error("Reference to xmlrpc_c::value that has not been "
++                    "instantiated.  (xmlrpc_c::value::isInstantiated may be "
++                    "useful in diagnosing)"));
++}
++
++
++
++void
+ value::instantiate(xmlrpc_value * const valueP) {
+     xmlrpc_INCREF(valueP);
+@@ -168,6 +198,8 @@ value::appendToCArray(xmlrpc_value * const arrayP) const {
+ /*----------------------------------------------------------------------------
+   Append this value to the C array 'arrayP'.
+ ----------------------------------------------------------------------------*/
++    this->validateInstantiated();
++
+     env_wrap env;
+     xmlrpc_array_append_item(&env.env_c, arrayP, this->cValueP);
+@@ -183,6 +215,8 @@ value::addToCStruct(xmlrpc_value * const structP,
+ /*----------------------------------------------------------------------------
+   Add this value to the C array 'arrayP' with key 'key'.
+ ----------------------------------------------------------------------------*/
++    this->validateInstantiated();
++
+     env_wrap env;
+     xmlrpc_struct_set_value_n(&env.env_c, structP,
+@@ -196,8 +230,11 @@ value::addToCStruct(xmlrpc_value * const structP,
+ value::type_t 
+ value::type() const {
++
++    this->validateInstantiated();
++
+     /* You'd think we could just cast from xmlrpc_type to
+-       value:type_t, but Gcc warns if we do that.  So we have to do this
++       value::type_t, but Gcc warns if we do that.  So we have to do this
+        even messier union nonsense.
+     */
+     union {
+@@ -212,6 +249,15 @@ value::type() const {
++ostream& operator<<(ostream& out, value::type_t const& type) {
++
++    string typeName;
++
++    return out << string(xmlrpc_type_name((xmlrpc_type)type));
++}
++
++
++
+ value_int::value_int(int const cppvalue) {
+     class cWrapper {
+@@ -249,6 +295,8 @@ value_int::value_int(xmlrpc_c::value const baseValue) {
+ value_int::operator int() const {
++    this->validateInstantiated();
++
+     int retval;
+     env_wrap env;
+@@ -260,6 +308,14 @@ value_int::operator int() const {
++int
++value_int::cvalue() const {
++
++    return static_cast<int>(*this);
++}
++
++
++
+ value_double::value_double(double const cppvalue) {
+     class cWrapper {
+@@ -295,6 +351,8 @@ value_double::value_double(xmlrpc_c::value const baseValue) {
+ value_double::operator double() const {
++    this->validateInstantiated();
++
+     double retval;
+     env_wrap env;
+@@ -307,6 +365,14 @@ value_double::operator double() const {
++double
++value_double::cvalue() const {
++
++    return static_cast<double>(*this);
++}
++
++
++
+ value_boolean::value_boolean(bool const cppvalue) {
+     class cWrapper {
+@@ -331,8 +397,21 @@ value_boolean::value_boolean(bool const cppvalue) {
++value_boolean::value_boolean(xmlrpc_c::value const baseValue) {
++
++    if (baseValue.type() != xmlrpc_c::value::TYPE_BOOLEAN)
++        throw(error("Not boolean type.  See type() method"));
++    else {
++        this->instantiate(baseValue.cValueP);
++    }
++}
++
++
++
+ value_boolean::operator bool() const {
++    this->validateInstantiated();
++
+     xmlrpc_bool retval;
+     env_wrap env;
+@@ -345,13 +424,10 @@ value_boolean::operator bool() const {
+-value_boolean::value_boolean(xmlrpc_c::value const baseValue) {
++bool
++value_boolean::cvalue() const {
+-    if (baseValue.type() != xmlrpc_c::value::TYPE_BOOLEAN)
+-        throw(error("Not boolean type.  See type() method"));
+-    else {
+-        this->instantiate(baseValue.cValueP);
+-    }
++    return static_cast<bool>(*this);
+ }
+@@ -393,7 +469,7 @@ value_datetime::value_datetime(time_t const cppvalue) {
+ #if XMLRPC_HAVE_TIMEVAL
+ value_datetime::value_datetime(struct timeval const& cppvalue) {
+-    cDatetimeValueWrapper wrapper(cppvalue.tv_sec);
++    cDatetimeValueWrapper wrapper(cppvalue);
+     this->instantiate(wrapper.valueP);
+ }
+@@ -404,7 +480,7 @@ value_datetime::value_datetime(struct timeval const& cppvalue) {
+ #if XMLRPC_HAVE_TIMESPEC
+ value_datetime::value_datetime(struct timespec const& cppvalue) {
+-    cDatetimeValueWrapper wrapper(cppvalue.tv_sec);
++    cDatetimeValueWrapper wrapper(cppvalue);
+     this->instantiate(wrapper.valueP);
+ }
+@@ -425,6 +501,8 @@ value_datetime::value_datetime(xmlrpc_c::value const baseValue) {
+ value_datetime::operator time_t() const {
++    this->validateInstantiated();
++
+     time_t retval;
+     env_wrap env;
+@@ -436,6 +514,50 @@ value_datetime::operator time_t() const {
++#if XMLRPC_HAVE_TIMEVAL
++
++value_datetime::operator timeval() const {
++
++    this->validateInstantiated();
++
++    struct timeval retval;
++    env_wrap env;
++
++    xmlrpc_read_datetime_timeval(&env.env_c, this->cValueP, &retval);
++    throwIfError(env);
++
++    return retval;
++}
++#endif
++
++
++
++#if XMLRPC_HAVE_TIMESPEC
++
++value_datetime::operator timespec() const {
++
++    this->validateInstantiated();
++
++    struct timespec retval;
++    env_wrap env;
++
++    xmlrpc_read_datetime_timespec(&env.env_c, this->cValueP, &retval);
++    throwIfError(env);
++
++    return retval;
++}
++#endif
++
++
++
++time_t
++value_datetime::cvalue() const {
++
++    return static_cast<time_t>(*this);
++}
++
++
++
+ class cNewStringWrapper {
+ public:
+     xmlrpc_value * valueP;
+@@ -517,6 +639,8 @@ value_string::crlfValue() const {
+         }
+     };
+     
++    this->validateInstantiated();
++
+     cWrapper wrapper(this->cValueP);
+     return string(wrapper.str, wrapper.length);
+@@ -526,7 +650,7 @@ value_string::crlfValue() const {
+ value_string::operator string() const {
+-    env_wrap env;
++    this->validateInstantiated();
+     cStringWrapper adapter(this->cValueP);
+@@ -535,6 +659,14 @@ value_string::operator string() const {
++std::string
++value_string::cvalue() const {
++
++    return static_cast<std::string>(*this);
++}
++
++
++
+ value_bytestring::value_bytestring(
+     vector<unsigned char> const& cppvalue) {
+@@ -561,6 +693,17 @@ value_bytestring::value_bytestring(
++value_bytestring::value_bytestring(xmlrpc_c::value const baseValue) {
++
++    if (baseValue.type() != xmlrpc_c::value::TYPE_BYTESTRING)
++        throw(error("Not byte string type.  See type() method"));
++    else {
++        this->instantiate(baseValue.cValueP);
++    }
++}
++
++
++
+ vector<unsigned char>
+ value_bytestring::vectorUcharValue() const {
+@@ -580,6 +723,8 @@ value_bytestring::vectorUcharValue() const {
+         }
+     };
+     
++    this->validateInstantiated();
++
+     cWrapper wrapper(this->cValueP);
+     return vector<unsigned char>(&wrapper.contents[0], 
+@@ -588,9 +733,19 @@ value_bytestring::vectorUcharValue() const {
++vector<unsigned char>
++value_bytestring::cvalue() const {
++
++    return this->vectorUcharValue();
++}
++
++
++
+ size_t
+ value_bytestring::length() const {
++    this->validateInstantiated();
++
+     env_wrap env;
+     size_t length;
+@@ -602,17 +757,6 @@ value_bytestring::length() const {
+-value_bytestring::value_bytestring(xmlrpc_c::value const baseValue) {
+-
+-    if (baseValue.type() != xmlrpc_c::value::TYPE_BYTESTRING)
+-        throw(error("Not byte string type.  See type() method"));
+-    else {
+-        this->instantiate(baseValue.cValueP);
+-    }
+-}
+-
+-
+-
+ value_array::value_array(vector<xmlrpc_c::value> const& cppvalue) {
+     
+     class cWrapper {
+@@ -655,6 +799,8 @@ value_array::value_array(xmlrpc_c::value const baseValue) {
+ vector<xmlrpc_c::value>
+ value_array::vectorValueValue() const {
++    this->validateInstantiated();
++
+     env_wrap env;
+     unsigned int arraySize;
+@@ -693,9 +839,19 @@ value_array::vectorValueValue() const {
++vector<xmlrpc_c::value>
++value_array::cvalue() const {
++
++    return this->vectorValueValue();
++}
++
++
++
+ size_t
+ value_array::size() const {
++    this->validateInstantiated();
++
+     env_wrap env;
+     unsigned int arraySize;
+@@ -752,6 +908,8 @@ value_struct::value_struct(xmlrpc_c::value const baseValue) {
+ value_struct::operator map<string, xmlrpc_c::value>() const {
++    this->validateInstantiated();
++
+     env_wrap env;
+     unsigned int structSize;
+@@ -796,6 +954,14 @@ value_struct::operator map<string, xmlrpc_c::value>() const {
++map<string, xmlrpc_c::value>
++value_struct::cvalue() const {
++
++    return static_cast<map<string, xmlrpc_c::value> >(*this);
++}
++
++
++
+ value_nil::value_nil() {
+     
+     class cWrapper {
+@@ -831,6 +997,14 @@ value_nil::value_nil(xmlrpc_c::value const baseValue) {
++void *
++value_nil::cvalue() const {
++
++    return NULL;
++}
++
++
++
+ value_i8::value_i8(xmlrpc_int64 const cppvalue) {
+     class cWrapper {
+@@ -868,6 +1042,8 @@ value_i8::value_i8(xmlrpc_c::value const baseValue) {
+ value_i8::operator xmlrpc_int64() const {
++    this->validateInstantiated();
++
+     xmlrpc_int64 retval;
+     env_wrap env;
+@@ -879,4 +1055,12 @@ value_i8::operator xmlrpc_int64() const {
++xmlrpc_int64
++value_i8::cvalue() const {
++
++    return static_cast<xmlrpc_int64>(*this);
++}
++
++
++
+ } // namespace
+diff --git a/libs/xmlrpc-c/src/cpp/xml.cpp b/libs/xmlrpc-c/src/cpp/xml.cpp
+index 9c57bf3..79802b9 100644
+--- a/libs/xmlrpc-c/src/cpp/xml.cpp
++++ b/libs/xmlrpc-c/src/cpp/xml.cpp
+@@ -21,14 +21,38 @@ class cValueWrapper {
+ /*----------------------------------------------------------------------------
+    Use an object of this class to set up to remove a reference to an
+    xmlrpc_value object (a C object with manual reference management)
+-   at then end of a scope -- even if the scope ends with a throw.
++   at the end of a scope -- even if the scope ends with a throw.
+ -----------------------------------------------------------------------------*/
+ public:
+-    xmlrpc_value * valueP;
++    xmlrpc_value * const valueP;
+     cValueWrapper(xmlrpc_value * valueP) : valueP(valueP) {}
+     ~cValueWrapper() { xmlrpc_DECREF(valueP); }
+ };
++
++
++class cStringWrapper {
++public:
++    const char * const cString;
++    cStringWrapper(const char * const cString) : cString(cString) {}
++    ~cStringWrapper() { xmlrpc_strfree(cString); }
++};
++    
++
++
++class memblockWrapper {
++    xmlrpc_mem_block * const memblockP;
++public:
++    memblockWrapper(xmlrpc_mem_block * const memblockP) :
++        memblockP(memblockP) {}
++
++    ~memblockWrapper() {
++        XMLRPC_MEMBLOCK_FREE(char, memblockP);
++    }
++};
++
++
++
+ xmlrpc_value *
+ cArrayFromParamList(paramList const& paramList) {
+@@ -53,6 +77,42 @@ cArrayFromParamList(paramList const& paramList) {
+     return paramArrayP;
+ }
++
++
++paramList const 
++paramListFromCArray(xmlrpc_value * const cArrayP) {
++
++    paramList retval;
++    env_wrap env;
++
++    unsigned int const nParam(xmlrpc_array_size(&env.env_c, cArrayP));
++
++    if (!env.env_c.fault_occurred) {
++        for (unsigned int i = 0;
++             i < nParam && !env.env_c.fault_occurred;
++             ++i) {
++
++            xmlrpc_value * cParamP;
++
++            xmlrpc_array_read_item(&env.env_c, cArrayP, i, &cParamP);
++
++            if (!env.env_c.fault_occurred) {
++
++                cValueWrapper const paramAuto(cParamP);
++                    // Causes xmlrpc_DECREF(cParamP) at end of scope
++
++                retval.add(cParamP);
++            }
++        }
++    }
++    if (env.env_c.fault_occurred)
++        throw(error(env.env_c.fault_string));
++
++    return retval;
++}
++
++
++
+ } // namespace
+@@ -71,17 +131,6 @@ generateCall(string         const& methodName,
+    Use dialect 'dialect' of XML-RPC.
+ -----------------------------------------------------------------------------*/
+-    class memblockWrapper {
+-        xmlrpc_mem_block * const memblockP;
+-    public:
+-        memblockWrapper(xmlrpc_mem_block * const memblockP) :
+-            memblockP(memblockP) {}
+-
+-        ~memblockWrapper() {
+-            XMLRPC_MEMBLOCK_FREE(char, memblockP);
+-        }
+-    };
+-
+     xmlrpc_mem_block * callXmlMP;
+     env_wrap env;
+@@ -118,6 +167,86 @@ generateCall(string    const& methodName,
+ void
++parseCall(string      const& callXml,
++          string *    const  methodNameP,
++          paramList * const  paramListP) {
++
++    env_wrap env;
++    const char * c_methodName;
++    xmlrpc_value * c_paramArrayP;
++
++    xmlrpc_parse_call(&env.env_c, callXml.c_str(), callXml.size(),
++                      &c_methodName, &c_paramArrayP);
++
++    if (env.env_c.fault_occurred)
++        throw(error(env.env_c.fault_string));
++    else {
++        cValueWrapper const paramListAuto(c_paramArrayP);
++            // Causes XMLRPC_decref(c_paramArrayP) at end of scope
++        cStringWrapper const methodNameAuto(c_methodName);
++            // Causes xmlrpc_strfree(c_methodName) at end of scope
++
++        *paramListP  = paramListFromCArray(c_paramArrayP);
++        *methodNameP = string(c_methodName);
++    }
++}
++
++
++
++void
++generateResponse(rpcOutcome     const& outcome,
++                 xmlrpc_dialect const  dialect,
++                 string *       const  respXmlP) {
++/*----------------------------------------------------------------------------
++   Generate the XML for an XML-RPC resp, given the RPC outcome.
++
++   Use dialect 'dialect' of XML-RPC.
++-----------------------------------------------------------------------------*/
++    xmlrpc_mem_block * respXmlMP;
++    env_wrap env;
++
++    respXmlMP = XMLRPC_MEMBLOCK_NEW(char, &env.env_c, 0);
++    if (!env.env_c.fault_occurred) {
++        memblockWrapper respXmlAuto(respXmlMP);
++            // Makes respXmlMP get freed at end of scope
++
++        if (outcome.succeeded()) {
++            cValueWrapper cResult(outcome.getResult().cValue());
++
++            xmlrpc_serialize_response2(&env.env_c, respXmlMP,
++                                       cResult.valueP, dialect);
++        
++            *respXmlP = string(XMLRPC_MEMBLOCK_CONTENTS(char, respXmlMP),
++                                   XMLRPC_MEMBLOCK_SIZE(char, respXmlMP));
++        } else {
++            env_wrap cFault;
++
++            xmlrpc_env_set_fault(&cFault.env_c, outcome.getFault().getCode(),
++                                 outcome.getFault().getDescription().c_str());
++
++            xmlrpc_serialize_fault(&env.env_c, respXmlMP, &cFault.env_c);
++        
++            *respXmlP = string(XMLRPC_MEMBLOCK_CONTENTS(char, respXmlMP),
++                                   XMLRPC_MEMBLOCK_SIZE(char, respXmlMP));
++        }
++    }
++    if (env.env_c.fault_occurred)
++        throw(error(env.env_c.fault_string));
++}
++
++
++
++void
++generateResponse(rpcOutcome const& outcome,
++                 string *   const  respXmlP) {
++
++    generateResponse(outcome, xmlrpc_dialect_i8, respXmlP);
++
++}
++
++
++
++void
+ parseResponse(string       const& responseXml,
+               rpcOutcome * const  outcomeP) {
+ /*----------------------------------------------------------------------------
+diff --git a/libs/xmlrpc-c/src/double.c b/libs/xmlrpc-c/src/double.c
+index 1968d40..f96728b 100644
+--- a/libs/xmlrpc-c/src/double.c
++++ b/libs/xmlrpc-c/src/double.c
+@@ -3,6 +3,7 @@
+ #include <float.h>
+ #include "xmlrpc-c/util.h"
++#include "xmlrpc-c/util_int.h"
+ #include "double.h"
+@@ -34,8 +35,8 @@ bufferConcat(buffer * const bufferP,
+     if (bufferP->bytes) {
+         if (bufferP->next >= bufferP->end) {
+-            unsigned int const oldSize = bufferP->end - bufferP->bytes;
+-            unsigned int const newSize = oldSize + 64;
++            size_t const oldSize = bufferP->end - bufferP->bytes;
++            size_t const newSize = oldSize + 64;
+             bufferP->bytes = realloc(bufferP->bytes, newSize);
+             bufferP->next = bufferP->bytes + oldSize;
+             bufferP->end  = bufferP->bytes + newSize;
+@@ -58,6 +59,23 @@ digitChar(unsigned int const digitValue) {
++static unsigned int
++leadDigit(double const arg,
++          double const precision) {
++/*----------------------------------------------------------------------------
++   Assuming 'arg' has one digit before the decimal point (which may be zero),
++   return that digit.
++
++   We assume the precision of 'arg' is plus or minus 'precision', and bias our
++   estimation of the first digit up.  We do that bias in order to bias toward
++   shorter decimal ciphers: It's cleaner to consider 2.9999999 to be 3 than to
++   consider 3 to be 2.999999.
++-----------------------------------------------------------------------------*/
++    return MIN(9, (unsigned int)(arg + precision));
++}
++
++
++
+ static void
+ floatWhole(double   const value,
+            buffer * const formattedP,
+@@ -88,7 +106,8 @@ floatWhole(double   const value,
+             */
+             leastValue = 0;
+         } else
+-            leastValue = (unsigned int)(value - nonLeastAmount * 10);
++            leastValue = leadDigit(value - nonLeastAmount * 10,
++                                   nonLeastPrecision * 10);
+         bufferConcat(formattedP, digitChar(leastValue));
+         
+@@ -120,7 +139,7 @@ floatFractionPart(double   const value,
+         unsigned int digitValue;
+         d *= 10;
+-        digitValue = (unsigned int) d;
++        digitValue = leadDigit(d, precision);
+         d -= digitValue;
+@@ -154,7 +173,7 @@ floatFraction(double   const value,
+     precision = DBL_EPSILON;
+     while (d > precision) {
+-        unsigned int const digitValue = (unsigned int) d;
++        unsigned int const digitValue = leadDigit(d, precision);
+         bufferConcat(formattedP, digitChar(digitValue));
+diff --git a/libs/xmlrpc-c/src/method.c b/libs/xmlrpc-c/src/method.c
+index cf58b26..467bbbe 100644
+--- a/libs/xmlrpc-c/src/method.c
++++ b/libs/xmlrpc-c/src/method.c
+@@ -10,6 +10,8 @@
+   Contributed to the public domain by its author.
+ =========================================================================*/
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
++
+ #include "xmlrpc_config.h"
+ #include <assert.h>
+@@ -57,6 +59,7 @@ translateTypeSpecifierToName(xmlrpc_env *  const envP,
+                       "Method registry contains invalid signature "
+                       "data.  It contains the type specifier '%c'",
+                       typeSpecifier);
++        *typeNameP = NULL;  /* quiet compiler warning */
+     }
+ }
+                 
+@@ -175,9 +178,8 @@ parseOneSignature(xmlrpc_env *               const envP,
+         }
+         if (envP->fault_occurred)
+             free(signatureP);
+-        else
+-            *signaturePP = signatureP;
+     }
++    *signaturePP = signatureP;
+ }    
+@@ -210,7 +212,7 @@ listSignatures(xmlrpc_env *               const envP,
+     cursorP = &sigListString[0];
+     
+     while (!envP->fault_occurred && *cursorP != '\0') {
+-        struct xmlrpc_signature * signatureP = NULL;
++        struct xmlrpc_signature * signatureP;
+         
+         parseOneSignature(envP, cursorP, &signatureP, &cursorP);
+         
+@@ -293,6 +295,8 @@ makeSignatureList(xmlrpc_env *            const envP,
+     if (env.fault_occurred)
+         xmlrpc_faultf(envP, "Can't interpret signature string '%s'.  %s",
+                       signatureString, env.fault_string);
++
++    xmlrpc_env_clean(&env);
+ }
+@@ -304,6 +308,7 @@ xmlrpc_methodCreate(xmlrpc_env *           const envP,
+                     void *                 const userData,
+                     const char *           const signatureString,
+                     const char *           const helpText,
++                    size_t                 const stackSize,
+                     xmlrpc_methodInfo **   const methodPP) {
+     xmlrpc_methodInfo * methodP;
+@@ -319,12 +324,15 @@ xmlrpc_methodCreate(xmlrpc_env *           const envP,
+         methodP->methodFnType1  = methodFnType1;
+         methodP->methodFnType2  = methodFnType2;
+         methodP->userData       = userData;
+-        methodP->helpText       = strdup(helpText);
++        methodP->helpText       = xmlrpc_strdupsol(helpText);
++        methodP->stackSize      = stackSize;
+         makeSignatureList(envP, signatureString, &methodP->signatureListP);
+-        if (envP->fault_occurred)
++        if (envP->fault_occurred) {
++            xmlrpc_strfree(methodP->helpText);
+             free(methodP);
++        }
+         *methodPP = methodP;
+     }
+diff --git a/libs/xmlrpc-c/src/method.h b/libs/xmlrpc-c/src/method.h
+index 2ceca75..f1d56cb 100644
+--- a/libs/xmlrpc-c/src/method.h
++++ b/libs/xmlrpc-c/src/method.h
+@@ -65,6 +65,10 @@ typedef struct {
+         /* The method function, if it's type 2.  Null if it's not */
+     void * userData;
+         /* Passed to method function */
++    size_t stackSize;
++        /* Amount of stack space 'methodFnType1' or 'methodFnType2' uses.
++           Zero means unspecified.
++        */
+     struct xmlrpc_signatureList * signatureListP;
+         /* Stuff returned by system method system.methodSignature.
+            Empty list doesn't mean there are no valid forms of calling the
+@@ -92,6 +96,7 @@ xmlrpc_methodCreate(xmlrpc_env *           const envP,
+                     void *                 const userData,
+                     const char *           const signatureString,
+                     const char *           const helpText,
++                    size_t                 const stackSize,
+                     xmlrpc_methodInfo **   const methodPP);
+ void
+diff --git a/libs/xmlrpc-c/src/parse_value.c b/libs/xmlrpc-c/src/parse_value.c
+index a00b2a1..b40cf47 100644
+--- a/libs/xmlrpc-c/src/parse_value.c
++++ b/libs/xmlrpc-c/src/parse_value.c
+@@ -13,8 +13,10 @@
+ #include "xmlrpc-c/base.h"
+ #include "xmlrpc-c/base_int.h"
+ #include "xmlrpc-c/string_int.h"
++#include "xmlrpc-c/string_number.h"
+ #include "xmlrpc-c/util.h"
+ #include "xmlrpc-c/xmlparser.h"
++#include "parse_datetime.h"
+ #include "parse_value.h"
+@@ -72,12 +74,12 @@ parseArray(xmlrpc_env *    const envP,
+     arrayP = xmlrpc_array_new(envP);
+     if (!envP->fault_occurred) {
+-        unsigned int const childCount = xml_element_children_size(arrayElemP);
++        size_t const childCount = xml_element_children_size(arrayElemP);
+         if (childCount != 1)
+             setParseFault(envP,
+                           "<array> element has %u children.  Only one <data> "
+-                          "makes sense.", childCount);
++                          "makes sense.", (unsigned int)childCount);
+         else {
+             xml_element * const dataElemP =
+                 xml_element_children(arrayElemP)[0];
+@@ -111,11 +113,11 @@ parseName(xmlrpc_env *    const envP,
+           xml_element *   const nameElemP,
+           xmlrpc_value ** const valuePP) {
+-    unsigned int const childCount = xml_element_children_size(nameElemP);
++    size_t const childCount = xml_element_children_size(nameElemP);
+     if (childCount > 0)
+         setParseFault(envP, "<name> element has %u children.  "
+-                      "Should have none.", childCount);
++                      "Should have none.", (unsigned int)childCount);
+     else {
+         const char * const cdata     = xml_element_cdata(nameElemP);
+         size_t       const cdataSize = xml_element_cdata_size(nameElemP);
+@@ -181,12 +183,12 @@ parseMember(xmlrpc_env *    const envP,
+             xmlrpc_value ** const keyPP,
+             xmlrpc_value ** const valuePP) {
+-    unsigned int const childCount = xml_element_children_size(memberP);
++    size_t const childCount = xml_element_children_size(memberP);
+     if (childCount != 2)
+         setParseFault(envP,
+                       "<member> element has %u children.  Only one <name> and "
+-                      "one <value> make sense.", childCount);
++                      "one <value> make sense.", (unsigned int)childCount);
+     else {
+         xml_element * nameElemP = NULL;
+@@ -302,12 +304,12 @@ parseInt(xmlrpc_env *    const envP,
+             /* Look for out-of-range errors which didn't produce ERANGE. */
+             if (i < XMLRPC_INT32_MIN)
+                 setParseFault(envP,
+-                              "<int> value %d is below the range allowed "
++                              "<int> value %ld is below the range allowed "
+                               "by XML-RPC (minimum is %d)",
+                               i, XMLRPC_INT32_MIN);
+             else if (i > XMLRPC_INT32_MAX)
+                 setParseFault(envP,
+-                              "<int> value %d is above the range allowed "
++                              "<int> value %ld is above the range allowed "
+                               "by XML-RPC (maximum is %d)",
+                               i, XMLRPC_INT32_MAX);
+             else {
+@@ -581,39 +583,20 @@ parseI8(xmlrpc_env *    const envP,
+                       "<i8> content '%s' starts with white space", str);
+     else {
+         xmlrpc_int64 i;
+-        char * tail;
++        xmlrpc_env env;
+-        errno = 0;
+-        i = strtoll(str, &tail, 10);
++        xmlrpc_env_init(&env);
+-        if (errno == ERANGE)
+-            setParseFault(envP, "<i8> XML element value '%s' represents a "
+-                          "number beyond the range that "
+-                          "XML-RPC allows (%d - %d)", str,
+-                          XMLRPC_INT64_MIN, XMLRPC_INT64_MAX);
+-        else if (errno != 0)
+-            setParseFault(envP, "unexpected error parsing <i8> XML element "
+-                          "value '%s'.  strtoll() failed with errno %d (%s)",
+-                          str, errno, strerror(errno));
+-        else {
+-            /* Look for out-of-range errors which didn't produce ERANGE. */
+-            if (i < XMLRPC_INT64_MIN)
+-                setParseFault(envP, "<i8> value %d is below the range allowed "
+-                           "by XML-RPC (minimum is %d)",
+-                           i, XMLRPC_INT64_MIN);
+-            else if (i > XMLRPC_INT64_MAX)
+-                setParseFault(envP, "<i8> value %d is above the range allowed "
+-                              "by XML-RPC (maximum is %d)",
+-                              i, XMLRPC_INT64_MAX);
+-            else {
+-                if (tail[0] != '\0')
+-                    setParseFault(envP,
+-                                  "<i8> value '%s' contains non-numerical "
+-                                  "junk: '%s'", str, tail);
+-                else
+-                    *valuePP = xmlrpc_i8_new(envP, i);
+-            }
+-        }
++        xmlrpc_parse_int64(&env, str, &i);
++
++        if (env.fault_occurred)
++            setParseFault(envP, "<i8> XML element value '%s' is invalid "
++                          "because it does not represent "
++                          "a 64 bit integer.  %s", env.fault_string);
++        else
++            *valuePP = xmlrpc_i8_new(envP, i);
++
++        xmlrpc_env_clean(&env);
+     }
+ }
+@@ -640,33 +623,39 @@ parseSimpleValueCdata(xmlrpc_env *    const envP,
+        UTF-8 multibyte sequences or NUL characters.  So will most of the
+        others.
+-       The "ex.XXX" element names are what the Apache XML-RPC facility
+-       uses: http://ws.apache.org/xmlrpc/types.html.  i1 and i2 are just
+-       from my imagination.
++       The "ex:XXX" element names are what the Apache XML-RPC facility
++       uses: http://ws.apache.org/xmlrpc/types.html.  (Technically, it
++       isn't "ex" but an arbitrary prefix that identifies a namespace
++       declared earlier in the XML document -- this is an XML thing.
++       But we aren't nearly sophisticated enough to use real XML
++       namespaces, so we exploit the fact that XML-RPC actually uses
++       "ex").
++
++       "i1" and "i2" are just from my imagination.
+     */
+     if (xmlrpc_streq(elementName, "int")   ||
+         xmlrpc_streq(elementName, "i4")    ||
+         xmlrpc_streq(elementName, "i1")    ||
+         xmlrpc_streq(elementName, "i2")    ||
+-        xmlrpc_streq(elementName, "ex.i1") ||
+-        xmlrpc_streq(elementName, "ex.i2"))
++        xmlrpc_streq(elementName, "ex:i1") ||
++        xmlrpc_streq(elementName, "ex:i2"))
+         parseInt(envP, cdata, valuePP);
+     else if (xmlrpc_streq(elementName, "boolean"))
+         parseBoolean(envP, cdata, valuePP);
+     else if (xmlrpc_streq(elementName, "double"))
+         parseDouble(envP, cdata, valuePP);
+     else if (xmlrpc_streq(elementName, "dateTime.iso8601"))
+-        *valuePP = xmlrpc_datetime_new_str(envP, cdata);
++        xmlrpc_parseDatetime(envP, cdata, valuePP);
+     else if (xmlrpc_streq(elementName, "string"))
+         *valuePP = xmlrpc_string_new_lp(envP, cdataLength, cdata);
+     else if (xmlrpc_streq(elementName, "base64"))
+         parseBase64(envP, cdata, cdataLength, valuePP);
+     else if (xmlrpc_streq(elementName, "nil") ||
+-             xmlrpc_streq(elementName, "ex.nil"))
++             xmlrpc_streq(elementName, "ex:nil"))
+         *valuePP = xmlrpc_nil_new(envP);
+     else if (xmlrpc_streq(elementName, "i8") ||
+-             xmlrpc_streq(elementName, "ex.i8"))
++             xmlrpc_streq(elementName, "ex:i8"))
+         parseI8(envP, cdata, valuePP);
+     else
+         setParseFault(envP, "Unknown value type -- XML element is named "
+@@ -680,13 +669,13 @@ parseSimpleValue(xmlrpc_env *    const envP,
+                  xml_element *   const elemP,
+                  xmlrpc_value ** const valuePP) {
+     
+-    unsigned int const childCount = xml_element_children_size(elemP);
++    size_t childCount = xml_element_children_size(elemP);
+                     
+     if (childCount > 0)
+         setParseFault(envP, "The child of a <value> element "
+                       "is neither <array> nor <struct>, "
+                       "but has %u child elements of its own.",
+-                      childCount);
++                      (unsigned int)childCount);
+     else {
+         const char * const elemName  = xml_element_name(elemP);
+         const char * const cdata     = xml_element_cdata(elemP);
+@@ -724,7 +713,7 @@ xmlrpc_parseValue(xmlrpc_env *    const envP,
+                           "<%s> element where <value> expected",
+                           xml_element_name(elemP));
+         else {
+-            unsigned int const childCount = xml_element_children_size(elemP);
++            size_t const childCount = xml_element_children_size(elemP);
+             if (childCount == 0) {
+                 /* We have no type element, so treat the value as a string. */
+@@ -733,7 +722,8 @@ xmlrpc_parseValue(xmlrpc_env *    const envP,
+                 *valuePP = xmlrpc_string_new_lp(envP, cdata_size, cdata);
+             } else if (childCount > 1)
+                 setParseFault(envP, "<value> has %u child elements.  "
+-                              "Only zero or one make sense.", childCount);
++                              "Only zero or one make sense.",
++                              (unsigned int)childCount);
+             else {
+                 /* We should have a type tag inside our value tag. */
+                 xml_element * const childP = xml_element_children(elemP)[0];
+@@ -749,3 +739,6 @@ xmlrpc_parseValue(xmlrpc_env *    const envP,
+         }
+     }
+ }
++
++
++
+diff --git a/libs/xmlrpc-c/src/registry.c b/libs/xmlrpc-c/src/registry.c
+index e7eddd3..b67944a 100644
+--- a/libs/xmlrpc-c/src/registry.c
++++ b/libs/xmlrpc-c/src/registry.c
+@@ -36,6 +36,19 @@ unsigned int const xmlrpc_server_version_minor = XMLRPC_VERSION_MINOR;
+ unsigned int const xmlrpc_server_version_point = XMLRPC_VERSION_POINT;
++
++void
++xmlrpc_server_version(unsigned int * const majorP,
++                      unsigned int * const minorP,
++                      unsigned int * const pointP) {
++
++    *majorP = XMLRPC_VERSION_MAJOR;
++    *minorP = XMLRPC_VERSION_MINOR;
++    *pointP = XMLRPC_VERSION_POINT;
++}
++
++
++
+ xmlrpc_registry *
+ xmlrpc_registry_new(xmlrpc_env * const envP) {
+@@ -86,7 +99,8 @@ registryAddMethod(xmlrpc_env *      const envP,
+                   xmlrpc_method2          method2,
+                   const char *      const signatureString,
+                   const char *      const help,
+-                  void *            const userData) {
++                  void *            const userData,
++                  size_t            const stackSize) {
+     const char * const helpString =
+         help ? help : "No help is available for this method.";
+@@ -99,7 +113,7 @@ registryAddMethod(xmlrpc_env *      const envP,
+     XMLRPC_ASSERT(method1 != NULL || method2 != NULL);
+     xmlrpc_methodCreate(envP, method1, method2, userData,
+-                        signatureString, helpString, &methodP);
++                        signatureString, helpString, stackSize, &methodP);
+     if (!envP->fault_occurred) {
+         xmlrpc_methodListAdd(envP, registryP->methodListP, methodName,
+@@ -126,7 +140,7 @@ xmlrpc_registry_add_method_w_doc(
+     XMLRPC_ASSERT(host == NULL);
+     registryAddMethod(envP, registryP, methodName, method, NULL,
+-                      signatureString, help, serverInfo);
++                      signatureString, help, serverInfo, 0);
+ }
+@@ -156,7 +170,21 @@ xmlrpc_registry_add_method2(xmlrpc_env *      const envP,
+                             void *            const serverInfo) {
+     registryAddMethod(envP, registryP, methodName, NULL, method,
+-                      signatureString, help, serverInfo);
++                      signatureString, help, serverInfo, 0);
++}
++
++
++
++void
++xmlrpc_registry_add_method3(
++    xmlrpc_env *                       const envP,
++    xmlrpc_registry *                  const registryP,
++    const struct xmlrpc_method_info3 * const infoP) {
++
++    registryAddMethod(envP, registryP, infoP->methodName, NULL,
++                      infoP->methodFunction,
++                      infoP->signatureString, infoP->help, infoP->serverInfo,
++                      infoP->stackSize);
+ }
+@@ -182,6 +210,43 @@ xmlrpc_registry_set_default_method(
++/* This is our guess at what a method function requires when the user
++   doesn't say.
++*/
++#define METHOD_FUNCTION_STACK 128*1024
++
++
++
++static size_t
++methodStackSize(const xmlrpc_methodInfo * const methodP) {
++
++    return methodP->stackSize ==
++        0 ? METHOD_FUNCTION_STACK : methodP->stackSize;
++}
++
++
++
++size_t
++xmlrpc_registry_max_stackSize(xmlrpc_registry * const registryP) {
++/*----------------------------------------------------------------------------
++   Return the maximum amount of stack required by the methods in registry
++   *registryP.
++
++   If there are no methods, return 0.
++-----------------------------------------------------------------------------*/
++    xmlrpc_methodNode * p;
++    size_t stackSize;
++
++    for (p = registryP->methodListP->firstMethodP, stackSize = 0;
++         p;
++         p = p->nextP) {
++        
++        stackSize = MAX(stackSize, methodStackSize(p->methodP));
++    }
++    return stackSize;
++}
++
++
+ void 
+ xmlrpc_registry_set_preinvoke_method(
+diff --git a/libs/xmlrpc-c/src/system_method.c b/libs/xmlrpc-c/src/system_method.c
+index e1f77c0..ad13878 100644
+--- a/libs/xmlrpc-c/src/system_method.c
++++ b/libs/xmlrpc-c/src/system_method.c
+@@ -287,6 +287,64 @@ static struct systemMethodReg const methodListMethods = {
+ /*=========================================================================
++  system.methodExist
++==========================================================================*/
++
++static void
++determineMethodExistence(xmlrpc_env *      const envP,
++                         const char *      const methodName,
++                         xmlrpc_registry * const registryP,
++                         xmlrpc_value **   const existsPP) {
++
++    xmlrpc_methodInfo * methodP;
++
++    xmlrpc_methodListLookupByName(registryP->methodListP, methodName,
++                                  &methodP);
++
++    *existsPP = xmlrpc_bool_new(envP, !!methodP);
++}
++    
++
++
++static xmlrpc_value *
++system_methodExist(xmlrpc_env *   const envP,
++                   xmlrpc_value * const paramArrayP,
++                   void *         const serverInfo,
++                   void *         const callInfo ATTR_UNUSED) {
++
++    xmlrpc_registry * const registryP = serverInfo;
++
++    xmlrpc_value * retvalP;
++    
++    const char * methodName;
++
++    XMLRPC_ASSERT_ENV_OK(envP);
++    XMLRPC_ASSERT_VALUE_OK(paramArrayP);
++    XMLRPC_ASSERT_PTR_OK(serverInfo);
++
++    xmlrpc_decompose_value(envP, paramArrayP, "(s)", &methodName);
++
++    if (!envP->fault_occurred) {
++        determineMethodExistence(envP, methodName, registryP, &retvalP);
++
++        xmlrpc_strfree(methodName);
++    }
++
++    return retvalP;
++}
++
++
++
++static struct systemMethodReg const methodMethodExist = {
++    "system.methodExist",
++    &system_methodExist,
++    "s:b",
++    "Tell whether a method by a specified name exists on this server",
++};
++
++
++
++/*=========================================================================
+   system.methodHelp
+ =========================================================================*/
+@@ -327,7 +385,7 @@ system_methodHelp(xmlrpc_env *   const envP,
+     XMLRPC_ASSERT_ENV_OK(envP);
+     XMLRPC_ASSERT_VALUE_OK(paramArrayP);
+     XMLRPC_ASSERT_PTR_OK(serverInfo);
+-
++    
+     xmlrpc_decompose_value(envP, paramArrayP, "(s)", &methodName);
+     if (!envP->fault_occurred) {
+@@ -338,9 +396,9 @@ system_methodHelp(xmlrpc_env *   const envP,
+                 "for security reasons");
+         else
+             getHelpString(envP, methodName, registryP, &retvalP);
+-    }
+-    xmlrpc_strfree(methodName);
++        xmlrpc_strfree(methodName);
++    }
+     return retvalP;
+ }
+@@ -409,8 +467,8 @@ buildSignatureValue(xmlrpc_env *              const envP,
+     if (envP->fault_occurred)
+         xmlrpc_DECREF(sigValueP);
+-    else
+-        *sigValuePP = sigValueP;
++
++    *sigValuePP = sigValueP;
+ }
+                     
+@@ -471,6 +529,15 @@ getSignatureList(xmlrpc_env *      const envP,
++/* Microsoft Visual C in debug mode produces code that complains about
++   returning an undefined value from system_methodSignature().  It's a bogus
++   complaint, because this function is defined to return nothing meaningful
++   those cases.  So we disable the check.
++*/
++#pragma runtime_checks("u", off)
++
++
++
+ static xmlrpc_value *
+ system_methodSignature(xmlrpc_env *   const envP,
+                        xmlrpc_value * const paramArrayP,
+@@ -487,8 +554,6 @@ system_methodSignature(xmlrpc_env *   const envP,
+     XMLRPC_ASSERT_VALUE_OK(paramArrayP);
+     XMLRPC_ASSERT_PTR_OK(serverInfo);
+-    retvalP = NULL;  /* quiet compiler unset variable warning */
+-
+     xmlrpc_env_init(&env);
+     /* Turn our arguments into something more useful. */
+@@ -522,10 +587,14 @@ system_methodSignature(xmlrpc_env *   const envP,
++#pragma runtime_checks("u", restore)
++
++
++
+ static struct systemMethodReg const methodMethodSignature = {
+     "system.methodSignature",
+     &system_methodSignature,
+-    "s:s",
++    "A:s",
+     "Given the name of a method, return an array of legal signatures. "
+     "Each signature is an array of strings.  The first item of each signature "
+     "is the return type, and any others items are parameter types.",
+@@ -556,8 +625,6 @@ system_shutdown(xmlrpc_env *   const envP,
+     xmlrpc_env_init(&env);
+-    retvalP = NULL;  /* quiet compiler warning */
+-
+     /* Turn our arguments into something more useful. */
+     xmlrpc_decompose_value(&env, paramArrayP, "(s)", &comment);
+     if (env.fault_occurred)
+@@ -607,9 +674,9 @@ static struct systemMethodReg const methodShutdown = {
+ =========================================================================*/
+ static void
+-getCapabilities(xmlrpc_env *      const envP,
+-                xmlrpc_registry * const registryP ATTR_UNUSED,
+-                xmlrpc_value **   const capabilitiesPP) {
++constructCapabilities(xmlrpc_env *      const envP,
++                      xmlrpc_registry * const registryP ATTR_UNUSED,
++                      xmlrpc_value **   const capabilitiesPP) {
+     *capabilitiesPP =
+         xmlrpc_build_value(
+@@ -648,12 +715,13 @@ system_capabilities(xmlrpc_env *   const envP,
+             envP, XMLRPC_INDEX_ERROR,
+             "There are no parameters.  You supplied %u", paramCount);
+     else
+-        getCapabilities(envP, registryP, &retvalP);
++        constructCapabilities(envP, registryP, &retvalP);
+     return retvalP;
+ }
++
+ static struct systemMethodReg const methodCapabilities = {
+     "system.capabilities",
+     &system_capabilities,
+@@ -664,6 +732,72 @@ static struct systemMethodReg const methodCapabilities = {
++/*=========================================================================
++  system.getCapabilities
++=========================================================================*/
++
++/* This implements a standard.
++   See http://tech.groups.yahoo.com/group/xml-rpc/message/2897 .
++*/
++
++static void
++listCapabilities(xmlrpc_env *      const envP,
++                 xmlrpc_registry * const registryP ATTR_UNUSED,
++                 xmlrpc_value **   const capabilitiesPP) {
++
++    *capabilitiesPP =
++        xmlrpc_build_value(
++            envP, "{s:{s:s,s:i}}",
++            "introspect",
++              "specUrl",
++                "http://xmlrpc-c.sourceforge.net/xmlrpc-c/introspection.html",
++              "specVersion",
++                 1
++            );
++}
++
++
++
++static xmlrpc_value *
++system_getCapabilities(xmlrpc_env *   const envP,
++                       xmlrpc_value * const paramArrayP,
++                       void *         const serverInfo,
++                       void *         const callInfo ATTR_UNUSED) {
++    
++    xmlrpc_registry * const registryP = serverInfo;
++
++    xmlrpc_value * retvalP;
++    
++    unsigned int paramCount;
++
++    XMLRPC_ASSERT_ENV_OK(envP);
++    XMLRPC_ASSERT_VALUE_OK(paramArrayP);
++    XMLRPC_ASSERT_PTR_OK(serverInfo);
++
++    paramCount = xmlrpc_array_size(envP, paramArrayP);
++
++    if (paramCount > 0)
++        xmlrpc_env_set_fault_formatted(
++            envP, XMLRPC_INDEX_ERROR,
++            "There are no parameters.  You supplied %u", paramCount);
++    else
++        listCapabilities(envP, registryP, &retvalP);
++
++    return retvalP;
++}
++
++
++
++static struct systemMethodReg const methodGetCapabilities = {
++    "system.getCapabilities",
++    &system_getCapabilities,
++    "S:",
++    "Return the list of standard capabilities of XML-RPC server.  "
++    "See http://tech.groups.yahoo.com/group/xml-rpc/message/2897"
++};
++
++
++
+ /*============================================================================
+   Installer of system methods
+ ============================================================================*/
+@@ -699,12 +833,15 @@ xmlrpc_installSystemMethods(xmlrpc_env *      const envP,
+     if (!envP->fault_occurred)
+         registerSystemMethod(envP, registryP, methodListMethods);
+-    if (!envP->fault_occurred) 
+-        registerSystemMethod(envP, registryP, methodMethodSignature);
++    if (!envP->fault_occurred)
++        registerSystemMethod(envP, registryP, methodMethodExist);
+     if (!envP->fault_occurred)
+         registerSystemMethod(envP, registryP, methodMethodHelp);
++    if (!envP->fault_occurred) 
++        registerSystemMethod(envP, registryP, methodMethodSignature);
++
+     if (!envP->fault_occurred)
+         registerSystemMethod(envP, registryP, methodMulticall);
+@@ -713,6 +850,9 @@ xmlrpc_installSystemMethods(xmlrpc_env *      const envP,
+     if (!envP->fault_occurred)
+         registerSystemMethod(envP, registryP, methodCapabilities);
++
++    if (!envP->fault_occurred)
++        registerSystemMethod(envP, registryP, methodGetCapabilities);
+ }
+diff --git a/libs/xmlrpc-c/src/test/.cvsignore b/libs/xmlrpc-c/src/test/.cvsignore
+deleted file mode 100644
+index b5e32d3..0000000
+--- a/libs/xmlrpc-c/src/test/.cvsignore
++++ /dev/null
+@@ -1,3 +0,0 @@
+-Makefile
+-test
+-cgitest1
+diff --git a/libs/xmlrpc-c/src/test/Makefile b/libs/xmlrpc-c/src/test/Makefile
+index 946a377..0215902 100644
+--- a/libs/xmlrpc-c/src/test/Makefile
++++ b/libs/xmlrpc-c/src/test/Makefile
+@@ -19,7 +19,7 @@ LDADD_CGI_SERVER = \
+ default: all
+-INCLUDES = -I$(BLDDIR) -I $(SRCDIR)/include -I$(SRCDIR)/lib/util/include \
++INCLUDES = -I$(BLDDIR) -Isrcdir/include -Isrcdir/lib/util/include \
+ PROGS = test cgitest1
+@@ -28,6 +28,7 @@ all: $(PROGS)
+ LDFLAGS = $(LADD)
+ TEST_OBJS = \
++  testtool.o \
+   test.o \
+   abyss.o \
+   cgi.o \
+@@ -37,6 +38,7 @@ TEST_OBJS = \
+   serialize_value.o \
+   server_abyss.o \
+   value.o \
++  value_datetime.o \
+   xml_data.o \
+ ifeq ($(MUST_BUILD_CLIENT),yes)
+@@ -49,6 +51,11 @@ endif
+ include $(SRCDIR)/common.mk
++# This 'common.mk' dependency makes sure the symlinks get built before
++# this make file is used for anything.
++
++$(SRCDIR)/common.mk: srcdir blddir
++
+ test: \
+   $(XMLRPC_C_CONFIG) \
+   $(TEST_OBJS) $(LIBXMLRPC_A) $(LIBXMLRPC_UTIL_A) \
+@@ -59,16 +66,16 @@ test: \
+       $(CCLD) -o $@ $(LDFLAGS) \
+           $(TEST_OBJS) $(LDADD_CLIENT) $(LDADD_ABYSS_SERVER) $(CASPRINTF)
+-cgitest1:%:%.o $(LIBXMLRPC_SERVER_A) $(LIBXMLRPC_SERVER_CGI_A) \
+-  $(LIBXMLRPC_A) $(LIBXMLRPC_UTIL_A) $(LIBXMLRPC_XML)
+-      $(CCLD) -o $@ $< $(LDFLAGS) $(LDADD_CGI_SERVER)
++CGITEST1_OBJS = cgitest1.o testtool.o
+-CFLAGS = $(CFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
++cgitest1: $(CGITEST1_OBJS) $(LIBXMLRPC_SERVER_A) $(LIBXMLRPC_SERVER_CGI_A) \
++  $(LIBXMLRPC_A) $(LIBXMLRPC_UTIL_A) $(LIBXMLRPC_XML)
++      $(CCLD) -o $@ $(CGITEST1_OBJS) $(LDFLAGS) $(LDADD_CGI_SERVER)
+ OBJS = $(TEST_OBJS) cgitest1.o
+ $(OBJS):%.o:%.c
+-      $(CC) -c $(INCLUDES) $(CFLAGS) $<
++      $(CC) -c $(INCLUDES) $(CFLAGS_ALL) $<
+ # Note the difference between 'check' and 'runtests'.  'check' means to check
+ # our own correctness.  'runtests' means to run the tests that check our
+@@ -94,4 +101,4 @@ distclean: clean distclean-common
+ .PHONY: dep
+ dep: dep-common
+-include Makefile.depend
++include depend.mk
+diff --git a/libs/xmlrpc-c/src/test/abyss.c b/libs/xmlrpc-c/src/test/abyss.c
+index 1e39f51..b86eaa8 100644
+--- a/libs/xmlrpc-c/src/test/abyss.c
++++ b/libs/xmlrpc-c/src/test/abyss.c
+@@ -15,11 +15,12 @@
+ #include "xmlrpc_config.h"
+ #include "int.h"
++#include "casprintf.h"
+ #include "xmlrpc-c/base.h"
+ #include "xmlrpc-c/server.h"
+ #include "xmlrpc-c/abyss.h"
+-#include "test.h"
++#include "testtool.h"
+ #include "abyss.h"
+@@ -87,7 +88,7 @@ chanSwitchCreate(uint16_t       const portNumber,
+ static void
+ channelCreateFd(int const fd,
+-                TChannel ** const channelPP,
++                TChannel **   const channelPP,
+                 const char ** const errorP) {
+ #ifdef WIN32
+@@ -104,7 +105,7 @@ channelCreateFd(int const fd,
+ static void
+ testChanSwitchOsSocket(void) {
+-    int rc;
++    XMLRPC_SOCKET rc;
+     rc = socket(AF_INET, SOCK_STREAM, 0);
+     if (rc < 0) {
+@@ -165,7 +166,7 @@ testChanSwitch(void) {
+ static void
+ testChannel(void) {
+-    int rc;
++    XMLRPC_SOCKET rc;
+     rc = socket(AF_INET, SOCK_STREAM, 0);
+     if (rc < 0) {
+@@ -183,6 +184,8 @@ testChannel(void) {
+         TEST(error);
+         TEST(strstr(error, "not in connected"));
++
++        strfree(error);
+     }
+ }
+@@ -191,7 +194,7 @@ testChannel(void) {
+ static void
+ testOsSocket(void) {
+-    int rc;
++    XMLRPC_SOCKET rc;
+     rc = socket(AF_INET, SOCK_STREAM, 0);
+     if (rc < 0) {
+diff --git a/libs/xmlrpc-c/src/test/cgi.c b/libs/xmlrpc-c/src/test/cgi.c
+index 52c0c08..18dfa9b 100644
+--- a/libs/xmlrpc-c/src/test/cgi.c
++++ b/libs/xmlrpc-c/src/test/cgi.c
+@@ -5,7 +5,7 @@
+ #include "xmlrpc_config.h"
+-#include "test.h"
++#include "testtool.h"
+ #include "cgi.h"
+ static const char cgiResponse1[] =
+diff --git a/libs/xmlrpc-c/src/test/cgitest1.c b/libs/xmlrpc-c/src/test/cgitest1.c
+index 7ce6909..ce758b1 100644
+--- a/libs/xmlrpc-c/src/test/cgitest1.c
++++ b/libs/xmlrpc-c/src/test/cgitest1.c
+@@ -16,7 +16,7 @@
+ #include "xmlrpc-c/server.h"
+ #include "xmlrpc-c/server_cgi.h"
+-#include "test.h"
++#include "testtool.h"
+ int total_tests;
+diff --git a/libs/xmlrpc-c/src/test/client.c b/libs/xmlrpc-c/src/test/client.c
+index 140ffc0..e3b8bc7 100644
+--- a/libs/xmlrpc-c/src/test/client.c
++++ b/libs/xmlrpc-c/src/test/client.c
+@@ -10,10 +10,30 @@
+ #include "xmlrpc-c/client.h"
+ #include "xmlrpc-c/transport.h"
+-#include "test.h"
++#include "bool.h"
++#include "testtool.h"
+ #include "client.h"
++
++static void
++testVersion(void) {
++
++    unsigned int major, minor, point;
++
++    xmlrpc_client_version(&major, &minor, &point);
++
++#ifndef WIN32    
++    /* xmlrpc_client_version_major, etc. are not exported from a Windows DLL */
++
++    TEST(major = xmlrpc_client_version_major);
++    TEST(minor = xmlrpc_client_version_minor);
++    TEST(point = xmlrpc_client_version_point);
++#endif
++}
++
++
++
+ static void
+ testGlobalConst(void) {
+@@ -38,6 +58,22 @@ testGlobalConst(void) {
++static xmlrpc_progress_fn myProgress;
++
++static void
++myProgress(void *                      const userHandle,
++           struct xmlrpc_progress_data const data) {
++
++    printf("Progress of %p: %f, %f, %f, %f\n",
++           userHandle,
++           data.call.total,
++           data.call.now,
++           data.response.total,
++           data.response.now);
++}
++
++
++
+ static void
+ testCreateCurlParms(void) {
+     
+@@ -78,6 +114,33 @@ testCreateCurlParms(void) {
+     TEST_NO_FAULT(&env);
+     xmlrpc_client_destroy(clientP);
++    curlTransportParms1.ssl_cert          = NULL;
++    curlTransportParms1.sslcerttype       = NULL;
++    curlTransportParms1.sslcertpasswd     = NULL;
++    curlTransportParms1.sslkey            = NULL;
++    curlTransportParms1.sslkeytype        = NULL;
++    curlTransportParms1.sslkeypasswd      = NULL;
++    curlTransportParms1.sslengine         = NULL;
++    curlTransportParms1.sslengine_default = false;
++    curlTransportParms1.sslversion        = XMLRPC_SSLVERSION_DEFAULT;
++    curlTransportParms1.cainfo            = NULL;
++    curlTransportParms1.capath            = NULL;
++    curlTransportParms1.randomfile        = NULL;
++    curlTransportParms1.egdsocket         = NULL;
++    curlTransportParms1.ssl_cipher_list   = NULL;
++    curlTransportParms1.timeout           = 0;
++    curlTransportParms1.dont_advertise    = 1;
++    curlTransportParms1.proxy             = NULL;
++    curlTransportParms1.proxy_port        = 0;
++    curlTransportParms1.proxy_type        = XMLRPC_HTTPPROXY_HTTP;
++    curlTransportParms1.proxy_auth        = XMLRPC_HTTPAUTH_NONE;
++    clientParms1.transportparm_size = XMLRPC_CXPSIZE(proxy_auth);
++    xmlrpc_client_create(&env, 0, "testprog", "1.0",
++                         &clientParms1, XMLRPC_CPSIZE(transportparm_size),
++                         &clientP);
++    TEST_NO_FAULT(&env);
++    xmlrpc_client_destroy(clientP);
++
+     xmlrpc_env_clean(&env);
+ #endif  /* MUST_BUILD_CURL_CLIENT */
+ }
+@@ -113,6 +176,8 @@ testCreateSeparateXport(void) {
+                          &clientP);
+     TEST_NO_FAULT(&env);
++    xmlrpc_client_destroy(clientP);
++
+     clientParms1.transport = "curl";
+     clientParms1.transportparmsP = &curlTransportParms1;
+     clientParms1.transportparm_size = 0;
+@@ -124,6 +189,8 @@ testCreateSeparateXport(void) {
+                          &clientP);
+     TEST_NO_FAULT(&env);
++    xmlrpc_client_destroy(clientP);
++
+     clientParms1.transportP = transportP;
+     xmlrpc_client_create(&env, 0, "", "",
+                          &clientParms1, XMLRPC_CPSIZE(transportP),
+@@ -150,6 +217,8 @@ testCreateSeparateXport(void) {
+     TEST_NO_FAULT(&env);
++    xmlrpc_client_destroy(clientP);
++
+     xmlrpc_curl_transport_ops.destroy(transportP);
+     xmlrpc_env_clean(&env);
+@@ -202,8 +271,9 @@ testCreateDestroy(void) {
+     clientParms1.transportOpsP = NULL;
+     clientParms1.transportP    = NULL;
+     clientParms1.dialect       = xmlrpc_dialect_apache;
++    clientParms1.progressFn    = &myProgress;
+     xmlrpc_client_create(&env, 0, "testprog", "1.0",
+-                         &clientParms1, XMLRPC_CPSIZE(dialect),
++                         &clientParms1, XMLRPC_CPSIZE(progressFn),
+                          &clientP);
+     TEST_NO_FAULT(&env);
+     xmlrpc_client_destroy(clientP);
+@@ -420,9 +490,11 @@ test_client(void) {
+     printf("Running client tests.");
++    testVersion();
+     testGlobalConst();
+     testCreateDestroy();
+     testInitCleanup();
++    printf("\n");
+     testServerInfo();
+     testSynchCall();
+diff --git a/libs/xmlrpc-c/src/test/method_registry.c b/libs/xmlrpc-c/src/test/method_registry.c
+index da8d304..91fa700 100644
+--- a/libs/xmlrpc-c/src/test/method_registry.c
++++ b/libs/xmlrpc-c/src/test/method_registry.c
+@@ -10,7 +10,7 @@
+ #include "xmlrpc-c/base.h"
+ #include "xmlrpc-c/server.h"
+-#include "test.h"
++#include "testtool.h"
+ #include "xml_data.h"
+ #include "method_registry.h"
+@@ -26,6 +26,25 @@
+ static const char * const barHelp = "This is the help for Method test.bar.";
++
++static void
++testVersion(void) {
++
++    unsigned int major, minor, point;
++
++    xmlrpc_server_version(&major, &minor, &point);
++
++#ifndef WIN32    
++    /* xmlrpc_server_version_major, etc. are not exported from a Windows DLL */
++
++    TEST(major = xmlrpc_server_version_major);
++    TEST(minor = xmlrpc_server_version_minor);
++    TEST(point = xmlrpc_server_version_point);
++#endif
++}
++
++
++
+ static xmlrpc_value *
+ test_foo(xmlrpc_env *   const envP,
+          xmlrpc_value * const paramArrayP,
+@@ -297,6 +316,8 @@ test_system_methodSignature(xmlrpc_registry * const registryP) {
+     TEST_NO_FAULT(&env);
+     TEST(streq(type0, "int"));
+     TEST(streq(type1, "int"));
++    strfree(type0);
++    strfree(type1);
+     xmlrpc_DECREF(resultP);
+     xmlrpc_DECREF(argArrayP);
+@@ -310,7 +331,7 @@ test_signature(void) {
+     xmlrpc_env env;
+     xmlrpc_registry * registryP;
+-    uint i;
++    unsigned int i;
+     xmlrpc_env_init(&env);
+@@ -409,16 +430,19 @@ static const char * const expectedMethodName[] = {
+    The list we expect back from system.listMethods.
+ -----------------------------------------------------------------------------*/
+     "system.listMethods",
+-    "system.methodSignature",
++    "system.methodExist",
+     "system.methodHelp",
++    "system.methodSignature",
+     "system.multicall",
+     "system.shutdown",
+     "system.capabilities",
++    "system.getCapabilities",
+     "test.foo",
+     "test.bar"
+ };
++
+ static void
+ test_system_listMethods(xmlrpc_registry * const registryP) {
+ /*----------------------------------------------------------------------------
+@@ -427,7 +451,7 @@ test_system_listMethods(xmlrpc_registry * const registryP) {
+     xmlrpc_env env;
+     xmlrpc_value * resultP;
+     xmlrpc_value * argArrayP;
+-    const char * methodName[8];
++    const char * methodName[ARRAY_SIZE(expectedMethodName)];
+     unsigned int size;
+     unsigned int i;
+@@ -449,13 +473,16 @@ test_system_listMethods(xmlrpc_registry * const registryP) {
+     TEST(size == ARRAY_SIZE(expectedMethodName));
+-    xmlrpc_decompose_value(&env, resultP, "(ssssssss)",
++    xmlrpc_decompose_value(&env, resultP, "(ssssssssss)",
+                            &methodName[0], &methodName[1],
+                            &methodName[2], &methodName[3],
+                            &methodName[4], &methodName[5],
+-                           &methodName[6], &methodName[7]);
++                           &methodName[6], &methodName[7],
++                           &methodName[8], &methodName[9]);
++
++    TEST_NO_FAULT(&env);
+-    for (i = 0; i < ARRAY_SIZE(methodName); ++i) {
++    for (i = 0; i < ARRAY_SIZE(expectedMethodName); ++i) {
+         TEST(streq(methodName[i], expectedMethodName[i]));
+         strfree(methodName[i]);
+     }
+@@ -472,18 +499,70 @@ test_system_listMethods(xmlrpc_registry * const registryP) {
+ static void
+-test_system_methodHelp(xmlrpc_registry * const registryP) {
++test_system_methodExist(xmlrpc_registry * const registryP) {
+ /*----------------------------------------------------------------------------
+-   Test system.methodHelp
++   Test system.methodExist
+ -----------------------------------------------------------------------------*/
+     xmlrpc_env env;
+     xmlrpc_value * resultP;
+     xmlrpc_value * argArrayP;
+-    const char * helpString;
++    xmlrpc_bool exists;
+     xmlrpc_env_init(&env);
+-    printf("  Running system.methodHelp tests.");
++    printf("  Running system.methodExist tests.");
++
++    argArrayP = xmlrpc_build_value(&env, "(s)", "test.foo");
++    TEST_NO_FAULT(&env);
++
++    doRpc(&env, registryP, "system.methodExist", argArrayP, NULL, &resultP);
++    TEST_NO_FAULT(&env);
++
++    TEST(xmlrpc_value_type(resultP) == XMLRPC_TYPE_BOOL);
++
++    xmlrpc_read_bool(&env, resultP, &exists);
++    TEST_NO_FAULT(&env);
++
++    TEST(exists);
++
++    xmlrpc_DECREF(resultP);
++
++    xmlrpc_DECREF(argArrayP);
++
++
++    argArrayP = xmlrpc_build_value(&env, "(s)", "nosuchmethod");
++    TEST_NO_FAULT(&env);
++
++    doRpc(&env, registryP, "system.methodExist", argArrayP, NULL, &resultP);
++    TEST_NO_FAULT(&env);
++
++    TEST(xmlrpc_value_type(resultP) == XMLRPC_TYPE_BOOL);
++
++    xmlrpc_read_bool(&env, resultP, &exists);
++    TEST_NO_FAULT(&env);
++
++    TEST(!exists);
++
++    xmlrpc_DECREF(resultP);
++
++    xmlrpc_DECREF(argArrayP);
++
++    xmlrpc_env_clean(&env);
++
++    printf("\n");
++}
++
++
++
++static void 
++testNoHelp(xmlrpc_registry * const registryP) {
++
++    xmlrpc_env env;
++    xmlrpc_value * resultP;
++    xmlrpc_value * argArrayP;
++    const char * helpString;
++
++    xmlrpc_env_init(&env);
+     argArrayP = xmlrpc_build_value(&env, "(s)", "test.foo");
+     TEST_NO_FAULT(&env);
+@@ -498,10 +577,26 @@ test_system_methodHelp(xmlrpc_registry * const registryP) {
+     TEST(streq(helpString, "No help is available for this method."));
++    strfree(helpString);
++
+     xmlrpc_DECREF(resultP);
+     xmlrpc_DECREF(argArrayP);
++    xmlrpc_env_clean(&env);
++}
++
++
++
++static void 
++testExistentHelp(xmlrpc_registry * const registryP) {
++
++    xmlrpc_env env;
++    xmlrpc_value * resultP;
++    xmlrpc_value * argArrayP;
++    const char * helpString;
++
++    xmlrpc_env_init(&env);
+     argArrayP = xmlrpc_build_value(&env, "(s)", "test.bar");
+     TEST_NO_FAULT(&env);
+@@ -516,11 +611,31 @@ test_system_methodHelp(xmlrpc_registry * const registryP) {
+     TEST(streq(helpString, barHelp));
++    strfree(helpString);
++
+     xmlrpc_DECREF(resultP);
+     xmlrpc_DECREF(argArrayP);
+     xmlrpc_env_clean(&env);
++}
++
++
++
++static void
++test_system_methodHelp(xmlrpc_registry * const registryP) {
++/*----------------------------------------------------------------------------
++   Test system.methodHelp
++-----------------------------------------------------------------------------*/
++    xmlrpc_env env;
++
++    xmlrpc_env_init(&env);
++
++    printf("  Running system.methodHelp tests.");
++
++    testNoHelp(registryP);
++
++    testExistentHelp(registryP);
+     printf("\n");
+ }
+@@ -560,6 +675,53 @@ test_system_capabilities(xmlrpc_registry * const registryP) {
+     TEST(streq(facility, "xmlrpc-c"));
+     TEST(protocol_version == 2);
++    strfree(facility);
++
++    xmlrpc_DECREF(resultP);
++
++    xmlrpc_DECREF(argArrayP);
++
++    xmlrpc_env_clean(&env);
++
++    printf("\n");
++}
++
++
++
++static void
++test_system_getCapabilities(xmlrpc_registry * const registryP) {
++/*----------------------------------------------------------------------------
++   Test system.getCapabilities
++-----------------------------------------------------------------------------*/
++    xmlrpc_env env;
++    xmlrpc_value * resultP;
++    xmlrpc_value * argArrayP;
++    const char * specUrl;
++    int specVersion;
++
++    xmlrpc_env_init(&env);
++
++    printf("  Running system.getCapabilities tests.");
++
++    argArrayP = xmlrpc_array_new(&env);
++    TEST_NO_FAULT(&env);
++
++    doRpc(&env, registryP, "system.getCapabilities", argArrayP, NULL,
++          &resultP);
++    TEST_NO_FAULT(&env);
++
++    xmlrpc_decompose_value(&env, resultP, "{s:{s:s,s:i,*},*}",
++                           "introspect",
++                           "specUrl", &specUrl,
++                           "specVersion", &specVersion);
++    TEST_NO_FAULT(&env);
++
++    TEST(streq(specUrl,
++               "http://xmlrpc-c.sourceforge.net/xmlrpc-c/introspection.html"));
++    TEST(specVersion == 1);
++
++    strfree(specUrl);
++
+     xmlrpc_DECREF(resultP);
+     xmlrpc_DECREF(argArrayP);
+@@ -629,11 +791,12 @@ test_system_multicall(xmlrpc_registry * const registryP) {
+     TEST_NO_FAULT(&env);    
+     TEST(foo1_result == 42);
+     TEST(bar_code == 123);
+-    TEST(strcmp(bar_string, "Test fault") == 0);
++    TEST(streq(bar_string, "Test fault"));
+     TEST(nosuch_code == XMLRPC_NO_SUCH_METHOD_ERROR);
+     TEST(foo2_result == 42);
+     xmlrpc_DECREF(multiP);
+     free(bar_string);
++    free(nosuch_string);
+     
+     /* Now for some invalid multi calls */
+@@ -737,7 +900,7 @@ testCall(xmlrpc_registry * const registryP) {
+     doRpc(&env2, registryP, "test.bar", argArrayP, BAR_CALLINFO, &valueP);
+     TEST(env2.fault_occurred);
+     TEST(env2.fault_code == 123);
+-    TEST(env2.fault_string && strcmp(env2.fault_string, "Test fault") == 0);
++    TEST(env2.fault_string && streq(env2.fault_string, "Test fault"));
+     xmlrpc_env_clean(&env2);
+     /* Call a non-existant method and check the result. */
+@@ -813,11 +976,11 @@ test_apache_dialect(void) {
+     char const expectedResp[] =
+         XML_PROLOGUE
+-        "<methodResponse>\r\n"
++        "<methodResponse " XMLNS_APACHE ">\r\n"
+         "<params>\r\n"
+         "<param><value><array><data>\r\n"
+-            "<value><ex.i8>8</ex.i8></value>\r\n"
+-            "<value><ex.nil/></value>\r\n"
++            "<value><ex:i8>8</ex:i8></value>\r\n"
++            "<value><ex:nil/></value>\r\n"
+         "</data></array></value></param>\r\n"
+         "</params>\r\n"
+         "</methodResponse>\r\n";
+@@ -891,6 +1054,8 @@ test_method_registry(void) {
+     xmlrpc_env_init(&env);
++    testVersion();
++
+     printf("Running method registry tests.");
+     /* Create a new registry. */
+@@ -932,10 +1097,14 @@ test_method_registry(void) {
+     test_system_listMethods(registryP);
++    test_system_methodExist(registryP);
++
+     test_system_methodHelp(registryP);
+     test_system_capabilities(registryP);
++    test_system_getCapabilities(registryP);
++
+     test_signature();
+     test_disable_introspection();
+diff --git a/libs/xmlrpc-c/src/test/parse_xml.c b/libs/xmlrpc-c/src/test/parse_xml.c
+index ff98ab2..0f3237d 100644
+--- a/libs/xmlrpc-c/src/test/parse_xml.c
++++ b/libs/xmlrpc-c/src/test/parse_xml.c
+@@ -8,7 +8,7 @@
+ #include "xmlrpc-c/base.h"
+ #include "xmlrpc-c/xmlparser.h"
+-#include "test.h"
++#include "testtool.h"
+ #include "xml_data.h"
+ #include "parse_xml.h"
+@@ -74,7 +74,7 @@ char const xmldata[] =
+     "<param><value><i2>10</i2></value></param>\r\n"
+     "<param><value><i4>10</i4></value></param>\r\n"
+     "<param><value><i8>10</i8></value></param>\r\n"
+-    "<param><value><ex.i8>10</ex.i8></value></param>\r\n"
++    "<param><value><ex:i8>10</ex:i8></value></param>\r\n"
+     "<param><value><double>10</double></value></param>\r\n"
+     "<param><value><double>10.1</double></value></param>\r\n"
+     "<param><value><double>-10.1</double></value></param>\r\n"
+@@ -152,9 +152,12 @@ char const xmldata[] =
+     "<param><value><boolean>1</boolean></value></param>\r\n"
+     "<param><value><dateTime.iso8601>19980717T14:08:55</dateTime.iso8601>"
+        "</value></param>\r\n"
++    "<param><value>"
++       "<dateTime.iso8601>19980717T14:08:55.123456</dateTime.iso8601>"
++       "</value></param>\r\n"
+     "<param><value><base64>YmFzZTY0IGRhdGE=</base64></value></param>\r\n"
+     "<param><value><nil/></value></param>\r\n"
+-    "<param><value><ex.nil/></value></param>\r\n"
++    "<param><value><ex:nil/></value></param>\r\n"
+     "</params>\r\n"
+     "</methodCall>\r\n";
+     
+@@ -164,7 +167,8 @@ char const xmldata[] =
+     int arraySize;
+     const char * str_hello;
+     xmlrpc_bool b_false, b_true;
+-    const char * datetime;
++    const char * datetime_sec;
++    const char * datetime_usec;
+     unsigned char * b64_data;
+     size_t b64_len;
+@@ -177,24 +181,27 @@ char const xmldata[] =
+     arraySize = xmlrpc_array_size(&env, paramArrayP);
+     TEST_NO_FAULT(&env);
+-    TEST(arraySize == 7);
++    TEST(arraySize == 8);
+     xmlrpc_decompose_value(
+-        &env, paramArrayP, "(sbb86nn)", 
+-        &str_hello, &b_false, &b_true, &datetime, &b64_data, &b64_len);
++        &env, paramArrayP, "(sbb886nn)", 
++        &str_hello, &b_false, &b_true, &datetime_sec, &datetime_usec,
++        &b64_data, &b64_len);
+     TEST_NO_FAULT(&env);
+     TEST(streq(str_hello, "hello"));
+     TEST(!b_false);
+     TEST(b_true);
+-    TEST(streq(datetime, "19980717T14:08:55")); 
++    TEST(streq(datetime_sec, "19980717T14:08:55")); 
++    TEST(streq(datetime_usec, "19980717T14:08:55.123456")); 
+     TEST(b64_len == 11);
+     TEST(memcmp(b64_data, "base64 data", b64_len) == 0);
+     free(b64_data);
+     strfree(str_hello);
+-    strfree(datetime);
++    strfree(datetime_sec);
++    strfree(datetime_usec);
+     xmlrpc_DECREF(paramArrayP);
+     strfree(methodName);
+@@ -496,7 +503,7 @@ testParseFaultResponse(void) {
+ static void
+-test_parse_xml_call(void) {
++testParseXmlCall(void) {
+     xmlrpc_env env;
+     const char *method_name;
+@@ -547,6 +554,38 @@ test_parse_xml_call(void) {
++static void
++testParseXmlValue(void) {
++
++    const char * const xmlInt7 = "<value><int>7</int ></value>";
++    const char * const xmlBadVal1 = "hello";
++    const char * const xmlBadVal2 = "<junk/>";
++
++    xmlrpc_value * valueP;
++
++    xmlrpc_env env;
++
++    xmlrpc_env_init(&env);    
++
++    xmlrpc_parse_value_xml(&env, xmlInt7, strlen(xmlInt7), &valueP);
++
++    TEST_NO_FAULT(&env);
++
++    xmlrpc_DECREF(valueP);
++
++    xmlrpc_parse_value_xml(&env, xmlBadVal1, strlen(xmlBadVal1), &valueP);
++    TEST_FAULT(&env, XMLRPC_PARSE_ERROR);
++    xmlrpc_env_clean(&env);
++
++    xmlrpc_env_init(&env);
++    xmlrpc_parse_value_xml(&env, xmlBadVal2, strlen(xmlBadVal2), &valueP);
++    TEST_FAULT(&env, XMLRPC_PARSE_ERROR);
++
++    xmlrpc_env_clean(&env);    
++}
++
++
++
+ void
+ test_parse_xml(void) {
+@@ -557,7 +596,8 @@ test_parse_xml(void) {
+     testParseGoodResponse();
+     testParseFaultResponse();
+     testParseBadResponse();
+-    test_parse_xml_call();
++    testParseXmlCall();
++    testParseXmlValue();
+     printf("\n");
+     printf("XML parsing tests done.\n");
+ }
+diff --git a/libs/xmlrpc-c/src/test/req_out_of_order.xml b/libs/xmlrpc-c/src/test/req_out_of_order.xml
+deleted file mode 100644
+index 8b078a4..0000000
+--- a/libs/xmlrpc-c/src/test/req_out_of_order.xml
++++ /dev/null
+@@ -1,12 +0,0 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-<methodCall>
+-  <params>
+-    <param>
+-      <value><int>2</int></value>
+-    </param>
+-    <param>
+-      <value><int>2</int></value>
+-    </param>
+-  </params>
+-  <methodName>add</methodName>
+-</methodCall>
+diff --git a/libs/xmlrpc-c/src/test/req_value_name.xml b/libs/xmlrpc-c/src/test/req_value_name.xml
+deleted file mode 100644
+index b55d4f0..0000000
+--- a/libs/xmlrpc-c/src/test/req_value_name.xml
++++ /dev/null
+@@ -1,14 +0,0 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-<methodCall>
+-  <methodName>foo</methodName>
+-  <params>
+-    <param>
+-      <value><struct>
+-        <member>
+-          <value><i4>0</i4></value>
+-          <name>child elements reversed!</name>
+-        </member>
+-      </struct></value>
+-    </param>
+-  </params>
+-</methodCall>
+diff --git a/libs/xmlrpc-c/src/test/sample_add_call.xml b/libs/xmlrpc-c/src/test/sample_add_call.xml
+deleted file mode 100644
+index b11336a..0000000
+--- a/libs/xmlrpc-c/src/test/sample_add_call.xml
++++ /dev/null
+@@ -1,8 +0,0 @@
+-<?xml version="1.0" encoding="UTF-8"?>\r
+-<methodCall>\r
+-<methodName>sample.add</methodName>\r
+-<params>\r
+-<param><value><i4>5</i4></value></param>\r
+-<param><value><i4>7</i4></value></param>\r
+-</params>\r
+-</methodCall>\r
+diff --git a/libs/xmlrpc-c/src/test/serialize.c b/libs/xmlrpc-c/src/test/serialize.c
+index 74fe86c..275aa78 100644
+--- a/libs/xmlrpc-c/src/test/serialize.c
++++ b/libs/xmlrpc-c/src/test/serialize.c
+@@ -6,7 +6,7 @@
+ #include "xmlrpc-c/base.h"
+-#include "test.h"
++#include "testtool.h"
+ #include "xml_data.h"
+ #include "girstring.h"
+ #include "serialize_value.h"
+@@ -176,8 +176,8 @@ test_serialize_apache_value(void) {
+     char const serializedData[] =
+         "<value><array><data>\r\n"
+             "<value><i4>7</i4></value>\r\n"
+-            "<value><ex.i8>8</ex.i8></value>\r\n"
+-            "<value><ex.nil/></value>\r\n"
++            "<value><ex:i8>8</ex:i8></value>\r\n"
++            "<value><ex:nil/></value>\r\n"
+         "</data></array></value>";
+     xmlrpc_env env;
+@@ -214,7 +214,7 @@ test_serialize_apache_params(void) {
+     char const serializedData[] =
+         "<params>\r\n"
+             "<param><value><i4>7</i4></value></param>\r\n"
+-            "<param><value><ex.i8>8</ex.i8></value></param>\r\n"
++            "<param><value><ex:i8>8</ex:i8></value></param>\r\n"
+         "</params>\r\n";
+     xmlrpc_env env;
+@@ -251,9 +251,9 @@ test_serialize_apache_response(void) {
+     char const serializedData[] =
+         XML_PROLOGUE
+-        "<methodResponse>\r\n"
++        "<methodResponse " XMLNS_APACHE ">\r\n"
+         "<params>\r\n"
+-        "<param><value><ex.i8>8</ex.i8></value></param>\r\n"
++        "<param><value><ex:i8>8</ex:i8></value></param>\r\n"
+         "</params>\r\n"
+         "</methodResponse>\r\n";
+diff --git a/libs/xmlrpc-c/src/test/serialize_value.c b/libs/xmlrpc-c/src/test/serialize_value.c
+index 3a59253..a8d17a3 100644
+--- a/libs/xmlrpc-c/src/test/serialize_value.c
++++ b/libs/xmlrpc-c/src/test/serialize_value.c
+@@ -6,7 +6,7 @@
+ #include "xmlrpc-c/base.h"
+-#include "test.h"
++#include "testtool.h"
+ #include "girstring.h"
+ #include "serialize_value.h"
+@@ -173,6 +173,7 @@ test_serialize_double(void) {
+     testOneDouble(1);
+     testOneDouble(0.3);
+     testOneDouble(4.9);
++    testOneDouble(9.9999999);
+     testOneDouble(-8);
+     testOneDouble(-.7);
+     testOneDouble(-2.5);
+diff --git a/libs/xmlrpc-c/src/test/server_abyss.c b/libs/xmlrpc-c/src/test/server_abyss.c
+index 11e1476..24a8233 100644
+--- a/libs/xmlrpc-c/src/test/server_abyss.c
++++ b/libs/xmlrpc-c/src/test/server_abyss.c
+@@ -1,5 +1,6 @@
+ #include "unistdx.h"
+ #include <stdio.h>
++#include "bool.h"
+ #include "xmlrpc_config.h"
+@@ -8,16 +9,32 @@
+ #include "xmlrpc-c/abyss.h"
+ #include "xmlrpc-c/server_abyss.h"
+-#include "test.h"
++#include "testtool.h"
+ #include "server_abyss.h"
++static xmlrpc_call_processor myXmlProcessor;
++
++static void
++myXmlProcessor(xmlrpc_env *        const envP ATTR_UNUSED,
++               void *              const processorArg ATTR_UNUSED,
++               const char *        const callXml ATTR_UNUSED,
++               size_t              const callXmlLen ATTR_UNUSED,
++               TSession *          const abyssSessionP ATTR_UNUSED, 
++               xmlrpc_mem_block ** const responseXmlPP ATTR_UNUSED) {
++
++    printf("XML processor running\n");
++}
++
++
++
+ static void
+ testSetHandlers(TServer * const abyssServerP) {
+     xmlrpc_env env;
+     xmlrpc_registry * registryP;
++    xmlrpc_server_abyss_handler_parms parms;
+     xmlrpc_env_init(&env);
+@@ -25,11 +42,32 @@ testSetHandlers(TServer * const abyssServerP) {
+     TEST_NO_FAULT(&env);
+     TEST(registryP != NULL);
++    parms.xml_processor = &myXmlProcessor;
++    parms.xml_processor_arg = NULL;
++    parms.xml_processor_max_stack = 512;
++    parms.uri_path = "/RPC6";
++    parms.chunk_response = true;
++    parms.allow_origin = "*";
++
++    xmlrpc_server_abyss_set_handler3(
++        &env, abyssServerP, &parms, XMLRPC_AHPSIZE(xml_processor_arg));
++    TEST_FAULT(&env, XMLRPC_INTERNAL_ERROR);  /* Parms too short */
++    xmlrpc_server_abyss_set_handler3(
++        &env, abyssServerP, &parms, XMLRPC_AHPSIZE(allow_origin));
++    TEST_NO_FAULT(&env);
++
++    xmlrpc_server_abyss_set_handler2(abyssServerP, "/RPC5",
++                                     &myXmlProcessor, NULL, 512, true);
++
+     xmlrpc_server_abyss_set_handler(&env, abyssServerP, "/RPC3", registryP);
+     TEST_NO_FAULT(&env);
+     xmlrpc_server_abyss_set_handlers2(abyssServerP, "/RPC4", registryP);
++    xmlrpc_server_abyss_set_handlers(abyssServerP, registryP);
++    
++    xmlrpc_server_abyss_set_default_handler(abyssServerP);
++
+     xmlrpc_registry_free(registryP);
+     {
+@@ -57,6 +95,7 @@ testServerParms(void) {
+     parms.dont_advertise = TRUE;
+     parms.uri_path = "/RPC9";
+     parms.chunk_response = TRUE;
++    parms.allow_origin = "*";
+ };
+@@ -108,6 +147,8 @@ testObject(void) {
+     xmlrpc_server_abyss_restore_sig(oldHandlersP);
+     TEST_NO_FAULT(&env);
++    free(oldHandlersP);
++
+     xmlrpc_server_abyss_destroy(serverP);
+     
+     xmlrpc_registry_free(registryP);
+diff --git a/libs/xmlrpc-c/src/test/test.c b/libs/xmlrpc-c/src/test/test.c
+index 1b9c2d3..d7d0d9c 100644
+--- a/libs/xmlrpc-c/src/test/test.c
++++ b/libs/xmlrpc-c/src/test/test.c
+@@ -17,9 +17,10 @@
+ #include "xmlrpc-c/base.h"
+ #include "xmlrpc-c/server.h"
++#include "xmlrpc-c/string_int.h"
+ #include "bool.h"
+-#include "test.h"
++#include "testtool.h"
+ #include "value.h"
+ #include "serialize.h"
+ #include "parse_xml.h"
+@@ -76,8 +77,26 @@ static int test_int_array_3[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+ **=========================================================================
+ */
+-static void test_env(void)
+-{
++static void
++testVersion(void) {
++
++    unsigned int major, minor, point;
++
++    xmlrpc_version(&major, &minor, &point);
++
++#ifndef WIN32    
++    /* xmlrpc_version_major, etc. are not exported from a Windows DLL */
++
++    TEST(major = xmlrpc_version_major);
++    TEST(minor = xmlrpc_version_minor);
++    TEST(point = xmlrpc_version_point);
++#endif
++}
++
++
++
++static void
++testEnv(void) {
+     xmlrpc_env env, env2;
+     /* Test xmlrpc_env_init. */
+@@ -91,19 +110,19 @@ static void test_env(void)
+     TEST(env.fault_occurred);
+     TEST(env.fault_code == 1);
+     TEST(env.fault_string != test_string_1);
+-    TEST(strcmp(env.fault_string, test_string_1) == 0);
++    TEST(xmlrpc_streq(env.fault_string, test_string_1));
+     /* Change an existing fault. */
+     xmlrpc_env_set_fault(&env, 2, test_string_2);
+     TEST(env.fault_occurred);
+     TEST(env.fault_code == 2);
+-    TEST(strcmp(env.fault_string, test_string_2) == 0);    
++    TEST(xmlrpc_streq(env.fault_string, test_string_2));
+     /* Set a fault with a format string. */
+     xmlrpc_env_set_fault_formatted(&env, 3, "a%s%d", "bar", 9);
+     TEST(env.fault_occurred);
+     TEST(env.fault_code == 3);
+-    TEST(strcmp(env.fault_string, "abar9") == 0);
++    TEST(xmlrpc_streq(env.fault_string, "abar9"));
+     /* Test cleanup code (with help from memprof). */
+     xmlrpc_env_clean(&env);
+@@ -113,8 +132,10 @@ static void test_env(void)
+     xmlrpc_env_clean(&env2);
+ }
+-static void test_mem_block (void)
+-{
++
++
++static void
++testMemBlock(void) {
+     xmlrpc_env env;
+     xmlrpc_mem_block* block;
+@@ -141,7 +162,7 @@ static void test_mem_block (void)
+     xmlrpc_mem_block_resize(&env, block, 10000);
+     TEST_NO_FAULT(&env);
+     TEST(xmlrpc_mem_block_size(block) == 10000);
+-    TEST(strcmp(xmlrpc_mem_block_contents(block), test_string_1) == 0);
++    TEST(xmlrpc_streq(xmlrpc_mem_block_contents(block), test_string_1));
+     /* Test cleanup code (with help from memprof). */
+     xmlrpc_mem_block_free(block);
+@@ -190,6 +211,8 @@ static void test_mem_block (void)
+     xmlrpc_env_clean(&env);
+ }
++
++
+ static char *(base64_triplets[]) = {
+     "", "", "\r\n",
+     "a", "YQ==", "YQ==\r\n",
+@@ -204,8 +227,11 @@ static char *(base64_triplets[]) = {
+     "ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVo=\r\n",
+     NULL};
++
++
+ static void
+-test_base64_conversion(void) {
++testBase64Conversion(void) {
++
+     xmlrpc_env env;
+     char ** triplet;
+@@ -280,8 +306,9 @@ test_base64_conversion(void) {
+-static void test_bounds_checks (void)
+-{
++static void
++testBoundsChecks(void) {
++
+     xmlrpc_env env;
+     xmlrpc_value *array;
+     int i1, i2, i3, i4;
+@@ -310,8 +337,9 @@ static void test_bounds_checks (void)
+-static void test_nesting_limit (void)
+-{
++static void
++testNestingLimit(void) {
++
+     xmlrpc_env env;
+     xmlrpc_value *val;
+@@ -346,7 +374,7 @@ static void test_nesting_limit (void)
+ static void
+-test_xml_size_limit(void) {
++testXmlSizeLimit(void) {
+     xmlrpc_env env;
+     const char * methodName;
+@@ -395,12 +423,13 @@ test_xml_size_limit(void) {
+ **  We use these files to test strange-but-legal encodings, illegal-but-
+ **  allowed-by-Xmlrpc-c encodings, etc.
+ */
+-#ifdef WIN32
+-/* usually compiled in 'Windows' folder */
+-#define TESTDATA_DIR ".." DIRECTORY_SEPARATOR "bin" DIRECTORY_SEPARATOR "data"
+-#else
++
++/* The test program is designed to be run with the 'test' source directory
++   (which also contains the test program itself) as the current
++   directory.  Except on Windows, where the Bin directory (which also contains
++   the test program itself) is supposed to be the current directory.
++*/
+ #define TESTDATA_DIR "data"
+-#endif
+ static const char * goodRequests[] = {
+     TESTDATA_DIR DIRECTORY_SEPARATOR "req_out_of_order.xml",
+@@ -649,9 +678,8 @@ test_utf8_coding(void) {
+         TEST_NO_FAULT(&env);
+         TEST(output != NULL);
+         TEST(strlen(utf8) == XMLRPC_TYPED_MEM_BLOCK_SIZE(char, output));
+-        TEST(0 ==
+-             strncmp(utf8, XMLRPC_TYPED_MEM_BLOCK_CONTENTS(char, output),
+-                     strlen(utf8)));
++        TEST(xmlrpc_strneq(utf8, XMLRPC_TYPED_MEM_BLOCK_CONTENTS(char, output),
++                           strlen(utf8)));
+         xmlrpc_mem_block_free(output);
+     }
+@@ -713,18 +741,19 @@ main(int     argc,
+         fprintf(stderr, "There are no arguments.\n");
+         retval = 1;
+     } else {
+-        test_env();
+-        test_mem_block();
+-        test_base64_conversion();
++        testVersion();
++        testEnv();
++        testMemBlock();
++        testBase64Conversion();
+         printf("\n");
+         test_value();
+-        test_bounds_checks();
++        testBoundsChecks();
+         printf("\n");
+         test_serialize();
+         test_parse_xml();
+         test_method_registry();
+-        test_nesting_limit();
+-        test_xml_size_limit();
++        testNestingLimit();
++        testXmlSizeLimit();
+         testSampleFiles();
+         printf("\n");
+         test_server_cgi_maybe();
+diff --git a/libs/xmlrpc-c/src/test/test.h b/libs/xmlrpc-c/src/test/test.h
+deleted file mode 100644
+index 70a8371..0000000
+--- a/libs/xmlrpc-c/src/test/test.h
++++ /dev/null
+@@ -1,109 +0,0 @@
+-#include <stdlib.h>
+-#include <stdio.h>
+-#include <math.h>
+-
+-#include "xmlrpc_config.h"
+-#include "xmlrpc-c/util.h"
+-#include "xmlrpc-c/util_int.h"
+-
+-extern int total_tests;
+-extern int total_failures;
+-
+-
+-/* This is a good place to set a breakpoint. */
+-static __inline__ void
+-test_failure(const char * const file,
+-             unsigned int const line,
+-             const char * const label,
+-             const char * const statement) {
+-
+-    ++total_failures;
+-    printf("\n%s:%u: test failure: %s (%s)\n", file, line, label, statement);
+-    abort();
+-}
+-
+-
+-
+-#define TEST(statement) \
+-do { \
+-    ++total_tests; \
+-    if ((statement)) { \
+-        printf("."); \
+-    } else { \
+-        test_failure(__FILE__, __LINE__, "expected", #statement); \
+-    } \
+-   } while (0)
+-
+-#define TEST_NO_FAULT(env) \
+-    do { \
+-        ++total_tests; \
+-        if (!(env)->fault_occurred) { \
+-            printf("."); \
+-        } else { \
+-            test_failure(__FILE__, __LINE__, "fault occurred", \
+-            (env)->fault_string); \
+-        } \
+-       } while (0)
+-
+-#define TEST_EPSILON 1E-5
+-
+-#define FORCENONZERO(x) (MAX(fabs(x), TEST_EPSILON))
+-
+-#define FLOATEQUAL(comparand, comparator) \
+-    ((fabs((comparand)-(comparator)))/FORCENONZERO(comparand) < TEST_EPSILON)
+-#define TESTFLOATEQUAL(comparand, comparator) \
+-    TEST(FLOATEQUAL(comparand, comparator))
+-
+-static __inline__ void
+-test_fault(xmlrpc_env * const envP,
+-           int          const expectedCode,
+-           const char * const fileName,
+-           unsigned int const lineNumber) {
+-
+-    ++total_tests;
+-
+-    if (!envP->fault_occurred)
+-        test_failure(fileName, lineNumber, "no fault occurred", "");
+-    else if (envP->fault_code != expectedCode)
+-        test_failure(fileName, lineNumber, "wrong fault occurred",
+-                     envP->fault_string);
+-    else
+-        printf(".");
+-
+-    xmlrpc_env_clean(envP);
+-    xmlrpc_env_init(envP);
+-}
+-
+-
+-#define TEST_FAULT(envP, code) \
+-    do { test_fault(envP, code, __FILE__, __LINE__); } while(0)
+-
+-;
+-
+-
+-static __inline__ void
+-test_null_string(const char * const string,
+-                 const char * const fileName,
+-                 unsigned int const lineNumber) {
+-
+-    ++total_tests;
+-
+-    if (string != NULL)
+-        test_failure(fileName, lineNumber, "string not null", string);
+-    else
+-        printf(".");
+-}
+-
+-
+-#define TEST_NULL_STRING(string) \
+-    do { test_null_string(string, __FILE__, __LINE__); } while(0)
+-
+-;
+-
+-#define TEST_ERROR(reason) \
+-do { \
+-    printf("Unable to test at %s/%u.  %s", __FILE__, __LINE__, reason); \
+-    abort(); \
+-   } while (0)
+-
+-;
+diff --git a/libs/xmlrpc-c/src/test/value.c b/libs/xmlrpc-c/src/test/value.c
+index bda938c..6ed6c47 100644
+--- a/libs/xmlrpc-c/src/test/value.c
++++ b/libs/xmlrpc-c/src/test/value.c
+@@ -13,7 +13,9 @@
+ #include "xmlrpc-c/base.h"
+ #include "xmlrpc-c/string_int.h"
+-#include "test.h"
++#include "testtool.h"
++#include "value_datetime.h"
++
+ #include "value.h"
+@@ -158,197 +160,6 @@ test_value_double(void) {
+-static void
+-test_value_datetime_varytime(const char * const datestring,
+-                             time_t       const datetime) {
+-
+-    xmlrpc_value * v;
+-    xmlrpc_env env;
+-    const char * ds;
+-    time_t dt;
+-
+-    xmlrpc_env_init(&env);
+-
+-    v = xmlrpc_datetime_new_str(&env, datestring);
+-    TEST_NO_FAULT(&env);
+-    TEST(XMLRPC_TYPE_DATETIME == xmlrpc_value_type(v));
+-
+-    xmlrpc_read_datetime_sec(&env, v, &dt);
+-    TEST_NO_FAULT(&env);
+-    TEST(dt == datetime);
+-
+-    xmlrpc_DECREF(v);
+-
+-    v = xmlrpc_datetime_new_sec(&env, datetime);
+-    TEST_NO_FAULT(&env);
+-    TEST(XMLRPC_TYPE_DATETIME == xmlrpc_value_type(v));
+-
+-    xmlrpc_read_datetime_str(&env, v, &ds);
+-    TEST_NO_FAULT(&env);
+-    TEST(streq(ds, datestring));
+-    strfree(ds);
+-
+-    xmlrpc_DECREF(v);
+-
+-    xmlrpc_env_clean(&env);
+-}
+-
+-
+-
+-static void
+-test_value_datetime_not_unix(const char * const datestring) {
+-
+-    xmlrpc_value * v;
+-    xmlrpc_env env;
+-    time_t dt;
+-
+-    xmlrpc_env_init(&env);
+-
+-    v = xmlrpc_datetime_new_str(&env, datestring);
+-    TEST_NO_FAULT(&env);
+-
+-    xmlrpc_read_datetime_sec(&env, v, &dt);
+-    TEST_FAULT(&env, XMLRPC_INTERNAL_ERROR);
+-
+-    xmlrpc_DECREF(v);
+-
+-    xmlrpc_env_clean(&env);
+-}
+-
+-
+-
+-static void
+-test_value_datetime_invalid(const char * const datestring) {
+-
+-    /* Ideally, xmlrpc_datetime_new_str() would fail on these, but
+-       the code doesn't implement that today.  However,
+-       xmlrpc_read_datetime_sec() does catch many cases, so we
+-       use that.
+-
+-       Note that xmlrpc_read_datetime_sec() doesn't catch them all.
+-       Sometimes it just returns garbage, e.g. returns July 1 for
+-       June 31.
+-    */
+-
+-    xmlrpc_value * v;
+-    xmlrpc_env env;
+-    time_t dt;
+-
+-    xmlrpc_env_init(&env);
+-
+-    v = xmlrpc_datetime_new_str(&env, datestring);
+-    TEST_NO_FAULT(&env);
+-
+-    xmlrpc_read_datetime_sec(&env, v, &dt);
+-    TEST_FAULT(&env, XMLRPC_PARSE_ERROR);
+-
+-    xmlrpc_DECREF(v);
+-
+-    xmlrpc_env_clean(&env);
+-}
+-
+-
+-
+-static void
+-test_build_decomp_datetime(void) {
+-
+-    const char * datestring = "19980717T14:08:55";
+-    time_t const datetime = 900684535;
+-
+-    xmlrpc_env env;
+-    xmlrpc_value * v;
+-    time_t dt;
+-    const char * ds;
+-
+-    xmlrpc_env_init(&env);
+-
+-    v = xmlrpc_build_value(&env, "t", datetime);
+-    TEST_NO_FAULT(&env);
+-    TEST(v != NULL);
+-    TEST(xmlrpc_value_type(v) == XMLRPC_TYPE_DATETIME);
+-
+-    dt = 0;
+-    xmlrpc_read_datetime_sec(&env, v, &dt);
+-    TEST(dt == datetime);
+-
+-    dt = 0;
+-    xmlrpc_decompose_value(&env, v, "t", &dt);
+-    xmlrpc_DECREF(v);
+-    TEST_NO_FAULT(&env);
+-    TEST(dt == datetime);
+-
+-    v = xmlrpc_int_new(&env, 9);
+-    TEST_NO_FAULT(&env);
+-    xmlrpc_decompose_value(&env, v, "t", &dt);
+-    TEST_FAULT(&env, XMLRPC_TYPE_ERROR);
+-    xmlrpc_env_clean(&env);
+-    xmlrpc_env_init(&env);
+-    xmlrpc_decompose_value(&env, v, "8", &ds);
+-    TEST_FAULT(&env, XMLRPC_TYPE_ERROR);
+-    xmlrpc_env_clean(&env);
+-    xmlrpc_env_init(&env);
+-    xmlrpc_DECREF(v);
+-
+-    v = xmlrpc_build_value(&env, "8", datestring);
+-    TEST_NO_FAULT(&env);
+-    TEST(v != NULL);
+-    TEST(xmlrpc_value_type(v) == XMLRPC_TYPE_DATETIME);
+-    xmlrpc_decompose_value(&env, v, "8", &ds);
+-    xmlrpc_DECREF(v);
+-    TEST_NO_FAULT(&env);
+-    TEST(streq(ds, datestring));
+-    strfree(ds);
+-
+-    xmlrpc_env_clean(&env);
+-}
+-
+-
+-
+-static void
+-test_value_datetime(void) {
+-
+-    const char * datestring = "19980717T14:08:55";
+-    time_t const datetime = 900684535;
+-
+-    xmlrpc_env env;
+-
+-    xmlrpc_env_init(&env);
+-
+-    TEST(streq(xmlrpc_type_name(XMLRPC_TYPE_DATETIME), "DATETIME"));
+-
+-    /* Valid datetime, generated from XML-RPC string */
+-
+-    test_value_datetime_varytime(datestring, datetime);
+-
+-    /* Leap years */
+-    test_value_datetime_varytime("20000229T23:59:59", 951868799);
+-    test_value_datetime_varytime("20000301T00:00:00", 951868800);
+-    test_value_datetime_varytime("20010228T23:59:59", 983404799);
+-    test_value_datetime_varytime("20010301T00:00:00", 983404800);
+-    test_value_datetime_varytime("20040229T23:59:59", 1078099199);
+-    test_value_datetime_varytime("20040301T00:00:00", 1078099200);
+-
+-    /* Datetimes that can't be represented as time_t */
+-    test_value_datetime_not_unix("19691231T23:59:59");
+-
+-    /* Invalid datetimes */
+-    /* Note that the code today does a pretty weak job of validating datetimes,
+-       so we test only the validation that we know is implemented.
+-    */
+-    test_value_datetime_invalid("19700101T25:00:00");
+-    test_value_datetime_invalid("19700101T10:61:01");
+-    test_value_datetime_invalid("19700101T10:59:61");
+-    test_value_datetime_invalid("19700001T10:00:00");
+-    test_value_datetime_invalid("19701301T10:00:00");
+-    test_value_datetime_invalid("19700132T10:00:00");
+-
+-    test_build_decomp_datetime();
+-
+-    xmlrpc_env_clean(&env);
+-}
+-
+-
+-
+ static xmlrpc_value *
+ test_string_new_va(xmlrpc_env * const envP,
+                    const char * const format,
+@@ -711,7 +522,7 @@ test_value_string_wide_build(void) {
+     xmlrpc_env_init(&env);
+     /* Build with build_value w# */
+-    valueP = xmlrpc_build_value(&env, "w#", wcs_data, 3);
++    valueP = xmlrpc_build_value(&env, "w#", wcs_data, (size_t)3);
+     TEST_NO_FAULT(&env);
+     TEST(valueP != NULL);
+@@ -849,7 +660,7 @@ test_value_string_wide(void) {
+         TEST(str != NULL);
+         TEST(len == 4);
+         TEST(str[len] == '\0');
+-        TEST(0 == strncmp(str, utf8_data, len));
++        TEST(xmlrpc_strneq(str, utf8_data, len));
+         free((void*)str);
+     }
+@@ -952,7 +763,7 @@ test_value_base64(void) {
+     TEST_NO_FAULT(&env);
+     TEST(len == sizeof(data2));
+     TEST(memeq(data, data1, sizeof(data2)));
+-    strfree(data);
++    free((void *)data);
+     xmlrpc_env_clean(&env);
+ }
+@@ -992,6 +803,7 @@ test_value_array(void) {
+     xmlrpc_value *v;
+     xmlrpc_env env;
+     size_t len;
++    xmlrpc_value * itemP;
+     /* Basic array-building test. */
+@@ -1005,6 +817,16 @@ test_value_array(void) {
+     len = xmlrpc_array_size(&env, v);
+     TEST_NO_FAULT(&env);
+     TEST(len == 0);
++
++    itemP = xmlrpc_int_new(&env, 7);
++    TEST_NO_FAULT(&env);
++    xmlrpc_array_append_item(&env, v, itemP);
++    TEST_NO_FAULT(&env);
++    len = xmlrpc_array_size(&env, v);
++    TEST_NO_FAULT(&env);
++    TEST(len == 1);
++    xmlrpc_DECREF(itemP);
++
+     xmlrpc_DECREF(v);
+     v = xmlrpc_build_value(&env, "()");
+@@ -1234,20 +1056,48 @@ test_value_array_nil(void) {
+ static void
++destroyMyCptr(void * const context,
++              void * const objectP) {
++/*----------------------------------------------------------------------------
++   This is a xmlrpc_cptr_dtor_fn.
++-----------------------------------------------------------------------------*/
++    int * const destroyConfirmationP = context;
++    int * const objectIntP = objectP;
++
++    *destroyConfirmationP = *objectIntP;
++}
++
++
++
++static void
+ test_value_cptr(void) {
++    int destroyConfirmation;
++
+     xmlrpc_value * v;
+     xmlrpc_env env;
+     void * ptr;
+-
+-    /* Test C pointer storage using 'p'.
+-       We don't have cleanup functions (yet). 
+-    */
++    int myObject;
+     xmlrpc_env_init(&env);
+     TEST(streq(xmlrpc_type_name(XMLRPC_TYPE_C_PTR), "C_PTR"));
++    myObject = 7;
++
++    v = xmlrpc_cptr_new(&env, &myObject);
++    TEST_NO_FAULT(&env);
++    TEST(xmlrpc_value_type(v) == XMLRPC_TYPE_C_PTR);
++    xmlrpc_DECREF(v);
++
++    v = xmlrpc_cptr_new_dtor(&env, &myObject,
++                             &destroyMyCptr, &destroyConfirmation);
++    TEST_NO_FAULT(&env);
++    TEST(xmlrpc_value_type(v) == XMLRPC_TYPE_C_PTR);
++    destroyConfirmation = 3;
++    xmlrpc_DECREF(v);
++    TEST(destroyConfirmation == 7);  // the destructor has set this
++    
+     v = xmlrpc_build_value(&env, "p", (void*) 0x00000017);
+     TEST_NO_FAULT(&env);
+     TEST(XMLRPC_TYPE_C_PTR == xmlrpc_value_type(v));
+@@ -1273,7 +1123,7 @@ test_value_nil(void) {
+     v = xmlrpc_nil_new(&env);
+     TEST_NO_FAULT(&env);
+-    TEST(XMLRPC_TYPE_NIL == xmlrpc_value_type(v));
++    TEST(xmlrpc_value_type(v) == XMLRPC_TYPE_NIL);
+     xmlrpc_DECREF(v);
+     v = xmlrpc_build_value(&env, "n");
+@@ -1465,7 +1315,7 @@ test_value_parse_value(void) {
+     valueP = xmlrpc_build_value(&env, "(idb8ss#6(i){s:i}np(i))",
+                                 7, 3.14, (xmlrpc_bool)1, datestring,
+-                                "hello world", "a\0b", 3, 
++                                "hello world", "a\0b", (size_t)3,
+                                 "base64 data", strlen("base64 data"),
+                                 15, "member9", 9, &valueP, -5);
+     
+@@ -1610,7 +1460,7 @@ test_struct_get_element(xmlrpc_value * const structP,
+ static void
+ testStructReadout(xmlrpc_value * const structP,
+-                  size_t         const expectedSize) {
++                  unsigned int   const expectedSize) {
+     xmlrpc_env env;
+     xmlrpc_value * keyP;
+@@ -1753,6 +1603,10 @@ test_struct_decompose(xmlrpc_value * const testStructP) {
+                            "foo", &sval,
+                            "bar", &ival);
+     TEST_NO_FAULT(&env);
++    TEST(ival == 1);
++    TEST(!bval);
++    TEST(streq(sval, "Hello!"));
++    free(sval);
+     /* First value of wrong type */
+     xmlrpc_decompose_value(&env, testStructP, "{s:b,s:i,*}",
+diff --git a/libs/xmlrpc-c/src/test/xml_data.h b/libs/xmlrpc-c/src/test/xml_data.h
+index 4b34238..89b5e49 100644
+--- a/libs/xmlrpc-c/src/test/xml_data.h
++++ b/libs/xmlrpc-c/src/test/xml_data.h
+@@ -3,6 +3,9 @@
+ #define XML_PROLOGUE "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"
++#define APACHE_URL "http://ws.apache.org/xmlrpc/namespaces/extensions"
++#define XMLNS_APACHE "xmlns:ex=\"" APACHE_URL "\""
++
+ extern char const serialized_data[];
+ extern char const serialized_call[];
+diff --git a/libs/xmlrpc-c/src/trace.c b/libs/xmlrpc-c/src/trace.c
+index 53d54f3..bb65945 100644
+--- a/libs/xmlrpc-c/src/trace.c
++++ b/libs/xmlrpc-c/src/trace.c
+@@ -36,7 +36,7 @@ nextLineSize(const char * const string,
+ void
+ xmlrpc_traceXml(const char * const label, 
+                 const char * const xml,
+-                unsigned int const xmlLength) {
++                size_t       const xmlLength) {
+     if (getenv("XMLRPC_TRACE_XML")) {
+         size_t cursor;  /* Index into xml[] */
+@@ -60,3 +60,4 @@ xmlrpc_traceXml(const char * const label,
+     }
+ }
++
+diff --git a/libs/xmlrpc-c/src/version.c b/libs/xmlrpc-c/src/version.c
+index c286966..07a2d43 100644
+--- a/libs/xmlrpc-c/src/version.c
++++ b/libs/xmlrpc-c/src/version.c
+@@ -5,3 +5,14 @@
+ unsigned int const xmlrpc_version_major = XMLRPC_VERSION_MAJOR;
+ unsigned int const xmlrpc_version_minor = XMLRPC_VERSION_MINOR;
+ unsigned int const xmlrpc_version_point = XMLRPC_VERSION_POINT;
++
++void
++xmlrpc_version(unsigned int * const majorP,
++               unsigned int * const minorP,
++               unsigned int * const pointP) {
++
++    *majorP = XMLRPC_VERSION_MAJOR;
++    *minorP = XMLRPC_VERSION_MINOR;
++    *pointP = XMLRPC_VERSION_POINT;
++}
++
+diff --git a/libs/xmlrpc-c/src/xmlrpc_array.c b/libs/xmlrpc-c/src/xmlrpc_array.c
+index a474546..0de210e 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_array.c
++++ b/libs/xmlrpc-c/src/xmlrpc_array.c
+@@ -7,6 +7,7 @@
+ #include "xmlrpc_config.h"
++#include <assert.h>
+ #include <stddef.h>
+ #include <stdlib.h>
+@@ -24,7 +25,7 @@ xmlrpc_abort_if_array_bad(xmlrpc_value * const arrayP) {
+     else if (arrayP->_type != XMLRPC_TYPE_ARRAY)
+         abort();
+     else {
+-        unsigned int const arraySize =
++        size_t const arraySize =
+             XMLRPC_MEMBLOCK_SIZE(xmlrpc_value*, &arrayP->_block);
+         xmlrpc_value ** const contents = 
+             XMLRPC_MEMBLOCK_CONTENTS(xmlrpc_value*, &arrayP->_block);
+@@ -32,7 +33,7 @@ xmlrpc_abort_if_array_bad(xmlrpc_value * const arrayP) {
+         if (contents == NULL)
+             abort();
+         else {
+-            unsigned int index;
++            size_t index;
+             
+             for (index = 0; index < arraySize; ++index) {
+                 xmlrpc_value * const itemP = contents[index];
+@@ -53,12 +54,12 @@ xmlrpc_destroyArrayContents(xmlrpc_value * const arrayP) {
+    Dispose of the contents of an array (but not the array value itself).
+    The value is not valid after this.
+ -----------------------------------------------------------------------------*/
+-    unsigned int const arraySize =
++    size_t const arraySize =
+         XMLRPC_MEMBLOCK_SIZE(xmlrpc_value*, &arrayP->_block);
+     xmlrpc_value ** const contents = 
+         XMLRPC_MEMBLOCK_CONTENTS(xmlrpc_value*, &arrayP->_block);
+-    unsigned int index;
++    size_t index;
+     
+     XMLRPC_ASSERT_ARRAY_OK(arrayP);
+@@ -73,25 +74,27 @@ xmlrpc_destroyArrayContents(xmlrpc_value * const arrayP) {
+ int 
+-xmlrpc_array_size(xmlrpc_env *         const env, 
+-                  const xmlrpc_value * const array) {
++xmlrpc_array_size(xmlrpc_env *         const envP,
++                  const xmlrpc_value * const arrayP) {
+     int retval;
+-    /* Suppress a compiler warning about uninitialized variables. */
+-    retval = 0;
++    XMLRPC_ASSERT_ENV_OK(envP);
++    XMLRPC_ASSERT_VALUE_OK(arrayP);
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    XMLRPC_ASSERT_VALUE_OK(array);
+-    XMLRPC_TYPE_CHECK(env, array, XMLRPC_TYPE_ARRAY);
++    if (arrayP->_type != XMLRPC_TYPE_ARRAY) {
++        xmlrpc_env_set_fault_formatted(
++            envP, XMLRPC_TYPE_ERROR, "Value is not an array");
++        retval = -1;
++    } else {
++        size_t const size =
++            XMLRPC_MEMBLOCK_SIZE(xmlrpc_value *, &arrayP->_block);
+-    retval = XMLRPC_TYPED_MEM_BLOCK_SIZE(xmlrpc_value*, &array->_block);
++        assert((size_t)(int)(size) == size);
+-                  cleanup:
+-    if (env->fault_occurred)
+-        return -1;
+-    else
+-        return retval;
++        retval = (int)size;
++    }
++    return retval;
+ }
+diff --git a/libs/xmlrpc-c/src/xmlrpc_base64.c b/libs/xmlrpc-c/src/xmlrpc_base64.c
+index 2f54377..30f0c02 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_base64.c
++++ b/libs/xmlrpc-c/src/xmlrpc_base64.c
+@@ -36,6 +36,7 @@
+ #include "xmlrpc_config.h"
++#include "bool.h"
+ #include "xmlrpc-c/base.h"
+ #define CRLF    "\015\012"
+@@ -89,178 +90,190 @@ static char table_a2b_base64[] = {
+ #define BASE64_MAXBIN 57    /* Max binary chunk size (76 char line) */
+ #define BASE64_LINE_SZ 128      /* Buffer size for a single line. */    
+-static unsigned char table_b2a_base64[] =
++static unsigned char const table_b2a_base64[] =
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
++
++
+ static xmlrpc_mem_block *
+-xmlrpc_base64_encode_internal (xmlrpc_env *env,
+-                               unsigned char *bin_data,
+-                               size_t bin_len,
+-                               int want_newlines)
+-{
+-    size_t chunk_start, chunk_left;
+-    unsigned char *ascii_data;
++base64Encode(xmlrpc_env *          const envP,
++             const unsigned char * const binData,
++             size_t                const binLen,
++             bool                  const wantNewlines) {
++
++    size_t chunkStart, chunkLeft;
++    unsigned char * asciiData;
+     int leftbits;
+-    unsigned char this_ch;
++    unsigned char thisCh;
+     unsigned int leftchar;
+-    xmlrpc_mem_block *output;
+-    unsigned char line_buffer[BASE64_LINE_SZ];
++    xmlrpc_mem_block * outputP;
++    unsigned char lineBuffer[BASE64_LINE_SZ];
++    const unsigned char * cursor;
+     /* Create a block to hold our lines when we finish them. */
+-    output = xmlrpc_mem_block_new(env, 0);
+-    XMLRPC_FAIL_IF_FAULT(env);
++    outputP = xmlrpc_mem_block_new(envP, 0);
++    XMLRPC_FAIL_IF_FAULT(envP);
+     /* Deal with empty data blocks gracefully. Yuck. */
+-    if (bin_len == 0) {
+-        if (want_newlines)
+-            XMLRPC_TYPED_MEM_BLOCK_APPEND(char, env, output, CRLF, 2);
++    if (binLen == 0) {
++        if (wantNewlines)
++            XMLRPC_MEMBLOCK_APPEND(char, envP, outputP, CRLF, 2);
+         goto cleanup;
+     }
+     /* Process our binary data in line-sized chunks. */
+-    for (chunk_start=0; chunk_start < bin_len; chunk_start += BASE64_MAXBIN) {
++    for (chunkStart = 0, cursor = &binData[0];
++         chunkStart < binLen;
++         chunkStart += BASE64_MAXBIN) {
+         /* Set up our per-line state. */
+-        ascii_data = &line_buffer[0];
+-        chunk_left = bin_len - chunk_start;
+-        if (chunk_left > BASE64_MAXBIN)
+-            chunk_left = BASE64_MAXBIN;
++        asciiData = &lineBuffer[0];
++        chunkLeft = binLen - chunkStart;
++        if (chunkLeft > BASE64_MAXBIN)
++            chunkLeft = BASE64_MAXBIN;
+         leftbits = 0;
+         leftchar = 0;
+-        for(; chunk_left > 0; chunk_left--, bin_data++) {
++        for(; chunkLeft > 0; --chunkLeft, ++cursor) {
+             /* Shift the data into our buffer */
+-            leftchar = (leftchar << 8) | *bin_data;
++            leftchar = (leftchar << 8) | *cursor;
+             leftbits += 8;
+             /* See if there are 6-bit groups ready */
+             while (leftbits >= 6) {
+-                this_ch = (leftchar >> (leftbits-6)) & 0x3f;
++                thisCh = (leftchar >> (leftbits-6)) & 0x3f;
+                 leftbits -= 6;
+-                *ascii_data++ = table_b2a_base64[this_ch];
++                *asciiData++ = table_b2a_base64[thisCh];
+             }
+         }
+         if (leftbits == 2) {
+-            *ascii_data++ = table_b2a_base64[(leftchar&3) << 4];
+-            *ascii_data++ = BASE64_PAD;
+-            *ascii_data++ = BASE64_PAD;
++            *asciiData++ = table_b2a_base64[(leftchar&3) << 4];
++            *asciiData++ = BASE64_PAD;
++            *asciiData++ = BASE64_PAD;
+         } else if (leftbits == 4) {
+-            *ascii_data++ = table_b2a_base64[(leftchar&0xf) << 2];
+-            *ascii_data++ = BASE64_PAD;
++            *asciiData++ = table_b2a_base64[(leftchar&0xf) << 2];
++            *asciiData++ = BASE64_PAD;
+         } 
+         /* Append a courtesy CRLF. */
+-        if (want_newlines) {
+-            *ascii_data++ = CR;
+-            *ascii_data++ = LF;
++        if (wantNewlines) {
++            *asciiData++ = CR;
++            *asciiData++ = LF;
+         }
+     
+         /* Save our line. */
+-        XMLRPC_TYPED_MEM_BLOCK_APPEND(char, env, output, line_buffer,
+-                                      ascii_data - &line_buffer[0]);
+-        XMLRPC_FAIL_IF_FAULT(env);
++        XMLRPC_MEMBLOCK_APPEND(char, envP, outputP, lineBuffer,
++                               asciiData - &lineBuffer[0]);
++        XMLRPC_FAIL_IF_FAULT(envP);
+     }
+  cleanup:
+-    if (env->fault_occurred) {
+-        if (output)
+-            xmlrpc_mem_block_free(output);
++    if (envP->fault_occurred) {
++        if (outputP)
++            xmlrpc_mem_block_free(outputP);
+         return NULL;
+     }
+-    return output;
++    return outputP;
+ }
++
+ xmlrpc_mem_block *
+-xmlrpc_base64_encode (xmlrpc_env *env, unsigned char *bin_data, size_t bin_len)
+-{
+-    return xmlrpc_base64_encode_internal(env, bin_data, bin_len, 1);
++xmlrpc_base64_encode(xmlrpc_env *          const envP,
++                     const unsigned char * const binData,
++                     size_t                const binLen) {
++
++    return base64Encode(envP, binData, binLen, true);
+ }
++
+ xmlrpc_mem_block *
+-xmlrpc_base64_encode_without_newlines (xmlrpc_env *env,
+-                                       unsigned char *bin_data,
+-                                       size_t bin_len)
+-{
+-    return xmlrpc_base64_encode_internal(env, bin_data, bin_len, 0);
++xmlrpc_base64_encode_without_newlines(xmlrpc_env *          const envP,
++                                      const unsigned char * const binData,
++                                      size_t                const binLen) {
++
++    return base64Encode(envP, binData, binLen, false);
+ }
++
+ xmlrpc_mem_block *
+-xmlrpc_base64_decode (xmlrpc_env * const env,
+-                      const char * const ascii_data,
+-                      size_t       const ascii_len) {
++xmlrpc_base64_decode(xmlrpc_env * const envP,
++                     const char * const asciiData,
++                     size_t       const acsiiLen) {
+-    unsigned char *bin_data;
++    unsigned char * binData;
+     int leftbits;
+-    unsigned char this_ch;
++    unsigned char thisCh;
+     unsigned int leftchar;
+     size_t npad;
+-    size_t bin_len, buffer_size;
+-    xmlrpc_mem_block *output;
+-    const char * next_char;
+-    size_t remaining_len;
++    size_t binLen, bufferSize;
++    xmlrpc_mem_block * outputP;
++    const char * nextCharP;
++    size_t remainingLen;
+     /* Create a block to hold our chunks when we finish them.
+     ** We overestimate the size now, and fix it later. */
+-    buffer_size = ((ascii_len+3)/4)*3;
+-    output = xmlrpc_mem_block_new(env, buffer_size);
+-    XMLRPC_FAIL_IF_FAULT(env);
++    bufferSize = ((acsiiLen + 3) / 4) * 3;
++    outputP = xmlrpc_mem_block_new(envP, bufferSize);
++    XMLRPC_FAIL_IF_FAULT(envP);
+     /* Set up our decoder state. */
+     leftbits = 0;
+     leftchar = 0;
+     npad = 0;
+-    bin_data = XMLRPC_TYPED_MEM_BLOCK_CONTENTS(unsigned char, output);
+-    bin_len = 0;
++    binData = XMLRPC_MEMBLOCK_CONTENTS(unsigned char, outputP);
++    binLen = 0;
+-    for (remaining_len = ascii_len, next_char = ascii_data;
+-         remaining_len > 0; 
+-         --remaining_len, ++next_char) {
++    for (remainingLen = acsiiLen, nextCharP = asciiData;
++         remainingLen > 0; 
++         --remainingLen, ++nextCharP) {
+         /* Skip some punctuation. */
+-        this_ch = (*next_char & 0x7f);
+-        if ( this_ch == '\r' || this_ch == '\n' || this_ch == ' ' )
++        thisCh = (*nextCharP & 0x7f);
++        if (thisCh == '\r' || thisCh == '\n' || thisCh == ' ')
+             continue;
+-        if ( this_ch == BASE64_PAD )
+-            npad++;
+-        this_ch = table_a2b_base64[(*next_char) & 0x7f];
++        if (thisCh == BASE64_PAD)
++            ++npad;
++        thisCh = table_a2b_base64[(*nextCharP) & 0x7f];
+         /* XXX - We just throw away invalid characters. Is this right? */
+-        if ( this_ch == (unsigned char) -1 ) continue;
++        if (thisCh == (unsigned char) -1)
++            continue;
+-        /* Shift it in on the low end, and see if there's
+-        ** a byte ready for output. */
+-        leftchar = (leftchar << 6) | (this_ch);
++        /* Shift it in on the low end, and see if there's a byte ready for
++           output.
++        */
++        leftchar = (leftchar << 6) | (thisCh);
+         leftbits += 6;
+-        if ( leftbits >= 8 ) {
++        if (leftbits >= 8) {
+             leftbits -= 8;
+-            XMLRPC_ASSERT(bin_len < buffer_size);
+-            *bin_data++ = (leftchar >> leftbits) & 0xFF;
++            XMLRPC_ASSERT(binLen < bufferSize);
++            *binData++ = (leftchar >> leftbits) & 0xFF;
+             leftchar &= ((1 << leftbits) - 1);
+-            bin_len++;
++            ++binLen;
+         }
+     }
+     /* Check that no bits are left. */
+-    if ( leftbits )
+-        XMLRPC_FAIL(env, XMLRPC_PARSE_ERROR, "Incorrect Base64 padding");
++    if (leftbits)
++        XMLRPC_FAIL(envP, XMLRPC_PARSE_ERROR, "Incorrect Base64 padding");
+     /* Check to make sure we have a sane amount of padding. */
+-    if (npad > bin_len || npad > 2)
+-        XMLRPC_FAIL(env, XMLRPC_PARSE_ERROR, "Malformed Base64 data");
++    if (npad > binLen || npad > 2)
++        XMLRPC_FAIL(envP, XMLRPC_PARSE_ERROR, "Malformed Base64 data");
+     /* Remove any padding and set the correct size. */
+-    bin_len -= npad;
+-    XMLRPC_TYPED_MEM_BLOCK_RESIZE(char, env, output, bin_len);
+-    XMLRPC_ASSERT(!env->fault_occurred);
+-
+-                      cleanup:
+-    if (env->fault_occurred) {
+-        if (output)
+-            xmlrpc_mem_block_free(output);
++    binLen -= npad;
++    XMLRPC_MEMBLOCK_RESIZE(char, envP, outputP, binLen);
++    XMLRPC_ASSERT(!envP->fault_occurred);
++
++                     cleanup:
++    if (envP->fault_occurred) {
++        if (outputP)
++            xmlrpc_mem_block_free(outputP);
+         return NULL;
+     }
+-    return output;
++    return outputP;
+ }
+diff --git a/libs/xmlrpc-c/src/xmlrpc_build.c b/libs/xmlrpc-c/src/xmlrpc_build.c
+index 19e2a55..b44f471 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_build.c
++++ b/libs/xmlrpc-c/src/xmlrpc_build.c
+@@ -17,16 +17,6 @@
+ #include "xmlrpc-c/string_int.h"
+-/*=========================================================================
+-**  Creating XML-RPC values.
+-**=========================================================================
+-**  Build new XML-RPC values from a format string. This code is heavily
+-**  inspired by Py_BuildValue from Python 1.5.2. In particular, our
+-**  particular abuse of the va_list data type is copied from the equivalent
+-**  Python code in modsupport.c. Since Python is portable, our code should
+-**  (in theory) also be portable.
+-*/
+-
+ static void
+ getString(xmlrpc_env *    const envP,
+@@ -35,11 +25,11 @@ getString(xmlrpc_env *    const envP,
+           xmlrpc_value ** const valPP) {
+     const char * str;
+-    unsigned int len;
++    size_t len;
+     
+     str = (const char*) va_arg(argsP->v, char*);
+-    if (**formatP == '#') {
+-        (*formatP)++;
++    if (*(*formatP) == '#') {
++        ++(*formatP);
+         len = (size_t) va_arg(argsP->v, size_t);
+     } else
+         len = strlen(str);
+@@ -399,10 +389,12 @@ xmlrpc_build_value(xmlrpc_env * const envP,
+     if (!envP->fault_occurred) {
+         if (*suffix != '\0')
+-            xmlrpc_env_set_fault_formatted(
+-                envP, XMLRPC_INTERNAL_ERROR, "Junk after the argument "
+-                "specifier: '%s'.  There must be exactly one arument.",
+-                suffix);
++            xmlrpc_faultf(envP, "Junk after the format specifier: '%s'.  "
++                          "The format string must describe exactly "
++                          "one XML-RPC value "
++                          "(but it might be a compound value "
++                          "such as an array)",
++                          suffix);
+     
+         if (envP->fault_occurred)
+             xmlrpc_DECREF(retval);
+diff --git a/libs/xmlrpc-c/src/xmlrpc_builddecomp.c b/libs/xmlrpc-c/src/xmlrpc_builddecomp.c
+deleted file mode 100644
+index e770652..0000000
+--- a/libs/xmlrpc-c/src/xmlrpc_builddecomp.c
++++ /dev/null
+@@ -1,973 +0,0 @@
+-/* Copyright information is at end of file */
+-
+-#include "xmlrpc_config.h"
+-
+-#include <stddef.h>
+-#include <stdlib.h>
+-#include <stdarg.h>
+-#include <string.h>
+-
+-#include "bool.h"
+-#include "xmlrpc-c/base.h"
+-#include "xmlrpc-c/base_int.h"
+-
+-/* Borrowed from Python 1.5.2.
+-** MPW pushes 'extended' for float and double types with varargs */
+-#ifdef MPW
+-typedef extended va_double;
+-#else
+-typedef double va_double;
+-#endif
+-
+-/* Borrowed from Python 1.5.2.
+-** Python copies its va_list objects before using them in certain
+-** tricky fashions. We don't why Python does this, but since we're
+-** abusing our va_list objects in a similar fashion, we'll copy them
+-** too. */
+-#if VA_LIST_IS_ARRAY
+-#define VA_LIST_COPY(dest,src) memcpy((dest), (src), sizeof(va_list))
+-#else
+-#if __sun
+-#define VA_LIST_COPY(dest,src) va_copy((dest),(src))
+-#else
+-#define VA_LIST_COPY(dest,src) ((dest) = (src))
+-#endif
+-#endif
+-
+-/*=========================================================================
+-**  Creating XML-RPC values.
+-**=========================================================================
+-**  Build new XML-RPC values from a format string. This code is heavily
+-**  inspired by Py_BuildValue from Python 1.5.2. In particular, our
+-**  particular abuse of the va_list data type is copied from the equivalent
+-**  Python code in modsupport.c. Since Python is portable, our code should
+-**  (in theory) also be portable.
+-*/
+-
+-
+-static void
+-getString(xmlrpc_env *    const envP,
+-          const char **   const formatP,
+-          va_list *       const args,
+-          xmlrpc_value ** const valPP) {
+-
+-    const char * str;
+-    unsigned int len;
+-    
+-    str = (const char*) va_arg(*args, char*);
+-    if (**formatP == '#') {
+-        (*formatP)++;
+-        len = (size_t) va_arg(*args, size_t);
+-    } else
+-        len = strlen(str);
+-
+-    *valPP = xmlrpc_string_new_lp(envP, len, str);
+-}
+-
+-
+-
+-#ifdef HAVE_UNICODE_WCHAR
+-static void
+-mkWideString(xmlrpc_env *    const envP,
+-             wchar_t *       const wcs,
+-             size_t          const wcs_len,
+-             xmlrpc_value ** const valPP) {
+-
+-    xmlrpc_value * valP;
+-    char *contents;
+-    wchar_t *wcs_contents;
+-    int block_is_inited;
+-    xmlrpc_mem_block *utf8_block;
+-    char *utf8_contents;
+-    size_t utf8_len;
+-
+-    /* Error-handling preconditions. */
+-    valP = NULL;
+-    utf8_block = NULL;
+-    block_is_inited = 0;
+-
+-    /* Initialize our XML-RPC value. */
+-    valP = (xmlrpc_value*) malloc(sizeof(xmlrpc_value));
+-    XMLRPC_FAIL_IF_NULL(valP, envP, XMLRPC_INTERNAL_ERROR,
+-                        "Could not allocate memory for wide string");
+-    valP->_refcount = 1;
+-    valP->_type = XMLRPC_TYPE_STRING;
+-
+-    /* More error-handling preconditions. */
+-    valP->_wcs_block = NULL;
+-
+-    /* Build our wchar_t block first. */
+-    valP->_wcs_block =
+-        XMLRPC_TYPED_MEM_BLOCK_NEW(wchar_t, envP, wcs_len + 1);
+-    XMLRPC_FAIL_IF_FAULT(envP);
+-    wcs_contents =
+-        XMLRPC_TYPED_MEM_BLOCK_CONTENTS(wchar_t, valP->_wcs_block);
+-    memcpy(wcs_contents, wcs, wcs_len * sizeof(wchar_t));
+-    wcs_contents[wcs_len] = '\0';
+-    
+-    /* Convert the wcs block to UTF-8. */
+-    utf8_block = xmlrpc_wcs_to_utf8(envP, wcs_contents, wcs_len + 1);
+-    XMLRPC_FAIL_IF_FAULT(envP);
+-    utf8_contents = XMLRPC_TYPED_MEM_BLOCK_CONTENTS(char, utf8_block);
+-    utf8_len = XMLRPC_TYPED_MEM_BLOCK_SIZE(char, utf8_block);
+-
+-    /* XXX - We need an extra memcopy to initialize _block. */
+-    XMLRPC_TYPED_MEM_BLOCK_INIT(char, envP, &valP->_block, utf8_len);
+-    XMLRPC_FAIL_IF_FAULT(envP);
+-    block_is_inited = 1;
+-    contents = XMLRPC_TYPED_MEM_BLOCK_CONTENTS(char, &valP->_block);
+-    memcpy(contents, utf8_contents, utf8_len);
+-
+- cleanup:
+-    if (utf8_block)
+-        xmlrpc_mem_block_free(utf8_block);
+-    if (envP->fault_occurred) {
+-        if (valP) {
+-            if (valP->_wcs_block)
+-                xmlrpc_mem_block_free(valP->_wcs_block);
+-            if (block_is_inited)
+-                xmlrpc_mem_block_clean(&valP->_block);
+-            free(valP);
+-        }
+-    }
+-    *valPP = valP;
+-}
+-#endif /* HAVE_UNICODE_WCHAR */
+-
+-
+-
+-static void
+-getWideString(xmlrpc_env *    const envP,
+-              const char **   const formatP,
+-              va_list *       const args,
+-              xmlrpc_value ** const valPP) {
+-#ifdef HAVE_UNICODE_WCHAR
+-
+-    wchar_t *wcs;
+-    size_t len;
+-    
+-    wcs = (wchar_t*) va_arg(*args, wchar_t*);
+-    if (**formatP == '#') {
+-        (*formatP)++;
+-        len = (size_t) va_arg(*args, size_t);
+-    } else
+-        len = wcslen(wcs);
+-
+-    mkWideString(envP, wcs, len, valPP);
+-
+-#endif /* HAVE_UNICODE_WCHAR */
+-}
+-
+-
+-
+-static void
+-getBase64(xmlrpc_env *    const envP,
+-          va_list *       const args,
+-          xmlrpc_value ** const valPP) {
+-
+-    unsigned char * value;
+-    size_t          length;
+-    
+-    value  = (unsigned char*) va_arg(*args, unsigned char*);
+-    length = (size_t)         va_arg(*args, size_t);
+-
+-    *valPP = xmlrpc_base64_new(envP, length, value);
+-}
+-
+-
+-
+-static void
+-getValue(xmlrpc_env *    const envP, 
+-         const char**    const format, 
+-         va_list *             args,
+-         xmlrpc_value ** const valPP);
+-
+-
+-
+-static void
+-getArray(xmlrpc_env *    const envP,
+-         const char **   const formatP,
+-         char            const delimiter,
+-         va_list *       const args,
+-         xmlrpc_value ** const arrayPP) {
+-
+-    xmlrpc_value * arrayP;
+-
+-    arrayP = xmlrpc_array_new(envP);
+-
+-    /* Add items to the array until we hit our delimiter. */
+-    
+-    while (**formatP != delimiter && !envP->fault_occurred) {
+-        
+-        xmlrpc_value * itemP;
+-        
+-        if (**formatP == '\0')
+-            xmlrpc_env_set_fault(
+-                envP, XMLRPC_INTERNAL_ERROR,
+-                "format string ended before closing ')'.");
+-        else {
+-            getValue(envP, formatP, args, &itemP);
+-            if (!envP->fault_occurred) {
+-                xmlrpc_array_append_item(envP, arrayP, itemP);
+-                xmlrpc_DECREF(itemP);
+-            }
+-        }
+-    }
+-    if (envP->fault_occurred)
+-        xmlrpc_DECREF(arrayP);
+-
+-    *arrayPP = arrayP;
+-}
+-
+-
+-
+-static void
+-getStructMember(xmlrpc_env *    const envP,
+-                const char **   const formatP,
+-                va_list *       const args,
+-                xmlrpc_value ** const keyPP,
+-                xmlrpc_value ** const valuePP) {
+-
+-
+-    /* Get the key */
+-    getValue(envP, formatP, args, keyPP);
+-    if (!envP->fault_occurred) {
+-        if (**formatP != ':')
+-            xmlrpc_env_set_fault(
+-                envP, XMLRPC_INTERNAL_ERROR,
+-                "format string does not have ':' after a "
+-                "structure member key.");
+-        else {
+-            /* Skip over colon that separates key from value */
+-            (*formatP)++;
+-            
+-            /* Get the value */
+-            getValue(envP, formatP, args, valuePP);
+-        }
+-        if (envP->fault_occurred)
+-            xmlrpc_DECREF(*keyPP);
+-    }
+-}
+-            
+-            
+-
+-static void
+-getStruct(xmlrpc_env *    const envP,
+-          const char **   const formatP,
+-          char            const delimiter,
+-          va_list *       const args,
+-          xmlrpc_value ** const structPP) {
+-
+-    xmlrpc_value * structP;
+-
+-    structP = xmlrpc_struct_new(envP);
+-    if (!envP->fault_occurred) {
+-        while (**formatP != delimiter && !envP->fault_occurred) {
+-            xmlrpc_value * keyP;
+-            xmlrpc_value * valueP;
+-            
+-            getStructMember(envP, formatP, args, &keyP, &valueP);
+-            
+-            if (!envP->fault_occurred) {
+-                if (**formatP == ',')
+-                    (*formatP)++;  /* Skip over the comma */
+-                else if (**formatP == delimiter) {
+-                    /* End of the line */
+-                } else 
+-                    xmlrpc_env_set_fault(
+-                        envP, XMLRPC_INTERNAL_ERROR,
+-                        "format string does not have ',' or ')' after "
+-                        "a structure member");
+-                
+-                if (!envP->fault_occurred)
+-                    /* Add the new member to the struct. */
+-                    xmlrpc_struct_set_value_v(envP, structP, keyP, valueP);
+-                
+-                xmlrpc_DECREF(valueP);
+-                xmlrpc_DECREF(keyP);
+-            }
+-        }
+-        if (envP->fault_occurred)
+-            xmlrpc_DECREF(structP);
+-    }
+-    *structPP = structP;
+-}
+-
+-
+-
+-static void
+-mkArrayFromVal(xmlrpc_env *    const envP, 
+-               xmlrpc_value *  const value,
+-               xmlrpc_value ** const valPP) {
+-
+-    if (xmlrpc_value_type(value) != XMLRPC_TYPE_ARRAY)
+-        xmlrpc_env_set_fault(envP, XMLRPC_INTERNAL_ERROR,
+-                             "Array format ('A'), non-array xmlrpc_value");
+-    else
+-        xmlrpc_INCREF(value);
+-
+-    *valPP = value;
+-}
+-
+-
+-
+-static void
+-mkStructFromVal(xmlrpc_env *    const envP, 
+-                xmlrpc_value *  const value,
+-                xmlrpc_value ** const valPP) {
+-
+-    if (xmlrpc_value_type(value) != XMLRPC_TYPE_STRUCT)
+-        xmlrpc_env_set_fault(envP, XMLRPC_INTERNAL_ERROR,
+-                             "Struct format ('S'), non-struct xmlrpc_value");
+-    else
+-        xmlrpc_INCREF(value);
+-
+-    *valPP = value;
+-}
+-
+-
+-
+-static void
+-getValue(xmlrpc_env *    const envP, 
+-         const char**    const formatP,
+-         va_list *       const args,
+-         xmlrpc_value ** const valPP) {
+-/*----------------------------------------------------------------------------
+-   Get the next value from the list.  *formatP points to the specifier
+-   for the next value in the format string (i.e. to the type code
+-   character) and we move *formatP past the whole specifier for the
+-   next value.  We read the required arguments from 'args'.  We return
+-   the value as *valPP with a reference to it.
+-
+-   For example, if *formatP points to the "i" in the string "sis",
+-   we read one argument from 'args' and return as *valP an integer whose
+-   value is the argument we read.  We advance *formatP to point to the
+-   last 's' and advance 'args' to point to the argument that belongs to
+-   that 's'.
+------------------------------------------------------------------------------*/
+-    char const formatChar = *(*formatP)++;
+-
+-    switch (formatChar) {
+-    case 'i':
+-        *valPP = 
+-            xmlrpc_int_new(envP, (xmlrpc_int32) va_arg(*args, xmlrpc_int32));
+-        break;
+-
+-    case 'b':
+-        *valPP = 
+-            xmlrpc_bool_new(envP, (xmlrpc_bool) va_arg(*args, xmlrpc_bool));
+-        break;
+-
+-    case 'd':
+-        *valPP =
+-            xmlrpc_double_new(envP, (double) va_arg(*args, va_double));
+-        break;
+-
+-    case 's':
+-        getString(envP, formatP, args, valPP);
+-        break;
+-
+-    case 'w':
+-        getWideString(envP, formatP, args, valPP);
+-        break;
+-
+-    /* The code 't' is reserved for a better, time_t based
+-       implementation of dateTime conversion.  
+-    */
+-    case '8':
+-        *valPP = 
+-            xmlrpc_datetime_new_str(envP, (char*) va_arg(*args, char*));
+-        break;
+-
+-    case '6':
+-        getBase64(envP, args, valPP);
+-        break;
+-
+-    case 'n':
+-        *valPP =
+-            xmlrpc_nil_new(envP);
+-        break;      
+-
+-    case 'p':
+-        /* We might someday want to use the code 'p!' to read in a
+-           cleanup function for this pointer. 
+-        */
+-        *valPP = 
+-            xmlrpc_cptr_new(envP, (void*) va_arg(*args, void*));
+-        break;      
+-
+-    case 'A':
+-        mkArrayFromVal(envP, (xmlrpc_value*) va_arg(*args, xmlrpc_value*),
+-                       valPP);
+-        break;
+-
+-    case 'S':
+-        mkStructFromVal(envP, (xmlrpc_value*) va_arg(*args, xmlrpc_value*),
+-                        valPP);
+-        break;
+-
+-    case 'V':
+-        *valPP = (xmlrpc_value*) va_arg(*args, xmlrpc_value*);
+-        xmlrpc_INCREF(*valPP);
+-        break;
+-
+-    case '(':
+-        getArray(envP, formatP, ')', args, valPP);
+-        if (!envP->fault_occurred) {
+-            XMLRPC_ASSERT(**formatP == ')');
+-            (*formatP)++;  /* Skip over closing parenthesis */
+-        }
+-        break;
+-
+-    case '{': 
+-        getStruct(envP, formatP, '}', args, valPP);
+-        if (!envP->fault_occurred) {
+-            XMLRPC_ASSERT(**formatP == '}');
+-            (*formatP)++;  /* Skip over closing brace */
+-        }
+-        break;
+-
+-    default: {
+-        const char * const badCharacter = xmlrpc_makePrintableChar(formatChar);
+-        xmlrpc_env_set_fault_formatted(
+-            envP, XMLRPC_INTERNAL_ERROR,
+-            "Unexpected character '%s' in format string", badCharacter);
+-        xmlrpc_strfree(badCharacter);
+-        }
+-    }
+-}
+-
+-
+-
+-void
+-xmlrpc_build_value_va(xmlrpc_env *    const envP,
+-                      const char *    const format,
+-                      va_list               args,
+-                      xmlrpc_value ** const valPP,
+-                      const char **   const tailP) {
+-
+-    const char * formatCursor;
+-    va_list args_copy;
+-
+-    XMLRPC_ASSERT_ENV_OK(envP);
+-    XMLRPC_ASSERT(format != NULL);
+-
+-    if (strlen(format) == 0)
+-        xmlrpc_env_set_fault_formatted(
+-            envP, XMLRPC_INTERNAL_ERROR, "Format string is empty.");
+-    else {
+-        formatCursor = &format[0];
+-        VA_LIST_COPY(args_copy, args);
+-        getValue(envP, &formatCursor, &args_copy, valPP);
+-        
+-        if (!envP->fault_occurred)
+-            XMLRPC_ASSERT_VALUE_OK(*valPP);
+-        
+-        *tailP = formatCursor;
+-    }
+-}
+-
+-
+-
+-xmlrpc_value * 
+-xmlrpc_build_value(xmlrpc_env * const envP,
+-                   const char * const format, 
+-                   ...) {
+-
+-    va_list args;
+-    xmlrpc_value* retval;
+-    const char * suffix;
+-
+-    va_start(args, format);
+-    xmlrpc_build_value_va(envP, format, args, &retval, &suffix);
+-    va_end(args);
+-
+-    if (!envP->fault_occurred) {
+-        if (*suffix != '\0')
+-            xmlrpc_env_set_fault_formatted(
+-                envP, XMLRPC_INTERNAL_ERROR, "Junk after the argument "
+-                "specifier: '%s'.  There must be exactly one arument.",
+-                suffix);
+-    
+-        if (envP->fault_occurred)
+-            xmlrpc_DECREF(retval);
+-    }
+-    return retval;
+-}
+-
+-
+-
+-
+-
+-/*=========================================================================
+-**  Parsing XML-RPC values.
+-**=========================================================================
+-**  Parse an XML-RPC value based on a format string. This code is heavily
+-**  inspired by Py_BuildValue from Python 1.5.2.
+-*/
+-
+-/* Prototype for recursive invocation: */
+-
+-static void 
+-decomposeValue(xmlrpc_env *   const env,
+-               xmlrpc_value * const val,
+-               const char **  const format,
+-               va_list *            args,
+-               xmlrpc_bool    const oldstyleMemMgmt);
+-
+-
+-
+-static void 
+-parsearray(xmlrpc_env *         const env,
+-           const xmlrpc_value * const array,
+-           const char **        const format,
+-           char                 const delimiter,
+-           va_list *                  args,
+-           xmlrpc_bool          const oldstyleMemMgmt) {
+-
+-    int size, i;
+-    xmlrpc_value *item;
+-
+-    /* Fetch the array size. */
+-    size = xmlrpc_array_size(env, array);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+-    /* Loop over the items in the array. */
+-    for (i = 0; i < size; i++) {
+-        /* Bail out if the caller didn't care about the rest of the items. */
+-        if (**format == '*')
+-            break;
+-
+-        item = xmlrpc_array_get_item(env, array, i);
+-        XMLRPC_FAIL_IF_FAULT(env);
+-
+-        XMLRPC_ASSERT(**format != '\0');
+-        if (**format == delimiter)
+-            XMLRPC_FAIL(env, XMLRPC_INDEX_ERROR, "Too many items in array");
+-        decomposeValue(env, item, format, args, oldstyleMemMgmt);
+-        XMLRPC_FAIL_IF_FAULT(env);
+-    }
+-    if (**format == '*')
+-        (*format)++;
+-    if (**format != delimiter)
+-        XMLRPC_FAIL(env, XMLRPC_INDEX_ERROR, "Not enough items in array");
+-
+-           cleanup:
+-    return;
+-}
+-
+-
+-
+-static void 
+-parsestruct(xmlrpc_env *   const env,
+-            xmlrpc_value * const strct,
+-            const char **  const format,
+-            char           const delimiter,
+-            va_list *            args,
+-            xmlrpc_bool    const oldstyleMemMgmt) {
+-
+-    xmlrpc_value *key, *value;
+-    char *keystr;
+-    size_t keylen;
+-
+-    /* Set up error handling preconditions. */
+-    key = NULL;
+-
+-    /* Build the members of our struct. */
+-    while (**format != '*' && **format != delimiter && **format != '\0') {
+-
+-        /* Get our key, and skip over the ':' character. Notice the
+-        ** sudden call to getValue--we're going in the opposite direction. */
+-        getValue(env, format, args, &key);
+-        XMLRPC_FAIL_IF_FAULT(env);
+-        XMLRPC_ASSERT(**format == ':');
+-        (*format)++;
+-
+-        /* Look up the value for our key. */
+-        xmlrpc_parse_value(env, key, "s#", &keystr, &keylen);
+-        XMLRPC_FAIL_IF_FAULT(env);
+-        value = xmlrpc_struct_get_value_n(env, strct, keystr, keylen);
+-        XMLRPC_FAIL_IF_FAULT(env);
+-
+-        /* Get our value, and skip over the ',' character (if present). */
+-        decomposeValue(env, value, format, args, oldstyleMemMgmt);
+-        XMLRPC_FAIL_IF_FAULT(env);
+-        XMLRPC_ASSERT(**format == ',' || **format == delimiter);
+-        if (**format == ',')
+-            (*format)++;
+-
+-        /* Release our reference, and restore our invariant. */
+-        xmlrpc_DECREF(key);
+-        key = NULL;
+-    }
+-    if (**format == '*') {
+-        (*format)++;
+-        if (**format != delimiter && **format != '\0')
+-            XMLRPC_FAIL(env, XMLRPC_INTERNAL_ERROR, 
+-                        "* can appear only at the end "
+-                        "of a structure format specifier");
+-    } else {
+-        /* Here we're supposed to fail if he didn't extract all the
+-           members.  But we don't know how to determine whether he
+-           specified all the members, so we always fail.
+-        */
+-        XMLRPC_FAIL(env, XMLRPC_INTERNAL_ERROR, "You must specify '*' as the "
+-                    "last member of a structure in a format specifier "
+-                    "used for parsing an xmlrpc_value"); 
+-    }
+-    XMLRPC_ASSERT(**format == delimiter || **format == '\0');
+-
+-cleanup:
+-    if (key)
+-        xmlrpc_DECREF(key);
+-}
+-
+-
+-static void
+-readString(xmlrpc_env *         const envP,
+-           const xmlrpc_value * const valueP,
+-           const char **        const stringValueP,
+-           xmlrpc_bool          const oldstyleMemMgmt) {
+-
+-    if (oldstyleMemMgmt) {
+-        xmlrpc_read_string_old(envP, valueP, stringValueP);
+-    } else
+-        xmlrpc_read_string(envP, valueP, stringValueP);
+-}
+-
+-
+-
+-static void
+-readStringLp(xmlrpc_env *         const envP,
+-             const xmlrpc_value * const valueP,
+-             size_t *             const lengthP,
+-             const char **        const stringValueP,
+-             xmlrpc_bool          const oldstyleMemMgmt) {
+-
+-    if (oldstyleMemMgmt) {
+-        xmlrpc_read_string_lp_old(envP, valueP, lengthP, stringValueP);
+-    } else
+-        xmlrpc_read_string_lp(envP, valueP, lengthP, stringValueP);
+-}
+-
+-
+-
+-#ifdef HAVE_UNICODE_WCHAR
+-static void
+-readStringW(xmlrpc_env *     const envP,
+-            xmlrpc_value *   const valueP,
+-            const wchar_t ** const stringValueP,
+-            xmlrpc_bool      const oldstyleMemMgmt) {
+-
+-    if (oldstyleMemMgmt) {
+-        xmlrpc_read_string_w_old(envP, valueP, stringValueP);
+-    } else
+-        xmlrpc_read_string_w(envP, valueP, stringValueP);
+-}
+-
+-
+-
+-static void
+-readStringWLp(xmlrpc_env *     const envP,
+-              xmlrpc_value *   const valueP,
+-              size_t *         const lengthP,
+-              const wchar_t ** const stringValueP,
+-              xmlrpc_bool      const oldstyleMemMgmt) {
+-
+-    if (oldstyleMemMgmt) {
+-        xmlrpc_read_string_w_lp_old(envP, valueP, lengthP, stringValueP);
+-    } else
+-        xmlrpc_read_string_w_lp(envP, valueP, lengthP, stringValueP);
+-}
+-#endif
+-
+-
+-static void
+-readDatetimeStr(xmlrpc_env *         const envP,
+-                const xmlrpc_value * const valueP,
+-                const char **        const stringValueP,
+-                xmlrpc_bool          const oldstyleMemMgmt) {
+-
+-    if (oldstyleMemMgmt)
+-        xmlrpc_read_datetime_str_old(envP, valueP, stringValueP);
+-    else
+-        xmlrpc_read_datetime_str(envP, valueP, stringValueP);
+-}
+-
+-
+-
+-static void
+-readBase64(xmlrpc_env *           const envP,
+-           const xmlrpc_value *   const valueP,
+-           size_t *               const lengthP,
+-           const unsigned char ** const byteStringValueP,
+-           xmlrpc_bool            const oldstyleMemMgmt) {
+-
+-    if (oldstyleMemMgmt)
+-        xmlrpc_read_base64_old(envP, valueP, lengthP, byteStringValueP);
+-    else
+-        xmlrpc_read_base64(envP, valueP, lengthP, byteStringValueP);
+-}
+-
+-
+-
+-static void 
+-decomposeValue(xmlrpc_env *   const envP,
+-               xmlrpc_value * const valueP,
+-               const char **  const format,
+-               va_list *            args,
+-               xmlrpc_bool    const oldstyleMemMgmt) {
+-
+-    char formatSpecChar;
+-
+-    formatSpecChar = *(*format)++;
+-
+-    switch (formatSpecChar) {
+-    case 'i': {
+-        xmlrpc_int32 * const int32ptr = 
+-            (xmlrpc_int32*) va_arg(*args, xmlrpc_int32*);
+-        xmlrpc_read_int(envP, valueP, int32ptr);
+-        }
+-    break;
+-
+-    case 'b': {
+-        xmlrpc_bool * const boolptr =
+-            (xmlrpc_bool*) va_arg(*args, xmlrpc_bool*);
+-        xmlrpc_read_bool(envP, valueP, boolptr);
+-    }
+-    break;
+-
+-    case 'd': {
+-        double * const doubleptr = (double*) va_arg(*args, double*);
+-        xmlrpc_read_double(envP, valueP, doubleptr);
+-    }
+-    break;
+-
+-    case '8': {
+-        /* The code 't' is reserved for a better, time_t based
+-           implementation of dateTime conversion. 
+-        */
+-        const char ** const strptr = (const char**) va_arg(*args, char**);
+-        readDatetimeStr(envP, valueP, strptr, oldstyleMemMgmt);
+-    }
+-    break;
+-
+-    case 's': {
+-        const char ** const strptr = (const char**) va_arg(*args, char**);
+-        if (**format == '#') {
+-            size_t * const sizeptr = (size_t*) va_arg(*args, size_t**);
+-            (*format)++;
+-
+-            readStringLp(envP, valueP, sizeptr, strptr, oldstyleMemMgmt);
+-        } else
+-            readString(envP, valueP, strptr, oldstyleMemMgmt);
+-    }
+-    break;
+-
+-    case 'w': {
+-#ifdef HAVE_UNICODE_WCHAR
+-        const wchar_t ** const wcsptr = 
+-            (const wchar_t**) va_arg(*args, wchar_t**);
+-        if (**format == '#') {
+-            size_t * const sizeptr = (size_t*) va_arg(*args, size_t**);
+-            (*format)++;
+-            readStringWLp(envP, valueP, sizeptr, wcsptr, oldstyleMemMgmt);
+-        } else
+-            readStringW(envP, valueP, wcsptr, oldstyleMemMgmt);
+-#else
+-        xmlrpc_env_set_fault_formatted(
+-            envP, XMLRPC_INTERNAL_ERROR,
+-            "This XML-RPC For C/C++ library was built without Unicode "
+-            "wide character capability.  'w' isn't available.");
+-#endif /* HAVE_UNICODE_WCHAR */
+-    }
+-    break;
+-        
+-    case '6': {
+-        const unsigned char ** const binptr =
+-            (const unsigned char**) va_arg(*args, unsigned char**);
+-        size_t * const sizeptr = (size_t*) va_arg(*args, size_t**);        
+-        readBase64(envP, valueP, sizeptr, binptr, oldstyleMemMgmt);
+-    }
+-    break;
+-
+-    case 'n': {
+-        xmlrpc_read_nil(envP, valueP);
+-    }
+-    break;
+-
+-    case 'p': {
+-        void ** const voidptrptr = (void**) va_arg(*args, void**);
+-        xmlrpc_read_cptr(envP, valueP, voidptrptr);
+-    }
+-    break;
+-
+-    case 'V': {
+-        xmlrpc_value ** const valptr =
+-            (xmlrpc_value**) va_arg(*args, xmlrpc_value**);
+-        *valptr = valueP;
+-        if (!oldstyleMemMgmt)
+-            xmlrpc_INCREF(valueP);
+-    }
+-    break;
+-
+-    case 'A':
+-        if (xmlrpc_value_type(valueP) != XMLRPC_TYPE_ARRAY)
+-            xmlrpc_env_set_fault_formatted(
+-                envP, XMLRPC_TYPE_ERROR, "Non-array type supplied for "
+-                "'A' specifier");
+-        else {
+-            xmlrpc_value ** const valptr =
+-                (xmlrpc_value**) va_arg(*args, xmlrpc_value**);
+-            *valptr = valueP;
+-            if (!oldstyleMemMgmt)
+-                xmlrpc_INCREF(valueP);
+-        }
+-        break;
+-
+-    case 'S':
+-        if (xmlrpc_value_type(valueP) != XMLRPC_TYPE_STRUCT)
+-            xmlrpc_env_set_fault_formatted(
+-                envP, XMLRPC_TYPE_ERROR, "Non-struct type supplied for "
+-                "'S' specifier");
+-        else {
+-            xmlrpc_value ** const valptr =
+-                (xmlrpc_value**) va_arg(*args, xmlrpc_value**);
+-            *valptr = valueP;
+-            if (!oldstyleMemMgmt)
+-                xmlrpc_INCREF(valueP);
+-        }
+-        break;
+-
+-    case '(':
+-        if (xmlrpc_value_type(valueP) != XMLRPC_TYPE_ARRAY)
+-            xmlrpc_env_set_fault_formatted(
+-                envP, XMLRPC_TYPE_ERROR, "Non-array type supplied for "
+-                "'()' specifier");
+-        else {
+-            parsearray(envP, valueP, format, ')', args, oldstyleMemMgmt);
+-            (*format)++;
+-        }
+-        break;
+-
+-    case '{':
+-        if (xmlrpc_value_type(valueP) != XMLRPC_TYPE_STRUCT)
+-            xmlrpc_env_set_fault_formatted(
+-                envP, XMLRPC_TYPE_ERROR, "Non-struct type supplied for "
+-                "'{}' specifier");
+-        else {
+-            parsestruct(envP, valueP, format, '}', args, oldstyleMemMgmt);
+-            (*format)++;
+-        }
+-        break;
+-
+-    default:
+-        xmlrpc_env_set_fault_formatted(
+-            envP, XMLRPC_INTERNAL_ERROR, "Invalid format character '%c'",
+-            formatSpecChar);
+-    }
+-}
+-
+-
+-
+-void 
+-xmlrpc_decompose_value_va(xmlrpc_env *   const envP,
+-                          xmlrpc_value * const value,
+-                          const char *   const format,
+-                          va_list              args) {
+-
+-    const char *format_copy;
+-    va_list args_copy;
+-
+-    XMLRPC_ASSERT_ENV_OK(envP);
+-    XMLRPC_ASSERT_VALUE_OK(value);
+-    XMLRPC_ASSERT(format != NULL);
+-
+-    format_copy = format;
+-    VA_LIST_COPY(args_copy, args);
+-    decomposeValue(envP, value, &format_copy, &args_copy, FALSE);
+-    if (!envP->fault_occurred) {
+-        XMLRPC_ASSERT(*format_copy == '\0');
+-    }
+-}
+-
+-
+-
+-void 
+-xmlrpc_decompose_value(xmlrpc_env *   const envP,
+-                       xmlrpc_value * const value,
+-                       const char *   const format, 
+-                       ...) {
+-
+-    va_list args;
+-
+-    va_start(args, format);
+-    xmlrpc_decompose_value_va(envP, value, format, args);
+-    va_end(args);
+-}
+-
+-
+-
+-void 
+-xmlrpc_parse_value_va(xmlrpc_env *   const envP,
+-                      xmlrpc_value * const value,
+-                      const char *   const format,
+-                      va_list              args) {
+-
+-    const char *format_copy;
+-    va_list args_copy;
+-
+-    XMLRPC_ASSERT_ENV_OK(envP);
+-    XMLRPC_ASSERT_VALUE_OK(value);
+-    XMLRPC_ASSERT(format != NULL);
+-
+-    format_copy = format;
+-    VA_LIST_COPY(args_copy, args);
+-    decomposeValue(envP, value, &format_copy, &args_copy, TRUE);
+-    if (!envP->fault_occurred) {
+-        XMLRPC_ASSERT(*format_copy == '\0');
+-    }
+-}
+-
+-
+-
+-void 
+-xmlrpc_parse_value(xmlrpc_env *   const envP,
+-                   xmlrpc_value * const value,
+-                   const char *   const format, 
+-                   ...) {
+-
+-    va_list args;
+-
+-    va_start(args, format);
+-    xmlrpc_parse_value_va(envP, value, format, args);
+-    va_end(args);
+-}
+-
+-
+-
+-/* Copyright (C) 2001 by First Peer, Inc. All rights reserved.
+-** Copyright (C) 2001 by Eric Kidd. All rights reserved.
+-**
+-** Redistribution and use in source and binary forms, with or without
+-** modification, are permitted provided that the following conditions
+-** are met:
+-** 1. Redistributions of source code must retain the above copyright
+-**    notice, this list of conditions and the following disclaimer.
+-** 2. Redistributions in binary form must reproduce the above copyright
+-**    notice, this list of conditions and the following disclaimer in the
+-**    documentation and/or other materials provided with the distribution.
+-** 3. The name of the author may not be used to endorse or promote products
+-**    derived from this software without specific prior written permission. 
+-**  
+-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+-** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-** ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+-** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-** SUCH DAMAGE. */
+diff --git a/libs/xmlrpc-c/src/xmlrpc_client.c b/libs/xmlrpc-c/src/xmlrpc_client.c
+index 88f3dcf..e87c6f3 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_client.c
++++ b/libs/xmlrpc-c/src/xmlrpc_client.c
+@@ -1,5 +1,7 @@
+ /* Copyright information is at end of file */
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
++
+ #include "xmlrpc_config.h"
+ #undef PACKAGE
+@@ -40,6 +42,7 @@ struct xmlrpc_client {
+     struct xmlrpc_client_transport *   transportP;
+     struct xmlrpc_client_transport_ops transportOps;
+     xmlrpc_dialect                     dialect;
++    xmlrpc_progress_fn *               progressFn;
+ };
+@@ -54,17 +57,21 @@ struct xmlrpc_call_info {
+        storage, and we need to keep this info in our own.
+     */
++    void * userHandle;
++        /* This is a handle for this call that is meaningful to our
++           user.
++        */
++    xmlrpc_progress_fn * progressFn;
+     struct {
+-        /* This are arguments to pass to the completion function.  It
++        /* These are arguments to pass to the completion function.  It
+            doesn't make sense to use them for anything else.  In fact, it
+            really doesn't make sense for them to be arguments to the
+            completion function, but they are historically.  */
+         const char *   serverUrl;
+         const char *   methodName;
+         xmlrpc_value * paramArrayP;
+-        void *         userData;
+     } completionArgs;
+-    xmlrpc_response_handler completionFn;
++    xmlrpc_response_handler * completionFn;
+     
+     /* The serialized XML data passed to this call. We keep this around
+@@ -187,6 +194,17 @@ unsigned int const xmlrpc_client_version_major = XMLRPC_VERSION_MAJOR;
+ unsigned int const xmlrpc_client_version_minor = XMLRPC_VERSION_MINOR;
+ unsigned int const xmlrpc_client_version_point = XMLRPC_VERSION_POINT;
++void
++xmlrpc_client_version(unsigned int * const majorP,
++                      unsigned int * const minorP,
++                      unsigned int * const pointP) {
++
++    *majorP = XMLRPC_VERSION_MAJOR;
++    *minorP = XMLRPC_VERSION_MINOR;
++    *pointP = XMLRPC_VERSION_POINT;
++}
++
++
+ /*=========================================================================
+    Client Create/Destroy
+@@ -201,15 +219,15 @@ getTransportOps(
+     if (false) {
+     }
+ #if MUST_BUILD_WININET_CLIENT
+-    else if (strcmp(transportName, "wininet") == 0)
++    else if (xmlrpc_streq(transportName, "wininet"))
+         *opsPP = &xmlrpc_wininet_transport_ops;
+ #endif
+ #if MUST_BUILD_CURL_CLIENT
+-    else if (strcmp(transportName, "curl") == 0)
++    else if (xmlrpc_streq(transportName, "curl"))
+         *opsPP = &xmlrpc_curl_transport_ops;
+ #endif
+ #if MUST_BUILD_LIBWWW_CLIENT
+-    else if (strcmp(transportName, "libwww") == 0)
++    else if (xmlrpc_streq(transportName, "libwww"))
+         *opsPP = &xmlrpc_libwww_transport_ops;
+ #endif
+     else
+@@ -334,6 +352,7 @@ clientCreate(
+     const struct xmlrpc_client_transport_ops * const transportOpsP,
+     struct xmlrpc_client_transport *           const transportP,
+     xmlrpc_dialect                             const dialect,
++    xmlrpc_progress_fn *                       const progressFn,
+     xmlrpc_client **                           const clientPP) {
+     XMLRPC_ASSERT_PTR_OK(transportOpsP);
+@@ -360,6 +379,7 @@ clientCreate(
+             clientP->transportOps = *transportOpsP;
+             clientP->transportP   = transportP;
+             clientP->dialect      = dialect;
++            clientP->progressFn   = progressFn;
+             
+             *clientPP = clientP;
+         }
+@@ -370,15 +390,16 @@ clientCreate(
+ static void
+ createTransportAndClient(
+-    xmlrpc_env *     const envP,
+-    const char *     const transportName,
+-    const void *     const transportparmsP,
+-    size_t           const transportparmSize,
+-    int              const flags,
+-    const char *     const appname,
+-    const char *     const appversion,
+-    xmlrpc_dialect   const dialect,
+-    xmlrpc_client ** const clientPP) {
++    xmlrpc_env *         const envP,
++    const char *         const transportName,
++    const void *         const transportparmsP,
++    size_t               const transportparmSize,
++    int                  const flags,
++    const char *         const appname,
++    const char *         const appversion,
++    xmlrpc_dialect       const dialect,
++    xmlrpc_progress_fn * const progressFn,
++    xmlrpc_client **     const clientPP) {
+     const struct xmlrpc_client_transport_ops * transportOpsP;
+@@ -395,7 +416,7 @@ createTransportAndClient(
+             bool const myTransportTrue = true;
+             clientCreate(envP, myTransportTrue, transportOpsP, transportP,
+-                         dialect, clientPP);
++                         dialect, progressFn, clientPP);
+             
+             if (envP->fault_occurred)
+                 transportOpsP->destroy(transportP);
+@@ -429,11 +450,15 @@ xmlrpc_client_create(xmlrpc_env *                      const envP,
+         const struct xmlrpc_client_transport_ops * transportOpsP;
+         xmlrpc_client_transport * transportP;
+         xmlrpc_dialect dialect;
+-        
++        xmlrpc_progress_fn * progressFn;
++
+         getTransportInfo(envP, clientparmsP, parmSize, &transportName, 
+                          &transportparms, &transportOpsP, &transportP);
+         
+         getDialectFromClientParms(clientparmsP, parmSize, &dialect);
++
++        progressFn = parmSize >= XMLRPC_CPSIZE(progressFn) ?
++            clientparmsP->progressFn : NULL;
+             
+         if (!envP->fault_occurred) {
+             if (transportName)
+@@ -441,11 +466,13 @@ xmlrpc_client_create(xmlrpc_env *                      const envP,
+                                          transportparms.parmsP,
+                                          transportparms.size,
+                                          flags, appname, appversion, dialect,
++                                         progressFn,
+                                          clientPP);
+             else {
+                 bool myTransportFalse = false;
+                 clientCreate(envP, myTransportFalse,
+-                             transportOpsP, transportP, dialect, clientPP);
++                             transportOpsP, transportP, dialect, progressFn,
++                             clientPP);
+             }
+         }
+     }
+@@ -607,58 +634,139 @@ xmlrpc_client_call2(xmlrpc_env *               const envP,
+ static void
+-clientCall2f_va(xmlrpc_env *               const envP,
+-                xmlrpc_client *            const clientP,
+-                const char *               const serverUrl,
+-                const char *               const methodName,
+-                const char *               const format,
+-                xmlrpc_value **            const resultPP,
+-                va_list                          args) {
+-
+-    xmlrpc_value * argP;
+-    xmlrpc_env argenv;
+-    const char * suffix;
++computeParamArray(xmlrpc_env *    const envP,
++                  const char *    const format,
++                  va_list               args,
++                  xmlrpc_value ** const paramArrayPP) {
++/*----------------------------------------------------------------------------
++   'format' and 'args' specify the parameter list of an RPC, in the form
++   of an XML-RPC array value, with one element per RPC parameter.
+-    XMLRPC_ASSERT_ENV_OK(envP);
+-    XMLRPC_ASSERT_PTR_OK(serverUrl);
+-    XMLRPC_ASSERT_PTR_OK(methodName);
+-    XMLRPC_ASSERT_PTR_OK(format);
+-    XMLRPC_ASSERT_PTR_OK(resultPP);
++   'format' is an XML-RPC value format string, e.g. "(ii{s:i,s:i})".
++   'args' is the list of substitution values for that string
++   (6 values in this example, 4 integers and 2 strings).
++
++   We return the XML-RPC value 'format' and 'args' represent, but throw an
++   error if they don't validly specify a single array.
+-    /* Build our argument value. */
+-    xmlrpc_env_init(&argenv);
+-    xmlrpc_build_value_va(&argenv, format, args, &argP, &suffix);
+-    if (argenv.fault_occurred)
++   Note that it is a common user error to specify the format string as a
++   single or string of argument types, instead of as an array of argument
++   types.  E.g. "i" or "ii" instead of "(i)" and "(ii)".  So we try
++   especially hard to give an informative message for that case.
++-----------------------------------------------------------------------------*/
++    xmlrpc_env env;
++    xmlrpc_value * paramArrayP;
++    const char * suffix;
++        /* Stuff left over in format string after parameter array
++           specification.
++        */
++
++    xmlrpc_env_init(&env);
++    xmlrpc_build_value_va(&env, format, args, &paramArrayP, &suffix);
++    if (env.fault_occurred)
+         xmlrpc_env_set_fault_formatted(
+-            envP, argenv.fault_code, "Invalid RPC arguments.  "
+-            "The format argument must indicate a single array, and the "
++            envP, env.fault_code, "Invalid RPC arguments.  "
++            "The format argument must indicate a single array (each element "
++            "of which is one argument to the XML-RPC call), and the "
+             "following arguments must correspond to that format argument.  "
+             "The failure is: %s",
+-            argenv.fault_string);
++            env.fault_string);
+     else {
+-        XMLRPC_ASSERT_VALUE_OK(argP);
++        XMLRPC_ASSERT_VALUE_OK(paramArrayP);
+         
+         if (*suffix != '\0')
+-            xmlrpc_faultf(envP, "Junk after the argument specifier: '%s'.  "
+-                          "There must be exactly one argument.",
++            xmlrpc_faultf(envP,
++                          "Junk after the parameter array specifier: '%s'.  "
++                          "The format string must specify exactly one value: "
++                          "an array of RPC parameters",
+                           suffix);
+         else {
+-            xmlrpc_server_info * serverInfoP;
++            if (xmlrpc_value_type(paramArrayP) != XMLRPC_TYPE_ARRAY)
++                xmlrpc_faultf(
++                    envP,
++                    "You must specify the parameter list as an "
++                    "XML-RPC array value, "
++                    "each element of which is a parameter of the RPC.  "
++                    "But your format string specifies an XML-RPC %s, not "
++                    "an array",
++                    xmlrpc_type_name(xmlrpc_value_type(paramArrayP)));
++        }
++        if (env.fault_occurred)
++            xmlrpc_DECREF(paramArrayP);
++        else
++            *paramArrayPP = paramArrayP;
++    }
++    xmlrpc_env_clean(&env);
++}
++
++
++
++void
++xmlrpc_client_call_server2_va(xmlrpc_env *               const envP,
++                              struct xmlrpc_client *     const clientP,
++                              const xmlrpc_server_info * const serverInfoP,
++                              const char *               const methodName,
++                              const char *               const format,
++                              va_list                          args,
++                              xmlrpc_value **            const resultPP) {
++
++    /* This function exists only for use by the global client function
++       xmlrpc_client_call_server().
++    */
++
++    xmlrpc_value * paramArrayP;
++        /* The XML-RPC parameter list array */
++
++    computeParamArray(envP, format, args, &paramArrayP);
++
++    if (!envP->fault_occurred) {
++        xmlrpc_client_call2(envP, clientP,
++                            serverInfoP, methodName, paramArrayP,
++                            resultPP);
++
++        xmlrpc_DECREF(paramArrayP);
++    }        
++}
++
++
++
++void
++xmlrpc_client_call2f_va(xmlrpc_env *               const envP,
++                        xmlrpc_client *            const clientP,
++                        const char *               const serverUrl,
++                        const char *               const methodName,
++                        const char *               const format,
++                        xmlrpc_value **            const resultPP,
++                        va_list                          args) {
+-            serverInfoP = xmlrpc_server_info_new(envP, serverUrl);
++    xmlrpc_value * paramArrayP;
++        /* The XML-RPC parameter list array */
++
++    XMLRPC_ASSERT_ENV_OK(envP);
++    XMLRPC_ASSERT_PTR_OK(clientP);
++    XMLRPC_ASSERT_PTR_OK(serverUrl);
++    XMLRPC_ASSERT_PTR_OK(methodName);
++    XMLRPC_ASSERT_PTR_OK(format);
++    XMLRPC_ASSERT_PTR_OK(resultPP);
++
++    computeParamArray(envP, format, args, &paramArrayP);
++
++    if (!envP->fault_occurred) {
++        xmlrpc_server_info * serverInfoP;
++
++        serverInfoP = xmlrpc_server_info_new(envP, serverUrl);
+             
+-            if (!envP->fault_occurred) {
+-                /* Perform the actual XML-RPC call. */
+-                xmlrpc_client_call2(envP, clientP,
+-                                    serverInfoP, methodName, argP, resultPP);
+-                if (!envP->fault_occurred)
+-                    XMLRPC_ASSERT_VALUE_OK(*resultPP);
+-                xmlrpc_server_info_free(serverInfoP);
+-            }
++        if (!envP->fault_occurred) {
++            /* Perform the actual XML-RPC call. */
++            xmlrpc_client_call2(envP, clientP,
++                                serverInfoP, methodName, paramArrayP,
++                                resultPP);
++            if (!envP->fault_occurred)
++                XMLRPC_ASSERT_VALUE_OK(*resultPP);
++            xmlrpc_server_info_free(serverInfoP);
+         }
+-        xmlrpc_DECREF(argP);
++        xmlrpc_DECREF(paramArrayP);
+     }
+-    xmlrpc_env_clean(&argenv);
+ }
+@@ -674,9 +782,11 @@ xmlrpc_client_call2f(xmlrpc_env *    const envP,
+     va_list args;
++    XMLRPC_ASSERT_PTR_OK(format);
++
+     va_start(args, format);
+-    clientCall2f_va(envP, clientP, serverUrl,
+-                    methodName, format, resultPP, args);
++    xmlrpc_client_call2f_va(envP, clientP, serverUrl,
++                            methodName, format, resultPP, args);
+     va_end(args);
+ }
+@@ -693,10 +803,15 @@ callInfoSetCompletion(xmlrpc_env *              const envP,
+                       const char *              const methodName,
+                       xmlrpc_value *            const paramArrayP,
+                       xmlrpc_response_handler         completionFn,
+-                      void *                    const userData) {
+-
++                      xmlrpc_progress_fn              progressFn,
++                      void *                    const userHandle) {
++/*----------------------------------------------------------------------------
++   Set the members of callinfo structure *callInfoP that are used for
++   the completion and progress calls from the transport to us.
++-----------------------------------------------------------------------------*/
+     callInfoP->completionFn = completionFn;
+-    callInfoP->completionArgs.userData = userData;
++    callInfoP->progressFn   = progressFn;
++    callInfoP->userHandle   = userHandle;
+     callInfoP->completionArgs.serverUrl = strdup(serverUrl);
+     if (callInfoP->completionArgs.serverUrl == NULL)
+         xmlrpc_faultf(envP, "Couldn't get memory to store server URL");
+@@ -722,7 +837,8 @@ callInfoCreate(xmlrpc_env *               const envP,
+                xmlrpc_dialect             const dialect,
+                const char *               const serverUrl,
+                xmlrpc_response_handler          completionFn,
+-               void *                     const userData,
++               xmlrpc_progress_fn               progressFn,
++               void *                     const userHandle,
+                struct xmlrpc_call_info ** const callInfoPP) {
+ /*----------------------------------------------------------------------------
+    Create a call_info object.  A call_info object represents an XML-RPC
+@@ -744,21 +860,17 @@ callInfoCreate(xmlrpc_env *               const envP,
+         makeCallXml(envP, methodName, paramArrayP, dialect, &callXmlP);
+         if (!envP->fault_occurred) {
+-            xmlrpc_traceXml("XML-RPC CALL", 
+-                            XMLRPC_MEMBLOCK_CONTENTS(char, callXmlP),
+-                            XMLRPC_MEMBLOCK_SIZE(char, callXmlP));
+-            
+             callInfoP->serialized_xml = callXmlP;
+             
+-            *callInfoPP = callInfoP;
+-
+             callInfoSetCompletion(envP, callInfoP, serverUrl, methodName,
+-                                  paramArrayP, completionFn, userData);
++                                  paramArrayP,
++                                  completionFn, progressFn, userHandle);
+             if (envP->fault_occurred)
+                 free(callInfoP);
+         }
+     }
++    *callInfoPP = callInfoP;
+ }
+@@ -804,6 +916,15 @@ xmlrpc_client_event_loop_finish_timeout(xmlrpc_client * const clientP,
++/* Microsoft Visual C in debug mode produces code that complains about
++   passing an undefined value of 'resultP' to xmlrpc_parse_response2().
++   It's a bogus complaint, because this function knows in those cases
++   that the value of 'resultP' is meaningless.  So we disable the check.
++*/
++#pragma runtime_checks("u", off)
++
++
++
+ static void
+ asynchComplete(struct xmlrpc_call_info * const callInfoP,
+                xmlrpc_mem_block *        const responseXmlP,
+@@ -825,8 +946,6 @@ asynchComplete(struct xmlrpc_call_info * const callInfoP,
+     xmlrpc_env_init(&env);
+-    resultP = NULL;  /* Just to quiet compiler warning */
+-
+     if (transportEnv.fault_occurred)
+         xmlrpc_env_set_fault_formatted(
+             &env, transportEnv.fault_code,
+@@ -855,7 +974,7 @@ asynchComplete(struct xmlrpc_call_info * const callInfoP,
+     (*callInfoP->completionFn)(callInfoP->completionArgs.serverUrl, 
+                                callInfoP->completionArgs.methodName, 
+                                callInfoP->completionArgs.paramArrayP,
+-                               callInfoP->completionArgs.userData,
++                               callInfoP->userHandle,
+                                &env, resultP);
+     if (!env.fault_occurred)
+@@ -868,14 +987,32 @@ asynchComplete(struct xmlrpc_call_info * const callInfoP,
++#pragma runtime_checks("u", restore)
++
++
++
++static void
++progress(struct xmlrpc_call_info *    const callInfoP,
++         struct xmlrpc_progress_data  const progressData) {
++
++    /* We wouldn't have asked the transport to call our progress
++       function if we didn't have a user progress function to call:
++    */
++    assert(callInfoP->progressFn);
++
++    callInfoP->progressFn(callInfoP->userHandle, progressData);
++}
++
++
++
+ void
+-xmlrpc_client_start_rpc(xmlrpc_env *             const envP,
+-                        struct xmlrpc_client *   const clientP,
+-                        xmlrpc_server_info *     const serverInfoP,
+-                        const char *             const methodName,
+-                        xmlrpc_value *           const argP,
+-                        xmlrpc_response_handler        completionFn,
+-                        void *                   const userData) {
++xmlrpc_client_start_rpc(xmlrpc_env *               const envP,
++                        struct xmlrpc_client *     const clientP,
++                        const xmlrpc_server_info * const serverInfoP,
++                        const char *               const methodName,
++                        xmlrpc_value *             const paramArrayP,
++                        xmlrpc_response_handler          completionFn,
++                        void *                     const userHandle) {
+     
+     struct xmlrpc_call_info * callInfoP;
+@@ -883,18 +1020,25 @@ xmlrpc_client_start_rpc(xmlrpc_env *             const envP,
+     XMLRPC_ASSERT_PTR_OK(clientP);
+     XMLRPC_ASSERT_PTR_OK(serverInfoP);
+     XMLRPC_ASSERT_PTR_OK(methodName);
+-    XMLRPC_ASSERT_VALUE_OK(argP);
++    XMLRPC_ASSERT_VALUE_OK(paramArrayP);
+-    callInfoCreate(envP, methodName, argP, clientP->dialect,
+-                   serverInfoP->serverUrl, completionFn, userData,
++    callInfoCreate(envP, methodName, paramArrayP, clientP->dialect,
++                   serverInfoP->serverUrl,
++                   completionFn, clientP->progressFn, userHandle,
+                    &callInfoP);
+-    if (!envP->fault_occurred)
++    if (!envP->fault_occurred) {
++        xmlrpc_traceXml(
++            "XML-RPC CALL", 
++            XMLRPC_MEMBLOCK_CONTENTS(char, callInfoP->serialized_xml),
++            XMLRPC_MEMBLOCK_SIZE(char, callInfoP->serialized_xml));
++            
+         clientP->transportOps.send_request(
+             envP, clientP->transportP, serverInfoP,
+             callInfoP->serialized_xml,
+-            &asynchComplete, callInfoP);
+-    
++            &asynchComplete, clientP->progressFn ? &progress : NULL,
++            callInfoP);
++    }    
+     if (envP->fault_occurred)
+         callInfoDestroy(callInfoP);
+     else {
+@@ -904,47 +1048,84 @@ xmlrpc_client_start_rpc(xmlrpc_env *             const envP,
++void
++xmlrpc_client_start_rpcf_server_va(
++    xmlrpc_env *               const envP,
++    xmlrpc_client *            const clientP,
++    const xmlrpc_server_info * const serverInfoP,
++    const char *               const methodName,
++    xmlrpc_response_handler responseHandler,
++    void *                     const userHandle,
++    const char *               const format,
++    va_list                    args) {
++    
++    xmlrpc_value * paramArrayP;
++        /* The XML-RPC parameter list array */
++
++    XMLRPC_ASSERT_ENV_OK(envP);
++    XMLRPC_ASSERT_PTR_OK(clientP);
++    XMLRPC_ASSERT_PTR_OK(serverInfoP);
++    XMLRPC_ASSERT_PTR_OK(methodName);
++    XMLRPC_ASSERT_PTR_OK(format);
++
++    computeParamArray(envP, format, args, &paramArrayP);
++
++    if (!envP->fault_occurred) {
++        xmlrpc_client_start_rpc(envP, clientP,
++                                serverInfoP, methodName, paramArrayP,
++                                responseHandler, userHandle);
++        
++        xmlrpc_DECREF(paramArrayP);
++    }
++}
++
++
++
++void
++xmlrpc_client_start_rpcf_va(xmlrpc_env *    const envP,
++                            xmlrpc_client * const clientP,
++                            const char *    const serverUrl,
++                            const char *    const methodName,
++                            xmlrpc_response_handler responseHandler,
++                            void *          const userHandle,
++                            const char *    const format,
++                            va_list               args) {
++
++    xmlrpc_server_info * serverInfoP;
++
++    serverInfoP = xmlrpc_server_info_new(envP, serverUrl);
++    if (!envP->fault_occurred) {
++        xmlrpc_client_start_rpcf_server_va(
++            envP, clientP,
++            serverInfoP, methodName,
++            responseHandler, userHandle,
++            format, args);
++        
++        xmlrpc_server_info_free(serverInfoP);
++    }
++}
++
++
++
+ void 
+ xmlrpc_client_start_rpcf(xmlrpc_env *    const envP,
+                          xmlrpc_client * const clientP,
+                          const char *    const serverUrl,
+                          const char *    const methodName,
+                          xmlrpc_response_handler responseHandler,
+-                         void *          const userData,
++                         void *          const userHandle,
+                          const char *    const format,
+                          ...) {
+     va_list args;
+-    xmlrpc_value * paramArrayP;
+-    const char * suffix;
+-    XMLRPC_ASSERT_PTR_OK(serverUrl);
+     XMLRPC_ASSERT_PTR_OK(format);
+-    /* Build our argument array. */
+     va_start(args, format);
+-    xmlrpc_build_value_va(envP, format, args, &paramArrayP, &suffix);
++    xmlrpc_client_start_rpcf_va(envP, clientP, serverUrl, methodName,
++                                responseHandler,
++                                userHandle, format, args);
+     va_end(args);
+-    if (!envP->fault_occurred) {
+-        if (*suffix != '\0')
+-            xmlrpc_faultf(envP, "Junk after the argument "
+-                          "specifier: '%s'.  "
+-                          "There must be exactly one arument.",
+-                          suffix);
+-        else {
+-            xmlrpc_server_info * serverInfoP;
+-
+-            serverInfoP = xmlrpc_server_info_new(envP, serverUrl);
+-            if (!envP->fault_occurred) {
+-                xmlrpc_client_start_rpc(
+-                    envP, clientP,
+-                    serverInfoP, methodName, paramArrayP,
+-                    responseHandler, userData);
+-            }
+-            xmlrpc_server_info_free(serverInfoP);
+-        }
+-        xmlrpc_DECREF(paramArrayP);
+-    }
+ }
+diff --git a/libs/xmlrpc-c/src/xmlrpc_client_global.c b/libs/xmlrpc-c/src/xmlrpc_client_global.c
+index 7beba14..362b99f 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_client_global.c
++++ b/libs/xmlrpc-c/src/xmlrpc_client_global.c
+@@ -122,38 +122,6 @@ xmlrpc_client_transport_call(
+-static void
+-clientCall_va(xmlrpc_env *               const envP,
+-              const xmlrpc_server_info * const serverInfoP,
+-              const char *               const methodName,
+-              const char *               const format,
+-              va_list                          args,
+-              xmlrpc_value **            const resultPP) {
+-
+-    validateGlobalClientExists(envP);
+-    if (!envP->fault_occurred) {
+-        xmlrpc_value * paramArrayP;
+-        const char * suffix;
+-        
+-        xmlrpc_build_value_va(envP, format, args, &paramArrayP, &suffix);
+-        
+-        if (!envP->fault_occurred) {
+-            if (*suffix != '\0')
+-                xmlrpc_faultf(envP, "Junk after the argument "
+-                              "specifier: '%s'.  "
+-                              "There must be exactly one arument.",
+-                              suffix);
+-            else
+-                xmlrpc_client_call2(envP, globalClientP, serverInfoP,
+-                                    methodName, paramArrayP, resultPP);
+-            
+-            xmlrpc_DECREF(paramArrayP);
+-        }
+-    }
+-}
+-
+-
+-
+ xmlrpc_value * 
+ xmlrpc_client_call(xmlrpc_env * const envP,
+                    const char * const serverUrl,
+@@ -162,21 +130,19 @@ xmlrpc_client_call(xmlrpc_env * const envP,
+                    ...) {
+     xmlrpc_value * resultP;
+-    
+-    xmlrpc_server_info * serverInfoP;
+-    serverInfoP = xmlrpc_server_info_new(envP, serverUrl);
+-        
++    validateGlobalClientExists(envP);
++
+     if (!envP->fault_occurred) {
+         va_list args;
++
+         va_start(args, format);
+     
+-        clientCall_va(envP, serverInfoP, methodName, format, args, &resultP);
++        xmlrpc_client_call2f_va(envP, globalClientP, serverUrl,
++                                methodName, format, &resultP, args);
+         va_end(args);
+-        xmlrpc_server_info_free(serverInfoP);
+     }
+-    
+     return resultP;
+ }
+@@ -184,18 +150,24 @@ xmlrpc_client_call(xmlrpc_env * const envP,
+ xmlrpc_value * 
+ xmlrpc_client_call_server(xmlrpc_env *               const envP,
+-                          const xmlrpc_server_info * const serverP,
++                          const xmlrpc_server_info * const serverInfoP,
+                           const char *               const methodName,
+                           const char *               const format, 
+                           ...) {
+-    va_list args;
+     xmlrpc_value * resultP;
+-    va_start(args, format);
+-    clientCall_va(envP, serverP, methodName, format, args, &resultP);
+-    va_end(args);
++    validateGlobalClientExists(envP);
++
++    if (!envP->fault_occurred) {
++        va_list args;
++
++        va_start(args, format);
++        xmlrpc_client_call_server2_va(envP, globalClientP, serverInfoP,
++                                      methodName, format, args, &resultP);
++        va_end(args);
++    }
+     return resultP;
+ }
+@@ -300,25 +272,16 @@ xmlrpc_client_call_asynch(const char * const serverUrl,
+     validateGlobalClientExists(&env);
+     if (!env.fault_occurred) {
+-        xmlrpc_value * paramArrayP;
+-        const char * suffix;
+         va_list args;
+-    
++
+         va_start(args, format);
+-        xmlrpc_build_value_va(&env, format, args, &paramArrayP, &suffix);
+-        va_end(args);
+     
+-        if (!env.fault_occurred) {
+-            if (*suffix != '\0')
+-                xmlrpc_faultf(&env, "Junk after the argument "
+-                              "specifier: '%s'.  "
+-                              "There must be exactly one arument.",
+-                              suffix);
+-            else
+-                xmlrpc_client_call_asynch_params(
+-                    serverUrl, methodName, responseHandler, userData,
+-                    paramArrayP);
+-        }
++        xmlrpc_client_start_rpcf_va(&env, globalClientP,
++                                    serverUrl, methodName,
++                                    responseHandler, userData,
++                                    format, args);
++
++        va_end(args);
+     }
+     if (env.fault_occurred)
+         (*responseHandler)(serverUrl, methodName, NULL, userData, &env, NULL);
+@@ -364,28 +327,21 @@ xmlrpc_client_call_server_asynch(xmlrpc_server_info * const serverInfoP,
+                                  ...) {
+     xmlrpc_env env;
+-    xmlrpc_value * paramArrayP;
+-    const char * suffix;
+-    va_list args;
+-    
+-    xmlrpc_env_init(&env);
+-    va_start(args, format);
+-    xmlrpc_build_value_va(&env, format, args, &paramArrayP, &suffix);
+-    va_end(args);
++    validateGlobalClientExists(&env);
+     if (!env.fault_occurred) {
+-        if (*suffix != '\0')
+-            xmlrpc_faultf(&env, "Junk after the argument "
+-                          "specifier: '%s'.  "
+-                          "There must be exactly one arument.",
+-                          suffix);
+-        else
+-            xmlrpc_client_call_server_asynch_params(
+-                serverInfoP, methodName, responseHandler, userData,
+-                paramArrayP);
+-
+-        xmlrpc_DECREF(paramArrayP);
++        va_list args;
++    
++        xmlrpc_env_init(&env);
++
++        va_start(args, format);
++
++        xmlrpc_client_start_rpcf_server_va(
++            &env, globalClientP, serverInfoP, methodName,
++            responseHandler, userData, format, args);
++
++        va_end(args);
+     }
+     if (env.fault_occurred)
+         (*responseHandler)(serverInfoP->serverUrl, methodName, NULL,
+diff --git a/libs/xmlrpc-c/src/xmlrpc_data.c b/libs/xmlrpc-c/src/xmlrpc_data.c
+index 28827fe..9330c12 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_data.c
++++ b/libs/xmlrpc-c/src/xmlrpc_data.c
+@@ -14,6 +14,17 @@
+ #include "xmlrpc-c/base_int.h"
++
++static void
++destroyCptr(xmlrpc_value * const valueP) {
++
++    if (valueP->_value.cptr.dtor)
++        valueP->_value.cptr.dtor(valueP->_value.cptr.dtorContext,
++                                 valueP->_value.cptr.objectP);
++}
++
++
++
+ static void
+ destroyValue(xmlrpc_value * const valueP) {
+@@ -29,7 +40,7 @@ destroyValue(xmlrpc_value * const valueP) {
+         break;
+     case XMLRPC_TYPE_DATETIME:
+-        xmlrpc_mem_block_clean(&valueP->_block);
++        xmlrpc_destroyDatetime(valueP);
+         break;
+     case XMLRPC_TYPE_STRING:
+@@ -49,6 +60,7 @@ destroyValue(xmlrpc_value * const valueP) {
+         break;
+     case XMLRPC_TYPE_C_PTR:
++        destroyCptr(valueP);
+         break;
+     case XMLRPC_TYPE_NIL:
+@@ -220,9 +232,9 @@ xmlrpc_read_base64(xmlrpc_env *           const envP,
+         byteStringValue = malloc(size);
+         if (byteStringValue == NULL)
+-            xmlrpc_env_set_fault_formatted(
+-                envP, XMLRPC_INTERNAL_ERROR, "Unable to allocate %u bytes "
+-                "for byte string.", size);
++            xmlrpc_faultf(envP,
++                          "Unable to allocate %u bytes for byte string.",
++                          (unsigned)size);
+         else {
+             memcpy(byteStringValue, contents, size);
+             *byteStringValueP = (const unsigned char *)byteStringValue;
+@@ -269,7 +281,7 @@ xmlrpc_read_cptr(xmlrpc_env *         const envP,
+     validateType(envP, valueP, XMLRPC_TYPE_C_PTR);
+     if (!envP->fault_occurred)
+-        *ptrValueP = valueP->_value.c_ptr;
++        *ptrValueP = valueP->_value.cptr.objectP;
+ }
+@@ -431,13 +443,26 @@ xmlrpc_value *
+ xmlrpc_cptr_new(xmlrpc_env *    const envP,
+                 void *          const value) {
++    return xmlrpc_cptr_new_dtor(envP, value, NULL, NULL);
++}
++
++
++
++xmlrpc_value *
++xmlrpc_cptr_new_dtor(xmlrpc_env *        const envP,
++                     void *              const value,
++                     xmlrpc_cptr_dtor_fn const dtor,
++                     void *              const dtorContext) {
++
+     xmlrpc_value * valP;
+     xmlrpc_createXmlrpcValue(envP, &valP);
+     if (!envP->fault_occurred) {
+         valP->_type = XMLRPC_TYPE_C_PTR;
+-        valP->_value.c_ptr = value;
++        valP->_value.cptr.objectP     = value;
++        valP->_value.cptr.dtor        = dtor;
++        valP->_value.cptr.dtorContext = dtorContext;
+     }
+     return valP;
+ }
+diff --git a/libs/xmlrpc-c/src/xmlrpc_datetime.c b/libs/xmlrpc-c/src/xmlrpc_datetime.c
+index 832f4fb..a36925f 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_datetime.c
++++ b/libs/xmlrpc-c/src/xmlrpc_datetime.c
+@@ -1,34 +1,30 @@
+ #include "xmlrpc_config.h"
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
++
+ #include <time.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <ctype.h>
+ #include <assert.h>
++#include <stdio.h>
+ #if MSVCRT
+ #include <windows.h>
+ #endif
+ #include "bool.h"
++#include "mallocvar.h"
++#include "xmlrpc-c/c_util.h"
+ #include "xmlrpc-c/base.h"
+ #include "xmlrpc-c/base_int.h"
+ #include "xmlrpc-c/string_int.h"
+ #include "xmlrpc-c/time_int.h"
+-/* Future work: the XMLRPC_TYPE_DATETIME xmlrpc_value should store the
+-   datetime as something computation-friendly, not as a string.  The
+-   XML-RPC XML parser should parse the string value and reject the XML if
+-   it isn't valid.
+-
+-   But this file should remain the authority on datetimes, so the XML
+-   parser and builder should call on routines in here to do that.
+-
+-   time_t won't work because it can't represent times before 1970 or
+-   after 2038.  We need to figure out something better.
+-*/
+-
++#if HAVE_REGEX
++#include <regex.h>
++#endif
+ #if MSVCRT
+@@ -112,19 +108,65 @@ validateDatetimeType(xmlrpc_env *         const envP,
+ void
++xmlrpc_read_datetime(xmlrpc_env *         const envP,
++                     const xmlrpc_value * const valueP,
++                     xmlrpc_datetime *    const dtP) {
++
++    validateDatetimeType(envP, valueP);
++    if (!envP->fault_occurred) {
++        *dtP = valueP->_value.dt;
++    }
++}
++
++
++
++void
+ xmlrpc_read_datetime_str(xmlrpc_env *         const envP,
+                          const xmlrpc_value * const valueP,
+                          const char **        const stringValueP) {
+-    
++/*----------------------------------------------------------------------------
++   This exists for backward compatibility.  No normal modern program would
++   want to see a datetime value in this format.  Note that the format isn't
++   even ISO 8601 -- it's a bizarre hybrid of two ISO 8601 formats.
++
++   Do not extend this.
++
++   This exists because Xmlrpc-c was at one time lazy and this was the only way
++   to extract the value.  An xmlrpc_value in those days represented a datetime
++   with the actual XML-RPC wire format of a datetime, and this function simply
++   returned a copy of it.
++-----------------------------------------------------------------------------*/
+     validateDatetimeType(envP, valueP);
+     if (!envP->fault_occurred) {
+-        const char * const contents = 
+-            XMLRPC_MEMBLOCK_CONTENTS(char, &valueP->_block);
+-        *stringValueP = strdup(contents);
+-        if (*stringValueP == NULL)
+-            xmlrpc_env_set_fault_formatted(
+-                envP, XMLRPC_INTERNAL_ERROR, "Unable to allocate space "
+-                "for datetime string");
++        time_t secs;
++        unsigned int usecs;
++
++        xmlrpc_read_datetime_usec(envP, valueP, &secs, &usecs);
++
++        if (!envP->fault_occurred) {
++            struct tm brokenTime;
++            char dtString[64];
++
++            xmlrpc_gmtime(secs, &brokenTime);
++
++            /* Note that this format is NOT ISO 8601 -- it's a bizarre
++               hybrid of two ISO 8601 formats.
++            */
++            strftime(dtString, sizeof(dtString), "%Y%m%dT%H:%M:%S", 
++                     &brokenTime);
++
++            if (usecs != 0) {
++                char usecString[64];
++                assert(usecs < 1000000);
++                snprintf(usecString, sizeof(usecString), ".%06u", usecs);
++                STRSCAT(dtString, usecString);
++            }
++
++            *stringValueP = strdup(dtString);
++            if (*stringValueP == NULL)
++                xmlrpc_faultf(envP,
++                              "Unable to allocate memory for datetime string");
++        }
+     }
+ }
+@@ -134,23 +176,164 @@ void
+ xmlrpc_read_datetime_str_old(xmlrpc_env *         const envP,
+                              const xmlrpc_value * const valueP,
+                              const char **        const stringValueP) {
++
++    assert(valueP->_cache);
+     
+     validateDatetimeType(envP, valueP);
+     if (!envP->fault_occurred) {
+-        *stringValueP = XMLRPC_MEMBLOCK_CONTENTS(char, &valueP->_block);
++        const char ** const readBufferP = valueP->_cache;
++
++        if (!*readBufferP)
++            /* Nobody's asked for the internal buffer before.  Set it up. */
++            xmlrpc_read_datetime_str(envP, valueP, readBufferP);
++
++        *stringValueP = *readBufferP;
++    }
++}
++
++
++
++void
++xmlrpc_read_datetime_usec(xmlrpc_env *         const envP,
++                          const xmlrpc_value * const valueP,
++                          time_t *             const secsP,
++                          unsigned int *       const usecsP) {
++    
++    validateDatetimeType(envP, valueP);
++
++    if (!envP->fault_occurred) {
++        if (valueP->_value.dt.Y < 1970)
++            xmlrpc_faultf(envP, "Year (%u) is too early to represent as "
++                          "a standard Unix time",
++                          valueP->_value.dt.Y);
++        else {
++            struct tm brokenTime;
++            const char * error;
++                
++            brokenTime.tm_sec  = valueP->_value.dt.s;
++            brokenTime.tm_min  = valueP->_value.dt.m;
++            brokenTime.tm_hour = valueP->_value.dt.h;
++            brokenTime.tm_mday = valueP->_value.dt.D;
++            brokenTime.tm_mon  = valueP->_value.dt.M - 1;
++            brokenTime.tm_year = valueP->_value.dt.Y - 1900;
++                
++            xmlrpc_timegm(&brokenTime, secsP, &error);
++
++            if (error) {
++                /* Ideally, this wouldn't be possible - it wouldn't be
++                   possible to create an xmlrpc_value that doesn't actually
++                   represent a real datetime.  But today, we're lazy and
++                   don't fully validate incoming XML-RPC <dateTime.iso8601>
++                   elements, and we also have the legacy
++                   xmlrpc_datetime_new_str() constructor to which the user
++                   may feed garbage.
++
++                   We should tighten that up and then simply assert here that
++                   xmlrpc_timegm() succeeded.
++                */
++                xmlrpc_env_set_fault_formatted(envP, XMLRPC_PARSE_ERROR,
++                              "A datetime received in an XML-RPC message "
++                              "or generated with legacy Xmlrpc-c facilities "
++                              "does not validly describe a datetime.  %s",
++                              error);
++                xmlrpc_strfree(error);
++            } else
++                *usecsP = valueP->_value.dt.u;
++        }
+     }
+ }
++void
++xmlrpc_read_datetime_sec(xmlrpc_env *         const envP,
++                         const xmlrpc_value * const valueP,
++                         time_t *             const timeValueP) {
++    
++    unsigned int usecs;
++
++    xmlrpc_read_datetime_usec(envP, valueP, timeValueP, &usecs);
++}
++
++
++
++#if XMLRPC_HAVE_TIMEVAL
++
++void
++xmlrpc_read_datetime_timeval(xmlrpc_env *         const envP,
++                             const xmlrpc_value * const valueP,
++                             struct timeval *     const timeValueP) {
++    
++    time_t secs;
++    unsigned int usecs;
++
++    xmlrpc_read_datetime_usec(envP, valueP, &secs, &usecs);
++
++    timeValueP->tv_sec  = secs;
++    timeValueP->tv_usec = usecs;
++}
++#endif
++
++
++
++#if XMLRPC_HAVE_TIMESPEC
++
++void
++xmlrpc_read_datetime_timespec(xmlrpc_env *         const envP,
++                              const xmlrpc_value * const valueP,
++                              struct timespec *    const timeValueP) {
++    
++    time_t secs;
++    unsigned int usecs;
++
++    xmlrpc_read_datetime_usec(envP, valueP, &secs, &usecs);
++
++    timeValueP->tv_sec  = secs;
++    timeValueP->tv_nsec = usecs * 1000;
++}
++#endif
++
++
++
++xmlrpc_value *
++xmlrpc_datetime_new(xmlrpc_env *    const envP, 
++                    xmlrpc_datetime const dt) {
++
++    xmlrpc_value * valP;
++
++    const char ** readBufferP;
++        
++    MALLOCVAR(readBufferP);
++
++    if (!readBufferP)
++        xmlrpc_faultf(envP, "Couldn't get memory for the cache part of the "
++                      "XML-RPC datetime value object");
++
++    else {
++        *readBufferP = NULL;
++
++        xmlrpc_createXmlrpcValue(envP, &valP);
++
++        if (!envP->fault_occurred) {
++            valP->_type = XMLRPC_TYPE_DATETIME;
++            
++            valP->_value.dt = dt;
++
++            valP->_cache = readBufferP;
++        }
++        if (envP->fault_occurred)
++            free(readBufferP);
++    }
++    return valP;
++}
++
++
++
+ static void
+-parseDateNumbers(const char * const t,
+-                 unsigned int * const YP,
+-                 unsigned int * const MP,
+-                 unsigned int * const DP,
+-                 unsigned int * const hP,
+-                 unsigned int * const mP,
+-                 unsigned int * const sP) {
++parseDatetimeString(const char *      const datetimeString,
++                    xmlrpc_datetime * const dtP) {
++
++    size_t const dtStrlen = strlen(datetimeString);
+     char year[4+1];
+     char month[2+1];
+@@ -159,177 +342,219 @@ parseDateNumbers(const char * const t,
+     char minute[2+1];
+     char second[2+1];
+-    assert(strlen(t) == 17);
++    /* Because we require input to be valid: */
++    assert(dtStrlen >= 17 && dtStrlen != 18 && dtStrlen <= 24);
+-    year[0]   = t[ 0];
+-    year[1]   = t[ 1];
+-    year[2]   = t[ 2];
+-    year[3]   = t[ 3];
++    year[0]   = datetimeString[ 0];
++    year[1]   = datetimeString[ 1];
++    year[2]   = datetimeString[ 2];
++    year[3]   = datetimeString[ 3];
+     year[4]   = '\0';
+-    month[0]  = t[ 4];
+-    month[1]  = t[ 5];
++    month[0]  = datetimeString[ 4];
++    month[1]  = datetimeString[ 5];
+     month[2]  = '\0';
+-    day[0]    = t[ 6];
+-    day[1]    = t[ 7];
++    day[0]    = datetimeString[ 6];
++    day[1]    = datetimeString[ 7];
+     day[2]    = '\0';
+-    assert(t[ 8] == 'T');
++    assert(datetimeString[ 8] == 'T');
+-    hour[0]   = t[ 9];
+-    hour[1]   = t[10];
++    hour[0]   = datetimeString[ 9];
++    hour[1]   = datetimeString[10];
+     hour[2]   = '\0';
+-    assert(t[11] == ':');
++    assert(datetimeString[11] == ':');
+-    minute[0] = t[12];
+-    minute[1] = t[13];
++    minute[0] = datetimeString[12];
++    minute[1] = datetimeString[13];
+     minute[2] = '\0';
+-    assert(t[14] == ':');
++    assert(datetimeString[14] == ':');
+-    second[0] = t[15];
+-    second[1] = t[16];
++    second[0] = datetimeString[15];
++    second[1] = datetimeString[16];
+     second[2] = '\0';
+-    *YP = atoi(year);
+-    *MP = atoi(month);
+-    *DP = atoi(day);
+-    *hP = atoi(hour);
+-    *mP = atoi(minute);
+-    *sP = atoi(second);
++    if (dtStrlen > 17) {
++        size_t const pad = 24 - dtStrlen;
++        size_t i;
++
++        dtP->u = atoi(&datetimeString[18]);
++        for (i = 0; i < pad; ++i)
++            dtP->u *= 10;
++    } else
++        dtP->u = 0;
++
++    dtP->Y = atoi(year);
++    dtP->M = atoi(month);
++    dtP->D = atoi(day);
++    dtP->h = atoi(hour);
++    dtP->m = atoi(minute);
++    dtP->s = atoi(second);
++}
++
++
++
++static void
++validateFirst17(xmlrpc_env * const envP,
++                const char * const dt) {
++/*----------------------------------------------------------------------------
++   Assuming 'dt' is at least 17 characters long, validate that the first
++   17 characters are a valid XML-RPC datetime, e.g.
++   "20080628T16:35:02"
++-----------------------------------------------------------------------------*/
++    unsigned int i;
++
++    for (i = 0; i < 8 && !envP->fault_occurred; ++i)
++        if (!isdigit(dt[i]))
++            xmlrpc_faultf(envP, "Not a digit: '%c'", dt[i]);
++
++    if (dt[8] != 'T')
++        xmlrpc_faultf(envP, "9th character is '%c', not 'T'", dt[8]);
++    if (!isdigit(dt[9]))
++        xmlrpc_faultf(envP, "Not a digit: '%c'", dt[9]);
++    if (!isdigit(dt[10]))
++        xmlrpc_faultf(envP, "Not a digit: '%c'", dt[10]);
++    if (dt[11] != ':')
++        xmlrpc_faultf(envP, "Not a colon: '%c'", dt[11]);
++    if (!isdigit(dt[12]))
++        xmlrpc_faultf(envP, "Not a digit: '%c'", dt[12]);
++    if (!isdigit(dt[13]))
++        xmlrpc_faultf(envP, "Not a digit: '%c'", dt[13]);
++    if (dt[14] != ':')
++        xmlrpc_faultf(envP, "Not a colon: '%c'", dt[14]);
++    if (!isdigit(dt[15]))
++        xmlrpc_faultf(envP, "Not a digit: '%c'", dt[15]);
++    if (!isdigit(dt[16]))
++        xmlrpc_faultf(envP, "Not a digit: '%c'", dt[16]);
++}
++
++
++
++static void
++validateFractionalSeconds(xmlrpc_env * const envP,
++                          const char * const dt) {
++/*----------------------------------------------------------------------------
++   Validate the fractional seconds part of the XML-RPC datetime string
++   'dt', if any.  That's the decimal point and everything following
++   it.
++-----------------------------------------------------------------------------*/
++    if (strlen(dt) > 17) {
++        if (dt[17] != '.') {
++            xmlrpc_faultf(envP, "'%c' where only a period is valid", dt[17]);
++        } else {
++            if (dt[18] == '\0')
++                xmlrpc_faultf(envP, "Nothing after decimal point");
++            else {
++                unsigned int i;
++                for (i = 18; dt[i] != '\0' && !envP->fault_occurred; ++i) {
++                    if (!isdigit(dt[i]))
++                        xmlrpc_faultf(envP,
++                                      "Non-digit in fractional seconds: '%c'",
++                                      dt[i]);
++                }
++            }
++        }
++    }
+ }
+ static void
+ validateFormat(xmlrpc_env * const envP,
+-               const char * const t) {
++               const char * const dt) {
+-    if (strlen(t) != 17)
+-        xmlrpc_faultf(envP, "%u characters instead of 15.", strlen(t));
+-    else if (t[8] != 'T')
+-        xmlrpc_faultf(envP, "9th character is '%c', not 'T'", t[8]);
++    if (strlen(dt) < 17)
++        xmlrpc_faultf(envP,
++                      "Invalid length of %u of datetime string.  "
++                      "Must be at least 17 characters",
++                      (unsigned)strlen(dt));
+     else {
+-        unsigned int i;
+-
+-        for (i = 0; i < 8 && !envP->fault_occurred; ++i)
+-            if (!isdigit(t[i]))
+-                xmlrpc_faultf(envP, "Not a digit: '%c'", t[i]);
+-
+-        if (!isdigit(t[9]))
+-            xmlrpc_faultf(envP, "Not a digit: '%c'", t[9]);
+-        if (!isdigit(t[10]))
+-            xmlrpc_faultf(envP, "Not a digit: '%c'", t[10]);
+-        if (t[11] != ':')
+-            xmlrpc_faultf(envP, "Not a colon: '%c'", t[11]);
+-        if (!isdigit(t[12]))
+-            xmlrpc_faultf(envP, "Not a digit: '%c'", t[12]);
+-        if (!isdigit(t[13]))
+-            xmlrpc_faultf(envP, "Not a digit: '%c'", t[13]);
+-        if (t[14] != ':')
+-            xmlrpc_faultf(envP, "Not a colon: '%c'", t[14]);
+-        if (!isdigit(t[15]))
+-            xmlrpc_faultf(envP, "Not a digit: '%c'", t[15]);
+-        if (!isdigit(t[16]))
+-            xmlrpc_faultf(envP, "Not a digit: '%c'", t[16]);
++        validateFirst17(envP, dt);
++
++        if (!envP->fault_occurred)
++            validateFractionalSeconds(envP, dt);
+     }
+-}        
++}
+-static void
+-parseDatetime(xmlrpc_env * const envP,
+-              const char * const t,
+-              time_t *     const timeValueP) {
+-/*----------------------------------------------------------------------------
+-   Parse a time in the format stored in an xmlrpc_value and return the
+-   time that it represents.
++/* Microsoft Visual C in debug mode produces code that complains about
++   returning an undefined value from xmlrpc_datetime_new_str().  It's a bogus
++   complaint, because this function is defined to return nothing meaningful
++   those cases.  So we disable the check.
++*/
++#pragma runtime_checks("u", off)
+-   t[] is the input time string.  We return the result as *timeValueP.
+-   Example of the format we parse: "19980717T14:08:55"
+-   Note that this is not quite ISO 8601.  It's a bizarre combination of
+-   two ISO 8601 formats.
+-   The input is capable of representing datetimes that cannot be expressed
+-   as a time_t.  In that case, we fail, with fault code
+-   XMLRPC_INTERNAL_ERROR.
++xmlrpc_value *
++xmlrpc_datetime_new_str(xmlrpc_env * const envP, 
++                        const char * const datetimeString) {
++/*----------------------------------------------------------------------------
++   This exists only for backward compatibility.  Originally, this was the
++   only way to create a datetime XML-RPC value, because we had a really
++   lazy implementation of XML-RPC serialization and parsing (basically, the
++   user did it!).
+-   And of course the input may not validly represent a datetime at all.
+-   In that case too, we fail with fault code XMLRPC_PARSE_ERROR.
++   Do not extend this.  The user should use more normal C representations
++   of datetimes.
+ -----------------------------------------------------------------------------*/
+-    validateFormat(envP, t);
++    xmlrpc_value * retval;
++    validateFormat(envP, datetimeString);
+     if (!envP->fault_occurred) {
+-        unsigned int Y, M, D, h, m, s;
+-        
+-        parseDateNumbers(t, &Y, &M, &D, &h, &m, &s);
+-        
+-        if (Y < 1970)
+-            xmlrpc_env_set_fault(envP, XMLRPC_INTERNAL_ERROR,
+-                                 "Year is too early to represent as "
+-                                 "a standard Unix time");
+-        else {
+-            struct tm brokenTime;
+-            const char * error;
+-            
+-            brokenTime.tm_sec  = s;
+-            brokenTime.tm_min  = m;
+-            brokenTime.tm_hour = h;
+-            brokenTime.tm_mday = D;
+-            brokenTime.tm_mon  = M - 1;
+-            brokenTime.tm_year = Y - 1900;
+-            
+-            xmlrpc_timegm(&brokenTime, timeValueP, &error);
++        xmlrpc_datetime dt;
+-            if (error) {
+-                xmlrpc_env_set_fault(envP, XMLRPC_PARSE_ERROR, error);
+-                xmlrpc_strfree(error);
+-            }
+-        }
++        parseDatetimeString(datetimeString, &dt);
++
++        /* Note that parseDatetimeString() can generate an invalid datetime
++           value, e.g. Hour 25 or February 30.  Ideally, we would catch that
++           here, but due to laziness, we simply accept the possibility of
++           invalid xmlrpc_datetime in xmlrpc_value and whoever uses the the
++           xmlrpc_value has to deal with it.
++        */
++        retval = xmlrpc_datetime_new(envP, dt);
+     }
++
++    return retval;
+ }
+-void
+-xmlrpc_read_datetime_sec(xmlrpc_env *         const envP,
+-                         const xmlrpc_value * const valueP,
+-                         time_t *             const timeValueP) {
+-    
+-    validateDatetimeType(envP, valueP);
+-    if (!envP->fault_occurred)
+-        parseDatetime(envP,
+-                      XMLRPC_MEMBLOCK_CONTENTS(char, &valueP->_block),
+-                      timeValueP);
+-}
++#pragma runtime_checks("u", restore)
+ xmlrpc_value *
+-xmlrpc_datetime_new_str(xmlrpc_env * const envP, 
+-                        const char * const value) {
++xmlrpc_datetime_new_usec(xmlrpc_env * const envP,
++                         time_t       const secs,
++                         unsigned int const usecs) {
+-    xmlrpc_value * valP;
++    xmlrpc_value * valueP;
+-    xmlrpc_createXmlrpcValue(envP, &valP);
++    if (usecs >= 1000000)
++        xmlrpc_faultf(envP, "Number of fractional microseconds must be less "
++                      "than one million.  You specified %u", usecs);
++    else {
++        struct tm brokenTime;
++        xmlrpc_datetime dt;
+-    if (!envP->fault_occurred) {
+-        valP->_type = XMLRPC_TYPE_DATETIME;
++        xmlrpc_gmtime(secs, &brokenTime);
+-        XMLRPC_TYPED_MEM_BLOCK_INIT(
+-            char, envP, &valP->_block, strlen(value) + 1);
+-        if (!envP->fault_occurred) {
+-            char * const contents =
+-                XMLRPC_TYPED_MEM_BLOCK_CONTENTS(char, &valP->_block);
+-            strcpy(contents, value);
+-        }
+-        if (envP->fault_occurred)
+-            free(valP);
++        dt.s = brokenTime.tm_sec;
++        dt.m = brokenTime.tm_min;
++        dt.h = brokenTime.tm_hour;
++        dt.D = brokenTime.tm_mday;
++        dt.M = brokenTime.tm_mon + 1;
++        dt.Y = 1900 + brokenTime.tm_year;
++        dt.u = usecs;
++
++        valueP = xmlrpc_datetime_new(envP, dt);
+     }
+-    return valP;
++    return valueP;
+ }
+@@ -338,34 +563,42 @@ xmlrpc_value *
+ xmlrpc_datetime_new_sec(xmlrpc_env * const envP, 
+                         time_t       const value) {
+-    xmlrpc_value * valP;
+-    
+-    xmlrpc_createXmlrpcValue(envP, &valP);
++    return xmlrpc_datetime_new_usec(envP, value, 0);
++}
+-    if (!envP->fault_occurred) {
+-        struct tm brokenTime;
+-        char timeString[64];
+-        
+-        valP->_type = XMLRPC_TYPE_DATETIME;
+-        xmlrpc_gmtime(value, &brokenTime);
+-        
+-        /* Note that this format is NOT ISO 8601 -- it's a bizarre
+-           hybrid of two ISO 8601 formats.
+-        */
+-        strftime(timeString, sizeof(timeString), "%Y%m%dT%H:%M:%S", 
+-                 &brokenTime);
+-        
+-        XMLRPC_TYPED_MEM_BLOCK_INIT(
+-            char, envP, &valP->_block, strlen(timeString) + 1);
+-        if (!envP->fault_occurred) {
+-            char * const contents =
+-                XMLRPC_TYPED_MEM_BLOCK_CONTENTS(char, &valP->_block);
+-            
+-            strcpy(contents, timeString);
+-        }
+-        if (envP->fault_occurred)
+-            free(valP);
+-    }
+-    return valP;
++
++#if XMLRPC_HAVE_TIMEVAL
++
++xmlrpc_value *
++xmlrpc_datetime_new_timeval(xmlrpc_env *   const envP, 
++                            struct timeval const value) {
++
++    return xmlrpc_datetime_new_usec(envP, value.tv_sec, value.tv_usec);
++}
++#endif
++
++
++
++#if XMLRPC_HAVE_TIMESPEC
++
++xmlrpc_value *
++xmlrpc_datetime_new_timespec(xmlrpc_env *    const envP, 
++                             struct timespec const value) {
++
++    return xmlrpc_datetime_new_usec(envP, value.tv_sec, value.tv_nsec/1000);
++}
++#endif
++
++
++
++void
++xmlrpc_destroyDatetime(xmlrpc_value * const datetimeP) {
++
++    const char ** const readBufferP = datetimeP->_cache;
++
++    if (*readBufferP)
++        xmlrpc_strfree(*readBufferP);
++
++    free(datetimeP->_cache);
+ }
+diff --git a/libs/xmlrpc-c/src/xmlrpc_decompose.c b/libs/xmlrpc-c/src/xmlrpc_decompose.c
+index eeb3414..6323a26 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_decompose.c
++++ b/libs/xmlrpc-c/src/xmlrpc_decompose.c
+@@ -712,7 +712,7 @@ buildArrayDecompBranch(xmlrpc_env *            const envP,
+         if (itemCnt >= ARRAY_SIZE(decompNodeP->store.Tarray.itemArray))
+             xmlrpc_faultf(envP, "Too many array items in format string.  "
+                           "The most items you can have for an array in "
+-                          "a format string is %u.",
++                          "a format string is %u.", (unsigned)
+                           ARRAY_SIZE(decompNodeP->store.Tarray.itemArray));
+         else {
+             struct decompTreeNode * itemNodeP;
+@@ -850,7 +850,7 @@ buildStructDecompBranch(xmlrpc_env *            const envP,
+             xmlrpc_faultf(envP,
+                           "Too many structure members in format string.  "
+                           "The most members you can specify in "
+-                          "a format string is %u.",
++                          "a format string is %u.", (unsigned)
+                           ARRAY_SIZE(decompNodeP->store.Tstruct.mbrArray));
+         else {
+             struct mbrDecomp * const mbrP =
+@@ -1059,9 +1059,8 @@ createDecompTree(xmlrpc_env *             const envP,
+         if (envP->fault_occurred)
+             destroyDecompTree(decompRootP);
+-        else
+-            *decompRootPP = decompRootP;
+     }
++    *decompRootPP = decompRootP;
+ }
+diff --git a/libs/xmlrpc-c/src/xmlrpc_expat.c b/libs/xmlrpc-c/src/xmlrpc_expat.c
+index 9e6c37e..7b51d3e 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_expat.c
++++ b/libs/xmlrpc-c/src/xmlrpc_expat.c
+@@ -108,27 +108,28 @@ xml_element_new (xmlrpc_env * const env,
+ **  Blow away an existing element & all of its child elements.
+ */
+ void
+-xml_element_free(xml_element * const elem) {
++xml_element_free(xml_element * const elemP) {
+-    xmlrpc_mem_block *children;
+-    int size, i;
+-    xml_element **contents;
++    xmlrpc_mem_block * childrenP;
++    size_t size, i;
++    xml_element ** contents;
+-    XMLRPC_ASSERT_ELEM_OK(elem);
++    XMLRPC_ASSERT_ELEM_OK(elemP);
+-    free(elem->_name);
+-    elem->_name = XMLRPC_BAD_POINTER;
+-    xmlrpc_mem_block_clean(&elem->_cdata);
++    free(elemP->_name);
++    elemP->_name = XMLRPC_BAD_POINTER;
++    XMLRPC_MEMBLOCK_CLEAN(xml_element *, &elemP->_cdata);
+     /* Deallocate all of our children recursively. */
+-    children = &elem->_children;
+-    contents = XMLRPC_TYPED_MEM_BLOCK_CONTENTS(xml_element*, children);
+-    size = XMLRPC_TYPED_MEM_BLOCK_SIZE(xml_element*, children);
+-    for (i = 0; i < size; i++)
++    childrenP = &elemP->_children;
++    contents = XMLRPC_MEMBLOCK_CONTENTS(xml_element *, childrenP);
++    size = XMLRPC_MEMBLOCK_SIZE(xml_element *, childrenP);
++    for (i = 0; i < size; ++i)
+         xml_element_free(contents[i]);
+-    xmlrpc_mem_block_clean(&elem->_children);
+-    free(elem);
++    XMLRPC_MEMBLOCK_CLEAN(xml_element *, &elemP->_children);
++
++    free(elemP);
+ }
+@@ -374,9 +375,8 @@ createParser(xmlrpc_env *   const envP,
+         xmlrpc_XML_SetCharacterDataHandler(
+             parser,
+             (XML_CharacterDataHandler) characterData);
+-        
+-        *parserP = parser;
+     }
++    *parserP = parser;
+ }
+diff --git a/libs/xmlrpc-c/src/xmlrpc_libxml2.c b/libs/xmlrpc-c/src/xmlrpc_libxml2.c
+index 9cba719..3df6231 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_libxml2.c
++++ b/libs/xmlrpc-c/src/xmlrpc_libxml2.c
+@@ -240,8 +240,10 @@ typedef struct {
+ */
+ static void
+-start_element (void *user_data, const xmlChar *name, const xmlChar **attrs)
+-{
++start_element(void *           const user_data,
++              const xmlChar *  const name,
++              const xmlChar ** const attrs ATTR_UNUSED) {
++
+     parse_context *context;
+     xml_element *elem, *new_current;
+@@ -281,9 +283,12 @@ start_element (void *user_data, const xmlChar *name, const xmlChar **attrs)
+     }
+ }
++
++
+ static void
+-end_element (void *user_data, const xmlChar *name)
+-{
++end_element(void *          const user_data,
++            const xmlChar * const name ATTR_UNUSED) {
++
+     parse_context *context;
+     XMLRPC_ASSERT(user_data != NULL && name != NULL);
+@@ -295,7 +300,7 @@ end_element (void *user_data, const xmlChar *name)
+       /* XXX - I think expat enforces these facts, but I want to be sure.
+       ** If one of these assertion ever fails, it should be replaced by a
+       ** non-assertion runtime error check. */
+-      XMLRPC_ASSERT(strcmp(name, context->current->_name) == 0);
++      XMLRPC_ASSERT(xmlrpc_streq(name, context->current->_name));
+       XMLRPC_ASSERT(context->current->_parent != NULL ||
+                     context->current == context->root);
+diff --git a/libs/xmlrpc-c/src/xmlrpc_parse.c b/libs/xmlrpc-c/src/xmlrpc_parse.c
+index 43d9d54..848bfcd 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_parse.c
++++ b/libs/xmlrpc-c/src/xmlrpc_parse.c
+@@ -1,5 +1,7 @@
+ /* Copyright information is at end of file. */
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
++
+ #include "xmlrpc_config.h"
+ #include <stddef.h>
+@@ -32,6 +34,19 @@
+    invoke XMLRPC_FAIL if something looks wrong.
+ */
++static void
++setParseFault(xmlrpc_env * const envP,
++              const char * const format,
++              ...) {
++
++    va_list args;
++    va_start(args, format);
++    xmlrpc_set_fault_formatted_v(envP, XMLRPC_PARSE_ERROR, format, args);
++    va_end(args);
++}
++
++
++
+ #define CHECK_NAME(env,elem,name) \
+     do \
+         if (!xmlrpc_streq((name), xml_element_name(elem))) \
+@@ -44,41 +59,29 @@
+     do \
+         if (xml_element_children_size(elem) != (count)) \
+             XMLRPC_FAIL3(env, XMLRPC_PARSE_ERROR, \
+-             "Expected <%s> to have %d children, found %d", \
++                         "Expected <%s> to have %u children, found %u", \
+                          xml_element_name(elem), (count), \
+-                         xml_element_children_size(elem)); \
++                         (unsigned)xml_element_children_size(elem)); \
+     while (0)
+ static xml_element *
+-get_child_by_name (xmlrpc_env *env, xml_element *parent, char *name)
+-{
+-    size_t child_count, i;
+-    xml_element **children;
+-
+-    children = xml_element_children(parent);
+-    child_count = xml_element_children_size(parent);
+-    for (i = 0; i < child_count; i++) {
+-        if (xmlrpc_streq(xml_element_name(children[i]), name))
+-            return children[i];
+-    }
+-    
+-    xmlrpc_env_set_fault_formatted(env, XMLRPC_PARSE_ERROR,
+-                                   "Expected <%s> to have child <%s>",
+-                                   xml_element_name(parent), name);
+-    return NULL;
+-}
++getChildByName (xmlrpc_env *  const envP,
++                xml_element * const parentP,
++                const char *  const name) {
++    size_t const childCount = xml_element_children_size(parentP);
++    xml_element ** const childrenP = xml_element_children(parentP);
++    unsigned int i;
+-static void
+-setParseFault(xmlrpc_env * const envP,
+-              const char * const format,
+-              ...) {
+-
+-    va_list args;
+-    va_start(args, format);
+-    xmlrpc_set_fault_formatted_v(envP, XMLRPC_PARSE_ERROR, format, args);
+-    va_end(args);
++    for (i = 0; i < childCount; ++i) {
++        if (xmlrpc_streq(xml_element_name(childrenP[i]), name))
++            return childrenP[i];
++    }
++    
++    setParseFault(envP, "Expected <%s> to have child <%s>",
++                  xml_element_name(parentP), name);
++    return NULL;
+ }
+@@ -94,10 +97,11 @@ static xmlrpc_value *
+ convert_params(xmlrpc_env *        const envP,
+                const xml_element * const elemP) {
+ /*----------------------------------------------------------------------------
+-   Convert an XML element representing a list of parameters (i.e.  a
+-   <params> element) to an xmlrpc_value of type array.  Note that an
+-   array is normally represented in XML by a <value> element.  We use
+-   type xmlrpc_value to represent the parameter list just for convenience.
++   Convert an XML element representing a list of parameters (i.e.  a <params>
++   element) to an xmlrpc_value of type array.  Note that an xmlrpc_value is
++   normally represented in XML by a <value> element, not a <params> element.
++   We use type xmlrpc_value to represent the parameter list just for
++   convenience.
+ -----------------------------------------------------------------------------*/
+     xmlrpc_value *array, *item;
+     int size, i;
+@@ -120,7 +124,8 @@ convert_params(xmlrpc_env *        const envP,
+     size = xml_element_children_size(elemP);
+     params = xml_element_children(elemP);
+     for (i = 0; i < size; ++i) {
+-        unsigned int const maxNest = xmlrpc_limit_get(XMLRPC_NESTING_LIMIT_ID);
++        unsigned int const maxNest = (unsigned int)
++            xmlrpc_limit_get(XMLRPC_NESTING_LIMIT_ID);
+         param = params[i];
+         CHECK_NAME(envP, param, "param");
+@@ -155,7 +160,7 @@ convert_params(xmlrpc_env *        const envP,
+ static void
+ parseCallXml(xmlrpc_env *   const envP,
+              const char *   const xmlData,
+-             size_t         const xmlLen,
++             size_t         const xmlDataLen,
+              xml_element ** const callElemPP) {
+ /*----------------------------------------------------------------------------
+    Parse the XML of an XML-RPC call.
+@@ -164,7 +169,7 @@ parseCallXml(xmlrpc_env *   const envP,
+     xmlrpc_env env;
+     xmlrpc_env_init(&env);
+-    xml_parse(&env, xmlData, xmlLen, &callElemP);
++    xml_parse(&env, xmlData, xmlDataLen, &callElemP);
+     if (env.fault_occurred)
+         xmlrpc_env_set_fault_formatted(
+             envP, env.fault_code, "Call is not valid XML.  %s",
+@@ -176,12 +181,11 @@ parseCallXml(xmlrpc_env *   const envP,
+                           "Instead, we have a <%s> element.",
+                           xml_element_name(callElemP));
+-        if (!envP->fault_occurred)
+-            *callElemPP = callElemP;
+-
+         if (envP->fault_occurred)
+             xml_element_free(callElemP);
+     }
++    *callElemPP = callElemP;
++
+     xmlrpc_env_clean(&env);
+ }
+@@ -229,7 +233,7 @@ parseCallChildren(xmlrpc_env *    const envP,
+         
+     XMLRPC_ASSERT(xmlrpc_streq(xml_element_name(callElemP), "methodCall"));
+     
+-    nameElemP = get_child_by_name(envP, callElemP, "methodName");
++    nameElemP = getChildByName(envP, callElemP, "methodName");
+     
+     if (!envP->fault_occurred) {
+         parseMethodNameElement(envP, nameElemP, methodNameP);
+@@ -239,7 +243,7 @@ parseCallChildren(xmlrpc_env *    const envP,
+             if (callChildCount > 1) {
+                 xml_element * paramsElemP;
+-                paramsElemP = get_child_by_name(envP, callElemP, "params");
++                paramsElemP = getChildByName(envP, callElemP, "params");
+                     
+                 if (!envP->fault_occurred)
+                     *paramArrayPP = convert_params(envP, paramsElemP);
+@@ -272,7 +276,7 @@ parseCallChildren(xmlrpc_env *    const envP,
+ void 
+ xmlrpc_parse_call(xmlrpc_env *    const envP,
+                   const char *    const xmlData,
+-                  size_t          const xmlLen,
++                  size_t          const xmlDataLen,
+                   const char **   const methodNameP,
+                   xmlrpc_value ** const paramArrayPP) {
+ /*----------------------------------------------------------------------------
+@@ -290,14 +294,14 @@ xmlrpc_parse_call(xmlrpc_env *    const envP,
+        from creating an enormous memory block, so you should try to
+        enforce it *before* reading any data off the network.
+      */
+-    if (xmlLen > xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID))
++    if (xmlDataLen > xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID))
+         xmlrpc_env_set_fault_formatted(
+             envP, XMLRPC_LIMIT_EXCEEDED_ERROR,
+             "XML-RPC request too large.  Max allowed is %u bytes",
+-            xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID));
++            (unsigned)xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID));
+     else {
+         xml_element * callElemP;
+-        parseCallXml(envP, xmlData, xmlLen, &callElemP);
++        parseCallXml(envP, xmlData, xmlDataLen, &callElemP);
+         if (!envP->fault_occurred) {
+             parseCallChildren(envP, callElemP, methodNameP, paramArrayPP);
+@@ -399,7 +403,7 @@ parseFaultElement(xmlrpc_env *        const envP,
+                   int *               const faultCodeP,
+                   const char **       const faultStringP) {
+                   
+-    unsigned int const maxRecursion =
++    unsigned int const maxRecursion = (unsigned int)
+         xmlrpc_limit_get(XMLRPC_NESTING_LIMIT_ID);
+     XMLRPC_ASSERT(xmlrpc_streq(xml_element_name(faultElement), "fault"));
+@@ -533,7 +537,7 @@ xmlrpc_parse_response2(xmlrpc_env *    const envP,
+   If the XML text is not a valid response or something prevents us from
+   parsing it, return a description of the error as *envP and nothing else.
+ -----------------------------------------------------------------------------*/
+-    xml_element * response;
++    xml_element * responseEltP;
+     XMLRPC_ASSERT_ENV_OK(envP);
+     XMLRPC_ASSERT(xmlData != NULL);
+@@ -547,27 +551,29 @@ xmlrpc_parse_response2(xmlrpc_env *    const envP,
+             envP, XMLRPC_LIMIT_EXCEEDED_ERROR,
+             "XML-RPC response too large.  Our limit is %u characters.  "
+             "We got %u characters",
+-            xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID), xmlDataLen);
++            (unsigned)xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID),
++            (unsigned)xmlDataLen);
+     else {
+         xmlrpc_env env;
+         xmlrpc_env_init(&env);
+-        xml_parse(&env, xmlData, xmlDataLen, &response);
++        xml_parse(&env, xmlData, xmlDataLen, &responseEltP);
+         if (env.fault_occurred)
+             setParseFault(envP, "Not valid XML.  %s", env.fault_string);
+         else {
+             /* Pick apart and verify our structure. */
+-            if (xmlrpc_streq(xml_element_name(response), "methodResponse")) {
+-                parseMethodResponseElt(envP, response,
++            if (xmlrpc_streq(xml_element_name(responseEltP),
++                             "methodResponse")) {
++                parseMethodResponseElt(envP, responseEltP,
+                                        resultPP, faultCodeP, faultStringP);
+             } else
+                 setParseFault(envP, "XML-RPC response must consist of a "
+                               "<methodResponse> element.  "
+                               "This has a <%s> instead.",
+-                              xml_element_name(response));
++                              xml_element_name(responseEltP));
+             
+-            xml_element_free(response);
++            xml_element_free(responseEltP);
+         }
+         xmlrpc_env_clean(&env);
+     }
+@@ -607,6 +613,57 @@ xmlrpc_parse_response(xmlrpc_env * const envP,
++void
++xmlrpc_parse_value_xml(xmlrpc_env *    const envP,
++                       const char *    const xmlData,
++                       size_t          const xmlDataLen,
++                       xmlrpc_value ** const valuePP) {
++/*----------------------------------------------------------------------------
++   Compute the xmlrpc_value represented by the XML document 'xmlData' (of
++   length 'xmlDataLen' characters), which must consist of a single <value>
++   element.  Return that xmlrpc_value.
++
++   We call convert_array() and convert_struct(), which may ultimately
++   call us recursively.  Don't recurse any more than 'maxRecursion'
++   times.
++
++   This isn't generally useful in XML-RPC programs, because such programs
++   parse a whole XML-RPC call or response document, and never see the XML text
++   of just a <value> element.  But a program may do some weird form of XML-RPC
++   processing or just borrow Xmlrpc-c's value serialization facilities for
++   something unrelated to XML-RPC.  In any case, it makes sense to have an
++   inverse of xmlrpc_serialize_value2(), which generates XML text from an
++   xmlrpc_value.
++-----------------------------------------------------------------------------*/
++    xmlrpc_env env;
++
++    xml_element * valueEltP;
++
++    XMLRPC_ASSERT_ENV_OK(envP);
++    XMLRPC_ASSERT(xmlData != NULL);
++
++    xmlrpc_env_init(&env);
++
++    xml_parse(&env, xmlData, xmlDataLen, &valueEltP);
++
++    if (env.fault_occurred) {
++        setParseFault(envP, "Not valid XML.  %s", env.fault_string);
++    } else {
++        if (xmlrpc_streq(xml_element_name(valueEltP), "value")) {
++            unsigned int const maxRecursion = (unsigned int)
++                xmlrpc_limit_get(XMLRPC_NESTING_LIMIT_ID);
++            xmlrpc_parseValue(envP, maxRecursion, valueEltP, valuePP);
++        } else
++            setParseFault(envP, "XML-RPC value XML document must consist of "
++                          "a <value> element.  This has a <%s> instead.",
++                          xml_element_name(valueEltP));
++        xml_element_free(valueEltP);
++    }
++    xmlrpc_env_clean(&env);
++}
++
++
++
+ /* Copyright (C) 2001 by First Peer, Inc. All rights reserved.
+ **
+ ** Redistribution and use in source and binary forms, with or without
+diff --git a/libs/xmlrpc-c/src/xmlrpc_registry.c b/libs/xmlrpc-c/src/xmlrpc_registry.c
+deleted file mode 100644
+index d320019..0000000
+--- a/libs/xmlrpc-c/src/xmlrpc_registry.c
++++ /dev/null
+@@ -1,830 +0,0 @@
+-/* Copyright (C) 2001 by First Peer, Inc. All rights reserved.
+-** Copyright (C) 2001 by Eric Kidd. All rights reserved.
+-** Copyright (C) 2001 by Luke Howard. All rights reserved.
+-**
+-** Redistribution and use in source and binary forms, with or without
+-** modification, are permitted provided that the following conditions
+-** are met:
+-** 1. Redistributions of source code must retain the above copyright
+-**    notice, this list of conditions and the following disclaimer.
+-** 2. Redistributions in binary form must reproduce the above copyright
+-**    notice, this list of conditions and the following disclaimer in the
+-**    documentation and/or other materials provided with the distribution.
+-** 3. The name of the author may not be used to endorse or promote products
+-**    derived from this software without specific prior written permission. 
+-**  
+-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+-** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-** ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+-** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-** SUCH DAMAGE. */
+-
+-#include "xmlrpc_config.h"
+-
+-#include <stdlib.h>
+-#include <string.h>
+-
+-#include "xmlrpc-c/base.h"
+-#include "xmlrpc-c/server.h"
+-#include "xmlrpc-c/base_int.h"
+-
+-/*=========================================================================
+-**  XML-RPC Server Method Registry
+-**=========================================================================
+-**  A method registry maintains a list of functions, and handles
+-**  dispatching. To build an XML-RPC server, just add a communications
+-**  protocol. :-)
+-*/
+-
+-static void
+-install_system_methods (xmlrpc_env *env, xmlrpc_registry *registry);
+-
+-xmlrpc_registry *
+-xmlrpc_registry_new(xmlrpc_env *env) {
+-
+-    xmlrpc_value *methods;
+-    xmlrpc_registry *registry;
+-    int registry_valid;
+-    
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    
+-    /* Error-handling preconditions. */
+-    methods = NULL;
+-    registry = NULL;
+-    registry_valid = 0;
+-
+-    /* Allocate our memory. */
+-    methods = xmlrpc_struct_new(env);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-    registry = (xmlrpc_registry*) malloc(sizeof(xmlrpc_registry));
+-    XMLRPC_FAIL_IF_NULL(registry, env, XMLRPC_INTERNAL_ERROR,
+-                        "Could not allocate memory for registry");
+-    
+-    /* Set everything up. */
+-    registry->_introspection_enabled = 1;
+-    registry->_methods = methods;
+-    registry->_default_method = NULL;
+-    registry->_preinvoke_method = NULL;
+-    registry_valid = 1;
+-
+-    /* Install our system methods. */
+-    install_system_methods(env, registry);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+- cleanup:
+-    if (env->fault_occurred) {
+-        if (registry_valid) {
+-            xmlrpc_registry_free(registry);
+-        } else {
+-            if (methods)
+-                xmlrpc_DECREF(methods);
+-            if (registry)
+-                free(registry);
+-        }
+-        return NULL;
+-    }
+-    return registry;
+-}
+-
+-
+-
+-void 
+-xmlrpc_registry_free(xmlrpc_registry * registry) {
+-
+-    XMLRPC_ASSERT_PTR_OK(registry);
+-    XMLRPC_ASSERT(registry->_methods != XMLRPC_BAD_POINTER);
+-
+-    xmlrpc_DECREF(registry->_methods);
+-    registry->_methods = XMLRPC_BAD_POINTER;
+-    if (registry->_default_method != NULL)
+-        xmlrpc_DECREF(registry->_default_method);
+-    if (registry->_preinvoke_method != NULL)
+-        xmlrpc_DECREF(registry->_preinvoke_method);
+-    free(registry);
+-}
+-
+-
+-
+-/*=========================================================================
+-**  xmlrpc_registry_disable_introspection
+-**=========================================================================
+-**  See xmlrpc.h for more documentation.
+-*/
+-
+-void 
+-xmlrpc_registry_disable_introspection(xmlrpc_registry * registry) {
+-    XMLRPC_ASSERT_PTR_OK(registry);
+-    registry->_introspection_enabled = 0;
+-}
+-
+-
+-
+-/*=========================================================================
+-**  xmlrpc_registry_add_method
+-**=========================================================================
+-**  See xmlrpc.h for more documentation.
+-*/
+-
+-void 
+-xmlrpc_registry_add_method(xmlrpc_env *env,
+-                           xmlrpc_registry *registry,
+-                           const char *host,
+-                           const char *method_name,
+-                           xmlrpc_method method,
+-                           void *user_data) {
+-
+-    xmlrpc_registry_add_method_w_doc (env, registry, host, method_name,
+-                      method, user_data, "?",
+-                      "No help is available for this method.");
+-}
+-
+-
+-
+-void 
+-xmlrpc_registry_add_method_w_doc(xmlrpc_env *env,
+-                                 xmlrpc_registry *registry,
+-                                 const char *host,
+-                                 const char *method_name,
+-                                 xmlrpc_method method,
+-                                 void *user_data,
+-                                 const char *signature,
+-                                 const char *help) {
+-    xmlrpc_value *method_info;
+-
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    XMLRPC_ASSERT_PTR_OK(registry);
+-    XMLRPC_ASSERT(host == NULL);
+-    XMLRPC_ASSERT_PTR_OK(method_name);
+-    XMLRPC_ASSERT_PTR_OK(method);
+-
+-    /* Error-handling preconditions. */
+-    method_info = NULL;
+-
+-    /* Store our method and user data into our hash table. */
+-    method_info = xmlrpc_build_value(env, "(ppss)", (void*) method, user_data,
+-                                     signature, help);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-    xmlrpc_struct_set_value(env, registry->_methods, method_name, method_info);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+- cleanup:
+-    if (method_info)
+-    xmlrpc_DECREF(method_info);
+-
+-}
+-
+-
+-
+-/*=========================================================================
+-**  xmlrpc_registry_set_default_method
+-**=========================================================================
+-**  See xmlrpc.h for more documentation.
+-*/
+-
+-void 
+-xmlrpc_registry_set_default_method(xmlrpc_env *env,
+-                                   xmlrpc_registry *registry,
+-                                   xmlrpc_default_method handler,
+-                                   void *user_data) {
+-    xmlrpc_value *method_info;
+-
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    XMLRPC_ASSERT_PTR_OK(registry);
+-    XMLRPC_ASSERT_PTR_OK(handler);
+-
+-    /* Error-handling preconditions. */
+-    method_info = NULL;
+-    
+-    /* Store our method and user data into our hash table. */
+-    method_info = xmlrpc_build_value(env, "(pp)", (void*) handler, user_data);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+-    /* Dispose of any pre-existing default method and install ours. */
+-    if (registry->_default_method)
+-        xmlrpc_DECREF(registry->_default_method);
+-    registry->_default_method = method_info;
+-    
+-cleanup:
+-    if (env->fault_occurred) {
+-        if (method_info)
+-            xmlrpc_DECREF(method_info);
+-    }
+-}
+-
+-
+-
+-/*=========================================================================
+-**  xmlrpc_registry_set_preinvoke_method
+-**=========================================================================
+-**  See xmlrpc.h for more documentation.
+-*/
+-
+-void 
+-xmlrpc_registry_set_preinvoke_method(xmlrpc_env *env,
+-                                     xmlrpc_registry *registry,
+-                                     xmlrpc_preinvoke_method handler,
+-                                     void *user_data) {
+-    xmlrpc_value *method_info;
+-
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    XMLRPC_ASSERT_PTR_OK(registry);
+-    XMLRPC_ASSERT_PTR_OK(handler);
+-
+-    /* Error-handling preconditions. */
+-    method_info = NULL;
+-
+-    /* Store our method and user data into our hash table. */
+-    method_info = xmlrpc_build_value(env, "(pp)", (void*) handler, user_data);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+-    /* Dispose of any pre-existing preinvoke method and install ours. */
+-    if (registry->_preinvoke_method)
+-        xmlrpc_DECREF(registry->_preinvoke_method);
+-    registry->_preinvoke_method = method_info;
+-
+- cleanup:
+-    if (env->fault_occurred) {
+-        if (method_info)
+-            xmlrpc_DECREF(method_info);
+-    }
+-}
+-
+-
+-
+-/*=========================================================================
+-**  dispatch_call
+-**=========================================================================
+-**  An internal method which actually does the dispatch. This may get
+-**  prettified and exported at some point in the future.
+-*/
+-
+-static void
+-callPreinvokeMethodIfAny(xmlrpc_env *      const envP,
+-                         xmlrpc_registry * const registryP,
+-                         const char *      const methodName,
+-                         xmlrpc_value *    const paramArrayP) {
+-
+-    /* Get the preinvoke method, if it is set. */
+-    if (registryP->_preinvoke_method) {
+-        xmlrpc_preinvoke_method preinvoke_method;
+-        void * user_data;
+-
+-        xmlrpc_parse_value(envP, registryP->_preinvoke_method, "(pp)",
+-                           &preinvoke_method, &user_data);
+-        if (!envP->fault_occurred)
+-            (*preinvoke_method)(envP, methodName,
+-                                paramArrayP, user_data);
+-    }
+-}
+-
+-
+-
+-static void
+-callDefaultMethod(xmlrpc_env *    const envP,
+-                  xmlrpc_value *  const defaultMethodInfo,
+-                  const char *    const methodName,
+-                  xmlrpc_value *  const paramArrayP,
+-                  xmlrpc_value ** const resultPP) {
+-
+-    xmlrpc_default_method default_method;
+-    void * user_data;
+-
+-    xmlrpc_parse_value(envP, defaultMethodInfo, "(pp)",
+-                       &default_method, &user_data);
+-
+-    if (!envP->fault_occurred)
+-        *resultPP = (*default_method)(envP, NULL, methodName,
+-                                      paramArrayP, user_data);
+-}
+-    
+-
+-
+-static void
+-callNamedMethod(xmlrpc_env *    const envP,
+-                xmlrpc_value *  const methodInfo,
+-                xmlrpc_value *  const paramArrayP,
+-                xmlrpc_value ** const resultPP) {
+-
+-    xmlrpc_method method;
+-    void * user_data;
+-    
+-    xmlrpc_parse_value(envP, methodInfo, "(pp*)", &method, &user_data);
+-    if (!envP->fault_occurred)
+-        *resultPP = (*method)(envP, paramArrayP, user_data);
+-}
+-
+-
+-
+-static void
+-dispatch_call(xmlrpc_env *      const envP, 
+-              xmlrpc_registry * const registryP,
+-              const char *      const methodName, 
+-              xmlrpc_value *    const paramArrayP,
+-              xmlrpc_value **   const resultPP) {
+-
+-    callPreinvokeMethodIfAny(envP, registryP, methodName, paramArrayP);
+-    if (!envP->fault_occurred) {
+-        xmlrpc_value * method_info;
+-
+-        /* Look up the method info for the named method. */
+-        xmlrpc_struct_find_value(envP, registryP->_methods,
+-                                 methodName, &method_info);
+-        if (!envP->fault_occurred) {
+-            if (method_info) {
+-                callNamedMethod(envP, method_info, paramArrayP, resultPP);
+-                xmlrpc_DECREF(method_info);
+-            } else {
+-                if (registryP->_default_method)
+-                    callDefaultMethod(envP, registryP->_default_method, 
+-                                      methodName, paramArrayP,
+-                                      resultPP);
+-                else {
+-                    /* No matching method, and no default. */
+-                    xmlrpc_env_set_fault_formatted(
+-                        envP, XMLRPC_NO_SUCH_METHOD_ERROR,
+-                        "Method '%s' not defined", methodName);
+-                }
+-            } 
+-        }
+-    }
+-    /* For backward compatibility, for sloppy users: */
+-    if (envP->fault_occurred)
+-        *resultPP = NULL;
+-}
+-
+-
+-
+-/*=========================================================================
+-**  xmlrpc_registry_process_call
+-**=========================================================================
+-**
+-*/
+-
+-xmlrpc_mem_block *
+-xmlrpc_registry_process_call(xmlrpc_env *      const envP,
+-                             xmlrpc_registry * const registryP,
+-                             const char *      const host ATTR_UNUSED,
+-                             const char *      const xml_data,
+-                             size_t            const xml_len) {
+-
+-    xmlrpc_mem_block * output;
+-
+-    XMLRPC_ASSERT_ENV_OK(envP);
+-    XMLRPC_ASSERT_PTR_OK(xml_data);
+-    
+-    xmlrpc_traceXml("XML-RPC CALL", xml_data, xml_len);
+-
+-    /* Allocate our output buffer.
+-    ** If this fails, we need to die in a special fashion. */
+-    output = XMLRPC_MEMBLOCK_NEW(char, envP, 0);
+-    if (!envP->fault_occurred) {
+-        const char * methodName;
+-        xmlrpc_value * paramArray;
+-        xmlrpc_env fault;
+-
+-        xmlrpc_env_init(&fault);
+-
+-        xmlrpc_parse_call(&fault, xml_data, xml_len, 
+-                          &methodName, &paramArray);
+-
+-        if (!fault.fault_occurred) {
+-            xmlrpc_value * result;
+-            
+-            dispatch_call(&fault, registryP, methodName, paramArray, &result);
+-
+-            if (!fault.fault_occurred) {
+-                xmlrpc_serialize_response(envP, output, result);
+-
+-                /* A comment here used to say that
+-                   xmlrpc_serialize_response() could fail and "leave
+-                   stuff in the buffer."  Don't know what that means,
+-                   but it sounds like something that needs to be
+-                   fixed.  The old code aborted the program here if
+-                   xmlrpc_serialize_repsonse() failed.  04.11.17 
+-                */
+-                xmlrpc_DECREF(result);
+-            } 
+-            xmlrpc_strfree(methodName);
+-            xmlrpc_DECREF(paramArray);
+-        }
+-        if (!envP->fault_occurred && fault.fault_occurred)
+-            xmlrpc_serialize_fault(envP, output, &fault);
+-
+-        xmlrpc_env_clean(&fault);
+-
+-        if (envP->fault_occurred)
+-            XMLRPC_MEMBLOCK_FREE(char, output);
+-        else
+-            xmlrpc_traceXml("XML-RPC RESPONSE", 
+-                            XMLRPC_MEMBLOCK_CONTENTS(char, output),
+-                            XMLRPC_MEMBLOCK_SIZE(char, output));
+-    }
+-    return output;
+-}
+-
+-
+-
+-/*=========================================================================
+-**  system.multicall
+-**=========================================================================
+-**  Low-tech support for transparent, boxed methods.
+-*/
+-
+-static char *multicall_help =
+-"Process an array of calls, and return an array of results. Calls should "
+-"be structs of the form {'methodName': string, 'params': array}. Each "
+-"result will either be a single-item array containg the result value, or "
+-"a struct of the form {'faultCode': int, 'faultString': string}. This "
+-"is useful when you need to make lots of small calls without lots of "
+-"round trips.";
+-
+-static xmlrpc_value *
+-call_one_method(xmlrpc_env *env, xmlrpc_registry *registry,
+-                xmlrpc_value *method_info) {
+-
+-    xmlrpc_value *result_val, *result;
+-    char *method_name;
+-    xmlrpc_value *param_array;
+-
+-    /* Error-handling preconditions. */
+-    result = result_val = NULL;
+-    
+-    /* Extract our method name and parameters. */
+-    xmlrpc_parse_value(env, method_info, "{s:s,s:A,*}",
+-                       "methodName", &method_name,
+-                       "params", &param_array);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+-    /* Watch out for a deep recursion attack. */
+-    if (strcmp(method_name, "system.multicall") == 0)
+-        XMLRPC_FAIL(env, XMLRPC_REQUEST_REFUSED_ERROR,
+-                    "Recursive system.multicall strictly forbidden");
+-    
+-    /* Perform the call. */
+-    dispatch_call(env, registry, method_name, param_array, &result_val);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-    
+-    /* Build our one-item result array. */
+-    result = xmlrpc_build_value(env, "(V)", result_val);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-    
+- cleanup:
+-    if (result_val)
+-        xmlrpc_DECREF(result_val);
+-    if (env->fault_occurred) {
+-        if (result)
+-            xmlrpc_DECREF(result);
+-        return NULL;
+-    }
+-    return result;
+-}
+-
+-
+-
+-static xmlrpc_value *
+-system_multicall(xmlrpc_env *env,
+-                 xmlrpc_value *param_array,
+-                 void *user_data) {
+-
+-    xmlrpc_registry *registry;
+-    xmlrpc_value *methlist, *methinfo, *results, *result;
+-    size_t size, i;
+-    xmlrpc_env env2;
+-
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    XMLRPC_ASSERT_VALUE_OK(param_array);
+-    XMLRPC_ASSERT_PTR_OK(user_data);
+-
+-    /* Error-handling preconditions. */
+-    results = result = NULL;
+-    xmlrpc_env_init(&env2);
+-    
+-    /* Turn our arguments into something more useful. */
+-    registry = (xmlrpc_registry*) user_data;
+-    xmlrpc_parse_value(env, param_array, "(A)", &methlist);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+-    /* Create an empty result list. */
+-    results = xmlrpc_build_value(env, "()");
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+-    /* Loop over our input list, calling each method in turn. */
+-    size = xmlrpc_array_size(env, methlist);
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    for (i = 0; i < size; i++) {
+-        methinfo = xmlrpc_array_get_item(env, methlist, i);
+-        XMLRPC_ASSERT_ENV_OK(env);
+-        
+-        /* Call our method. */
+-        xmlrpc_env_clean(&env2);
+-        xmlrpc_env_init(&env2);
+-        result = call_one_method(&env2, registry, methinfo);
+-        
+-        /* Turn any fault into a structure. */
+-        if (env2.fault_occurred) {
+-            XMLRPC_ASSERT(result == NULL);
+-            result = 
+-                xmlrpc_build_value(env, "{s:i,s:s}",
+-                                   "faultCode", (xmlrpc_int32) env2.fault_code,
+-                                   "faultString", env2.fault_string);
+-            XMLRPC_FAIL_IF_FAULT(env);
+-        }
+-        
+-        /* Append this method result to our master array. */
+-        xmlrpc_array_append_item(env, results, result);
+-        xmlrpc_DECREF(result);
+-        result = NULL;
+-        XMLRPC_FAIL_IF_FAULT(env);
+-    }
+-
+- cleanup:
+-    xmlrpc_env_clean(&env2);
+-    if (result)
+-        xmlrpc_DECREF(result);
+-    if (env->fault_occurred) {
+-        if (results)
+-            xmlrpc_DECREF(results);
+-        return NULL;
+-    }
+-    return results;
+-}
+-
+-
+-
+-/*=========================================================================
+-**  system.listMethods
+-**=========================================================================
+-**  List all available methods by name.
+-*/
+-
+-static char *listMethods_help =
+-"Return an array of all available XML-RPC methods on this server.";
+-
+-static xmlrpc_value *
+-system_listMethods(xmlrpc_env *env,
+-                   xmlrpc_value *param_array,
+-                   void *user_data) {
+-
+-    xmlrpc_registry *registry;
+-    xmlrpc_value *method_names, *method_name, *method_info;
+-    size_t size, i;
+-
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    XMLRPC_ASSERT_VALUE_OK(param_array);
+-    XMLRPC_ASSERT_PTR_OK(user_data);
+-
+-    /* Error-handling preconditions. */
+-    method_names = NULL;
+-
+-    /* Turn our arguments into something more useful. */
+-    registry = (xmlrpc_registry*) user_data;
+-    xmlrpc_parse_value(env, param_array, "()");
+-    XMLRPC_FAIL_IF_FAULT(env);
+-    
+-    /* Make sure we're allowed to introspect. */
+-    if (!registry->_introspection_enabled)
+-        XMLRPC_FAIL(env, XMLRPC_INTROSPECTION_DISABLED_ERROR,
+-                    "Introspection disabled for security reasons");
+-    
+-    /* Iterate over all the methods in the registry, adding their names
+-    ** to a list. */
+-    method_names = xmlrpc_build_value(env, "()");
+-    XMLRPC_FAIL_IF_FAULT(env);
+-    size = xmlrpc_struct_size(env, registry->_methods);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-    for (i = 0; i < size; i++) {
+-        xmlrpc_struct_get_key_and_value(env, registry->_methods, i,
+-                                        &method_name, &method_info);
+-        XMLRPC_FAIL_IF_FAULT(env);
+-        xmlrpc_array_append_item(env, method_names, method_name);
+-        XMLRPC_FAIL_IF_FAULT(env);
+-    }
+-
+- cleanup:
+-    if (env->fault_occurred) {
+-        if (method_names)
+-            xmlrpc_DECREF(method_names);
+-        return NULL;
+-    }
+-    return method_names;
+-}
+-
+-
+-
+-/*=========================================================================
+-**  system.methodHelp
+-**=========================================================================
+-**  Get the help string for a particular method.
+-*/
+-
+-static char *methodHelp_help =
+-"Given the name of a method, return a help string.";
+-
+-static xmlrpc_value *
+-system_methodHelp(xmlrpc_env *env,
+-                  xmlrpc_value *param_array,
+-                  void *user_data) {
+-
+-    xmlrpc_registry *registry;
+-    char *method_name;
+-    xmlrpc_value *ignored1, *ignored2, *ignored3, *help;
+-
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    XMLRPC_ASSERT_VALUE_OK(param_array);
+-    XMLRPC_ASSERT_PTR_OK(user_data);
+-
+-    /* Turn our arguments into something more useful. */
+-    registry = (xmlrpc_registry*) user_data;
+-    xmlrpc_parse_value(env, param_array, "(s)", &method_name);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-    
+-    /* Make sure we're allowed to introspect. */
+-    if (!registry->_introspection_enabled)
+-        XMLRPC_FAIL(env, XMLRPC_INTROSPECTION_DISABLED_ERROR,
+-                    "Introspection disabled for security reasons");
+-    
+-    /* Get our documentation string. */
+-    xmlrpc_parse_value(env, registry->_methods, "{s:(VVVV*),*}",
+-                       method_name, &ignored1, &ignored2, &ignored3, &help);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-    
+- cleanup:
+-    if (env->fault_occurred)
+-        return NULL;
+-    xmlrpc_INCREF(help);
+-    return help;
+-}
+-
+-
+-
+-/*=========================================================================
+-**  system.methodSignature
+-**=========================================================================
+-**  Return an array of arrays describing possible signatures for this
+-**  method.
+-**
+-**  XXX - This is the ugliest function in the entire library.
+-*/
+-
+-static char *methodSignature_help =
+-"Given the name of a method, return an array of legal signatures. "
+-"Each signature is an array of strings. The first item of each signature "
+-"is the return type, and any others items are parameter types.";
+-
+-static char *bad_sig_str =
+-"Application has incorrect method signature information";
+-
+-#define BAD_SIG(env) \
+-    XMLRPC_FAIL((env), XMLRPC_INTERNAL_ERROR, bad_sig_str);
+-
+-static xmlrpc_value *
+-system_methodSignature(xmlrpc_env *env,
+-                       xmlrpc_value *param_array,
+-                       void *user_data) {
+-
+-    xmlrpc_registry *registry;
+-    char *method_name;
+-    xmlrpc_value *ignored1, *ignored2, *ignored3;
+-    xmlrpc_value *item, *current, *result;
+-    int at_sig_start;
+-    char *sig, *code;
+-
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    XMLRPC_ASSERT_VALUE_OK(param_array);
+-    XMLRPC_ASSERT_PTR_OK(user_data);
+-
+-    /* Error-handling preconditions. */
+-    item = current = result = NULL;
+-
+-    /* Turn our arguments into something more useful. */
+-    registry = (xmlrpc_registry*) user_data;
+-    xmlrpc_parse_value(env, param_array, "(s)", &method_name);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+-    /* Make sure we're allowed to introspect. */
+-    if (!registry->_introspection_enabled)
+-        XMLRPC_FAIL(env, XMLRPC_INTROSPECTION_DISABLED_ERROR,
+-                    "Introspection disabled for security reasons");
+-    
+-    /* Get our signature string. */
+-    xmlrpc_parse_value(env, registry->_methods, "{s:(VVsV*),*}",
+-                       method_name, &ignored1, &ignored2, &sig, &ignored3);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-    
+-    if (sig[0] == '?' && sig[1] == '\0') {
+-        /* No signature supplied. */
+-        result = xmlrpc_build_value(env, "s", "undef");
+-        XMLRPC_FAIL_IF_FAULT(env);
+-    } else {
+-        /* Build an array of arrays. */
+-        current = xmlrpc_build_value(env, "()");
+-        XMLRPC_FAIL_IF_FAULT(env);
+-        result = xmlrpc_build_value(env, "(V)", current);
+-        XMLRPC_FAIL_IF_FAULT(env);
+-        at_sig_start = 1;
+-        
+-        do {
+-        next_loop:
+-            
+-            /* Process the current code. */
+-            switch (*(sig++)) {
+-            case 'i': code = "int"; break;
+-            case 'b': code = "boolean"; break;
+-            case 'd': code = "double"; break;
+-            case 's': code = "string"; break;
+-            case '8': code = "dateTime.iso8601"; break;
+-            case '6': code = "base64"; break;
+-            case 'S': code = "struct"; break;
+-            case 'A': code = "array"; break;
+-                
+-            case ',':
+-                /* Start a new signature array. */
+-                if (at_sig_start)
+-                    BAD_SIG(env);
+-                xmlrpc_DECREF(current);
+-                current = xmlrpc_build_value(env, "()");
+-                XMLRPC_FAIL_IF_FAULT(env);
+-                xmlrpc_array_append_item(env, result, current);
+-                XMLRPC_FAIL_IF_FAULT(env);
+-                at_sig_start = 1;
+-                goto next_loop;
+-                
+-            default:
+-            BAD_SIG(env);
+-            }
+-            
+-            /* Append the appropriate string to our current signature. */
+-            item = xmlrpc_build_value(env, "s", code);
+-            XMLRPC_FAIL_IF_FAULT(env);
+-            xmlrpc_array_append_item(env, current, item);
+-            xmlrpc_DECREF(item);
+-            item = NULL;
+-            XMLRPC_FAIL_IF_FAULT(env);
+-            
+-            /* Advance to the next code, and skip over ':' if necessary. */
+-            if (at_sig_start) {
+-                if (*sig != ':')
+-                    BAD_SIG(env);
+-                sig++;
+-                at_sig_start = 0;
+-            }
+-            
+-        } while (*sig != '\0');
+-    }
+-    
+- cleanup:
+-    if (item)
+-        xmlrpc_DECREF(item);
+-    if (current)
+-        xmlrpc_DECREF(current);
+-    if (env->fault_occurred) {
+-        if (result)
+-            xmlrpc_DECREF(result);
+-        return NULL;
+-    }
+-    return result;
+-}
+-
+-
+-
+-/*=========================================================================
+-**  install_system_methods
+-**=========================================================================
+-**  Install the standard methods under system.*.
+-**  This particular function is highly experimental, and may disappear
+-**  without warning.
+-*/
+-
+-static void
+-install_system_methods(xmlrpc_env *env, xmlrpc_registry *registry) {
+-
+-    xmlrpc_registry_add_method_w_doc(env, registry, NULL,
+-                                     "system.listMethods",
+-                                     &system_listMethods, registry,
+-                                     "A:", listMethods_help);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-    xmlrpc_registry_add_method_w_doc(env, registry, NULL,
+-                                     "system.methodSignature",
+-                                     &system_methodSignature, registry,
+-                                     "A:s", methodSignature_help);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-    xmlrpc_registry_add_method_w_doc(env, registry, NULL,
+-                                     "system.methodHelp",
+-                                     &system_methodHelp, registry,
+-                                     "s:s", methodHelp_help);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-    xmlrpc_registry_add_method_w_doc(env, registry, NULL,
+-                                     "system.multicall",
+-                                     &system_multicall, registry,
+-                                     "A:A", multicall_help);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-    
+- cleanup:
+-    return;
+-}
+diff --git a/libs/xmlrpc-c/src/xmlrpc_serialize.c b/libs/xmlrpc-c/src/xmlrpc_serialize.c
+index 3ca64dd..78bbc10 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_serialize.c
++++ b/libs/xmlrpc-c/src/xmlrpc_serialize.c
+@@ -4,9 +4,9 @@
+    The printf format specifiers we use appear to be entirely standard,
+    except for the "long long" one, which is %I64 on Windows and %lld
+-   everywhere else.  So for that, we use the C99 standard macro PRId64,
+-   which is defined by inttypes.h.  Ironically, Windows doesn't have
+-   inttypes.h either, but we have int.h instead.
++   everywhere else.  We could use the C99 standard macro PRId64 for that,
++   but on at least one 64-bit-long GNU compiler, PRId64 is "ld", which is
++   considered to be incompatible with long long.  So we have XMLRPC_PRId64.
+ */
+ #include "xmlrpc_config.h"
+@@ -26,8 +26,9 @@
+ #include "double.h"
+ #define CRLF "\015\012"
+-#define SMALL_BUFFER_SZ (128)
+ #define XML_PROLOGUE "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"CRLF
++#define APACHE_URL "http://ws.apache.org/xmlrpc/namespaces/extensions"
++#define XMLNS_APACHE "xmlns:ex=\"" APACHE_URL "\""
+ static void
+@@ -54,26 +55,31 @@ formatOut(xmlrpc_env *       const envP,
+   particular, do NOT use this routine to print XML-RPC string values!
+ -----------------------------------------------------------------------------*/
+     va_list args;
+-    char buffer[SMALL_BUFFER_SZ];
+-    int count;
++    char buffer[128];
++    int rc;
+     XMLRPC_ASSERT_ENV_OK(envP);
+     va_start(args, formatString);
+-    count = XMLRPC_VSNPRINTF(buffer, SMALL_BUFFER_SZ, formatString, args);
++    rc = XMLRPC_VSNPRINTF(buffer, sizeof(buffer), formatString, args);
+-    /* Old C libraries return -1 if vsnprintf overflows its buffer.
+-    ** New C libraries return the number of characters which *would* have
+-    ** been printed if the error did not occur. This is impressively vile.
+-    ** Thank the C99 committee for this bright idea. But wait! We also
+-    ** need to keep track of the trailing NUL. */
++    /* Old vsnprintf() (and Windows) fails with return value -1 if the full
++       string doesn't fit in the buffer.  New vsnprintf() puts whatever will
++       fit in the buffer, and returns the length of the full string
++       regardless.  For us, this truncation is a failure.
++    */
+-    if (count < 0 || count >= (SMALL_BUFFER_SZ - 1))
++    if (rc < 0)
+         xmlrpc_faultf(envP, "formatOut() overflowed internal buffer");
+-    else
+-        XMLRPC_MEMBLOCK_APPEND(char, envP, outputP, buffer, count);
++    else {
++        unsigned int const formattedLen = rc;
++        if (formattedLen + 1 >= (sizeof(buffer)))
++            xmlrpc_faultf(envP, "formatOut() overflowed internal buffer");
++        else
++            XMLRPC_MEMBLOCK_APPEND(char, envP, outputP, buffer, formattedLen);
++    }
+     va_end(args);
+ }
+@@ -271,6 +277,74 @@ xmlrpc_serialize_base64_data(xmlrpc_env *       const envP,
++static void
++serializeDatetime(xmlrpc_env *       const envP,
++                  xmlrpc_mem_block * const outputP,
++                  xmlrpc_value *     const valueP) {
++/*----------------------------------------------------------------------------
++   Add to *outputP the content of a <value> element to represent
++   the datetime value *valueP.  I.e.
++   "<dateTime.iso8601> ... </dateTime.iso8601>".
++-----------------------------------------------------------------------------*/
++
++    addString(envP, outputP, "<dateTime.iso8601>");
++    if (!envP->fault_occurred) {
++        char dtString[64];
++
++        snprintf(dtString, sizeof(dtString),
++                 "%u%02u%02uT%02u:%02u:%02u",
++                 valueP->_value.dt.Y,
++                 valueP->_value.dt.M,
++                 valueP->_value.dt.D,
++                 valueP->_value.dt.h,
++                 valueP->_value.dt.m,
++                 valueP->_value.dt.s);
++
++        if (valueP->_value.dt.u != 0) {
++            char usecString[64];
++            assert(valueP->_value.dt.u < 1000000);
++            snprintf(usecString, sizeof(usecString), ".%06u",
++                     valueP->_value.dt.u);
++            STRSCAT(dtString, usecString);
++        }
++        addString(envP, outputP, dtString);
++
++        if (!envP->fault_occurred) {
++            addString(envP, outputP, "</dateTime.iso8601>");
++        }
++    }
++}
++
++
++
++static void
++serializeStructMember(xmlrpc_env *       const envP,
++                      xmlrpc_mem_block * const outputP,
++                      xmlrpc_value *     const memberKeyP,
++                      xmlrpc_value *     const memberValueP,
++                      xmlrpc_dialect     const dialect) {
++    
++    addString(envP, outputP, "<member><name>");
++
++    if (!envP->fault_occurred) {
++        serializeUtf8MemBlock(envP, outputP, &memberKeyP->_block);
++
++        if (!envP->fault_occurred) {
++            addString(envP, outputP, "</name>"CRLF);
++
++            if (!envP->fault_occurred) {
++                xmlrpc_serialize_value2(envP, outputP, memberValueP, dialect);
++
++                if (!envP->fault_occurred) {
++                    addString(envP, outputP, "</member>"CRLF);
++                }
++            }
++        }
++    }
++}
++
++
++
+ static void 
+ serializeStruct(xmlrpc_env *       const envP,
+                 xmlrpc_mem_block * const outputP,
+@@ -280,37 +354,25 @@ serializeStruct(xmlrpc_env *       const envP,
+    Add to *outputP the content of a <value> element to represent
+    the structure value *valueP.  I.e. "<struct> ... </struct>".
+ -----------------------------------------------------------------------------*/
+-    size_t size;
+-    size_t i;
+-    xmlrpc_value * memberKeyP;
+-    xmlrpc_value * memberValueP;
+-
+     addString(envP, outputP, "<struct>"CRLF);
+-    XMLRPC_FAIL_IF_FAULT(envP);
+-
+-    size = xmlrpc_struct_size(envP, structP);
+-    XMLRPC_FAIL_IF_FAULT(envP);
+-    for (i = 0; i < size; ++i) {
+-        xmlrpc_struct_get_key_and_value(envP, structP, i,
+-                                        &memberKeyP, &memberValueP);
+-        XMLRPC_FAIL_IF_FAULT(envP);
+-        addString(envP, outputP, "<member><name>");
+-        XMLRPC_FAIL_IF_FAULT(envP);
+-        serializeUtf8MemBlock(envP, outputP, &memberKeyP->_block);
+-        XMLRPC_FAIL_IF_FAULT(envP);
+-        addString(envP, outputP, "</name>"CRLF);
+-        XMLRPC_FAIL_IF_FAULT(envP);
+-        xmlrpc_serialize_value2(envP, outputP, memberValueP, dialect);
+-        XMLRPC_FAIL_IF_FAULT(envP);
+-        addString(envP, outputP, "</member>"CRLF);
+-        XMLRPC_FAIL_IF_FAULT(envP);
+-    }
+-
+-    addString(envP, outputP, "</struct>");
+-    XMLRPC_FAIL_IF_FAULT(envP);
++    if (!envP->fault_occurred) {
++        unsigned int const size = xmlrpc_struct_size(envP, structP);
++        if (!envP->fault_occurred) {
++            unsigned int i;
++            for (i = 0; i < size && !envP->fault_occurred; ++i) {
++                xmlrpc_value * memberKeyP;
++                xmlrpc_value * memberValueP;
+-cleanup:
+-    return;
++                xmlrpc_struct_get_key_and_value(envP, structP, i,
++                                                &memberKeyP, &memberValueP);
++                if (!envP->fault_occurred) {
++                    serializeStructMember(envP, outputP,
++                                          memberKeyP, memberValueP, dialect);
++                }
++            }
++            addString(envP, outputP, "</struct>");
++        }
++    }
+ }
+@@ -366,7 +428,7 @@ formatValueContent(xmlrpc_env *       const envP,
+     case XMLRPC_TYPE_I8: {
+         const char * const elemName =
+-            dialect == xmlrpc_dialect_apache ? "ex.i8" : "i8";
++            dialect == xmlrpc_dialect_apache ? "ex:i8" : "i8";
+         formatOut(envP, outputP, "<%s>%" PRId64 "</%s>",
+                   elemName, valueP->_value.i8, elemName);
+     } break;
+@@ -391,13 +453,7 @@ formatValueContent(xmlrpc_env *       const envP,
+     } break;
+     case XMLRPC_TYPE_DATETIME:
+-        addString(envP, outputP, "<dateTime.iso8601>");
+-        if (!envP->fault_occurred) {
+-            serializeUtf8MemBlock(envP, outputP, &valueP->_block);
+-            if (!envP->fault_occurred) {
+-                addString(envP, outputP, "</dateTime.iso8601>");
+-            }
+-        }
++        serializeDatetime(envP, outputP, valueP);
+         break;
+     case XMLRPC_TYPE_STRING:
+@@ -436,7 +492,7 @@ formatValueContent(xmlrpc_env *       const envP,
+     case XMLRPC_TYPE_NIL: {
+         const char * const elemName =
+-            dialect == xmlrpc_dialect_apache ? "ex.nil" : "nil";
++            dialect == xmlrpc_dialect_apache ? "ex:nil" : "nil";
+         formatOut(envP, outputP, "<%s/>", elemName);
+     } break;
+@@ -502,9 +558,9 @@ xmlrpc_serialize_params2(xmlrpc_env *       const envP,
+     addString(envP, outputP, "<params>"CRLF);
+     if (!envP->fault_occurred) {
+         /* Serialize each parameter. */
+-        size_t const paramCount = xmlrpc_array_size(envP, paramArrayP);
++        int const paramCount = xmlrpc_array_size(envP, paramArrayP);
+         if (!envP->fault_occurred) {
+-            size_t paramSeq;
++            int paramSeq;
+             for (paramSeq = 0;
+                  paramSeq < paramCount && !envP->fault_occurred;
+                  ++paramSeq) {
+@@ -567,7 +623,9 @@ xmlrpc_serialize_call2(xmlrpc_env *       const envP,
+     
+     addString(envP, outputP, XML_PROLOGUE);
+     if (!envP->fault_occurred) {
+-        addString(envP, outputP, "<methodCall>"CRLF"<methodName>");
++        const char * const xmlns =
++            dialect == xmlrpc_dialect_apache ? " " XMLNS_APACHE : "";
++        formatOut(envP, outputP, "<methodCall%s>"CRLF"<methodName>", xmlns);
+         if (!envP->fault_occurred) {
+             xmlrpc_mem_block * encodedP;
+             escapeForXml(envP, methodName, strlen(methodName), &encodedP);
+@@ -623,8 +681,10 @@ xmlrpc_serialize_response2(xmlrpc_env *       const envP,
+     addString(envP, outputP, XML_PROLOGUE);
+     if (!envP->fault_occurred) {
+-        addString(envP, outputP,
+-                  "<methodResponse>"CRLF"<params>"CRLF"<param>");
++        const char * const xmlns =
++            dialect == xmlrpc_dialect_apache ? " " XMLNS_APACHE : "";
++        formatOut(envP, outputP,
++                  "<methodResponse%s>"CRLF"<params>"CRLF"<param>", xmlns);
+         if (!envP->fault_occurred) {
+             xmlrpc_serialize_value2(envP, outputP, valueP, dialect);
+             if (!envP->fault_occurred) {
+diff --git a/libs/xmlrpc-c/src/xmlrpc_server_abyss.c b/libs/xmlrpc-c/src/xmlrpc_server_abyss.c
+index 7cb1ae1..8471c4c 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_server_abyss.c
++++ b/libs/xmlrpc-c/src/xmlrpc_server_abyss.c
+@@ -2,6 +2,8 @@
+ #include "xmlrpc_config.h"
++#define _XOPEN_SOURCE 600  /* For strdup(), sigaction */
++
+ #include <assert.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -39,17 +41,12 @@ struct xmlrpc_server_abyss {
+-/*=========================================================================
+-**  die_if_fault_occurred
+-**=========================================================================
+-**  If certain kinds of out-of-memory errors occur during server setup,
+-**  we want to quit and print an error.
+-*/
++static void
++dieIfFaultOccurred(xmlrpc_env * const envP) {
+-static void die_if_fault_occurred(xmlrpc_env *env) {
+-    if (env->fault_occurred) {
++    if (envP->fault_occurred) {
+         fprintf(stderr, "Unexpected XML-RPC fault: %s (%d)\n",
+-                env->fault_string, env->fault_code);
++                envP->fault_string, envP->fault_code);
+         exit(1);
+     }
+ }
+@@ -135,7 +132,7 @@ addAuthCookie(xmlrpc_env * const envP,
+     
+     xmlrpc_asprintf(&cookieResponse, "auth=%s", authCookie);
+     
+-    if (cookieResponse == xmlrpc_strsol)
++    if (xmlrpc_strnomem(cookieResponse))
+         xmlrpc_faultf(envP, "Insufficient memory to generate cookie "
+                       "response header.");
+     else {
+@@ -148,11 +145,12 @@ addAuthCookie(xmlrpc_env * const envP,
+ static void 
+-sendXmlData(xmlrpc_env * const envP,
+-            TSession *   const abyssSessionP, 
+-            const char * const body, 
+-            size_t       const len,
+-            bool         const chunked) {
++sendResponse(xmlrpc_env *      const envP,
++             TSession *        const abyssSessionP, 
++             const char *      const body, 
++             size_t            const len,
++             bool              const chunked,
++             ResponseAccessCtl const accessControl) {
+ /*----------------------------------------------------------------------------
+    Generate an HTTP response containing body 'body' of length 'len'
+    characters.
+@@ -191,17 +189,39 @@ sendXmlData(xmlrpc_env * const envP,
+     else {
+         uint32_t const abyssLen = (uint32_t)len;
+-        ResponseContentType(abyssSessionP, "text/xml; charset=\"utf-8\"");
++        /* See discussion below of quotes around "utf-8" */
++        ResponseContentType(abyssSessionP, "text/xml");
+         ResponseContentLength(abyssSessionP, abyssLen);
++        ResponseAccessControl(abyssSessionP, accessControl);
+         
+-        ResponseWriteStart(abyssSessionP);
+-        ResponseWriteBody(abyssSessionP, body, abyssLen);
+-        ResponseWriteEnd(abyssSessionP);
++        if (ResponseWriteStart(abyssSessionP))
++                      if (ResponseWriteBody(abyssSessionP, body, abyssLen))
++                              if (ResponseWriteEnd(abyssSessionP))
++                                      return;
++
++        xmlrpc_faultf(envP, "socket send() problem");
+     }
+ }
++/* From 0.9.10 (May 2001) through 1.17 (December 2008), the content-type
++   header said charset="utf-8" (i.e. with the value of 'charset' an HTTP quoted
++   string).  Before 0.9.10, the header didn't have charset at all.
++
++   We got a complaint in January 2009 that some client didn't understand that,
++   saying
++
++     apache2: XML-RPC: xmlrpcmsg::parseResponse: invalid charset encoding of
++     received response: "UTF-8"
++
++   And that removing the quotation marks fixes this.
++
++   From what I can tell, the module is wrong to distinguish between the
++   two, but I don't think it hurts anything to use a basic HTTP token instead
++   of an HTTP quoted string here, so starting in 1.18, we do.  */
++
++
+ static void
+ sendError(TSession *   const abyssSessionP, 
+           unsigned int const status,
+@@ -287,9 +307,8 @@ getBody(xmlrpc_env *        const envP,
+         }
+         if (envP->fault_occurred)
+             xmlrpc_mem_block_free(body);
+-        else
+-            *bodyP = body;
+     }
++    *bodyP = body;
+ }
+@@ -320,44 +339,6 @@ storeCookies(TSession *     const httpRequestP,
+ static void
+-validateContentType(TSession *     const httpRequestP,
+-                    const char **  const errorP) {
+-/*----------------------------------------------------------------------------
+-   If the client didn't specify a content-type of "text/xml", fail.
+-   We can't allow the client to default this header, because some
+-   firewall software may rely on all XML-RPC requests using the POST
+-   method and a content-type of "text/xml".x
+------------------------------------------------------------------------------*/
+-    const char * const content_type =
+-        RequestHeaderValue(httpRequestP, "content-type");
+-
+-    if (content_type == NULL)
+-        xmlrpc_asprintf(errorP,
+-                        "You did not supply a content-type HTTP header");
+-    else {
+-        const char * const sempos = strchr(content_type, ';');
+-        unsigned int baselen;
+-            /* Length of the base portion of the content type, e.g.
+-               "text/xml" int "text/xml;charset=utf-8"
+-            */
+-
+-        if (sempos)
+-            baselen = sempos - content_type;
+-        else
+-            baselen = strlen(content_type);
+-
+-        if (!xmlrpc_strneq(content_type, "text/xml", baselen))
+-            xmlrpc_asprintf(errorP, "Your content-type HTTP header value '%s' "
+-                            "does not have a base type of 'text/xml'",
+-                            content_type);
+-        else
+-            *errorP = NULL;
+-    }
+-}
+-
+-
+-
+-static void
+ processContentLength(TSession *    const httpRequestP,
+                      size_t *      const inputLenP,
+                      bool *        const missingP,
+@@ -376,6 +357,7 @@ processContentLength(TSession *    const httpRequestP,
+         *errorP = NULL;
+     } else {
+         *missingP = FALSE;
++        *inputLenP = 0;  /* quiet compiler warning */
+         if (content_length[0] == '\0')
+             xmlrpc_asprintf(errorP, "The value in your content-length "
+                             "HTTP header value is a null string");
+@@ -444,11 +426,13 @@ traceHandlerCalled(TSession * const abyssSessionP) {
+ static void
+-processCall(TSession *        const abyssSessionP,
+-            size_t            const contentSize,
+-            xmlrpc_registry * const registryP,
+-            bool              const wantChunk,
+-            const char *      const trace) {
++processCall(TSession *            const abyssSessionP,
++            size_t                const contentSize,
++            xmlrpc_call_processor       xmlProcessor,
++            void *                const xmlProcessorArg,
++            bool                  const wantChunk,
++            ResponseAccessCtl     const accessControl,
++            const char *          const trace) {
+ /*----------------------------------------------------------------------------
+    Handle an RPC request.  This is an HTTP request that has the proper form
+    to be an XML-RPC call.
+@@ -469,26 +453,27 @@ processCall(TSession *        const abyssSessionP,
+     if (contentSize > xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID))
+         xmlrpc_env_set_fault_formatted(
+             &env, XMLRPC_LIMIT_EXCEEDED_ERROR,
+-            "XML-RPC request too large (%d bytes)", contentSize);
++            "XML-RPC request too large (%u bytes)", (unsigned)contentSize);
+     else {
+         xmlrpc_mem_block * body = NULL;
+         /* Read XML data off the wire. */
+         getBody(&env, abyssSessionP, contentSize, trace, &body);
+         if (!env.fault_occurred) {
+             xmlrpc_mem_block * output;
++
+             /* Process the RPC. */
+-            xmlrpc_registry_process_call2(
+-                &env, registryP,
++            xmlProcessor(
++                &env, xmlProcessorArg,
+                 XMLRPC_MEMBLOCK_CONTENTS(char, body),
+                 XMLRPC_MEMBLOCK_SIZE(char, body),
+                 abyssSessionP,
+                 &output);
+             if (!env.fault_occurred) {
+                 /* Send out the result. */
+-                sendXmlData(&env, abyssSessionP, 
+-                            XMLRPC_MEMBLOCK_CONTENTS(char, output),
+-                            XMLRPC_MEMBLOCK_SIZE(char, output),
+-                            wantChunk);
++                sendResponse(&env, abyssSessionP, 
++                             XMLRPC_MEMBLOCK_CONTENTS(char, output),
++                             XMLRPC_MEMBLOCK_SIZE(char, output),
++                             wantChunk, accessControl);
+                 
+                 XMLRPC_MEMBLOCK_FREE(char, output);
+             }
+@@ -510,42 +495,137 @@ processCall(TSession *        const abyssSessionP,
+-/****************************************************************************
+-    Abyss handlers (to be registered with and called by Abyss)
+-****************************************************************************/
++static void
++processXmlrpcCall(xmlrpc_env *        const envP,
++                  void *              const arg,
++                  const char *        const callXml,
++                  size_t              const callXmlLen,
++                  TSession *          const abyssSessionP,                  
++                  xmlrpc_mem_block ** const responseXmlPP) {
+-static const char * trace_abyss;
++    xmlrpc_registry * const registryP = arg;
++
++    xmlrpc_registry_process_call2(envP, registryP,
++                                  callXml, callXmlLen, abyssSessionP,
++                                  responseXmlPP);
++
++}
++static const char * trace_abyss;
++
++
+ struct uriHandlerXmlrpc {
+ /*----------------------------------------------------------------------------
+    This is the part of an Abyss HTTP request handler (aka URI handler)
+    that is specific to the Xmlrpc-c handler.
+ -----------------------------------------------------------------------------*/
+-    xmlrpc_registry * registryP;
+-    const char *      uriPath;  /* malloc'ed */
+-    bool              chunkResponse;
++    xmlrpc_registry *       registryP;
++    const char *            uriPath;  /* malloc'ed */
++    bool                    chunkResponse;
+         /* The handler should chunk its response whenever possible */
++    xmlrpc_call_processor * xmlProcessor;
++    void *                  xmlProcessorArg;
++    ResponseAccessCtl       accessControl;
+ };
+ static void
++termAccessControl(ResponseAccessCtl * const accessCtlP) {
++
++    xmlrpc_strfreenull(accessCtlP->allowOrigin);
++}
++
++
++
++static void
+ termUriHandler(void * const arg) {
+     struct uriHandlerXmlrpc * const uriHandlerXmlrpcP = arg;
+     xmlrpc_strfree(uriHandlerXmlrpcP->uriPath);
++    termAccessControl(&uriHandlerXmlrpcP->accessControl);
+     free(uriHandlerXmlrpcP);
+ }
+ static void
+-handleXmlrpcReq(URIHandler2 * const this,
+-                TSession *    const abyssSessionP,
+-                abyss_bool *  const handledP) {
++handleXmlRpcCallReq(TSession *           const abyssSessionP,
++                    const TRequestInfo * const requestInfoP ATTR_UNUSED,
++                    xmlrpc_call_processor      xmlProcessor,
++                    void *               const xmlProcessorArg,
++                    bool                 const wantChunk,
++                    ResponseAccessCtl    const accessControl) {
++/*----------------------------------------------------------------------------
++   Handle the HTTP request described by *requestInfoP, which arrived over
++   Abyss HTTP session *abyssSessionP, which is an XML-RPC call
++   (i.e. a POST request to /RPC2 or whatever other URI our server is
++   supposed to handle).
++
++   Handle it by feeding the XML which is its content to 'xmlProcessor'
++   along with argument 'xmlProcessorArg'.
++-----------------------------------------------------------------------------*/
++    /* We used to reject the call if content-type was not present and
++       text/xml, on some security theory (a firewall may block text/xml with
++       the intent of blocking XML-RPC.  Now, we believe that is silly, and we
++       have seen an incorrectly implemented client that says text/plain.
++    */
++    const char * error;
++
++    assert(requestInfoP->method == m_post);
++
++    storeCookies(abyssSessionP, &error);
++    if (error) {
++        sendError(abyssSessionP, 400, error);
++        xmlrpc_strfree(error);
++    } else {
++        const char * error;
++        bool missing;
++        size_t contentSize;
++
++        processContentLength(abyssSessionP, 
++                             &contentSize, &missing, &error);
++        if (error) {
++            sendError(abyssSessionP, 400, error);
++            xmlrpc_strfree(error);
++        } else {
++            if (missing)
++                sendError(abyssSessionP, 411, "You must send a "
++                          "content-length HTTP header in an "
++                          "XML-RPC call.");
++            else
++                processCall(abyssSessionP, contentSize,
++                            xmlProcessor, xmlProcessorArg,
++                            wantChunk, accessControl,
++                            trace_abyss);
++        }
++    }
++}
++
++
++
++static void
++handleXmlRpcOptionsReq(TSession *        const abyssSessionP,
++                       ResponseAccessCtl const accessControl) {
++
++    ResponseAddField(abyssSessionP, "Allow", "POST");
++    
++    ResponseAccessControl(abyssSessionP, accessControl);
++    ResponseContentLength(abyssSessionP, 0);
++    ResponseStatus(abyssSessionP, 200);
++    if (ResponseWriteStart(abyssSessionP))
++              ResponseWriteEnd(abyssSessionP);
++}
++
++
++
++static void
++handleIfXmlrpcReq(void *        const handlerArg,
++                  TSession *    const abyssSessionP,
++                  abyss_bool *  const handledP) {
+ /*----------------------------------------------------------------------------
+    Our job is to look at this HTTP request that the Abyss server is
+    trying to process and see if we can handle it.  If it's an XML-RPC
+@@ -557,9 +637,9 @@ handleXmlrpcReq(URIHandler2 * const this,
+    Note that failing the request counts as handling it, and not handling
+    it does not mean we failed it.
+-   This is an Abyss HTTP Request handler -- type URIHandler2.
++   This is an Abyss HTTP Request handler -- type handleReqFn3.
+ -----------------------------------------------------------------------------*/
+-    struct uriHandlerXmlrpc * const uriHandlerXmlrpcP = this->userdata;
++    struct uriHandlerXmlrpc * const uriHandlerXmlrpcP = handlerArg;
+     const TRequestInfo * requestInfoP;
+@@ -571,54 +651,30 @@ handleXmlrpcReq(URIHandler2 * const this,
+     /* Note that requestInfoP->uri is not the whole URI.  It is just
+        the "file name" part of it.
+     */
+-    if (strcmp(requestInfoP->uri, uriHandlerXmlrpcP->uriPath) != 0)
+-        /* It's for the path (e.g. "/RPC2") that we're supposed to
++    if (!xmlrpc_streq(requestInfoP->uri, uriHandlerXmlrpcP->uriPath))
++        /* It's not for the path (e.g. "/RPC2") that we're supposed to
+            handle.
+         */
+         *handledP = FALSE;
+     else {
+         *handledP = TRUE;
+-        if (requestInfoP->method != m_post)
++        switch (requestInfoP->method) {
++        case m_post:
++            handleXmlRpcCallReq(abyssSessionP, requestInfoP,
++                                uriHandlerXmlrpcP->xmlProcessor,
++                                uriHandlerXmlrpcP->xmlProcessorArg,
++                                uriHandlerXmlrpcP->chunkResponse,
++                                uriHandlerXmlrpcP->accessControl);
++            break;
++        case m_options:
++            handleXmlRpcOptionsReq(abyssSessionP,
++                                   uriHandlerXmlrpcP->accessControl);
++            break;
++        default:
+             sendError(abyssSessionP, 405,
+                       "POST is the only HTTP method this server understands");
+                 /* 405 = Method Not Allowed */
+-        else {
+-            const char * error;
+-            storeCookies(abyssSessionP, &error);
+-            if (error) {
+-                sendError(abyssSessionP, 400, error);
+-                xmlrpc_strfree(error);
+-            } else {
+-                const char * error;
+-                validateContentType(abyssSessionP, &error);
+-                if (error) {
+-                    sendError(abyssSessionP, 400, error);
+-                        /* 400 = Bad Request */
+-                    xmlrpc_strfree(error);
+-                } else {
+-                    const char * error;
+-                    bool missing;
+-                    size_t contentSize;
+-
+-                    processContentLength(abyssSessionP, 
+-                                         &contentSize, &missing, &error);
+-                    if (error) {
+-                        sendError(abyssSessionP, 400, error);
+-                        xmlrpc_strfree(error);
+-                    } else {
+-                        if (missing)
+-                            sendError(abyssSessionP, 411, "You must send a "
+-                                      "content-length HTTP header in an "
+-                                      "XML-RPC call.");
+-                        else
+-                            processCall(abyssSessionP, contentSize,
+-                                        uriHandlerXmlrpcP->registryP,
+-                                        uriHandlerXmlrpcP->chunkResponse,
+-                                        trace_abyss);
+-                    }
+-                }
+-            }
+         }
+     }
+     if (trace_abyss)
+@@ -626,6 +682,10 @@ handleXmlrpcReq(URIHandler2 * const this,
+ }
++/* This doesn't include what the user's method function requires */
++#define HANDLE_XMLRPC_REQ_STACK 1024
++
++
+ /*=========================================================================
+ **  xmlrpc_server_abyss_default_handler
+@@ -664,35 +724,115 @@ xmlrpc_server_abyss_default_handler(TSession * const sessionP) {
+ static void
+-setHandler(xmlrpc_env *      const envP,
+-           TServer *         const srvP,
+-           const char *      const uriPath,
+-           xmlrpc_registry * const registryP,
+-           bool              const chunkResponse) {
++setHandler(xmlrpc_env *              const envP,
++           TServer *                 const srvP,
++           struct uriHandlerXmlrpc * const uriHandlerXmlrpcP,
++           size_t                    const xmlProcessorMaxStackSize) {
+     
+-    struct uriHandlerXmlrpc * uriHandlerXmlrpcP;
+-    URIHandler2 uriHandler;
+     abyss_bool success;
+     trace_abyss = getenv("XMLRPC_TRACE_ABYSS");
+                                  
+-    MALLOCVAR_NOFAIL(uriHandlerXmlrpcP);
++    {
++        size_t const stackSize = 
++            HANDLE_XMLRPC_REQ_STACK + xmlProcessorMaxStackSize;
++        struct ServerReqHandler3 const handlerDesc = {
++            /* .term               = */ &termUriHandler,
++            /* .handleReq          = */ &handleIfXmlrpcReq,
++            /* .userdata           = */ uriHandlerXmlrpcP,
++            /* .handleReqStackSize = */ stackSize
++        };
++        ServerAddHandler3(srvP, &handlerDesc, &success);
++    }
++    if (!success)
++        xmlrpc_faultf(envP, "Abyss failed to register the Xmlrpc-c request "
++                      "handler.  ServerAddHandler3() failed.");
+-    uriHandlerXmlrpcP->registryP     = registryP;
+-    uriHandlerXmlrpcP->uriPath       = strdup(uriPath);
+-    uriHandlerXmlrpcP->chunkResponse = chunkResponse;
++    if (envP->fault_occurred){
++              free((void *)uriHandlerXmlrpcP->uriPath);
++        free(uriHandlerXmlrpcP);
++      }
++}
+-    uriHandler.handleReq2 = handleXmlrpcReq;
+-    uriHandler.handleReq1 = NULL;
+-    uriHandler.userdata   = uriHandlerXmlrpcP;
+-    uriHandler.init       = NULL;
+-    uriHandler.term       = &termUriHandler;
+-    ServerAddHandler2(srvP, &uriHandler, &success);
+-    if (!success)
+-        xmlrpc_faultf(envP, "Abyss failed to register the Xmlrpc-c request "
+-                      "handler.  ServerAddHandler2() failed.");
++static void
++interpretHttpAccessControl(
++    const xmlrpc_server_abyss_handler_parms * const parmsP,
++    unsigned int                              const parmSize,
++    ResponseAccessCtl *                       const accessCtlP) {
++
++    if (parmSize >= XMLRPC_AHPSIZE(allow_origin) && parmsP->allow_origin)
++        accessCtlP->allowOrigin = xmlrpc_strdupsol(parmsP->allow_origin);
++    else
++        accessCtlP->allowOrigin = NULL;
++
++    if (parmSize >= XMLRPC_AHPSIZE(access_ctl_expires)
++        && parmsP->access_ctl_expires) {
++        accessCtlP->expires = true;
++
++        if (parmSize >= XMLRPC_AHPSIZE(access_ctl_max_age))
++            accessCtlP->maxAge = parmsP->access_ctl_max_age;
++        else
++            accessCtlP->maxAge = 0;
++    }            
++}
++
++
++
++void
++xmlrpc_server_abyss_set_handler3(
++    xmlrpc_env *                              const envP,
++    TServer *                                 const srvP,
++    const xmlrpc_server_abyss_handler_parms * const parmsP,
++    unsigned int                              const parmSize) {
++
++    struct uriHandlerXmlrpc * uriHandlerXmlrpcP;
++    size_t xmlProcessorMaxStackSize;
++
++    MALLOCVAR_NOFAIL(uriHandlerXmlrpcP);
++
++    if (!envP->fault_occurred) {
++        if (parmSize >= XMLRPC_AHPSIZE(xml_processor))
++            uriHandlerXmlrpcP->xmlProcessor = parmsP->xml_processor;
++        else
++            xmlrpc_faultf(envP, "Parameter too short to contain the required "
++                          "'xml_processor' member");
++    }
++    if (!envP->fault_occurred) {
++        if (parmSize >= XMLRPC_AHPSIZE(xml_processor_arg))
++            uriHandlerXmlrpcP->xmlProcessorArg = parmsP->xml_processor_arg;
++        else
++            xmlrpc_faultf(envP, "Parameter too short to contain the required "
++                          "'xml_processor_arg' member");
++    }
++    if (!envP->fault_occurred) {
++        if (parmSize >= XMLRPC_AHPSIZE(xml_processor_max_stack))
++            xmlProcessorMaxStackSize = parmsP->xml_processor_max_stack;
++        else
++            xmlrpc_faultf(envP, "Parameter too short to contain the required "
++                          "'xml_processor_max_stack' member");
++    }
++    if (!envP->fault_occurred) {
++        if (parmSize >= XMLRPC_AHPSIZE(uri_path) && parmsP->uri_path)
++            uriHandlerXmlrpcP->uriPath = xmlrpc_strdupsol(parmsP->uri_path);
++        else
++            uriHandlerXmlrpcP->uriPath = xmlrpc_strdupsol("/RPC2");
++
++        if (parmSize >= XMLRPC_AHPSIZE(chunk_response) &&
++            parmsP->chunk_response)
++            uriHandlerXmlrpcP->chunkResponse = parmsP->chunk_response;
++        else
++            uriHandlerXmlrpcP->chunkResponse = false;
++        
++        interpretHttpAccessControl(parmsP, parmSize,
++                                   &uriHandlerXmlrpcP->accessControl);
++
++        if (envP->fault_occurred)
++            termAccessControl(&uriHandlerXmlrpcP->accessControl);
++    }
++    if (!envP->fault_occurred)
++        setHandler(envP, srvP, uriHandlerXmlrpcP, xmlProcessorMaxStackSize);
+     if (envP->fault_occurred)
+         free(uriHandlerXmlrpcP);
+@@ -701,36 +841,95 @@ setHandler(xmlrpc_env *      const envP,
+ void
++xmlrpc_server_abyss_set_handler2(
++    TServer *         const srvP,
++    const char *      const uriPath,
++    xmlrpc_call_processor   xmlProcessor,
++    void *            const xmlProcessorArg,
++    size_t            const xmlProcessorMaxStackSize,
++    xmlrpc_bool       const chunkResponse) {
++
++    xmlrpc_env env;
++    xmlrpc_server_abyss_handler_parms parms;
++
++    xmlrpc_env_init(&env);
++
++    parms.xml_processor = xmlProcessor;
++    parms.xml_processor_arg = xmlProcessorArg;
++    parms.xml_processor_max_stack = xmlProcessorMaxStackSize;
++    parms.uri_path = uriPath;
++    parms.chunk_response = chunkResponse;
++
++    xmlrpc_server_abyss_set_handler3(&env, srvP,
++                                     &parms, XMLRPC_AHPSIZE(chunk_response));
++    
++    if (env.fault_occurred)
++        abort();
++
++    xmlrpc_env_clean(&env);
++}
++
++
++
++void
+ xmlrpc_server_abyss_set_handler(xmlrpc_env *      const envP,
+                                 TServer *         const srvP,
+                                 const char *      const uriPath,
+                                 xmlrpc_registry * const registryP) {
+-    setHandler(envP, srvP, uriPath, registryP, false);
++    xmlrpc_server_abyss_handler_parms parms;
++
++    parms.xml_processor = &processXmlrpcCall;
++    parms.xml_processor_arg = registryP;
++    parms.xml_processor_max_stack = xmlrpc_registry_max_stackSize(registryP);
++    parms.uri_path = uriPath;
++
++    xmlrpc_server_abyss_set_handler3(envP, srvP,
++                                     &parms, XMLRPC_AHPSIZE(uri_path));
+ }
+     
++void
++xmlrpc_server_abyss_set_default_handler(TServer * const srvP) {
++
++    ServerDefaultHandler(srvP, xmlrpc_server_abyss_default_handler);
++}
++    
++
++
+ static void
+-setHandlers(TServer *         const srvP,
+-            const char *      const uriPath,
+-            xmlrpc_registry * const registryP,
+-            bool              const chunkResponse) {
++setHandlersRegistry(TServer *         const srvP,
++                    const char *      const uriPath,
++                    xmlrpc_registry * const registryP,
++                    bool              const chunkResponse,
++                    const char *      const allowOrigin,
++                    bool              const expires,
++                    unsigned int      const maxAge) {
+     xmlrpc_env env;
++    xmlrpc_server_abyss_handler_parms parms;
+     xmlrpc_env_init(&env);
+-    trace_abyss = getenv("XMLRPC_TRACE_ABYSS");
+-                                 
+-    setHandler(&env, srvP, uriPath, registryP, chunkResponse);
++    parms.xml_processor = &processXmlrpcCall;
++    parms.xml_processor_arg = registryP;
++    parms.xml_processor_max_stack = xmlrpc_registry_max_stackSize(registryP),
++    parms.uri_path = uriPath;
++    parms.chunk_response = chunkResponse;
++    parms.allow_origin = allowOrigin;
++    parms.access_ctl_expires = expires;
++    parms.access_ctl_max_age = maxAge;
++
++    xmlrpc_server_abyss_set_handler3(
++        &env, srvP, &parms, XMLRPC_AHPSIZE(access_ctl_max_age));
+     
+     if (env.fault_occurred)
+         abort();
+-    ServerDefaultHandler(srvP, xmlrpc_server_abyss_default_handler);
+-
+     xmlrpc_env_clean(&env);
++
++    xmlrpc_server_abyss_set_default_handler(srvP);
+ }
+@@ -740,7 +939,7 @@ xmlrpc_server_abyss_set_handlers2(TServer *         const srvP,
+                                   const char *      const uriPath,
+                                   xmlrpc_registry * const registryP) {
+-    setHandlers(srvP, uriPath, registryP, false);
++    setHandlersRegistry(srvP, uriPath, registryP, false, NULL, false, 0);
+ }
+@@ -749,7 +948,7 @@ void
+ xmlrpc_server_abyss_set_handlers(TServer *         const srvP,
+                                  xmlrpc_registry * const registryP) {
+-    setHandlers(srvP, "/RPC2", registryP, false);
++    setHandlersRegistry(srvP, "/RPC2", registryP, false, NULL, false, 0);
+ }
+@@ -763,11 +962,6 @@ setAdditionalServerParms(const xmlrpc_server_abyss_parms * const parmsP,
+                          unsigned int                      const parmSize,
+                          TServer *                         const serverP) {
+-    /* The following ought to be parameters on ServerCreate(), but it
+-       looks like plugging them straight into the TServer structure is
+-       the only way to set them.  
+-    */
+-
+     if (parmSize >= XMLRPC_APSIZE(keepalive_timeout) &&
+         parmsP->keepalive_timeout > 0)
+         ServerSetKeepaliveTimeout(serverP, parmsP->keepalive_timeout);
+@@ -903,8 +1097,13 @@ createServerBare(xmlrpc_env *                      const envP,
+             createServerBoundSocket(envP, socketFd, logFileName,
+                                     serverP, chanSwitchPP);
+         else {
+-            ServerCreate(serverP, "XmlRpcServer", portNumber, DEFAULT_DOCS, 
+-                         logFileName);
++            abyss_bool success;
++
++            success = ServerCreate(serverP, "XmlRpcServer", portNumber,
++                                   DEFAULT_DOCS, logFileName);
++
++            if (!success)
++                xmlrpc_faultf(envP, "Failed to create an Abyss server object");
+             
+             *chanSwitchPP = NULL;
+         }
+@@ -915,6 +1114,22 @@ createServerBare(xmlrpc_env *                      const envP,
++static const char *
++uriPathParm(const xmlrpc_server_abyss_parms * const parmsP,
++            unsigned int                      const parmSize) {
++    
++    const char * uriPath;
++
++    if (parmSize >= XMLRPC_APSIZE(uri_path) && parmsP->uri_path)
++        uriPath = parmsP->uri_path;
++    else
++        uriPath = "/RPC2";
++
++    return uriPath;
++}
++
++
++
+ static bool
+ chunkResponseParm(const xmlrpc_server_abyss_parms * const parmsP,
+                   unsigned int                      const parmSize) {
+@@ -927,18 +1142,35 @@ chunkResponseParm(const xmlrpc_server_abyss_parms * const parmsP,
+ static const char *
+-uriPathParm(const xmlrpc_server_abyss_parms * const parmsP,
++allowOriginParm(const xmlrpc_server_abyss_parms * const parmsP,
++                unsigned int                      const parmSize) {
++
++    return
++        parmSize >= XMLRPC_APSIZE(allow_origin) ?
++        parmsP->allow_origin : NULL;
++}    
++
++
++
++static bool
++expiresParm(const xmlrpc_server_abyss_parms * const parmsP,
+             unsigned int                      const parmSize) {
+-    
+-    const char * uriPath;
+-    if (parmSize >= XMLRPC_APSIZE(uri_path) && parmsP->uri_path)
+-        uriPath = parmsP->uri_path;
+-    else
+-        uriPath = "/RPC2";
++    return
++        parmSize >= XMLRPC_APSIZE(access_ctl_expires) ?
++        parmsP->access_ctl_expires : false;
++}    
+-    return uriPath;
+-}
++
++
++static unsigned int
++maxAgeParm(const xmlrpc_server_abyss_parms * const parmsP,
++           unsigned int                      const parmSize) {
++
++    return
++        parmSize >= XMLRPC_APSIZE(access_ctl_max_age) ?
++        parmsP->access_ctl_max_age : 0;
++}    
+@@ -954,9 +1186,12 @@ createServer(xmlrpc_env *                      const envP,
+     if (!envP->fault_occurred) {
+         setAdditionalServerParms(parmsP, parmSize, abyssServerP);
+         
+-        setHandlers(abyssServerP, uriPathParm(parmsP, parmSize),
+-                    parmsP->registryP,
+-                    chunkResponseParm(parmsP, parmSize));
++        setHandlersRegistry(abyssServerP, uriPathParm(parmsP, parmSize),
++                            parmsP->registryP,
++                            chunkResponseParm(parmsP, parmSize),
++                            allowOriginParm(parmsP, parmSize),
++                            expiresParm(parmsP, parmSize),
++                            maxAgeParm(parmsP, parmSize));
+         
+         ServerInit(abyssServerP);
+     }
+@@ -1030,9 +1265,9 @@ xmlrpc_server_abyss_create(xmlrpc_env *                      const envP,
+             xmlrpc_faultf(envP,
+                           "You must specify members at least up through "
+                           "'registryP' in the server parameters argument.  "
+-                          "That would mean the parameter size would be >= %lu "
++                          "That would mean the parameter size would be >= %u "
+                           "but you specified a size of %u",
+-                          XMLRPC_APSIZE(registryP), parmSize);
++                          (unsigned)XMLRPC_APSIZE(registryP), parmSize);
+         else {
+             MALLOCVAR(serverP);
+@@ -1123,9 +1358,11 @@ sigchld(int const signalClass ATTR_UNUSED) {
+    The only child processes we have are those that belong to the Abyss
+    server (and then only if the Abyss server was configured to use
+    forking as a threading mechanism), so we respond by passing the
+-   signal on to the Abyss server.
++   signal on to the Abyss server.  And reaping the dead child.
+ -----------------------------------------------------------------------------*/
+ #ifndef WIN32
++    /* Reap zombie children / report to Abyss until there aren't any more. */
++
+     bool childrenLeft;
+     bool error;
+@@ -1270,7 +1507,7 @@ runServerDaemon(TServer *  const serverP,
+ static void
+-oldHighLevelAbyssRun(xmlrpc_env *                      const envP ATTR_UNUSED,
++oldHighLevelAbyssRun(xmlrpc_env *                      const envP,
+                      const xmlrpc_server_abyss_parms * const parmsP,
+                      unsigned int                      const parmSize) {
+ /*----------------------------------------------------------------------------
+@@ -1285,31 +1522,38 @@ oldHighLevelAbyssRun(xmlrpc_env *                      const envP ATTR_UNUSED,
+    flexible API.
+ -----------------------------------------------------------------------------*/
+     TServer server;
+-    runfirstFn runfirst;
+-    void * runfirstArg;
+-    
+-    ServerCreate(&server, "XmlRpcServer", 8080, DEFAULT_DOCS, NULL);
++    abyss_bool success;
+-    assert(parmSize >= XMLRPC_APSIZE(config_file_name));
++    success = ServerCreate(&server, "XmlRpcServer", 8080, DEFAULT_DOCS, NULL);
++
++    if (!success)
++        xmlrpc_faultf(envP, "Failed to create Abyss server object");
++    else {
++        runfirstFn runfirst;
++        void * runfirstArg;
++
++        assert(parmSize >= XMLRPC_APSIZE(config_file_name));
+     
+-    ConfReadServerFile(parmsP->config_file_name, &server);
++        ConfReadServerFile(parmsP->config_file_name, &server);
+         
+-    assert(parmSize >= XMLRPC_APSIZE(registryP));
++        assert(parmSize >= XMLRPC_APSIZE(registryP));
+     
+-    setHandlers(&server, "/RPC2", parmsP->registryP, false);
++        setHandlersRegistry(&server, "/RPC2", parmsP->registryP, false, NULL,
++                            false, 0);
+         
+-    ServerInit(&server);
++        ServerInit(&server);
+     
+-    if (parmSize >= XMLRPC_APSIZE(runfirst_arg)) {
+-        runfirst    = parmsP->runfirst;
+-        runfirstArg = parmsP->runfirst_arg;
+-    } else {
+-        runfirst    = NULL;
+-        runfirstArg = NULL;
+-    }
+-    runServerDaemon(&server, runfirst, runfirstArg);
++        if (parmSize >= XMLRPC_APSIZE(runfirst_arg)) {
++            runfirst    = parmsP->runfirst;
++            runfirstArg = parmsP->runfirst_arg;
++        } else {
++            runfirst    = NULL;
++            runfirstArg = NULL;
++        }
++        runServerDaemon(&server, runfirst, runfirstArg);
+-    ServerFree(&server);
++        ServerFree(&server);
++    }
+ }
+@@ -1351,7 +1595,7 @@ xmlrpc_server_abyss(xmlrpc_env *                      const envP,
+    a thread of a multi-threaded program, use
+    xmlrpc_server_abyss_create() instead.  As required by that
+    subroutine, your program will contain a call to
+-   xmlrpc_server_abyss_init() early in your program, when it is only
++   xmlrpc_server_abyss_global_init() early in your program, when it is only
+    one thread.
+ -----------------------------------------------------------------------------*/
+     XMLRPC_ASSERT_ENV_OK(envP);
+@@ -1363,9 +1607,9 @@ xmlrpc_server_abyss(xmlrpc_env *                      const envP,
+             xmlrpc_faultf(envP,
+                           "You must specify members at least up through "
+                           "'registryP' in the server parameters argument.  "
+-                          "That would mean the parameter size would be >= %lu "
++                          "That would mean the parameter size would be >= %u "
+                           "but you specified a size of %u",
+-                          XMLRPC_APSIZE(registryP), parmSize);
++                          (unsigned)XMLRPC_APSIZE(registryP), parmSize);
+         else {
+             if (parmsP->config_file_name)
+                 oldHighLevelAbyssRun(envP, parmsP, parmSize);
+@@ -1416,10 +1660,11 @@ xmlrpc_server_abyss_init_registry(void) {
+     xmlrpc_env_init(&env);
+     builtin_registryP = xmlrpc_registry_new(&env);
+-    die_if_fault_occurred(&env);
++    dieIfFaultOccurred(&env);
+     xmlrpc_env_clean(&env);
+-    setHandlers(&globalSrv, "/RPC2", builtin_registryP, false);
++    setHandlersRegistry(&globalSrv, "/RPC2", builtin_registryP, false, NULL,
++                        false, 0);
+ }
+@@ -1446,7 +1691,7 @@ xmlrpc_server_abyss_add_method(char *        const method_name,
+     xmlrpc_env_init(&env);
+     xmlrpc_registry_add_method(&env, builtin_registryP, NULL, method_name,
+                                method, user_data);
+-    die_if_fault_occurred(&env);
++    dieIfFaultOccurred(&env);
+     xmlrpc_env_clean(&env);
+ }
+@@ -1464,7 +1709,7 @@ xmlrpc_server_abyss_add_method_w_doc(char *        const method_name,
+     xmlrpc_registry_add_method_w_doc(
+         &env, builtin_registryP, NULL, method_name,
+         method, user_data, signature, help);
+-    die_if_fault_occurred(&env);
++    dieIfFaultOccurred(&env);
+     xmlrpc_env_clean(&env);    
+ }
+@@ -1474,16 +1719,23 @@ void
+ xmlrpc_server_abyss_init(int          const flags ATTR_UNUSED, 
+                          const char * const config_file) {
+-    ServerCreate(&globalSrv, "XmlRpcServer", 8080, DEFAULT_DOCS, NULL);
+-    
+-    ConfReadServerFile(config_file, &globalSrv);
++    abyss_bool success;
+-    xmlrpc_server_abyss_init_registry();
+-        /* Installs /RPC2 handler and default handler that use the
+-           built-in registry.
+-        */
++    success = ServerCreate(&globalSrv, "XmlRpcServer", 8080,
++                           DEFAULT_DOCS, NULL);
+-    ServerInit(&globalSrv);
++    if (!success)
++        abort();
++    else {
++        ConfReadServerFile(config_file, &globalSrv);
++
++        xmlrpc_server_abyss_init_registry();
++            /* Installs /RPC2 handler and default handler that use the
++               built-in registry.
++            */
++
++        ServerInit(&globalSrv);
++    }
+ }
+diff --git a/libs/xmlrpc-c/src/xmlrpc_server_cgi.c b/libs/xmlrpc-c/src/xmlrpc_server_cgi.c
+index 2f6fe73..f8ab73a 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_server_cgi.c
++++ b/libs/xmlrpc-c/src/xmlrpc_server_cgi.c
+@@ -38,6 +38,7 @@
+ #include "xmlrpc-c/base.h"
+ #include "xmlrpc-c/server.h"
++#include "xmlrpc-c/string_int.h"
+ #include "xmlrpc-c/server_cgi.h"
+@@ -202,13 +203,19 @@ xmlrpc_server_cgi_process_call(xmlrpc_registry * const registryP) {
+     length_str = getenv("CONTENT_LENGTH");
+     /* Perform some sanity checks. */
+-    if (!method || 0 != strcmp(method, "POST")) {
++    if (!method || !xmlrpc_streq(method, "POST")) {
+         code = 405; message = "Method Not Allowed";
+         XMLRPC_FAIL(&env, XMLRPC_INTERNAL_ERROR, "Expected HTTP method POST");
+     }
+-    if (!type || 0 != strcmp(type, "text/xml")) {
++    if (!type || !xmlrpc_strneq(type, "text/xml", strlen("text/xml"))) {
++      char *template = "Expected content type: \"text/xml\", received: \"%s\"";
++      size_t err_len = strlen(template) + strlen(type) + 1;
++      char *err = malloc(err_len);
++
++      (void)snprintf(err, err_len, template, type);
+         code = 400; message = "Bad Request";
+-        XMLRPC_FAIL(&env, XMLRPC_INTERNAL_ERROR, "Expected text/xml content");
++        XMLRPC_FAIL(&env, XMLRPC_INTERNAL_ERROR, err);
++      free(err);
+     }
+     if (!length_str) {
+         code = 411; message = "Length Required";
+diff --git a/libs/xmlrpc-c/src/xmlrpc_server_info.c b/libs/xmlrpc-c/src/xmlrpc_server_info.c
+index 5cf44c3..2e06c02 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_server_info.c
++++ b/libs/xmlrpc-c/src/xmlrpc_server_info.c
+@@ -16,6 +16,10 @@
+   transports.
+ =============================================================================*/
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
++
++#include <string.h>
++
+ #include "bool.h"
+ #include "mallocvar.h"
+@@ -229,6 +233,9 @@ xmlrpc_server_info_set_user(xmlrpc_env *         const envP,
+         }
+         XMLRPC_MEMBLOCK_FREE(char, userNamePw64);
+     }
++    if (serverInfoP->userNamePw)
++        xmlrpc_strfree(serverInfoP->userNamePw);
++
+     serverInfoP->userNamePw = userNamePw;
+ }
+diff --git a/libs/xmlrpc-c/src/xmlrpc_server_w32httpsys.c b/libs/xmlrpc-c/src/xmlrpc_server_w32httpsys.c
+index cf0dad8..ce1587d 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_server_w32httpsys.c
++++ b/libs/xmlrpc-c/src/xmlrpc_server_w32httpsys.c
+@@ -1,14 +1,15 @@
+ /* Copyright information is at end of file. */
++
+ /* COMPILATION NOTE:
+-   Note that the Platform SDK headers and
+-   link libraries for Windows XP SP2 or newer are required to compile
+-   xmlrpc-c for this module.  If you are not using this server, it is 
+-   safe to exclude the xmlrpc_server_w32httpsys.c file from the xmlrpc
+-   project and these dependencies will not be required.  You can get the 
+-   latest platform SDK at 
+-   http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
+-   Be sure after installation to choose the program to "register the PSDK
+-   directories with Visual Studio" so the newer headers are found.
++
++   Note that the Platform SDK headers and link libraries for Windows XP SP2 or
++   newer are required to compile Xmlrpc-c for this module.  If you are not
++   using this XML-RPC server program, it is safe to exclude the
++   xmlrpc_server_w32httpsys.c file from the xmlrpc project and you will not
++   have this dependency.  You can get the latest platform SDK at
++   http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ Be sure after
++   installation to choose the program to "register the PSDK directories with
++   Visual Studio" so the newer headers are found.
+ */
+ #ifndef UNICODE
+@@ -19,7 +20,18 @@
+ #define _UNICODE
+ #endif
+-/* See compilation note above if this header is not found! */
++/* Declare that we require the Windows XP SP2 or better version of the
++   interface to Windows.
++
++   Microsoft recommends
++   (http://msdn.microsoft.com/en-us/library/aa383745(VS.85).aspx) defining
++   NTDDI_VERSION instead of _WIN32_WINNT for this purpose, but as it was
++   invented recently, it's pretty useless.  Windows header files from old
++   Windows SDKs won't know what to do with it.
++*/
++#define _WIN32_WINNT 0x0502
++
++/* See compilation note above if the compiler doesn't find this header file */
+ #include <http.h>
+ #include <strsafe.h>
+@@ -665,7 +677,8 @@ SendHttpResponse(
+     ADD_KNOWN_HEADER(response, HttpHeaderContentType, "text/html");
+     
+-    StringCchPrintfA(szServerHeader,20, "xmlrpc-c %s",XMLRPC_C_VERSION);
++    StringCchPrintfA(szServerHeader, sizeof(szServerHeader), "Xmlrpc-c/%s",
++                     XMLRPC_C_VERSION);
+     ADD_KNOWN_HEADER(response, HttpHeaderServer, szServerHeader);
+    
+     if(pEntityString)
+@@ -724,7 +737,8 @@ SendHttpResponseAuthRequired(
+     ADD_KNOWN_HEADER(response, HttpHeaderWwwAuthenticate,
+                      "Basic realm=\"xmlrpc\"");
+     
+-    StringCchPrintfA(szServerHeader,20, "xmlrpc-c %s",XMLRPC_C_VERSION);
++    StringCchPrintfA(szServerHeader, sizeof(szServerHeader), "Xmlrpc-c/%s",
++                     XMLRPC_C_VERSION);
+     ADD_KNOWN_HEADER(response, HttpHeaderServer, szServerHeader);
+    
+     // Since we are sending all the entity body in one call, we don't have 
+@@ -878,8 +892,8 @@ processRPCCall(
+                     ADD_KNOWN_HEADER(response, HttpHeaderContentType,
+                                      "text/xml");
+                     
+-                    StringCchPrintfA(szServerHeader,20,
+-                                     "xmlrpc-c %s",XMLRPC_C_VERSION);
++                    StringCchPrintfA(szServerHeader, sizeof(szServerHeader),
++                                     "Xmlrpc-c/%s", XMLRPC_C_VERSION);
+                     ADD_KNOWN_HEADER(response, HttpHeaderServer,
+                                      szServerHeader);
+diff --git a/libs/xmlrpc-c/src/xmlrpc_string.c b/libs/xmlrpc-c/src/xmlrpc_string.c
+index 8bf299d..ac9a1f5 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_string.c
++++ b/libs/xmlrpc-c/src/xmlrpc_string.c
+@@ -100,11 +100,11 @@ accessStringValue(xmlrpc_env *         const envP,
+     
+     validateStringType(envP, valueP);
+     if (!envP->fault_occurred) {
+-        unsigned int const size = 
++        size_t const size = 
+             XMLRPC_MEMBLOCK_SIZE(char, &valueP->_block);
+         const char * const contents = 
+             XMLRPC_MEMBLOCK_CONTENTS(char, &valueP->_block);
+-        unsigned int const len = size - 1;
++        size_t const len = size - 1;
+             /* The memblock has a null character added to the end */
+         verifyNoNulls(envP, contents, len);
+@@ -141,7 +141,7 @@ xmlrpc_read_string(xmlrpc_env *         const envP,
+         MALLOCARRAY(stringValue, length + 1);
+         if (stringValue == NULL)
+             xmlrpc_faultf(envP, "Unable to allocate space "
+-                          "for %u-character string", length);
++                          "for %u-character string", (unsigned)length);
+         else {
+             memcpy(stringValue, contents, length);
+             stringValue[length] = '\0';
+@@ -189,7 +189,7 @@ copyAndConvertLfToCrlf(xmlrpc_env *  const envP,
+     MALLOCARRAY(dst, dstLen + 1);
+     if (dst == NULL)
+         xmlrpc_faultf(envP, "Unable to allocate space "
+-                      "for %u-character string", dstLen + 1);
++                      "for %u-character string", (unsigned)dstLen + 1);
+     else {
+         const char * p;  /* source pointer */
+         char * q;        /* destination pointer */
+@@ -253,7 +253,7 @@ xmlrpc_read_string_lp(xmlrpc_env *         const envP,
+     validateStringType(envP, valueP);
+     if (!envP->fault_occurred) {
+-        unsigned int const size = 
++        size_t const size = 
+             XMLRPC_MEMBLOCK_SIZE(char, &valueP->_block);
+         const char * const contents = 
+             XMLRPC_MEMBLOCK_CONTENTS(char, &valueP->_block);
+@@ -263,7 +263,7 @@ xmlrpc_read_string_lp(xmlrpc_env *         const envP,
+         stringValue = malloc(size);
+         if (stringValue == NULL)
+             xmlrpc_faultf(envP, "Unable to allocate %u bytes for string.",
+-                          size);
++                          (unsigned int)size);
+         else {
+             memcpy(stringValue, contents, size);
+             *stringValueP = stringValue;
+@@ -282,7 +282,7 @@ xmlrpc_read_string_lp_crlf(xmlrpc_env *         const envP,
+     validateStringType(envP, valueP);
+     if (!envP->fault_occurred) {
+-        unsigned int const size = 
++        size_t const size = 
+             XMLRPC_MEMBLOCK_SIZE(char, &valueP->_block); /* Includes NUL */
+         const char * const contents = 
+             XMLRPC_MEMBLOCK_CONTENTS(char, &valueP->_block);
+@@ -371,7 +371,7 @@ xmlrpc_read_string_w(xmlrpc_env *     const envP,
+         MALLOCARRAY(stringValue, length + 1);
+         if (stringValue == NULL)
+             xmlrpc_faultf(envP, "Unable to allocate space for %u-byte string", 
+-                          length);
++                          (unsigned)length);
+         else {
+             memcpy(stringValue, wcontents, length * sizeof(wchar_t));
+             stringValue[length] = '\0';
+@@ -422,7 +422,7 @@ wCopyAndConvertLfToCrlf(xmlrpc_env *     const envP,
+     MALLOCARRAY(dst, dstLen + 1);
+     if (dst == NULL)
+         xmlrpc_faultf(envP, "Unable to allocate space "
+-                      "for %u-character string", dstLen + 1);
++                      "for %u-character string", (unsigned)dstLen + 1);
+     else {
+         const wchar_t * p;  /* source pointer */
+         wchar_t * q;        /* destination pointer */
+@@ -561,18 +561,6 @@ xmlrpc_read_string_w_lp_old(xmlrpc_env *     const envP,
+ static void
+-validateUtf(xmlrpc_env * const envP,
+-            const char * const value,
+-            size_t       const length) {
+-
+-#if HAVE_UNICODE_WCHAR
+-    xmlrpc_validate_utf8(envP, value, length);
+-#endif
+-}
+-
+-
+-
+-static void
+ copyLines(xmlrpc_env *       const envP,
+           const char *       const src,
+           size_t             const srcLen,
+@@ -685,7 +673,7 @@ stringNew(xmlrpc_env *     const envP,
+     xmlrpc_value * valP;
+-    validateUtf(envP, value, length);
++    xmlrpc_validate_utf8(envP, value, length);
+     if (!envP->fault_occurred) {
+         xmlrpc_createXmlrpcValue(envP, &valP);
+@@ -762,7 +750,7 @@ xmlrpc_string_new_va(xmlrpc_env * const envP,
+     
+     xmlrpc_vasprintf(&formattedString, format, args);
+-    if (formattedString == xmlrpc_strsol) {
++    if (xmlrpc_strnomem(formattedString)) {
+         xmlrpc_faultf(envP, "Out of memory building formatted string");
+         retvalP = NULL;  /* defeat compiler warning */
+     } else
+diff --git a/libs/xmlrpc-c/src/xmlrpc_struct.c b/libs/xmlrpc-c/src/xmlrpc_struct.c
+index 40c59bb..0fde37b 100644
+--- a/libs/xmlrpc-c/src/xmlrpc_struct.c
++++ b/libs/xmlrpc-c/src/xmlrpc_struct.c
+@@ -1,30 +1,6 @@
+-/* Copyright (C) 2001 by First Peer, Inc. All rights reserved.
+-**
+-** Redistribution and use in source and binary forms, with or without
+-** modification, are permitted provided that the following conditions
+-** are met:
+-** 1. Redistributions of source code must retain the above copyright
+-**    notice, this list of conditions and the following disclaimer.
+-** 2. Redistributions in binary form must reproduce the above copyright
+-**    notice, this list of conditions and the following disclaimer in the
+-**    documentation and/or other materials provided with the distribution.
+-** 3. The name of the author may not be used to endorse or promote products
+-**    derived from this software without specific prior written permission. 
+-**  
+-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+-** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-** ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+-** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-** SUCH DAMAGE. */
+-
+ #include "xmlrpc_config.h"
++#include <assert.h>
+ #include <stddef.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -95,22 +71,28 @@ xmlrpc_struct_new(xmlrpc_env * const envP) {
+ */
+ int 
+-xmlrpc_struct_size(xmlrpc_env* env, xmlrpc_value* strct)
+-{
++xmlrpc_struct_size(xmlrpc_env *   const envP,
++                   xmlrpc_value * const structP) {
++
+     int retval;
+-    /* Suppress a compiler warning about uninitialized variables. */
+-    retval = 0;
++    XMLRPC_ASSERT_ENV_OK(envP);
++    XMLRPC_ASSERT_VALUE_OK(structP);
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    XMLRPC_ASSERT_VALUE_OK(strct);
++    if (structP->_type != XMLRPC_TYPE_STRUCT) {
++        xmlrpc_env_set_fault_formatted(
++            envP, XMLRPC_TYPE_ERROR, "Value is not a struct.  It is type #%d",
++            structP->_type);
++        retval = -1;
++    } else {
++        size_t const size =
++            XMLRPC_MEMBLOCK_SIZE(_struct_member, &structP->_block);
+-    XMLRPC_TYPE_CHECK(env, strct, XMLRPC_TYPE_STRUCT);
+-    retval = XMLRPC_MEMBLOCK_SIZE(_struct_member, &strct->_block);
++        assert((size_t)(int)size == size);
++            /* Because structs are defined to have few enough members */
+- cleanup:
+-    if (env->fault_occurred)
+-        return -1;
++        retval = (int)size;
++    }
+     return retval;
+ }
+@@ -149,30 +131,42 @@ find_member(xmlrpc_value * const strctP,
+             const char *   const key, 
+             size_t         const keyLen) {
++    int retval;
+     size_t size, i;
+     uint32_t searchHash;
+     _struct_member * contents;  /* array */
+-    xmlrpc_value * keyvalP;
+-    const char * keystr;
+-    size_t keystrSize;
++    bool found;
++    size_t foundIndex;  /* Meaningful only when 'found' is true */
+     XMLRPC_ASSERT_VALUE_OK(strctP);
+     XMLRPC_ASSERT(key != NULL);
++    foundIndex = 0;  /* defeat used-before-set compiler warning */
+     /* Look for our key. */
+     searchHash = hashStructKey(key, keyLen);
+     size = XMLRPC_MEMBLOCK_SIZE(_struct_member, &strctP->_block);
+     contents = XMLRPC_MEMBLOCK_CONTENTS(_struct_member, &strctP->_block);
+-    for (i = 0; i < size; ++i) {
++    for (i = 0, found = false; i < size && !found; ++i) {
+         if (contents[i].keyHash == searchHash) {
+-            keyvalP = contents[i].key;
+-            keystr = XMLRPC_MEMBLOCK_CONTENTS(char, &keyvalP->_block);
+-            keystrSize = XMLRPC_MEMBLOCK_SIZE(char, &keyvalP->_block)-1;
+-            if (keystrSize == keyLen && memcmp(key, keystr, keyLen) == 0)
+-                return i;
++            xmlrpc_value * const keyvalP = contents[i].key;
++            const char * const keystr =
++                XMLRPC_MEMBLOCK_CONTENTS(char, &keyvalP->_block);
++            size_t const keystrSize =
++                XMLRPC_MEMBLOCK_SIZE(char, &keyvalP->_block)-1;
++            if (keystrSize == keyLen && memcmp(key, keystr, keyLen) == 0) {
++                found = true;
++                foundIndex = i;
++            }
+         }   
+     }
+-    return -1;
++    if (found) {
++        assert((size_t)(int)foundIndex == foundIndex);
++            /* Definition of structure says it has few enough members */
++        retval = foundIndex;
++    } else
++        retval = -1;
++
++    return retval;
+ }
+@@ -588,3 +582,31 @@ xmlrpc_struct_get_key_and_value(xmlrpc_env *    const envP,
+         *valueP = NULL;
+     }
+ }
++
++
++
++/* Copyright (C) 2001 by First Peer, Inc. All rights reserved.
++**
++** Redistribution and use in source and binary forms, with or without
++** modification, are permitted provided that the following conditions
++** are met:
++** 1. Redistributions of source code must retain the above copyright
++**    notice, this list of conditions and the following disclaimer.
++** 2. Redistributions in binary form must reproduce the above copyright
++**    notice, this list of conditions and the following disclaimer in the
++**    documentation and/or other materials provided with the distribution.
++** 3. The name of the author may not be used to endorse or promote products
++**    derived from this software without specific prior written permission. 
++**  
++** THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
++** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++** ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
++** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++** SUCH DAMAGE. */
++
+diff --git a/libs/xmlrpc-c/src/xmlrpc_strutil.c b/libs/xmlrpc-c/src/xmlrpc_strutil.c
+deleted file mode 100644
+index efbdca5..0000000
+--- a/libs/xmlrpc-c/src/xmlrpc_strutil.c
++++ /dev/null
+@@ -1,75 +0,0 @@
+-#include <string.h>
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <ctype.h>
+-
+-#include "xmlrpc_config.h"
+-#include "xmlrpc-c/base.h"
+-#include "xmlrpc-c/base_int.h"
+-
+-
+-
+-const char * 
+-xmlrpc_makePrintable(const char * const input) {
+-/*----------------------------------------------------------------------------
+-   Convert an arbitrary string of bytes (null-terminated, though) to
+-   printable ASCII.  E.g. convert newlines to "\n".
+-
+-   Return the result in newly malloc'ed storage.  Return NULL if we can't
+-   get the storage.
+------------------------------------------------------------------------------*/
+-    char * output;
+-    const unsigned int inputLength = strlen(input);
+-
+-    output = malloc(inputLength*4+1);
+-
+-    if (output != NULL) {
+-        unsigned int inputCursor, outputCursor;
+-
+-        for (inputCursor = 0, outputCursor = 0; 
+-             inputCursor < inputLength; 
+-             ++inputCursor) {
+-
+-            if (isprint(input[inputCursor]))
+-                output[outputCursor++] = input[inputCursor]; 
+-            else if (input[inputCursor] == '\n') {
+-                output[outputCursor++] = '\\';
+-                output[outputCursor++] = 'n';
+-            } else if (input[inputCursor] == '\t') {
+-                output[outputCursor++] = '\\';
+-                output[outputCursor++] = 't';
+-            } else if (input[inputCursor] == '\a') {
+-                output[outputCursor++] = '\\';
+-                output[outputCursor++] = 'a';
+-            } else if (input[inputCursor] == '\r') {
+-                output[outputCursor++] = '\\';
+-                output[outputCursor++] = 'r';
+-            } else {
+-                snprintf(&output[outputCursor], 4, "\\x%02x", 
+-                         input[inputCursor]);
+-            }
+-        }
+-        output[outputCursor++] = '\0';
+-    }
+-    return output;
+-}
+-
+-
+-
+-const char *
+-xmlrpc_makePrintableChar(char const input) {
+-
+-    const char * retval;
+-
+-    if (input == '\0')
+-        retval = strdup("\\0");
+-    else {
+-        char buffer[2];
+-        
+-        buffer[0] = input;
+-        buffer[1] = '\0';
+-        
+-        retval = xmlrpc_makePrintable(buffer);
+-    }
+-    return retval;
+-}
+diff --git a/libs/xmlrpc-c/src/xmlrpc_support.c b/libs/xmlrpc-c/src/xmlrpc_support.c
+deleted file mode 100644
+index c2fd1b6..0000000
+--- a/libs/xmlrpc-c/src/xmlrpc_support.c
++++ /dev/null
+@@ -1,394 +0,0 @@
+-/* Copyright (C) 2001 by First Peer, Inc. All rights reserved.
+-**
+-** Redistribution and use in source and binary forms, with or without
+-** modification, are permitted provided that the following conditions
+-** are met:
+-** 1. Redistributions of source code must retain the above copyright
+-**    notice, this list of conditions and the following disclaimer.
+-** 2. Redistributions in binary form must reproduce the above copyright
+-**    notice, this list of conditions and the following disclaimer in the
+-**    documentation and/or other materials provided with the distribution.
+-** 3. The name of the author may not be used to endorse or promote products
+-**    derived from this software without specific prior written permission. 
+-**  
+-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+-** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-** ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+-** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-** SUCH DAMAGE. */
+-
+-#include "xmlrpc_config.h"
+-
+-#include <stdlib.h>
+-#include <stdio.h>
+-#include <string.h>
+-#include <ctype.h>
+-
+-#include "xmlrpc-c/base.h"
+-#include "xmlrpc-c/base_int.h"
+-
+-#ifdef EFENCE
+-        /* when looking for corruption don't allocate extra slop */
+-#define BLOCK_ALLOC_MIN (1)
+-#else
+-#define BLOCK_ALLOC_MIN (16)
+-#endif
+-#define BLOCK_ALLOC_MAX (128 * 1024 * 1024)
+-
+-#define ERROR_BUFFER_SZ (256)
+-
+-
+-/*=========================================================================
+-**  Strings
+-**=======================================================================*/
+-
+-void
+-xmlrpc_strfree(const char * const string) {
+-    free((void*)string);
+-}
+-
+-
+-/*=========================================================================
+-**  Assertions and Error Handling
+-**=========================================================================
+-**  Support code for XMLRPC_ASSERT and xmlrpc_env.
+-*/ 
+-
+-void xmlrpc_assertion_failed (char* file, int line)
+-{
+-    fprintf(stderr, "%s:%d: assertion failed\n", file, line);
+-    abort();
+-}
+-
+-static char* default_fault_string = "Not enough memory for error message";
+-
+-void xmlrpc_env_init (xmlrpc_env* env)
+-{
+-    XMLRPC_ASSERT(env != NULL);
+-
+-    env->fault_occurred = 0;
+-    env->fault_code     = 0;
+-    env->fault_string   = NULL;
+-}
+-
+-void xmlrpc_env_clean (xmlrpc_env* env)
+-{
+-    XMLRPC_ASSERT(env != NULL);
+-
+-    /* env->fault_string may be one of three things:
+-    **   1) a NULL pointer
+-    **   2) a pointer to the default_fault_string
+-    **   3) a pointer to a malloc'd fault string
+-    ** If we have case (3), we'll need to free it. */
+-    if (env->fault_string && env->fault_string != default_fault_string)
+-        free(env->fault_string);
+-    env->fault_string = XMLRPC_BAD_POINTER;
+-}
+-
+-
+-
+-void 
+-xmlrpc_env_set_fault(xmlrpc_env * const env, 
+-                     int          const faultCode, 
+-                     const char * const faultDescription) {
+-
+-    XMLRPC_ASSERT(env != NULL); 
+-    XMLRPC_ASSERT(faultDescription != NULL);
+-
+-    /* Clean up any leftover pointers. */
+-    xmlrpc_env_clean(env);
+-
+-    env->fault_occurred = 1;
+-    env->fault_code     = faultCode;
+-
+-    /* Try to copy the fault string. If this fails, use a default. */
+-    env->fault_string = (char*) malloc(strlen(faultDescription) + 1);
+-    if (env->fault_string)
+-        strcpy(env->fault_string, faultDescription);
+-    else
+-        env->fault_string = default_fault_string;
+-}
+-
+-
+-
+-static void
+-set_fault_formatted_v(xmlrpc_env * const envP,
+-                      int          const code,
+-                      const char * const format,
+-                      va_list      const args) {
+-
+-    char buffer[ERROR_BUFFER_SZ];
+-
+-    vsnprintf(buffer, ERROR_BUFFER_SZ, format, args);
+-
+-    /* vsnprintf is guaranteed to terminate the buffer, but we're paranoid. */
+-    buffer[ERROR_BUFFER_SZ - 1] = '\0';
+-
+-    /* Set the fault. */
+-    xmlrpc_env_set_fault(envP, code, buffer);
+-}
+-
+-
+-
+-void 
+-xmlrpc_env_set_fault_formatted(xmlrpc_env * const envP, 
+-                               int          const code,
+-                               const char * const format, 
+-                               ...) {
+-    va_list args;
+-
+-    XMLRPC_ASSERT(envP != NULL);
+-    XMLRPC_ASSERT(format != NULL);
+-
+-    /* Print our error message to the buffer. */
+-    va_start(args, format);
+-    set_fault_formatted_v(envP, code, format, args);
+-    va_end(args);
+-}
+-
+-
+-
+-void
+-xmlrpc_faultf(xmlrpc_env * const envP,
+-              const char * const format,
+-              ...) {
+-
+-    va_list args;
+-
+-    XMLRPC_ASSERT(envP != NULL);
+-    XMLRPC_ASSERT(format != NULL);
+-
+-    /* Print our error message to the buffer. */
+-    va_start(args, format);
+-    set_fault_formatted_v(envP, XMLRPC_INTERNAL_ERROR, format, args);
+-    va_end(args);
+-
+-}
+-
+-
+-
+-void xmlrpc_fatal_error (char* file, int line, char* msg)
+-{
+-    fprintf(stderr, "%s:%d: %s\n", file, line, msg);
+-    exit(1);
+-}
+-
+-
+-/*=========================================================================
+-**  Resource Limits
+-**=========================================================================
+-*/ 
+-
+-static size_t limits[XMLRPC_LAST_LIMIT_ID + 1] = {
+-    XMLRPC_NESTING_LIMIT_DEFAULT,
+-    XMLRPC_XML_SIZE_LIMIT_DEFAULT
+-};
+-
+-void xmlrpc_limit_set (int limit_id, size_t value)
+-{
+-    XMLRPC_ASSERT(0 <= limit_id && limit_id <= XMLRPC_LAST_LIMIT_ID);
+-    limits[limit_id] = value;
+-}
+-
+-size_t xmlrpc_limit_get (int limit_id)
+-{
+-    XMLRPC_ASSERT(0 <= limit_id && limit_id <= XMLRPC_LAST_LIMIT_ID);
+-    return limits[limit_id];
+-}
+-
+-
+-/*=========================================================================
+-**  xmlrpc_mem_block
+-**=========================================================================
+-*/
+-
+-xmlrpc_mem_block * 
+-xmlrpc_mem_block_new(xmlrpc_env * const env, 
+-                     size_t       const size) {
+-    xmlrpc_mem_block* block;
+-
+-    XMLRPC_ASSERT_ENV_OK(env);
+-
+-    block = (xmlrpc_mem_block*) malloc(sizeof(xmlrpc_mem_block));
+-    XMLRPC_FAIL_IF_NULL(block, env, XMLRPC_INTERNAL_ERROR,
+-                        "Can't allocate memory block");
+-
+-    xmlrpc_mem_block_init(env, block, size);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+-                     cleanup:
+-    if (env->fault_occurred) {
+-        if (block)
+-            free(block);
+-        return NULL;
+-    } else {
+-        return block;
+-    }
+-}
+-
+-/* Destroy an existing xmlrpc_mem_block, and everything it contains. */
+-void xmlrpc_mem_block_free (xmlrpc_mem_block* block)
+-{
+-    XMLRPC_ASSERT(block != NULL);
+-    XMLRPC_ASSERT(block->_block != NULL);
+-
+-    xmlrpc_mem_block_clean(block);
+-    free(block);
+-}
+-
+-/* Initialize the contents of the provided xmlrpc_mem_block. */
+-void xmlrpc_mem_block_init (xmlrpc_env* env,
+-                            xmlrpc_mem_block* block,
+-                            size_t size)
+-{
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    XMLRPC_ASSERT(block != NULL);
+-
+-    block->_size = size;
+-    if (size < BLOCK_ALLOC_MIN)
+-        block->_allocated = BLOCK_ALLOC_MIN;
+-    else
+-        block->_allocated = size;
+-
+-    block->_block = (void*) malloc(block->_allocated);
+-    if (!block->_block)
+-        xmlrpc_env_set_fault_formatted(
+-            env, XMLRPC_INTERNAL_ERROR,
+-            "Can't allocate %u-byte memory block",
+-            block->_allocated);
+-}
+-
+-/* Deallocate the contents of the provided xmlrpc_mem_block, but not the
+-** block itself. */
+-void xmlrpc_mem_block_clean (xmlrpc_mem_block* block)
+-{
+-    XMLRPC_ASSERT(block != NULL);
+-    XMLRPC_ASSERT(block->_block != NULL);
+-
+-    free(block->_block);
+-    block->_block = XMLRPC_BAD_POINTER;
+-}
+-
+-
+-
+-/* Get the size of the xmlrpc_mem_block. */
+-size_t 
+-xmlrpc_mem_block_size(const xmlrpc_mem_block * const block) {
+-
+-    XMLRPC_ASSERT(block != NULL);
+-    return block->_size;
+-}
+-
+-
+-
+-/* Get the contents of the xmlrpc_mem_block. */
+-void * 
+-xmlrpc_mem_block_contents(const xmlrpc_mem_block * const block) {
+-
+-    XMLRPC_ASSERT(block != NULL);
+-    return block->_block;
+-}
+-
+-
+-
+-/* Resize an xmlrpc_mem_block, preserving as much of the contents as
+-** possible. */
+-void 
+-xmlrpc_mem_block_resize (xmlrpc_env *       const env,
+-                         xmlrpc_mem_block * const block,
+-                         size_t             const size) {
+-
+-    size_t proposed_alloc;
+-    void* new_block;
+-
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    XMLRPC_ASSERT(block != NULL);
+-
+-    /* Check to see if we already have enough space. Maybe we'll get lucky. */
+-    if (size <= block->_allocated) {
+-        block->_size = size;
+-        return;
+-    }
+-
+-    /* Calculate a new allocation size. */
+-#ifdef EFENCE
+-    proposed_alloc = size;
+-#else
+-    proposed_alloc = block->_allocated;
+-    while (proposed_alloc < size && proposed_alloc <= BLOCK_ALLOC_MAX)
+-        proposed_alloc *= 2;
+-#endif /* DEBUG_MEM_ERRORS */
+-
+-    if (proposed_alloc > BLOCK_ALLOC_MAX)
+-        XMLRPC_FAIL(env, XMLRPC_INTERNAL_ERROR, "Memory block too large");
+-
+-    /* Allocate our new memory block. */
+-    new_block = (void*) malloc(proposed_alloc);
+-    XMLRPC_FAIL_IF_NULL(new_block, env, XMLRPC_INTERNAL_ERROR,
+-                        "Can't resize memory block");
+-
+-    /* Copy over our data and update the xmlrpc_mem_block struct. */
+-    memcpy(new_block, block->_block, block->_size);
+-    free(block->_block);
+-    block->_block     = new_block;
+-    block->_size      = size;
+-    block->_allocated = proposed_alloc;
+-
+- cleanup:
+-    return;
+-}
+-
+-
+-
+-void 
+-xmlrpc_mem_block_append(xmlrpc_env *       const env,
+-                        xmlrpc_mem_block * const block,
+-                        const void *       const data, 
+-                        size_t             const len) {
+-
+-    int size;
+-
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    XMLRPC_ASSERT(block != NULL);
+-
+-    size = block->_size;
+-    xmlrpc_mem_block_resize(env, block, size + len);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+-    memcpy(((unsigned char*) block->_block) + size, data, len);
+-
+- cleanup:
+-    return;
+-}
+-
+-
+-
+-void
+-xmlrpc_traceXml(const char * const label, 
+-                const char * const xml,
+-                unsigned int const xmlLength) {
+-
+-    if (getenv("XMLRPC_TRACE_XML")) {
+-        unsigned int nonPrintableCount;
+-        unsigned int i;
+-
+-        nonPrintableCount = 0;  /* Initial value */
+-
+-        for (i = 0; i < xmlLength; ++i) {
+-            if (!isprint(xml[i]) && xml[i] != '\n' && xml[i] != '\r')
+-                ++nonPrintableCount;
+-        }
+-        if (nonPrintableCount > 0)
+-            fprintf(stderr, "%s contains %u nonprintable characters.\n", 
+-                    label, nonPrintableCount);
+-
+-        fprintf(stderr, "%s:\n\n", label);
+-        fprintf(stderr, "%.*s\n", (int)xmlLength, xml);
+-    }
+-}
+diff --git a/libs/xmlrpc-c/src/xmlrpc_transport.c b/libs/xmlrpc-c/src/xmlrpc_transport.c
+deleted file mode 100644
+index d1878e6..0000000
+--- a/libs/xmlrpc-c/src/xmlrpc_transport.c
++++ /dev/null
+@@ -1,143 +0,0 @@
+-/* Copyright (C) 2001 by First Peer, Inc. All rights reserved.
+-**
+-** Redistribution and use in source and binary forms, with or without
+-** modification, are permitted provided that the following conditions
+-** are met:
+-** 1. Redistributions of source code must retain the above copyright
+-**    notice, this list of conditions and the following disclaimer.
+-** 2. Redistributions in binary form must reproduce the above copyright
+-**    notice, this list of conditions and the following disclaimer in the
+-**    documentation and/or other materials provided with the distribution.
+-** 3. The name of the author may not be used to endorse or promote products
+-**    derived from this software without specific prior written permission. 
+-**  
+-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+-** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-** ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+-** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-** SUCH DAMAGE. */
+-
+-#include "xmlrpc_config.h"
+-
+-#undef PACKAGE
+-#undef VERSION
+-
+-#include <stddef.h>
+-#include <string.h>
+-#include <stdlib.h>
+-
+-#ifdef WIN32
+-#ifdef _DEBUG
+-#     include <crtdbg.h>
+-#     define new DEBUG_NEW
+-#     define malloc(size) _malloc_dbg( size, _NORMAL_BLOCK, __FILE__, __LINE__)
+-#     undef THIS_FILE
+-      static char THIS_FILE[] = __FILE__;
+-#endif
+-#endif /*WIN32*/
+-
+-#include "pthreadx.h"
+-#include "xmlrpc.h"
+-#include "xmlrpc_client.h"
+-
+-#if defined (WIN32)
+-#include <process.h>
+-#endif
+-
+-/* For debugging the xmlrpc_transport threading. */
+-/* #define tdbg_printf printf */
+-#define tdbg_printf (void *)
+-
+-/* Lacking from the abyss/thread.c implimentaion. */
+-void wait_for_asynch_thread(pthread_t *thread)
+-{
+-#if WIN32
+-      unsigned long milliseconds = INFINITE;
+-      switch (WaitForSingleObject (
+-      *thread /* handle to object to wait for */,
+-      milliseconds /* time-out interval in milliseconds*/) )
+-      {
+-              /* One may want to handle these cases  */
+-      case WAIT_OBJECT_0:
+-      case WAIT_TIMEOUT:
+-              break;
+-      }
+-#else
+-      void * result;
+-      int success;
+-      success = pthread_join (*thread, &result);
+-#endif
+-}
+-
+-/* MRB-WARNING: Only call when you have successfully
+-**     acquired the Lock/Unlock mutex! */
+-void unregister_asynch_thread (running_thread_list *list, pthread_t *thread)
+-{
+-      running_thread_info * pCur = NULL;
+-      XMLRPC_ASSERT_PTR_OK(thread);
+-      XMLRPC_ASSERT_PTR_OK(list);
+-
+-      tdbg_printf("unregister_asynch_thread: &pthread_id = %08X *(%08X)\n", thread, *thread);
+-      /* Removal */
+-      /* Lock (); */
+-      for (pCur = list->AsyncThreadHead; pCur != NULL; pCur = (running_thread_info *)pCur->Next)
+-      {
+-              if (pCur->_thread == *thread)
+-              {
+-                      if (pCur == list->AsyncThreadHead)
+-                              list->AsyncThreadHead = pCur->Next;
+-                      if (pCur == list->AsyncThreadTail)
+-                              list->AsyncThreadTail = pCur->Last;
+-                      if (pCur->Last)
+-                              ((running_thread_info *)(pCur->Last))->Next = pCur->Next;
+-                      if (pCur->Next)
+-                              ((running_thread_info *)(pCur->Next))->Last = pCur->Last;
+-                      /* Free malloc'd running_thread_info */
+-                      free (pCur);
+-                      return;
+-              }
+-      }
+-
+-      /* This is a serious progmatic error, since the thread
+-      ** should be in that list! */
+-      XMLRPC_ASSERT_PTR_OK(0x0000);
+-
+-      /* Unlock (); */
+-}
+-
+-/* MRB-WARNING: Only call when you have successfully
+-**     acquired the Lock/Unlock mutex! */
+-void register_asynch_thread (running_thread_list *list, pthread_t *thread)
+-{
+-      running_thread_info* info = (running_thread_info *) malloc(sizeof(running_thread_info));
+-
+-      XMLRPC_ASSERT_PTR_OK(thread);
+-      XMLRPC_ASSERT_PTR_OK(list);
+-      
+-      tdbg_printf("register_asynch_thread: &pthread_id = %08X *(%08X)\n", thread, *thread);
+-
+-      info->_thread = *thread;
+-
+-      /* Insertion */
+-      /* Lock (); */
+-      if (list->AsyncThreadHead == NULL)
+-      {
+-              list->AsyncThreadHead = list->AsyncThreadTail = info;
+-              list->AsyncThreadTail->Next = list->AsyncThreadHead->Next = NULL;
+-              list->AsyncThreadTail->Last = list->AsyncThreadHead->Last = NULL;
+-      }
+-      else
+-      {
+-              info->Last = list->AsyncThreadTail;
+-              list->AsyncThreadTail->Next = info;
+-              list->AsyncThreadTail = list->AsyncThreadTail->Next;
+-              list->AsyncThreadTail->Next = NULL;
+-      }
+-      /* Unlock (); */
+-}
+diff --git a/libs/xmlrpc-c/src/xmlrpc_utf8.c b/libs/xmlrpc-c/src/xmlrpc_utf8.c
+deleted file mode 100644
+index 390cc7b..0000000
+--- a/libs/xmlrpc-c/src/xmlrpc_utf8.c
++++ /dev/null
+@@ -1,376 +0,0 @@
+-/* Copyright (C) 2001 by Eric Kidd. All rights reserved.
+-**
+-** Redistribution and use in source and binary forms, with or without
+-** modification, are permitted provided that the following conditions
+-** are met:
+-** 1. Redistributions of source code must retain the above copyright
+-**    notice, this list of conditions and the following disclaimer.
+-** 2. Redistributions in binary form must reproduce the above copyright
+-**    notice, this list of conditions and the following disclaimer in the
+-**    documentation and/or other materials provided with the distribution.
+-** 3. The name of the author may not be used to endorse or promote products
+-**    derived from this software without specific prior written permission. 
+-**  
+-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+-** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-** ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+-** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-** SUCH DAMAGE. */
+-
+-
+-/*=========================================================================
+-**  XML-RPC UTF-8 Utilities
+-**=========================================================================
+-**  Routines for validating, encoding and decoding UTF-8 data.  We try to
+-**  be very, very strict about invalid UTF-8 data.
+-**
+-**  All of the code in this file assumes that your machine represents
+-**  wchar_t as a 16-bit (or wider) character containing UCS-2 data.  If this
+-**  assumption is incorrect, you may need to replace this file.
+-**
+-**  For lots of information on Unicode and UTF-8 decoding, see:
+-**    http://www.cl.cam.ac.uk/~mgk25/unicode.html
+-*/
+-
+-#include "xmlrpc_config.h"
+-
+-#include "xmlrpc-c/base.h"
+-
+-#ifdef HAVE_UNICODE_WCHAR
+-
+-/*=========================================================================
+-**  Tables and Constants
+-**=========================================================================
+-**  We use a variety of tables and constants to help decode and validate
+-**  UTF-8 data.
+-*/
+-
+-/* The number of bytes in a UTF-8 sequence starting with the character used
+-** as the array index.  A zero entry indicates an illegal initial byte.
+-** This table was generated using a Perl script and information from the
+-** UTF-8 standard.
+-**
+-** Fredrik Lundh's UTF-8 decoder Python 2.0 uses a similar table.  But
+-** since Python 2.0 has the icky CNRI license, I regenerated this
+-** table from scratch and wrote my own decoder. */
+-static unsigned char utf8_seq_length[256] = {
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+-    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+-    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+-    4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 0, 0
+-};
+-
+-/* The minimum legal character value for a UTF-8 sequence of the given
+-** length.  We have to check this to avoid accepting "overlong" UTF-8
+-** sequences, which use more bytes than necessary to encode a given
+-** character.  Such sequences are commonly used by evil people to bypass
+-** filters and security checks.  This table is based on the UTF-8-test.txt
+-** file by Markus Kuhn <mkuhn@acm.org>. */
+-static wchar_t utf8_min_char_for_length[4] = {
+-    0,          /* Length 0: Not used (meaningless) */
+-    0x0000,     /* Length 1: Not used (special-cased) */
+-    0x0080,     /* Length 2 */
+-    0x0800      /* Length 3 */
+-
+-#if 0
+-    /* These are only useful on systems where wchar_t is 32-bits wide
+-    ** and supports full UCS-4. */
+-    0x00010000, /* Length 4 */
+-    0x00200000, /* Length 5 */
+-    0x04000000  /* Length 6 */
+-#endif
+-};
+-
+-/* This is the maximum legal 16-byte (UCS-2) character.  Again, this
+-** information is based on UTF-8-test.txt. */
+-#define UCS2_MAX_LEGAL_CHARACTER (0xFFFD)
+-
+-/* First and last UTF-16 surrogate characters.  These are *not* legal UCS-2
+-** characters--they're used to code for UCS-4 characters when using
+-** UTF-16.  They should never appear in decoded UTF-8 data!  Again, these
+-** could hypothetically be used to bypass security measures on some machines.
+-** Based on UTF-8-test.txt. */
+-#define UTF16_FIRST_SURROGATE (0xD800)
+-#define UTF16_LAST_SURROGATE  (0xDFFF)
+-
+-/* Is the character 'c' a UTF-8 continuation character? */
+-#define IS_CONTINUATION(c) (((c) & 0xC0) == 0x80)
+-
+-/* Maximum number of bytes needed to encode a supported character. */
+-#define MAX_ENCODED_BYTES (3)
+-
+-
+-/*=========================================================================
+-**  decode_utf8
+-**=========================================================================
+-**  Internal routine which decodes (or validates) a UTF-8 string.
+-**  To validate, set io_buff and out_buff_len to NULL.  To decode, allocate
+-**  a sufficiently large buffer, pass it as io_buff, and pass a pointer as
+-**  as out_buff_len.  The data will be written to the buffer, and the
+-**  length to out_buff_len.
+-**
+-**  We assume that wchar_t holds a single UCS-2 character in native-endian
+-**  byte ordering.
+-*/
+-
+-static void 
+-decode_utf8(xmlrpc_env * const env,
+-            const char * const utf8_data,
+-            size_t       const utf8_len,
+-            wchar_t *    const io_buff,
+-            size_t *     const out_buff_len) {
+-
+-    size_t i, length, out_pos;
+-    char init, con1, con2;
+-    wchar_t wc;
+-
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    XMLRPC_ASSERT_PTR_OK(utf8_data);
+-    XMLRPC_ASSERT((!io_buff && !out_buff_len) ||
+-                  (io_buff && out_buff_len));
+-
+-    /* Suppress GCC warning about possibly undefined variable. */
+-    wc = 0;
+-
+-    i = 0;
+-    out_pos = 0;
+-    while (i < utf8_len) {
+-        init = utf8_data[i];
+-        if ((init & 0x80) == 0x00) {
+-            /* Convert ASCII character to wide character. */
+-            wc = init;
+-            i++;
+-        } else {
+-            /* Look up the length of this UTF-8 sequence. */
+-            length = utf8_seq_length[(unsigned char) init];
+-            
+-            /* Check to make sure we have enough bytes to convert. */
+-            if (i + length > utf8_len)
+-                XMLRPC_FAIL(env, XMLRPC_INVALID_UTF8_ERROR,
+-                            "Truncated UTF-8 sequence");
+-            
+-            /* Decode a multibyte UTF-8 sequence. */
+-            switch (length) {
+-            case 0:
+-                XMLRPC_FAIL(env, XMLRPC_INVALID_UTF8_ERROR,
+-                            "Invalid UTF-8 initial byte");
+-                
+-            case 2:
+-                /* 110xxxxx 10xxxxxx */
+-                con1 = utf8_data[i+1];
+-                if (!IS_CONTINUATION(con1))
+-                    XMLRPC_FAIL(env, XMLRPC_INVALID_UTF8_ERROR,
+-                                "UTF-8 sequence too short");
+-                wc = ((((wchar_t) (init & 0x1F)) <<  6) |
+-                      (((wchar_t) (con1 & 0x3F))));
+-                break;
+-                
+-            case 3:
+-                /* 1110xxxx 10xxxxxx 10xxxxxx */
+-                con1 = utf8_data[i+1];
+-                con2 = utf8_data[i+2];
+-                if (!IS_CONTINUATION(con1) || !IS_CONTINUATION(con2))
+-                    XMLRPC_FAIL(env, XMLRPC_INVALID_UTF8_ERROR,
+-                                "UTF-8 sequence too short");
+-                wc = ((((wchar_t) (init & 0x0F)) << 12) |
+-                      (((wchar_t) (con1 & 0x3F)) <<  6) |
+-                      (((wchar_t) (con2 & 0x3F))));
+-                break;
+-                
+-            case 4:
+-                /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */
+-            case 5:
+-                /* 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */
+-            case 6:
+-                /* 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */
+-                XMLRPC_FAIL(env, XMLRPC_INVALID_UTF8_ERROR,
+-                            "UCS-4 characters not supported");
+-                
+-            default:
+-                XMLRPC_ASSERT("Error in UTF-8 decoder tables");
+-            }
+-                  
+-            /* Advance to the end of the sequence. */
+-            i += length;
+-            
+-            /* Check for illegal UCS-2 characters. */
+-            if (wc > UCS2_MAX_LEGAL_CHARACTER)
+-                XMLRPC_FAIL(env, XMLRPC_INVALID_UTF8_ERROR,
+-                            "UCS-2 characters > U+FFFD are illegal");
+-            
+-            /* Check for UTF-16 surrogates. */
+-            if (UTF16_FIRST_SURROGATE <= wc && wc <= UTF16_LAST_SURROGATE)
+-                XMLRPC_FAIL(env, XMLRPC_INVALID_UTF8_ERROR,
+-                            "UTF-16 surrogates may not appear in UTF-8 data");
+-            
+-            /* Check for overlong sequences. */
+-            if (wc < utf8_min_char_for_length[length])
+-                XMLRPC_FAIL(env, XMLRPC_INVALID_UTF8_ERROR,
+-                            "Overlong UTF-8 sequence not allowed");
+-        }
+-        
+-        /* If we have a buffer, write our character to it. */
+-        if (io_buff) {
+-            io_buff[out_pos++] = wc;
+-        }
+-    }
+-    
+-    /* Record the number of characters we found. */
+-    if (out_buff_len)
+-        *out_buff_len = out_pos;
+-    
+- cleanup:
+-    if (env->fault_occurred) {
+-        if (out_buff_len)
+-            *out_buff_len = 0;
+-    }
+-}
+-
+-
+-
+-/*=========================================================================
+-**  xmlrpc_validate_utf8
+-**=========================================================================
+-**  Make sure that a UTF-8 string is valid.
+-*/
+-
+-void 
+-xmlrpc_validate_utf8 (xmlrpc_env * const env,
+-                      const char * const utf8_data,
+-                      size_t       const utf8_len) {
+-
+-    decode_utf8(env, utf8_data, utf8_len, NULL, NULL);
+-}
+-
+-
+-/*=========================================================================
+-**  xmlrpc_utf8_to_wcs
+-**=========================================================================
+-**  Decode UTF-8 string to a "wide character string".  This function
+-**  returns an xmlrpc_mem_block with an element type of wchar_t.  Don't
+-**  try to intepret the block in a bytewise fashion--it won't work in
+-**  any useful or portable fashion.
+-*/
+-
+-xmlrpc_mem_block *xmlrpc_utf8_to_wcs (xmlrpc_env *env,
+-                                    char *utf8_data,
+-                                    size_t utf8_len)
+-{
+-    xmlrpc_mem_block *output;
+-    size_t wcs_length;
+-
+-    /* Error-handling preconditions. */
+-    output = NULL;
+-
+-    /* Allocate a memory block large enough to hold any possible output.
+-    ** We assume that each byte of the input may decode to a whcar_t. */
+-    output = XMLRPC_TYPED_MEM_BLOCK_NEW(wchar_t, env, utf8_len);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+-    /* Decode the UTF-8 data. */
+-    decode_utf8(env, utf8_data, utf8_len,
+-              XMLRPC_TYPED_MEM_BLOCK_CONTENTS(wchar_t, output),
+-              &wcs_length);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+-    /* Make sure we didn't overrun our buffer. */
+-    XMLRPC_ASSERT(wcs_length <= utf8_len);
+-
+-    /* Correct the length of the memory block. */
+-    XMLRPC_TYPED_MEM_BLOCK_RESIZE(wchar_t, env, output, wcs_length);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+- cleanup:
+-    if (env->fault_occurred) {
+-      if (output)
+-          xmlrpc_mem_block_free(output);
+-      return NULL;
+-    }
+-    return output;
+-}
+-
+-
+-/*=========================================================================
+-**  xmlrpc_utf8_to_wcs
+-**=========================================================================
+-**  Encode a "wide character string" as UTF-8.
+-*/
+-
+-xmlrpc_mem_block *xmlrpc_wcs_to_utf8 (xmlrpc_env *env,
+-                                    wchar_t *wcs_data,
+-                                    size_t wcs_len)
+-{
+-    size_t estimate, bytes_used, i;
+-    xmlrpc_mem_block *output;
+-    unsigned char *buffer;
+-    wchar_t wc;
+-
+-    XMLRPC_ASSERT_ENV_OK(env);
+-    XMLRPC_ASSERT_PTR_OK(wcs_data);
+-
+-    /* Error-handling preconditions. */
+-    output = NULL;
+-
+-    /* Allocate a memory block large enough to hold any possible output.
+-    ** We assume that every wchar might encode to the maximum length. */
+-    estimate = wcs_len * MAX_ENCODED_BYTES;
+-    output = XMLRPC_TYPED_MEM_BLOCK_NEW(char, env, estimate);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+-    /* Output our characters. */
+-    buffer = (unsigned char*) XMLRPC_TYPED_MEM_BLOCK_CONTENTS(char, output);
+-    bytes_used = 0;
+-    for (i = 0; i < wcs_len; i++) {
+-      wc = wcs_data[i];
+-      if (wc <= 0x007F) {
+-          buffer[bytes_used++] = wc & 0x7F;
+-      } else if (wc <= 0x07FF) {
+-          /* 110xxxxx 10xxxxxx */
+-          buffer[bytes_used++] = 0xC0 | (wc >> 6);
+-          buffer[bytes_used++] = 0x80 | (wc & 0x3F);
+-      } else if (wc <= 0xFFFF) {
+-          /* 1110xxxx 10xxxxxx 10xxxxxx */
+-          buffer[bytes_used++] = 0xE0 | (wc >> 12);
+-          buffer[bytes_used++] = 0x80 | ((wc >> 6) & 0x3F);
+-          buffer[bytes_used++] = 0x80 | (wc & 0x3F);
+-      } else {
+-          XMLRPC_FAIL(env, XMLRPC_INTERNAL_ERROR,
+-                      "Don't know how to encode UCS-4 characters yet");
+-      }
+-    }
+-
+-    /* Make sure we didn't overrun our buffer. */
+-    XMLRPC_ASSERT(bytes_used <= estimate);
+-
+-    /* Correct the length of the memory block. */
+-    XMLRPC_TYPED_MEM_BLOCK_RESIZE(char, env, output, bytes_used);
+-    XMLRPC_FAIL_IF_FAULT(env);
+-
+- cleanup:
+-    if (env->fault_occurred) {
+-      if (output)
+-          xmlrpc_mem_block_free(output);
+-      return NULL;
+-    }
+-    return output;
+-}
+-
+-#endif /* HAVE_UNICODE_WCHAR */
+diff --git a/libs/xmlrpc-c/tools/.cvsignore b/libs/xmlrpc-c/tools/.cvsignore
+deleted file mode 100644
+index f3c7a7c..0000000
+--- a/libs/xmlrpc-c/tools/.cvsignore
++++ /dev/null
+@@ -1 +0,0 @@
+-Makefile
+diff --git a/libs/xmlrpc-c/tools/Makefile b/libs/xmlrpc-c/tools/Makefile
+index 621dbf9..c2eb347 100644
+--- a/libs/xmlrpc-c/tools/Makefile
++++ b/libs/xmlrpc-c/tools/Makefile
+@@ -7,15 +7,20 @@ SUBDIR := tools
+ include $(BLDDIR)/config.mk
+-SUBDIRS = binmode-rpc-kit turbocharger
++SUBDIRS = \
++  binmode-rpc-kit \
++  lib \
++  turbocharger \
+ ifeq ($(MUST_BUILD_CLIENT),yes)
+   SUBDIRS += xmlrpc xmlrpc_transport
+   ifeq ($(ENABLE_CPLUSPLUS),yes)
+-    SUBDIRS += xml-rpc-api2cpp xmlrpc_cpp_proxy
+-    # We could add 'xmlrpc_pstream' here, but we don't because we don't
+-    # want to deal with finding the Readline/Ncurses libraries.
++    SUBDIRS += xml-rpc-api2cpp xml-rpc-api2txt xmlrpc_cpp_proxy
++
++    ifeq ($(BUILD_XMLRPC_PSTREAM),yes)
++      SUBDIRS += xmlrpc_pstream
++    endif
+   endif
+ endif
+diff --git a/libs/xmlrpc-c/tools/Makefile.common b/libs/xmlrpc-c/tools/Makefile.common
+deleted file mode 100644
+index 8b0cdce..0000000
+--- a/libs/xmlrpc-c/tools/Makefile.common
++++ /dev/null
+@@ -1,47 +0,0 @@
+-# -*-makefile-*-    <-- an Emacs control
+-
+-CLIENT_LDFLAGS =
+-ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
+-  CLIENT_LDFLAGS += $(shell libwww-config --libs)
+-endif
+-ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
+-  CLIENT_LDFLAGS += $(shell curl-config --libs) -lpthread
+-endif
+-ifeq ($(MUST_BUILD_WININET_CLIENT),yes)
+-  CLIENT_LDFLAGS += $(shell wininet-config --libs)
+-endif
+-
+-LIBEXPAT = $(BUILDDIR)/lib/expat/xmlparse/libxmlrpc_xmlparse.la \
+-           $(BUILDDIR)/lib/expat/xmltok/libxmlrpc_xmltok.la
+-
+-ifeq ($(ENABLE_LIBXML2_BACKEND),yes)
+-  LIBXML = $(LIBXML2_LIBS)
+-else
+-  LIBXML = $(LIBEXPAT)
+-endif
+-
+-LIBXMLRPC = $(BUILDDIR)/src/libxmlrpc.la
+-LIBXMLRPC_CPP = $(BUILDDIR)/src/cpp/libxmlrpc_cpp.a
+-LIBXMLRPC_CLIENT = $(BUILDDIR)/src/libxmlrpc_client.la
+-LIBXMLRPC_SERVER = $(BUILDDIR)/src/libxmlrpc_server.la
+-
+-XMLRPC_LIBS = $(LIBXMLRPC) $(LIBXMLRPC_CPP) $(LIBXMLRPC_CLIENT) \
+-      $(LIBXMLRPC_SERVER) $(LIBXML)
+-
+-UTIL_DIR = $(BUILDDIR)/lib/util
+-
+-BUILDABLE_UTILS = casprintf.o cmdline_parser.o getoptx.o
+-
+-$(BUILDABLE_UTILS:%=$(UTIL_DIR)/%): FORCE
+-      $(MAKE) -C $(dir $@) $(notdir $@)
+-
+-include $(SRCDIR)/Makefile.common
+-
+-.PHONY: install
+-install: install-common
+-
+-.PHONY: check
+-check:
+-
+-.PHONY: FORCE
+-FORCE:
+diff --git a/libs/xmlrpc-c/tools/common.mk b/libs/xmlrpc-c/tools/common.mk
+index fe71e97..4c377fe 100644
+--- a/libs/xmlrpc-c/tools/common.mk
++++ b/libs/xmlrpc-c/tools/common.mk
+@@ -29,7 +29,7 @@ CLIENTPP_LDLIBS += -lxmlrpc_client++ -lxmlrpc_packetsocket -lxmlrpc++
+ include $(SRCDIR)/common.mk
+ ifneq ($(OMIT_LIB_RULE),Y)
+-srcdir/tools/lib/dumpvalue.o: FORCE
++blddir/tools/lib/dumpvalue.o: FORCE
+       $(MAKE) -C $(dir $@) -f $(SRCDIR)/tools/lib/Makefile $(notdir $@) 
+ endif
+diff --git a/libs/xmlrpc-c/tools/lib/Makefile b/libs/xmlrpc-c/tools/lib/Makefile
+index 5b04eed..836d9c9 100644
+--- a/libs/xmlrpc-c/tools/lib/Makefile
++++ b/libs/xmlrpc-c/tools/lib/Makefile
+@@ -20,8 +20,6 @@ INCLUDES = \
+   -Isrcdir/include \
+   -Isrcdir/lib/util/include \
+-CFLAGS = $(CFLAGS_COMMON) $(INCLUDES) $(CFLAGS_PERSONAL) $(CADD)
+-
+ LIBOBJS = \
+   dumpvalue.o \
+@@ -29,14 +27,14 @@ LIBOBJS = \
+ all: $(LIBOBJS)
+ %.o:%.c
+-      $(CC) -c $(CFLAGS) $<
++      $(CC) -c $(CFLAGS_ALL) $<
+ # This common.mk dependency makes sure the symlinks get built before
+ # this make file is used for anything.
+-$(SRCDIR)/tool/common.mk: srcdir blddir
++$(SRCDIR)/tools/common.mk: srcdir blddir
+-include Makefile.depend
++include depend.mk
+ .PHONY: dep
+ dep: dep-common
+diff --git a/libs/xmlrpc-c/tools/lib/dumpvalue.c b/libs/xmlrpc-c/tools/lib/dumpvalue.c
+index ebcc000..682c904 100644
+--- a/libs/xmlrpc-c/tools/lib/dumpvalue.c
++++ b/libs/xmlrpc-c/tools/lib/dumpvalue.c
+@@ -5,7 +5,7 @@
+    used for debugging purposes in other places.
+ */
+-//#define _GNU_SOURCE
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
+ #include <stdlib.h>
+ #include <stdio.h>
+@@ -297,12 +297,12 @@ dumpStructMember(const char *   const prefix,
+         const char * prefix2;
+         const char * blankPrefix;
+-        casprintf(&prefix2, "%s  Key:   ", prefix);
++        casprintf(&blankPrefix, "%*s", blankCount, "");
++        
++        casprintf(&prefix2, "%s  Key:   ", blankPrefix);
+         dumpValue(prefix2, keyP);
+         strfree(prefix2);
+-        casprintf(&blankPrefix, "%*s", blankCount, "");
+-        
+         casprintf(&prefix2, "%s  Value: ", blankPrefix);
+         dumpValue(prefix2, valueP);
+         strfree(prefix2);
+@@ -407,13 +407,13 @@ dumpI8(const char *   const prefix,
+     xmlrpc_env_init(&env);
+     xmlrpc_read_i8(&env, valueP, &value);
+-    
++
+     if (env.fault_occurred)
+         printf("Internal error: unable to extract value of "
+                "64-bit integer xmlrpc_value %lx.  %s\n",
+                (unsigned long)valueP, env.fault_string);
+     else
+-        printf("%s64-bit integer: %" PRId64 "\n", prefix, value);
++        printf("%s64-bit integer: %" XMLRPC_PRId64 "\n", prefix, value);
+     xmlrpc_env_clean(&env);
+ }
+diff --git a/libs/xmlrpc-c/tools/turbocharger/.cvsignore b/libs/xmlrpc-c/tools/turbocharger/.cvsignore
+deleted file mode 100644
+index f3c7a7c..0000000
+--- a/libs/xmlrpc-c/tools/turbocharger/.cvsignore
++++ /dev/null
+@@ -1 +0,0 @@
+-Makefile
+diff --git a/libs/xmlrpc-c/tools/xml-rpc-api2cpp/.cvsignore b/libs/xmlrpc-c/tools/xml-rpc-api2cpp/.cvsignore
+deleted file mode 100644
+index c194ee8..0000000
+--- a/libs/xmlrpc-c/tools/xml-rpc-api2cpp/.cvsignore
++++ /dev/null
+@@ -1 +0,0 @@
+-xml-rpc-api2cpp
+diff --git a/libs/xmlrpc-c/tools/xml-rpc-api2cpp/Makefile b/libs/xmlrpc-c/tools/xml-rpc-api2cpp/Makefile
+index dbe374f..0ad3907 100644
+--- a/libs/xmlrpc-c/tools/xml-rpc-api2cpp/Makefile
++++ b/libs/xmlrpc-c/tools/xml-rpc-api2cpp/Makefile
+@@ -10,23 +10,24 @@ default: all
+ include $(BLDDIR)/config.mk
+-include $(SRCDIR)/tools/common.mk
+-
+-INCLUDES = -I$(BLDDIR) -I$(BLDDIR)/include -I$(SRCDIR)/include
++PROGS := xml-rpc-api2cpp
++PROGRAMS_TO_INSTALL := $(PROGS)
++MAN_FILES_TO_INSTALL := xml-rpc-api2cpp.1
+-CXXFLAGS = $(INCLUDES) $(CXXFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
++all: $(PROGS)
+-LDFLAGS = $(LADD)
++include $(SRCDIR)/tools/common.mk
+-LDLIBS = -L$(BLDDIR)/src/cpp -lxmlrpc_cpp -lxmlrpc_server $(CLIENT_LDLIBS)
++# <sstream.h> in Glibc 2.2 has a bug that results in inlining failure,
++# so we disable warnings for that:
++CFLAGS_LOCAL = -Wno-inline
+-PROGS :=
++INCLUDES = -I$(BLDDIR) -I$(BLDDIR)/include -Isrcdir/include
+-ifeq ($(MUST_BUILD_CLIENT),yes)
+-  PROGS += xml-rpc-api2cpp
+-endif
++LDFLAGS = $(LADD)
+-all: $(PROGS)
++LDLIBS = -L$(BLDDIR)/src/cpp -lxmlrpc_cpp -L$(BLDDIR)/src -lxmlrpc_server \
++  $(CLIENT_LDLIBS)
+ OBJECTS = \
+   xml-rpc-api2cpp.o \
+@@ -46,14 +47,14 @@ xml-rpc-api2cpp: \
+       $(CXXLD) -o $@ $(LDFLAGS) $(OBJECTS) $(LDLIBS)
+ %.o:%.cpp
+-      $(CXX) -c $(CXXFLAGS) $<
++      $(CXX) -c $(CXXFLAGS_ALL) $<
+ # This common.mk dependency makes sure the symlinks get built before
+ # this make file is used for anything.
+-$(SRCDIR)/common.mk: srcdir blddir
++$(SRCDIR)/tools/common.mk: srcdir blddir
+-include Makefile.depend
++include depend.mk
+ .PHONY: clean
+ clean: clean-common
+diff --git a/libs/xmlrpc-c/tools/xml-rpc-api2cpp/README b/libs/xmlrpc-c/tools/xml-rpc-api2cpp/README
+deleted file mode 100644
+index 4dff2a3..0000000
+--- a/libs/xmlrpc-c/tools/xml-rpc-api2cpp/README
++++ /dev/null
+@@ -1,6 +0,0 @@
+-This program generates C++ wrapper classes for XML-RPC servers.  It talks
+-to xmlrpc-c and XML-RPC.NET servers without any problems, but tends to
+-choke when talking to mod_php-based servers.  It looks like there is some
+-kind of pipelining problem.
+-
+-This code is an ongoing project.  Please send feedback!
+diff --git a/libs/xmlrpc-c/tools/xml-rpc-api2txt b/libs/xmlrpc-c/tools/xml-rpc-api2txt
+deleted file mode 100755
+index e771463..0000000
+--- a/libs/xmlrpc-c/tools/xml-rpc-api2txt
++++ /dev/null
+@@ -1,147 +0,0 @@
+-#!/usr/bin/perl -w
+-#
+-# A handy little program to get the documentation of the available
+-# methods from an XML-RPC service (via XML-RPC Introspection) and
+-# print it out nicely formatted.
+-#
+-# (I wrote this in Perl because of all the spiffy report-generation
+-# features.)
+-#
+-# You'll need to get Ken MacLeod's Frontier::RPC2 module from CPAN to use
+-# this.
+-#
+-# Eric Kidd <eric.kidd@pobox.com>
+-#
+-# This script is part of xmlrpc-c, and may be used and distributed under
+-# the same terms as the rest of the package.
+-
+-use strict;
+-
+-# One global variable for use with Perl's format routines, and one for
+-# use inside an 'exec' block.
+-use vars qw/$helptext $method_list/;
+-
+-# Try to load our Perl XML-RPC bindings, but fail gracefully.
+-eval {
+-    require Frontier::Client;
+-};
+-if ($@) {
+-    print STDERR <<"EOD";
+-This script requires Ken MacLeod\'s Frontier::RPC2 module. You can get this
+-from CPAN or from his website at http://bitsko.slc.ut.us/~ken/xml-rpc/ .
+-
+-For installation instructions, see the XML-RPC HOWTO at:
+-    http://www.linuxdoc.org/HOWTO/XML-RPC-HOWTO/index.html
+-
+-EOD
+-    exit 1;
+-}
+-
+-# Parse our command-line arguments.
+-if (@ARGV != 1 || $ARGV[0] eq "--help") {
+-    print STDERR "Usage: xml-rpc-api2txt serverURL\n";
+-    exit 1;
+-}
+-
+-my $server = Frontier::Client->new(url => $ARGV[0]);
+-
+-# Try (very carefully) to get our a list of methods from the server.
+-local $method_list;
+-eval {
+-    $method_list = $server->call('system.listMethods');
+-};
+-if ($@) {
+-    print STDERR <<"EOD";
+-An error occurred while trying to talk to the XML-RPC server:
+-
+-  $@
+-
+-This may have been caused by several things--the server might not support
+-introspection, it might not be an XML-RPC server, or your network might be
+-down. Try the following:
+-
+-  xml-rpc-api2txt http://xmlrpc-c.sourceforge.net/api/sample.php
+-
+-EOD
+-    exit 1;
+-}
+-
+-# Enter the methods into a hashtable.
+-my @methods = sort @$method_list;
+-my %method_table;
+-foreach my $method (@methods) {
+-    $method_table{$method} = {};
+-}
+-
+-# Get more information for the hash table. Since we need to make lots and
+-# lots of very small XML-RPC calls, we'd like to use system.multicall to
+-# reduce the latency.
+-if (defined $method_table{'system.multicall'}) {
+-
+-    # This is messy but fast. Everybody hates HTTP round-trip lag, right?
+-    my @call;
+-    foreach my $method (@methods) {
+-      push @call, {methodName => 'system.methodSignature',
+-                   params => [$method]};
+-      push @call, {methodName => 'system.methodHelp',
+-                   params => [$method]};
+-    }
+-    my @result = @{$server->call('system.multicall', \@call)};
+-    for (my $i = 0; $i < @methods; $i++) {
+-      my $method = $methods[$i];
+-      $method_table{$method}->{'signatures'} = $result[2*$i]->[0];
+-      $method_table{$method}->{'help'} = $result[2*$i+1]->[0];
+-    }
+-} else {
+-
+-    # This is easy but slow (especially over backbone links).
+-    foreach my $method (@methods) {
+-      my $signature = $server->call('system.methodSignature', $method);
+-      my $help = $server->call('system.methodHelp', $method);
+-      $method_table{$method}->{'signatures'} = $signature;
+-      $method_table{$method}->{'help'} = $help;
+-    }
+-}
+-
+-# Now, we need to dump the API.
+-print <<"EOD";
+-XML-RPC API for $ARGV[0]
+-
+-See http://www.linuxdoc.org/HOWTO/XML-RPC-HOWTO/index.html for instructions
+-on using XML-RPC with Perl, Python, Java, C, C++, PHP, etc.
+-EOD
+-foreach my $method (@methods) {
+-    print "\n";
+-
+-    # Print a synopsis of the function.
+-    if ($method_table{$method}->{'signatures'} eq 'undef') {
+-      # No documentation. Bad server. No biscuit.
+-      print "unknown $method (...)\n";
+-    } else {
+-      for my $signature (@{$method_table{$method}->{'signatures'}}) {
+-          my $return_type = shift @$signature;
+-          my $arguments = join(", ", @$signature);
+-          print "$return_type $method ($arguments)\n";
+-      }
+-    }
+-    print "\n";
+-
+-    my $help = $method_table{$method}->{'help'};
+-    if ($help =~ /\n/) {
+-      # Text has already been broken into lines by the server, so just
+-      # indent it by two spaces and hope for the best.
+-      my @lines = split(/\n/, $help);
+-      my $help = "  " . join("\n  ", @lines);
+-      print "$help\n";
+-    } else {
+-      # Print our help text in a nicely-wrapped fashion using Perl's
+-      # formatting routines.
+-      $helptext = $method_table{$method}->{'help'};
+-      write;
+-    }
+-}
+-
+-format STDOUT =
+-  ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~~
+-  $helptext
+-.
+diff --git a/libs/xmlrpc-c/tools/xml-rpc-api2txt.1 b/libs/xmlrpc-c/tools/xml-rpc-api2txt.1
+deleted file mode 100644
+index a9e1ee3..0000000
+--- a/libs/xmlrpc-c/tools/xml-rpc-api2txt.1
++++ /dev/null
+@@ -1,47 +0,0 @@
+-.\"                                      Hey, EMACS: -*- nroff -*-
+-.\" First parameter, NAME, should be all caps
+-.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+-.\" other parameters are allowed: see man(7), man(1)
+-.TH XML-RPC-API2TXT 1 "June 27, 2001"
+-.\" Please adjust this date whenever revising the manpage.
+-.\"
+-.\" Some roff macros, for reference:
+-.\" .nh        disable hyphenation
+-.\" .hy        enable hyphenation
+-.\" .ad l      left justify
+-.\" .ad b      justify to both left and right margins
+-.\" .nf        disable filling
+-.\" .fi        enable filling
+-.\" .br        insert line break
+-.\" .sp <n>    insert n+1 empty lines
+-.\" for manpage-specific macros, see man(7)
+-.SH NAME
+-xml-rpc-api2txt \- Print out a description of an XML-RPC API as text
+-.SH SYNOPSIS
+-.B xml-rpc-api2txt
+-\fIserver-url\fR
+-.SH DESCRIPTION
+-xml-rpc-api2txt queries an XML-RPC server using the XML-RPC
+-Instrospection API designed by Edd Dumbill.  It then prints the
+-results to standard output in a nicely formatted form, suitable for
+-sending via e-mail.
+-.PP
+-You can find a list of supported XML-RPC server libraries (and patches
+-for many others) at \fBhttp://xmlrpc-c.sourceforge.net/hacks.php\fR.
+-.SH OPTIONS
+-.TP
+-.I server-url
+-The name of the server to query.  Try
+-\fBhttp://xmlrpc-c.sourceforge.net/cgi-bin/interop.cgi\fR.
+-.SH BUGS
+-xml-rpc-api2txt assumes that method descriptions are ASCII text, not
+-HTML as specified in the standard.  (In practice, both conventions are
+-often seen.)
+-.SH SEE ALSO
+-.BR xmlrpc-c (7),
+-.BR xml-rpc-api2cpp (1).
+-.PP
+-This program is part of xmlrpc-c.
+-.SH AUTHOR
+-This manual page was written by Eric Kidd <eric.kidd@pobox.com>.
+-It may be distributed under the same terms as the rest of xmlrpc-c.
+diff --git a/libs/xmlrpc-c/tools/xmlrpc/.cvsignore b/libs/xmlrpc-c/tools/xmlrpc/.cvsignore
+deleted file mode 100644
+index 73a3b1b..0000000
+--- a/libs/xmlrpc-c/tools/xmlrpc/.cvsignore
++++ /dev/null
+@@ -1 +0,0 @@
+-xmlrpc
+diff --git a/libs/xmlrpc-c/tools/xmlrpc/Makefile b/libs/xmlrpc-c/tools/xmlrpc/Makefile
+index c1f3b34..a8b3372 100644
+--- a/libs/xmlrpc-c/tools/xmlrpc/Makefile
++++ b/libs/xmlrpc-c/tools/xmlrpc/Makefile
+@@ -21,8 +21,6 @@ INCLUDES = \
+   -Isrcdir/include \
+   -Isrcdir/lib/util/include
+-CFLAGS = $(CFLAGS_COMMON) $(INCLUDES) $(CFLAGS_PERSONAL) $(CADD)
+-
+ LDFLAGS = $(LADD)
+ all: xmlrpc
+@@ -36,7 +34,7 @@ UTIL_OBJS = \
+ UTILS = $(UTIL_OBJS:%=$(UTIL_DIR)/%)
+-DUMPVALUE = srcdir/tools/lib/dumpvalue.o
++DUMPVALUE = blddir/tools/lib/dumpvalue.o
+ # Can we just use $(LIBS) in the link?
+@@ -48,14 +46,14 @@ xmlrpc: $(XMLRPC_OBJS) $(LIBS) $(UTILS)
+       $(CCLD) -o $@ $(LDFLAGS) $(XMLRPC_OBJS) $(UTILS) $(CLIENT_LDLIBS)
+ %.o:%.c $(BLDDIR)/include/xmlrpc-c/config.h
+-      $(CC) -c $(CFLAGS) $<
++      $(CC) -c $(CFLAGS_ALL) $<
+ # This common.mk dependency makes sure the symlinks get built before
+ # this make file is used for anything.
+ $(SRCDIR)/tools/common.mk: srcdir blddir
+-include Makefile.depend
++include depend.mk
+ .PHONY: dep
+ dep: dep-common
+diff --git a/libs/xmlrpc-c/tools/xmlrpc/xmlrpc.c b/libs/xmlrpc-c/tools/xmlrpc/xmlrpc.c
+index c768b7b..06da3e5 100644
+--- a/libs/xmlrpc-c/tools/xmlrpc/xmlrpc.c
++++ b/libs/xmlrpc-c/tools/xmlrpc/xmlrpc.c
+@@ -35,7 +35,7 @@
+ */
+-//#define _GNU_SOURCE
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
+ #include <stdlib.h>
+ #include <stdio.h>
+@@ -55,6 +55,7 @@
+ #include "xmlrpc-c/base.h"
+ #include "xmlrpc-c/client.h"
++#include "xmlrpc-c/string_int.h"
+ #define NAME "xmlrpc command line program"
+ #define VERSION "1.0"
+@@ -260,6 +261,33 @@ buildString(xmlrpc_env *    const envP,
+ static void
++interpretHex(xmlrpc_env *    const envP,
++             const char *    const valueString,
++             size_t          const valueStringSize,
++             unsigned char * const byteString) {
++
++    size_t bsCursor;
++    size_t strCursor;
++
++    for (strCursor = 0, bsCursor = 0;
++         strCursor < valueStringSize && !envP->fault_occurred;
++        ) {
++        int rc;
++
++        rc = sscanf(&valueString[strCursor], "%2hhx",
++                    &byteString[bsCursor++]);
++
++        if (rc != 1)
++            xmlrpc_faultf(envP, "Invalid hex data '%s'",
++                          &valueString[strCursor]);
++        else
++            strCursor += 2;
++    }
++}
++
++
++
++static void
+ buildBytestring(xmlrpc_env *    const envP,
+                 const char *    const valueString,
+                 xmlrpc_value ** const paramPP) {
+@@ -269,33 +297,25 @@ buildBytestring(xmlrpc_env *    const envP,
+     if (valueStringSize / 2 * 2 != valueStringSize)
+         xmlrpc_faultf(envP, "Hexadecimal text is not an even "
+                       "number of characters (it is %u characters)",
+-                      strlen(valueString));
++                      (unsigned)strlen(valueString));
+     else {
+         size_t const byteStringSize = strlen(valueString)/2;
+         
+-        unsigned char byteString[byteStringSize];
+-        size_t bsCursor;
+-        size_t strCursor;
+-
+-        strCursor = 0;
+-        bsCursor = 0;
++        unsigned char * byteString;
+-        while (strCursor < valueStringSize && !envP->fault_occurred) {
+-            int rc;
++        MALLOCARRAY(byteString, byteStringSize);
+-            assert(bsCursor < byteStringSize);
++        if (byteString == NULL)
++            xmlrpc_faultf(envP, "Failed to allocate %u-byte buffer",
++                          (unsigned)byteStringSize);
++        else {
++            interpretHex(envP, valueString, valueStringSize, byteString);
+-            rc = sscanf(&valueString[strCursor], "%2hhx",
+-                        &byteString[bsCursor++]);
++            if (!envP->fault_occurred)
++                *paramPP = xmlrpc_base64_new(envP, byteStringSize, byteString);
+-            if (rc != 1)
+-                xmlrpc_faultf(envP, "Invalid hex data '%s'",
+-                              &valueString[strCursor]);
+-            else
+-                strCursor += 2;
++            free(byteString);
+         }
+-        if (!envP->fault_occurred)
+-            *paramPP = xmlrpc_base64_new(envP, byteStringSize, byteString);
+     }
+ }
+@@ -409,19 +429,19 @@ computeParameter(xmlrpc_env *    const envP,
+                  const char *    const paramArg,
+                  xmlrpc_value ** const paramPP) {
+-    if (strncmp(paramArg, "s/", 2) == 0)
++    if (xmlrpc_strneq(paramArg, "s/", 2))
+         buildString(envP, &paramArg[2], paramPP);
+-    else if (strncmp(paramArg, "h/", 2) == 0)
++    else if (xmlrpc_strneq(paramArg, "h/", 2))
+         buildBytestring(envP, &paramArg[2], paramPP);
+-    else if (strncmp(paramArg, "i/", 2) == 0) 
++    else if (xmlrpc_strneq(paramArg, "i/", 2)) 
+         buildInt(envP, &paramArg[2], paramPP);
+-    else if (strncmp(paramArg, "I/", 2) == 0) 
++    else if (xmlrpc_strneq(paramArg, "I/", 2)) 
+         buildI8(envP, &paramArg[2], paramPP);
+-    else if (strncmp(paramArg, "d/", 2) == 0) 
++    else if (xmlrpc_strneq(paramArg, "d/", 2)) 
+         buildDouble(envP, &paramArg[2], paramPP);
+-    else if (strncmp(paramArg, "b/", 2) == 0)
++    else if (xmlrpc_strneq(paramArg, "b/", 2))
+         buildBool(envP, &paramArg[2], paramPP);
+-    else if (strncmp(paramArg, "n/", 2) == 0)
++    else if (xmlrpc_strneq(paramArg, "n/", 2))
+         buildNil(envP, &paramArg[2], paramPP);
+     else {
+         /* It's not in normal type/value format, so we take it to be
+diff --git a/libs/xmlrpc-c/tools/xmlrpc/xmlrpc.html b/libs/xmlrpc-c/tools/xmlrpc/xmlrpc.html
+index 07119c8..55315d5 100644
+--- a/libs/xmlrpc-c/tools/xmlrpc/xmlrpc.html
++++ b/libs/xmlrpc-c/tools/xmlrpc/xmlrpc.html
+@@ -34,7 +34,7 @@ http://gggeek.damacom.it/debugger/</a>
+ <pre>
+ <tt>
+-     $ xmlrpc http://xmlrpc.server.net/~bryanh echostring \
++     $ xmlrpc http://xmlrpc.example.com/~bryanh echostring \
+          &quot;s/This is a string&quot;
+      Result:
+        String: This is a string
+@@ -44,7 +44,7 @@ http://gggeek.damacom.it/debugger/</a>
+ <pre>
+ <tt>
+-     $ xmlrpc http://xmlrpc.server.net/~bryanh echostring \
++     $ xmlrpc http://xmlrpc.example.com/~bryanh echostring \
+          &quot;This is a string in shortcut syntax&quot;
+      Result:
+        String: This is a string in shortcut syntax
+@@ -53,7 +53,7 @@ http://gggeek.damacom.it/debugger/</a>
+ </pre>
+ <pre>
+ <tt>
+-     $ xmlrpc http://xmlrpc.server.net sample.add i/3 i/5 \
++     $ xmlrpc http://xmlrpc.example.com sample.add i/3 i/5 \
+          transport=curl -curlinterface=eth1 -username=bryanh -password=passw0rd
+        Result:
+          Integer: 8
+diff --git a/libs/xmlrpc-c/tools/xmlrpc_cpp_proxy/Makefile b/libs/xmlrpc-c/tools/xmlrpc_cpp_proxy/Makefile
+index d6f50a6..fec3cb8 100644
+--- a/libs/xmlrpc-c/tools/xmlrpc_cpp_proxy/Makefile
++++ b/libs/xmlrpc-c/tools/xmlrpc_cpp_proxy/Makefile
+@@ -14,9 +14,11 @@ PROGRAMS_TO_INSTALL = xmlrpc_cpp_proxy
+ include $(SRCDIR)/tools/common.mk
+-INCLUDES = -I$(BLDDIR) -I$(BLDDIR)/include -I$(SRCDIR)/include
++# <sstream.h> in Glibc 2.2 has a bug that results in inlining failure,
++# so we disable warnings for that:
++CFLAGS_LOCAL = -Wno-inline
+-CXXFLAGS = $(INCLUDES) $(CXXFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
++INCLUDES = -I$(BLDDIR) -I$(BLDDIR)/include -Isrcdir/include
+ LDFLAGS = $(LADD)
+@@ -43,14 +45,14 @@ xmlrpc_cpp_proxy:  $(OBJECTS) $(LIBS)
+       $(CXXLD) -o $@ $(LDFLAGS) $(OBJECTS) $(LDLIBS) $(LADD)
+ %.o:%.cpp $(BLDDIR)/include/xmlrpc-c/config.h
+-      $(CXX) -c $(CXXFLAGS) $<
++      $(CXX) -c $(CXXFLAGS_ALL) $<
+ # This common.mk dependency makes sure the symlinks get built before
+ # this make file is used for anything.
+ $(SRCDIR)/tools/common.mk: srcdir blddir
+-include Makefile.depend
++include depend.mk
+ .PHONY: clean
+ clean: clean-common
+diff --git a/libs/xmlrpc-c/tools/xmlrpc_pstream/Makefile b/libs/xmlrpc-c/tools/xmlrpc_pstream/Makefile
+index 2fb24fb..9a538fc 100644
+--- a/libs/xmlrpc-c/tools/xmlrpc_pstream/Makefile
++++ b/libs/xmlrpc-c/tools/xmlrpc_pstream/Makefile
+@@ -23,15 +23,13 @@ INCLUDES = \
+   -Iblddir/include \
+   -Isrcdir/include \
+-CXXFLAGS = $(INCLUDES) $(CXXFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
+-
+ LDFLAGS = $(LADD)
+ all: xmlrpc_pstream
+ OBJECTS = \
+   xmlrpc_pstream.o \
+-  $(TOOLSDIR)/lib/dumpvalue.o \
++  blddir/tools/lib/dumpvalue.o \
+ LIBS = \
+   $(LIBXMLRPC_CLIENTPP) \
+@@ -57,14 +55,14 @@ xmlrpc_pstream:  $(OBJECTS) $(LIBS) $(UTILS)
+       $(CXXLD) -o $@ $(LDFLAGS) $(OBJECTS) $(UTILS) $(LDLIBS) $(LADD)
+ %.o:%.cpp blddir/include/xmlrpc-c/config.h
+-      $(CXX) -c $(CXXFLAGS) $<
++      $(CXX) -c $(CXXFLAGS_ALL) $<
+ # This common.mk dependency makes sure the symlinks get built before
+ # this make file is used for anything.
+-$(SRCDIR)/common.mk: srcdir blddir
++$(SRCDIR)/tools/common.mk: srcdir blddir
+-include Makefile.depend
++include depend.mk
+ .PHONY: clean
+ clean: clean-common
+diff --git a/libs/xmlrpc-c/tools/xmlrpc_pstream/xmlrpc_pstream.cpp b/libs/xmlrpc-c/tools/xmlrpc_pstream/xmlrpc_pstream.cpp
+index 399e1b3..1417708 100644
+--- a/libs/xmlrpc-c/tools/xmlrpc_pstream/xmlrpc_pstream.cpp
++++ b/libs/xmlrpc-c/tools/xmlrpc_pstream/xmlrpc_pstream.cpp
+@@ -3,9 +3,10 @@
+ #include <string>
+ #include <vector>
+ #include <list>
+-#include <string.h>
+-#include <stdio.h>
+-#include <stdlib.h>
++#include <cstring>
++#include <cstdio>
++#include <cstdlib>
++#include <iostream>
+ #include <unistd.h>
+ #include <signal.h>
+ #include <readline/readline.h>
+diff --git a/libs/xmlrpc-c/tools/xmlrpc_pstream/xmlrpc_pstream.html b/libs/xmlrpc-c/tools/xmlrpc_pstream/xmlrpc_pstream.html
+index ca4d859..5604d2b 100644
+--- a/libs/xmlrpc-c/tools/xmlrpc_pstream/xmlrpc_pstream.html
++++ b/libs/xmlrpc-c/tools/xmlrpc_pstream/xmlrpc_pstream.html
+@@ -121,7 +121,7 @@ You may specify no parameters if you like.
+ a slash.  Example: <b>i/5</b>.  Here, the &quot;i&quot; signifies an
+ integer data type.  &quot;5&quot; is the value.
+-<p><b>xmlrpc</b> is capable of only a subset of the 
++<p><b>xmlrpc_pstream</b> is capable of only a subset of the 
+ possible XML-RPC types, as follows by prefix:
+ <dl>
+diff --git a/libs/xmlrpc-c/tools/xmlrpc_transport/.cvsignore b/libs/xmlrpc-c/tools/xmlrpc_transport/.cvsignore
+deleted file mode 100644
+index bff9884..0000000
+--- a/libs/xmlrpc-c/tools/xmlrpc_transport/.cvsignore
++++ /dev/null
+@@ -1 +0,0 @@
+-xmlrpc_transport
+diff --git a/libs/xmlrpc-c/tools/xmlrpc_transport/Makefile b/libs/xmlrpc-c/tools/xmlrpc_transport/Makefile
+index 9941eb1..d9eefcb 100644
+--- a/libs/xmlrpc-c/tools/xmlrpc_transport/Makefile
++++ b/libs/xmlrpc-c/tools/xmlrpc_transport/Makefile
+@@ -17,10 +17,8 @@ include $(SRCDIR)/tools/common.mk
+ INCLUDES = \
+   -I$(BLDDIR) \
+   -I$(BLDDIR)/include \
+-  -I$(SRCDIR)/include \
+-  -I$(SRCDIR)/lib/util/include
+-
+-CFLAGS = $(CFLAGS_COMMON) $(INCLUDES) $(CFLAGS_PERSONAL) $(CADD)
++  -Isrcdir/include \
++  -Isrcdir/lib/util/include
+ LDFLAGS = $(LADD)
+@@ -35,27 +33,20 @@ UTIL_OBJS = \
+ UTILS = $(UTIL_OBJS:%=$(UTIL_DIR)/%)
+-# These are the Libtool .la files.  We use them only for make dependencies.
+-# We'd like to use these in the link rule, by using libtool --link, but
+-# Libtool adds -l options to the link to cover the dependencies that are
+-# recorded inside the shared libraries.  And it doesn't add the necessary
+-# -L options (it can't), so we end up with a messy mixture of the two
+-# forms of specifying libraries.
+-
+ LIBS = $(LIBXMLRPC_CLIENT) $(LIBXMLRPC) $(LIBXMLRPC_XML) $(LIBXMLRPC_UTIL)
+ xmlrpc_transport:%:%.o $(LIBS) $(UTILS)
+       $(CCLD) -o $@ $(LDFLAGS) $< $(CLIENT_LDLIBS) $(UTILS)
+ %.o:%.c
+-      $(CC) -c $(CFLAGS) $<
++      $(CC) -c $(CFLAGS_ALL) $<
+ # This common.mk dependency makes sure the symlinks get built before
+ # this make file is used for anything.
+ $(SRCDIR)/tools/common.mk: srcdir blddir
+-include Makefile.depend
++include depend.mk
+ .PHONY: dep
+ dep: dep-common
+diff --git a/libs/xmlrpc-c/tools/xmlrpc_transport/xmlrpc_transport b/libs/xmlrpc-c/tools/xmlrpc_transport/xmlrpc_transport
+deleted file mode 100755
+index e002ec0..0000000
+--- a/libs/xmlrpc-c/tools/xmlrpc_transport/xmlrpc_transport
++++ /dev/null
+@@ -1,120 +0,0 @@
+-#! /bin/sh
+-
+-# xmlrpc_transport - temporary wrapper script for .libs/xmlrpc_transport
+-# Generated by ltmain.sh - GNU libtool 1.3.4 (1.385.2.196 1999/12/07 21:47:57)
+-#
+-# The xmlrpc_transport program cannot be directly executed until all the libtool
+-# libraries that it depends on are installed.
+-#
+-# This wrapper script should never be moved out of the build directory.
+-# If it is, it will not operate correctly.
+-
+-# Sed substitution that helps us do robust quoting.  It backslashifies
+-# metacharacters that are still active within double-quoted strings.
+-Xsed='sed -e 1s/^X//'
+-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+-
+-# The HP-UX ksh and POSIX shell print the target directory to stdout
+-# if CDPATH is set.
+-if test "${CDPATH+set}" = set; then CDPATH=:; export CDPATH; fi
+-
+-relink_command="gcc -o \$progdir/\$file -L /usr/link/w3c-libwww -lwwwxml -lxmltok -lxmlparse -lwwwzip -lwwwinit -lwwwapp -lwwwhtml -lwwwtelnet -lwwwnews -lwwwhttp -lwwwmime -lwwwgopher -lwwwftp -lwwwfile -lwwwdir -lwwwcache -lwwwstream -lwwwmux -lwwwtrans -lwwwcore -lwwwutils -lmd5 -ldl -lz -L /subsys/openssl/link -lssl -lcrypto -L/subsys/curl/lib -lcurl -lssl -lcrypto -ldl -lz -lpthread xmlrpc_transport.o /mp/hdc1/xmlrpc-c-1.03.14/tools/xmlrpc_transport/../../src/.libs/libxmlrpc_client.so /mp/hdc1/xmlrpc-c-1.03.14/tools/xmlrpc_transport/../../src/.libs/libxmlrpc.so /mp/hdc1/xmlrpc-c-1.03.14/tools/xmlrpc_transport/../../lib/expat/xmlparse/.libs/libxmlrpc_xmlparse.so /mp/hdc1/xmlrpc-c-1.03.14/tools/xmlrpc_transport/../../lib/expat/xmltok/.libs/libxmlrpc_xmltok.so /mp/hdc1/xmlrpc-c-1.03.14/tools/xmlrpc_transport/../../lib/util/cmdline_parser.o /mp/hdc1/xmlrpc-c-1.03.14/tools/xmlrpc_transport/../../lib/util/getoptx.o -Wl,--rpath -Wl,/mp/hdc1/xmlrpc-c-1.03.14/src/.libs -Wl,--rpath -Wl,/mp/hdc1/xmlrpc-c-1.03.14/lib/expat/xmlparse/.libs -Wl,--rpath -Wl,/mp/hdc1/xmlrpc-c-1.03.14/lib/expat/xmltok/.libs -Wl,--rpath -Wl,/usr/local/lib"
+-
+-# This environment variable determines our operation mode.
+-if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+-  # install mode needs the following variable:
+-  link_against_libtool_libs=' /mp/hdc1/xmlrpc-c-1.03.14/tools/xmlrpc_transport/../../src/libxmlrpc_client.la /mp/hdc1/xmlrpc-c-1.03.14/tools/xmlrpc_transport/../../src/libxmlrpc.la /mp/hdc1/xmlrpc-c-1.03.14/tools/xmlrpc_transport/../../lib/expat/xmlparse/libxmlrpc_xmlparse.la /mp/hdc1/xmlrpc-c-1.03.14/tools/xmlrpc_transport/../../lib/expat/xmltok/libxmlrpc_xmltok.la'
+-else
+-  # When we are sourced in execute mode, $file and $echo are already set.
+-  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+-    echo="/syspathbasic/echo"
+-    file="$0"
+-    # Make sure echo works.
+-    if test "X$1" = X--no-reexec; then
+-      # Discard the --no-reexec flag, and continue.
+-      shift
+-    elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+-      # Yippee, $echo works!
+-      :
+-    else
+-      # Restart under the correct shell, and then maybe $echo will work.
+-      exec /bin/sh "$0" --no-reexec ${1+"$@"}
+-    fi
+-  fi
+-
+-  # Find the directory that this script lives in.
+-  thisdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+-  test "x$thisdir" = "x$file" && thisdir=.
+-
+-  # Follow symbolic links until we get to the real thisdir.
+-  file=`ls -ld "$file" | sed -n 's/.*-> //p'`
+-  while test -n "$file"; do
+-    destdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+-
+-    # If there was a directory component, then change thisdir.
+-    if test "x$destdir" != "x$file"; then
+-      case "$destdir" in
+-      [\/]* | [A-Za-z]:[\/]*) thisdir="$destdir" ;;
+-      *) thisdir="$thisdir/$destdir" ;;
+-      esac
+-    fi
+-
+-    file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+-    file=`ls -ld "$thisdir/$file" | sed -n 's/.*-> //p'`
+-  done
+-
+-  # Try to get the absolute directory name.
+-  absdir=`cd "$thisdir" && pwd`
+-  test -n "$absdir" && thisdir="$absdir"
+-
+-  program=lt-'xmlrpc_transport'
+-  progdir="$thisdir/.libs"
+-  
+-  if test ! -f "$progdir/$program" || \
+-     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | sed 1q`; \
+-       test "X$file" != "X$progdir/$program"; }; then
+-
+-    file="$$-$program"
+-
+-    if test ! -d "$progdir"; then
+-      mkdir "$progdir"
+-    else
+-      rm -f "$progdir/$file"
+-    fi
+-
+-    # relink executable if necessary
+-    if test -n "$relink_command"; then
+-      if (cd "$thisdir" && eval $relink_command); then :
+-      else
+-      rm -f "$progdir/$file"
+-      exit 1
+-      fi
+-    fi
+-
+-    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+-    { rm -f "$progdir/$program";
+-      mv -f "$progdir/$file" "$progdir/$program"; }
+-    rm -f "$progdir/$file"
+-  fi
+-
+-  if test -f "$progdir/$program"; then
+-    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+-      # Run the actual program with our arguments.
+-
+-      # Export the path to the program.
+-      PATH="$progdir:$PATH"
+-      export PATH
+-
+-      exec $program ${1+"$@"}
+-
+-      $echo "$0: cannot exec $program ${1+"$@"}"
+-      exit 1
+-    fi
+-  else
+-    # The program doesn't exist.
+-    $echo "$0: error: $progdir/$program does not exist" 1>&2
+-    $echo "This script is just a wrapper for $program." 1>&2
+-    echo "See the libtool documentation for more information." 1>&2
+-    exit 1
+-  fi
+-fi
+diff --git a/libs/xmlrpc-c/tools/xmlrpc_transport/xmlrpc_transport.c b/libs/xmlrpc-c/tools/xmlrpc_transport/xmlrpc_transport.c
+index 0fe671d..39697b4 100644
+--- a/libs/xmlrpc-c/tools/xmlrpc_transport/xmlrpc_transport.c
++++ b/libs/xmlrpc-c/tools/xmlrpc_transport/xmlrpc_transport.c
+@@ -2,7 +2,7 @@
+    an XML-RPC call.
+ */
+-//#define _GNU_SOURCE
++#define _XOPEN_SOURCE 600  /* Make sure strdup() is in <string.h> */
+ #include <stdlib.h>
+ #include <stdio.h>
+diff --git a/libs/xmlrpc-c/transport_config.make b/libs/xmlrpc-c/transport_config.make
+deleted file mode 100644
+index 5791af6..0000000
+--- a/libs/xmlrpc-c/transport_config.make
++++ /dev/null
+@@ -1,39 +0,0 @@
+-# -*-makefile-*-    <-- an Emacs control
+-
+-
+-# The make variables herein come from config.mk, which is included
+-# by the make file that includes us.
+-
+-transport_config.h: $(BLDDIR)/config.mk
+-      rm -f $@
+-      echo '/* This file was generated by a make rule */' >>$@
+-ifeq ($(MUST_BUILD_WININET_CLIENT),yes)
+-      echo '#define MUST_BUILD_WININET_CLIENT 1' >>$@
+-else
+-      echo '#define MUST_BUILD_WININET_CLIENT 0' >>$@
+-endif
+-ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
+-      echo '#define MUST_BUILD_CURL_CLIENT 1' >>$@
+-else
+-      echo '#define MUST_BUILD_CURL_CLIENT 0' >>$@
+-endif
+-ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
+-      echo '#define MUST_BUILD_LIBWWW_CLIENT 1' >>$@
+-else
+-      echo '#define MUST_BUILD_LIBWWW_CLIENT 0' >>$@
+-endif
+-      echo "static const char * const XMLRPC_DEFAULT_TRANSPORT =" >>$@
+-ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
+-      echo '"libwww";' >>$@
+-else
+-  ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
+-      echo '"curl";' >>$@
+-  else
+-    ifeq ($(MUST_BUILD_WININET_CLIENT),yes)
+-      echo '"wininet";' >>$@
+-    else
+-      @echo 'ERROR: no client XML transport configured'; rm $@; false
+-    endif
+-  endif
+-endif
+-
+diff --git a/libs/xmlrpc-c/unix-common.make b/libs/xmlrpc-c/unix-common.make
+deleted file mode 100644
+index b684c70..0000000
+--- a/libs/xmlrpc-c/unix-common.make
++++ /dev/null
+@@ -1,79 +0,0 @@
+-# -*-makefile-*-    <-- an Emacs control
+-
+-# The including make file must define these make variables:
+-#
+-# SHARED_LIBS_TO_BUILD: List of the shared libraries that need to be
+-#   built -- just the basic library names.  E.g. "libfoo libbar"
+-#
+-# SHARED_LIBS_TO_INSTALL: List of the shared libraries that need to be
+-#   installed -- just the basic library names.  E.g. "libfoo libbar"
+-#
+-# SHLIB_SUFFIX: Shared library filename suffix, e.g. "so".
+-#
+-# MAJ: Library major version number, e.g. "3" in file name "libfoo.3.1"
+-#
+-# MIN: Library minor version number, e.g. "1" in file name "libfoo.3.1"
+-#
+-# LDFLAGS_SHLIB: linker (Ld) flags needed to link object files together into
+-#   a shared library.  May use $(SONAME) for the soname of the library.
+-#   Include -lc if appropriate.
+-#
+-# LADD: Additional linker flags (normally set on the make command line).
+-#
+-# INSTALL_DATA: beginning of shell command to install a library file.
+-#
+-# DESTDIR: main installation directory
+-#
+-# LIBINST_DIR: directory in which to install libraries, relative to DESTDIR.
+-#
+-# LN_S: beginning of shell command to make symbolic link (e.g. "ln -s").
+-#
+-# CXXLD: beginning of shell command to link, e.g. "g++".
+-
+-# This make file defines these make variables that the including make file
+-# can use:
+-#
+-#   SHLIB_CMD: a command to build a shared library for C linkage
+-#     You can use this in a rule to build a shared library
+-#   SHLIBPP_CMD: Same, but for C++ linkage
+-
+-# Including make file must contain a rule to build each library file
+-# (e.g. libfoo.3.1)
+-
+-# This make file provides these rules:
+-#
+-# install-shared-libraries: install all shared libraries and the necessary
+-# symbolic links.
+-
+-# SONAME is to be referenced by $(LDFLAGS_SHLIB) in $(SHLIB_RULE)
+-# SONAME is the name of the library file being built, with the minor
+-#   version number cut off.  E.g. if we're building libfoo.so.1.2, SONAME
+-#   is libfoo.so.1 .
+-SONAME = $(@:%.$(MIN)=%)
+-
+-SHLIB_CMD = $(CCLD) $(LDFLAGS_SHLIB) -o $@ $^ $(LADD)
+-
+-SHLIB_LE_TARGETS = $(call shliblefn, $(SHARED_LIBS_TO_BUILD))
+-
+-$(SHLIB_LE_TARGETS):%:%.$(MAJ).$(MIN)
+-      rm -f $@
+-      $(LN_S) $< $@
+-
+-.PHONY: $(SHLIB_INSTALL_TARGETS)
+-.PHONY: install-shared-libraries
+-
+-SHLIB_INSTALL_TARGETS = $(SHARED_LIBS_TO_INSTALL:%=%/install)
+-
+-#SHLIB_INSTALL_TARGETS is like "libfoo/install libbar/install"
+-
+-install-shared-libraries: $(SHLIB_INSTALL_TARGETS)
+-
+-$(SHLIB_INSTALL_TARGETS):%/install:%.$(SHLIB_SUFFIX).$(MAJ).$(MIN)
+-# $< is a library file name, e.g. libfoo.so.3.1 .
+-      $(INSTALL_SHLIB) $< $(DESTDIR)$(LIBINST_DIR)/$<
+-      cd $(DESTDIR)$(LIBINST_DIR); \
+-        rm -f $(<:%.$(MIN)=%); \
+-          $(LN_S) $< $(<:%.$(MIN)=%)
+-      cd $(DESTDIR)$(LIBINST_DIR); \
+-        rm -f $(<:%.$(MAJ).$(MIN)=%); \
+-          $(LN_S) $(<:%.$(MIN)=%) $(<:%.$(MAJ).$(MIN)=%)
+diff --git a/libs/xmlrpc-c/version.h b/libs/xmlrpc-c/version.h
+index 18e70f2..45625f5 100644
+--- a/libs/xmlrpc-c/version.h
++++ b/libs/xmlrpc-c/version.h
+@@ -1,8 +1,8 @@
+-#ifndef XMLRPC_C_VERSION_INCLUDED 
+-#define XMLRPC_C_VERSION_INCLUDED 
+-/* generated by Windows/mkvers.bat on Fri 05/23/2008 ... */ 
+-#define XMLRPC_C_VERSION "Xmlrpc-c 1.14.99" 
+-#define XMLRPC_VERSION_MAJOR 1 
+-#define XMLRPC_VERSION_MINOR 14 
+-#define XMLRPC_VERSION_POINT 99 
+-#endif 
++#ifndef XMLRPC_C_VERSION_INCLUDED \r
++#define XMLRPC_C_VERSION_INCLUDED \r
++/* generated by Windows/mkvers.bat on Sun 09/23/2012 ... */ \r
++#define XMLRPC_C_VERSION "1.26.0" \r
++#define XMLRPC_VERSION_MAJOR 1 \r
++#define XMLRPC_VERSION_MINOR 26 \r
++#define XMLRPC_VERSION_POINT 0 \r
++#endif \r
+diff --git a/libs/xmlrpc-c/xmlrpc-c-config.in b/libs/xmlrpc-c/xmlrpc-c-config.in
+deleted file mode 100644
+index 2095b5f..0000000
+--- a/libs/xmlrpc-c/xmlrpc-c-config.in
++++ /dev/null
+@@ -1,180 +0,0 @@
+-#!/bin/sh
+-# Stolen from rep-config and adapted for use with xmlrpc-c.
+-# Other bits stolen from gnome-config & automake output.
+-
+-prefix=@prefix@
+-exec_prefix=@exec_prefix@
+-
+-bindir=@bindir@
+-sbindir=@sbindir@
+-libexecdir=@libexecdir@
+-datadir=@datadir@
+-sysconfdir=@sysconfdir@
+-sharedstatedir=@sharedstatedir@
+-localstatedir=@localstatedir@
+-libdir=@libdir@
+-infodir=@infodir@
+-mandir=@mandir@
+-includedir=@includedir@
+-
+-pkgdatadir=$datadir/@PACKAGE@
+-pkglibdir=$libdir/@PACKAGE@
+-pkgincludedir=$includedir/@PACKAGE@
+-
+-ENABLE_LIBXML2_BACKEND="@ENABLE_LIBXML2_BACKEND@"
+-MUST_BUILD_CURL_CLIENT="@MUST_BUILD_CURL_CLIENT@"
+-MUST_BUILD_WININET_CLIENT="@MUST_BUILD_WININET_CLIENT@"
+-MUST_BUILD_LIBWWW_CLIENT="@MUST_BUILD_LIBWWW_CLIENT@"
+-
+-usage="Usage: xmlrpc-c-config <feature> ... <option> ...
+-
+-The features are:
+-  c++            legacy C++ wrapper API
+-  c++2           modern C++ API
+-  client         client functions
+-  cgi-server     CGI-based server functions
+-  abyss-server   ABYSS-based server functions
+-
+-Options are:
+-  --version      The version number of the package
+-  --features     List all features (aka modules) currently installed
+-  --cflags       C compiler flags to use when '#include'ing package headers
+-  --libs         Libraries and flags to use when linking programs normally
+-  --ldadd        Libraries to use with automake
+-  --ldflags      Flags to use with automake & libtool
+-  --prefix       The prefix under which the package was installed
+-  --exec-prefix  The executable prefix under which the package was installed
+-  --*dir         The various directories under which the package was installed"
+-
+-if test $# -eq 0; then
+-      echo "${usage}" 1>&2
+-      exit 1
+-fi
+-
+-if test "${ENABLE_LIBXML2_BACKEND}" = "yes"; then
+-  LIBXML="@LIBXML2_LIBS@"
+-else
+-  LIBXML="-lxmlrpc_xmlparse -lxmlrpc_xmltok"
+-fi
+-
+-needCpp=no
+-
+-the_libdirs="-L@libdir@"
+-the_libs="-lxmlrpc ${LIBXML}"
+-the_rpath=
+-the_wl_rpath=
+-cpp_libs=
+-
+-while test $# -gt 0; do
+-  case $1 in
+-    c++)
+-      the_libs="-lxmlrpc_cpp $the_libs"
+-
+-      # Unfortunately, there is just one legacy CPP library for
+-      # everything, and it needs all the C libraries -- base, client,
+-      # and server.  So all legacy C++ programs get linked with client
+-      # and server libraries, whether they need them or not.
+-
+-      the_libs="-lxmlrpc_server_abyss $the_libs"
+-      the_libs="-lxmlrpc_server $the_libs"
+-      the_libs="-lxmlrpc_client $the_libs"
+-      ;;
+-    c++2)
+-      needCpp=yes
+-      the_libs="-lxmlrpc++ $the_libs"
+-      ;;
+-    cgi-server)
+-      the_libs="-lxmlrpc_server $the_libs"
+-      the_libs="-lxmlrpc_server_cgi $the_libs"
+-      ;;
+-    abyss-server)
+-      the_libs="@LIBABYSS_LDADD@ $the_libs"
+-      the_libs="-lxmlrpc_abyss $the_libs"
+-      the_libs="-lxmlrpc_server $the_libs"
+-      the_libs="-lxmlrpc_server_abyss $the_libs"
+-      if test "${needCpp}" = "yes"; then
+-        the_libs="-lxmlrpc_server++ $the_libs"
+-        the_libs="-lxmlrpc_server_abyss++ $the_libs"
+-        fi
+-      ;;
+-    client|libwww-client)
+-      # libwww-client is for backward compatibility
+-      the_libs="-lxmlrpc_client $the_libs"
+-
+-      if test "${MUST_BUILD_WININET_CLIENT}" = "yes"; then
+-        the_libs="@WININET_LDADD@ $the_libs"
+-        the_rpath="@WININET_RPATH@ $the_rpath"
+-        the_wl_rpath="@WININET_WL_RPATH@ $the_wl_rpath"
+-      fi
+-      if test "${MUST_BUILD_CURL_CLIENT}" = "yes"; then
+-        the_libs="@CURL_LDADD@ -lpthread $the_libs"
+-        the_rpath="@CURL_RPATH@ $the_rpath"
+-        the_wl_rpath="@CURL_WL_RPATH@ $the_wl_rpath"
+-      fi
+-      if test "${MUST_BUILD_LIBWWW_CLIENT}" = "yes"; then
+-        the_libs="@LIBWWW_LDADD@ $the_libs"
+-        the_rpath="@LIBWWW_RPATH@ $the_rpath"
+-        the_wl_rpath="@LIBWWW_WL_RPATH@ $the_wl_rpath"
+-      fi
+-      if test "${needCpp}" = "yes"; then
+-        the_libs="-lxmlrpc_client++ $the_libs"
+-        fi
+-      ;;
+-    --version)
+-      echo "@VERSION@"
+-      exit 0
+-      ;;
+-    --modules)
+-      echo "@FEATURE_LIST@"
+-      exit 0
+-      ;;
+-    --features)
+-      echo "@FEATURE_LIST@"
+-      exit 0
+-      ;;
+-    --cflags)
+-      echo "-I@includedir@"
+-      exit 0
+-      ;;
+-    --libs)
+-      echo "$the_libdirs $the_libs $the_wl_rpath"
+-      exit 0
+-      ;;
+-    --ldadd)
+-      echo "$the_libdirs $the_libs"
+-      exit 0
+-      ;;
+-    --ldflags)
+-      echo "$the_rpath"
+-      exit 0
+-      ;;
+-    --prefix)
+-      echo "@prefix@"
+-      exit 0
+-      ;;
+-    --exec-prefix)
+-      echo "@exec_prefix@"
+-      exit 0
+-      ;;
+-    --*dir)
+-      # Swiped from gnome-config.
+-      dirname=\$`echo $1 | sed -e 's,^--,,'`
+-      dirname=`eval echo $dirname`
+-      test -z "$dirname" && exit 1
+-      echo $dirname
+-      exit 0
+-      ;;
+-    --help)
+-      echo "${usage}" 1>&2
+-      exit 0
+-      ;;
+-    *)
+-      echo "${usage}" 1>&2
+-      exit 1
+-      ;;
+-  esac
+-  shift
+-done
+-
+-echo "${usage}" 1>&2
+-exit 1
+diff --git a/libs/xmlrpc-c/xmlrpc-c-config.main b/libs/xmlrpc-c/xmlrpc-c-config.main
+index 6fec342..a176410 100644
+--- a/libs/xmlrpc-c/xmlrpc-c-config.main
++++ b/libs/xmlrpc-c/xmlrpc-c-config.main
+@@ -70,14 +70,22 @@ while test $# -gt 0; do
+       ;;
+     c++2)
+       needCpp=yes
+-      the_libs="-lxmlrpc++ $the_libs"
++      the_libs="-l$LIBXMLRPCPP_NAME $the_libs"
+       ;;
+     server-util)
+       the_libs="-lxmlrpc_server $the_libs"
++      if test "${needCpp}" = "yes"; then
++        the_libs="-lxmlrpc_server++ $the_libs"
++        fi
+       ;;
+     cgi-server)
+       the_libs="-lxmlrpc_server $the_libs"
+-      the_libs="-lxmlrpc_server_cgi $the_libs"
++      if test "${needCpp}" = "yes"; then
++        the_libs="-lxmlrpc_server_cgi++ $the_libs"
++        the_libs="-lxmlrpc_server++ $the_libs"
++      else
++        the_libs="-lxmlrpc_server_cgi $the_libs"
++        fi
+       ;;
+     abyss-server)
+       if test "${ENABLE_ABYSS_THREADS}" = "yes"; then
+@@ -110,18 +118,18 @@ while test $# -gt 0; do
+       if test "${MUST_BUILD_WININET_CLIENT}" = "yes"; then
+         the_libs="$the_libs $WININET_LDADD"
+-        the_rpath="$WININET_RPATH $the_rpath"
+-        the_wl_rpath="$WININET_WL_RPATH $the_wl_rpath"
++        the_rpath="-R$WININET_LIBDIR $the_rpath"
++        the_wl_rpath="-Wl,-rpath,$WININET_LIBDIR $the_wl_rpath"
+       fi
+       if test "${MUST_BUILD_CURL_CLIENT}" = "yes"; then
+         the_libs="$the_libs $CURL_LDADD"
+-        the_rpath="$CURL_RPATH $the_rpath"
+-        the_wl_rpath="$CURL_WL_RPATH $the_wl_rpath"
++        the_rpath="-R$CURL_LIBDIR $the_rpath"
++        the_wl_rpath="-Wl,-rpath,$CURL_LIBDIR $the_wl_rpath"
+       fi
+       if test "${MUST_BUILD_LIBWWW_CLIENT}" = "yes"; then
+         the_libs="$the_libs $LIBWWW_LDADD"
+-        the_rpath="$LIBWWW_RPATH $the_rpath"
+-        the_wl_rpath="$LIBWWW_WL_RPATH $the_wl_rpath"
++        the_rpath="-R$LIBWWW_LIBDIR $the_rpath"
++        the_wl_rpath="-Wl,-rpath,$LIBWWW_LIBDIR $the_wl_rpath"
+       fi
+       if test "${needCpp}" = "yes"; then
+         the_libs="-lxmlrpc_client++ $the_libs"
+diff --git a/libs/xmlrpc-c/xmlrpc-c-config.test.in b/libs/xmlrpc-c/xmlrpc-c-config.test.in
+deleted file mode 100644
+index 5c88a4c..0000000
+--- a/libs/xmlrpc-c/xmlrpc-c-config.test.in
++++ /dev/null
+@@ -1,153 +0,0 @@
+-#!/bin/sh
+-# This is like 'xmlrpc-c-config', but for testing Xmlrpc-c from its build
+-# directory instead of for an installed instance of Xmlrpc-c.
+-#
+-# For example, the make file in the examples/ directory uses this program
+-# to link the example programs with the Xmlrpc-c libraries in the build
+-# directory.  A real application program would instead use xmlrpc-c-config
+-# and get the Xmlrpc-c libraries from their installed home.
+-
+-# @srcdir@ and @top_srcdir@ are useless because they can be relative.
+-
+-SRCDIR="@BUILDDIR@"  # until we figure out how to do it right
+-BUILDDIR="@BUILDDIR@"
+-ENABLE_LIBXML2_BACKEND="@ENABLE_LIBXML2_BACKEND@"
+-MUST_BUILD_CURL_CLIENT="@MUST_BUILD_CURL_CLIENT@"
+-MUST_BUILD_WININET_CLIENT="@MUST_BUILD_WININET_CLIENT@"
+-MUST_BUILD_LIBWWW_CLIENT="@MUST_BUILD_LIBWWW_CLIENT@"
+-
+-if test $# -eq 0; then
+-      echo "You need to specify arguments"
+-      exit 1
+-fi
+-
+-sopath=
+-
+-if test "${ENABLE_LIBXML2_BACKEND}" = "yes"; then
+-  LIBXML="@LIBXML2_LIBS@"
+-else
+-  LIBXML="${BUILDDIR}/lib/expat/xmlparse/.libs/libxmlrpc_xmlparse.a"
+-  sopath="${BUILDDIR}/lib/expat/xmlparse/.libs:$sopath"
+-  LIBXML="${LIBXML} ${BUILDDIR}/lib/expat/xmltok/.libs/libxmlrpc_xmltok.a"
+-  sopath="${BUILDDIR}/lib/expat/xmltok/.libs:$sopath"
+-fi
+-
+-needCpp=no
+-
+-the_libs="${BUILDDIR}/src/.libs/libxmlrpc.a ${LIBXML}"
+-the_includes="-I${SRCDIR}/include"
+-sopath="${BUILDDIR}/src/.libs:$sopath"
+-
+-while test $# -gt 0; do
+-  case $1 in
+-    c++)
+-      # Unfortunately, there is just one legacy CPP library for
+-      # everything, and it needs all the C libraries -- base, client,
+-      # and server.  So all legacy C++ programs get linked with client
+-      # and server libraries, whether they need them or not.
+-
+-      the_libs="${BUILDDIR}/src/.libs/libxmlrpc_server.a $the_libs"
+-      the_libs="${BUILDDIR}/src/.libs/libxmlrpc_server_abyss.a $the_libs"
+-      the_libs="${BUILDDIR}/src/.libs/libxmlrpc_client.a $the_libs"
+-      the_libs="${BUILDDIR}/src/cpp/libxmlrpc_cpp.a $the_libs"
+-      ;;
+-    c++2)
+-      needCpp=yes
+-      the_libs="${BUILDDIR}/src/cpp/libxmlrpc++.a $the_libs"
+-      ;;
+-    cgi-server)
+-      the_libs="${BUILDDIR}/src/.libs/libxmlrpc_server.a $the_libs"
+-      the_libs="${BUILDDIR}/src/.libs/libxmlrpc_server_cgi.a $the_libs"
+-      ;;
+-    abyss-server)
+-      the_libs="@LIBABYSS_LDADD@ $the_libs"
+-      the_libs="${BUILDDIR}/lib/abyss/src/.libs/libxmlrpc_abyss.a $the_libs"
+-      the_libs="${BUILDDIR}/src/.libs/libxmlrpc_server.a $the_libs"
+-      the_libs="${BUILDDIR}/src/.libs/libxmlrpc_server_abyss.a $the_libs"
+-      if test "${needCpp}" = "yes"; then
+-        the_libs="${BUILDDIR}/src/cpp/libxmlrpc_server++.a $the_libs"
+-        the_libs="${BUILDDIR}/src/cpp/libxmlrpc_server_abyss++.a $the_libs"
+-        fi
+-      the_includes="-I${SRCDIR}/lib/abyss/src $the_includes"
+-      sopath="${BUILDDIR}/lib/abyss/src/.libs:$sopath"
+-      ;;
+-    client)
+-      the_libs="${BUILDDIR}/src/.libs/libxmlrpc_client.a $the_libs"
+-      if test "${MUST_BUILD_WININET_CLIENT}" = "yes"; then
+-        the_libs="@WININET_LDADD@ $the_libs"
+-        the_rpath="@WININET_RPATH@ $the_rpath"
+-        the_wl_rpath="@WININET_WL_RPATH@ $the_wl_rpath"
+-        fi
+-      if test "${MUST_BUILD_CURL_CLIENT}" = "yes"; then
+-        the_libs="@CURL_LDADD@ -lpthread $the_libs"
+-        the_rpath="@CURL_RPATH@ $the_rpath"
+-        the_wl_rpath="@CURL_WL_RPATH@ $the_wl_rpath"
+-        fi
+-      if test "${MUST_BUILD_LIBWWW_CLIENT}" = "yes"; then
+-        the_libs="@LIBWWW_LDADD@ $the_libs"
+-        the_rpath="@LIBWWW_RPATH@ $the_rpath"
+-        the_wl_rpath="@LIBWWW_WL_RPATH@ $the_wl_rpath"
+-        fi
+-      if test "${needCpp}" = "yes"; then
+-        the_libs="${BUILDDIR}/src/cpp/libxmlrpc_client++.a $the_libs"
+-        fi
+-      ;;
+-    --version)
+-      echo "@VERSION@"
+-      exit 0
+-      ;;
+-    --modules)
+-      echo "@FEATURE_LIST@"
+-      exit 0
+-      ;;
+-    --features)
+-      echo "@FEATURE_LIST@"
+-      exit 0
+-      ;;
+-    --cflags)
+-      echo "$the_includes"
+-      exit 0
+-      ;;
+-    --libs)
+-      echo "$the_libdirs $the_libs $the_wl_rpath"
+-      exit 0
+-      ;;
+-    --ldadd)
+-      echo "$the_libdirs $the_libs"
+-      exit 0
+-      ;;
+-    --ldflags)
+-      echo "$the_rpath"
+-      exit 0
+-      ;;
+-    --sopath)
+-      echo "$sopath"
+-      exit 0
+-      ;;
+-    --prefix)
+-      echo "@prefix@"
+-      exit 0
+-      ;;
+-    --exec-prefix)
+-      echo "@exec_prefix@"
+-      exit 0
+-      ;;
+-    --*dir)
+-      # Swiped from gnome-config.
+-      dirname=\$`echo $1 | sed -e 's,^--,,'`
+-      dirname=`eval echo $dirname`
+-      test -z "$dirname" && exit 1
+-      echo $dirname
+-      exit 0
+-      ;;
+-    --help)
+-      echo "See the real xmlrpc-c-config program" 1>&2
+-      exit 0
+-      ;;
+-    *)
+-      echo "Unrecognized option." 1>&2
+-      exit 1
+-      ;;
+-  esac
+-  shift
+-done
+diff --git a/libs/xmlrpc-c/xmlrpc-c-config.test.main b/libs/xmlrpc-c/xmlrpc-c-config.test.main
+index da9bf15..3ad9ac5 100644
+--- a/libs/xmlrpc-c/xmlrpc-c-config.test.main
++++ b/libs/xmlrpc-c/xmlrpc-c-config.test.main
+@@ -52,14 +52,22 @@ while test $# -gt 0; do
+       ;;
+     c++2)
+       needCpp=yes
+-      the_libs="${BLDDIR}/src/cpp/libxmlrpc++.a $the_libs"
++      the_libs="${BLDDIR}/src/cpp/lib$LIBXMLRPCPP_NAME.a $the_libs"
+       ;;
+     server-util)
+       the_libs="${BLDDIR}/src/libxmlrpc_server.a $the_libs"
++      if test "${needCpp}" = "yes"; then
++        the_libs="${BLDDIR}/src/cpp/libxmlrpc_server++.a $the_libs"
++        fi
+       ;;
+     cgi-server)
+       the_libs="${BLDDIR}/src/libxmlrpc_server.a $the_libs"
+-      the_libs="${BLDDIR}/src/libxmlrpc_server_cgi.a $the_libs"
++      if test "${needCpp}" = "yes"; then
++        the_libs="${BLDDIR}/src/cpp/libxmlrpc_server_cgi++.a $the_libs"
++        the_libs="${BLDDIR}/src/cpp/libxmlrpc_server++.a $the_libs"
++      else
++        the_libs="${BLDDIR}/src/libxmlrpc_server_cgi.a $the_libs"
++        fi
+       ;;
+     abyss-server)
+       if test "${ENABLE_ABYSS_THREADS}" = "yes"; then
+@@ -87,18 +95,18 @@ while test $# -gt 0; do
+       the_libs="${BLDDIR}/src/libxmlrpc_client.a $the_libs"
+       if test "${MUST_BUILD_WININET_CLIENT}" = "yes"; then
+         the_libs="$the_libs $WININET_LDADD"
+-        the_rpath="$WININET_RPATH $the_rpath"
+-        the_wl_rpath="$WININET_WL_RPATH $the_wl_rpath"
++        the_rpath="-R$WININET_LIBDIR $the_rpath"
++        the_wl_rpath="-Wl,-rpath,$WININET_LIBDIR $the_wl_rpath"
+         fi
+       if test "${MUST_BUILD_CURL_CLIENT}" = "yes"; then
+         the_libs="$the_libs $CURL_LDADD"
+-        the_rpath="$CURL_RPATH $the_rpath"
+-        the_wl_rpath="$CURL_WL_RPATH $the_wl_rpath"
++        the_rpath="-R$CURL_LIBDIR $the_rpath"
++        the_wl_rpath="-Wl,-rpath,$CURL_LIBDIR $the_wl_rpath"
+         fi
+       if test "${MUST_BUILD_LIBWWW_CLIENT}" = "yes"; then
+         the_libs="$the_libs $LIBWWW_LDADD"
+-        the_rpath="$LIBWWW_RPATH $the_rpath"
+-        the_wl_rpath="$LIBWWW_WL_RPATH $the_wl_rpath"
++        the_rpath="-R$LIBWWW_LIBDIR $the_rpath"
++        the_wl_rpath="-Wl,-rpath,$LIBWWW_LIBDIR $the_wl_rpath"
+         fi
+       if test "${needCpp}" = "yes"; then
+         the_libs="${BLDDIR}/src/cpp/libxmlrpc_client++.a $the_libs"
+@@ -118,7 +126,14 @@ while test $# -gt 0; do
+       echo "$the_includes"
+       ;;
+     --libs)
+-      echo "$the_libdirs $the_libs $packetsocket_lib $the_wl_rpath"
++      if test "$NEED_WL_RPATH" = "yes"; then
++          rpath=$the_wl_rpath
++      elif test "$NEED_RPATH" = "yes"; then
++          rpath=$the_rpath
++      else
++          rpath=
++      fi
++      echo "$the_libdirs $rpath $the_libs $packetsocket_lib"
+       ;;
+     --ldadd)
+       echo "$the_libdirs $the_libs $packetsocket_lib"
+diff --git a/libs/xmlrpc-c/xmlrpc_amconfig.h.in b/libs/xmlrpc-c/xmlrpc_amconfig.h.in
+index cd289f2..6f3f2ae 100644
+--- a/libs/xmlrpc-c/xmlrpc_amconfig.h.in
++++ b/libs/xmlrpc-c/xmlrpc_amconfig.h.in
+@@ -22,9 +22,12 @@
+ #undef HAVE_STRCASECMP
+ #undef HAVE_STRICMP
+ #undef HAVE__STRICMP
+-#undef HAVE_WCHAR_H
+-#undef HAVE_SYS_FILIO_H
+-#undef HAVE_SYS_IOCTL_H
++#undef HAVE_STRTOLL
++#undef HAVE_STRTOQ
++#undef HAVE___STRTOLL
++#undef HAVE_STRTOULL
++#undef HAVE_STRTOUQ
++#undef HAVE___STRTOULL
+ /* Define if you have the socket library (-lsocket).  */
+diff --git a/libs/xmlrpc-c/xmlrpc_config.h.in b/libs/xmlrpc-c/xmlrpc_config.h.in
+index 46e69ae..9cba718 100644
+--- a/libs/xmlrpc-c/xmlrpc_config.h.in
++++ b/libs/xmlrpc-c/xmlrpc_config.h.in
+@@ -15,7 +15,7 @@
+    interface header files that get compiled as part of a user's program.
+    This file just uses plain AC_SUBST substitution, the same as
+-   Makefile.config.  Wherever you see @XXX@, that gets replaced by the
++   config.mk.  Wherever you see @XXX@, that gets replaced by the
+    value of 'configure' variable XXX.
+    Logical macros are 0 or 1 instead of the more traditional defined and
+@@ -62,18 +62,29 @@
+ #ifndef HAVE_STRICMP
+ #define HAVE_STRICMP 0
+ #endif
+-#ifndef HAVE__STRICMP
+-#define HAVE__STRICMP 0
++#ifndef HAVE_STRTOLL
++#define HAVE_STRTOLL 0
+ #endif
+-#ifndef HAVE_WCHAR_H
+-#define HAVE_WCHAR_H 0
++#ifndef HAVE_STRTOQ
++#define HAVE_STRTOQ 0
+ #endif
+-#ifndef HAVE_SYS_FILIO_H
+-#define HAVE_SYS_FILIO_H 0
++#ifndef HAVE___STRTOLL
++#define HAVE___STRTOLL 0
+ #endif
+-#ifndef HAVE_SYS_IOCTL_H
+-#define HAVE_SYS_IOCTL_H 0
++#ifndef HAVE_STRTOUQ
++#define HAVE_STRTOUQ 0
+ #endif
++#ifndef HAVE___STRTOULL
++#define HAVE___STRTOULL 0
++#endif
++#ifndef HAVE__STRTOUI64
++#define HAVE__STRTOUI64 0
++#endif
++
++#define HAVE_WCHAR_H @HAVE_WCHAR_H_DEFINE@
++#define HAVE_SYS_FILIO_H @HAVE_SYS_FILIO_H_DEFINE@
++#define HAVE_SYS_IOCTL_H @HAVE_SYS_IOCTL_H_DEFINE@
++#define HAVE_SYS_SELECT_H @HAVE_SYS_SELECT_H_DEFINE@
+ #define VA_LIST_IS_ARRAY @VA_LIST_IS_ARRAY_DEFINE@
+@@ -129,12 +140,37 @@
+ #endif
+ #if MSVCRT
++  #define HAVE_WINDOWS_THREAD 1
++#else
++  #define HAVE_WINDOWS_THREAD 0
++#endif
++
++#define HAVE_PTHREAD 1
++
++/* Note that the return value of XMLRPC_VSNPRINTF is int on Windows,
++   ssize_t on POSIX.
++*/
++#if MSVCRT
+   #define XMLRPC_VSNPRINTF _vsnprintf
+ #else
+   #define XMLRPC_VSNPRINTF vsnprintf
+ #endif
+-#if defined(_MSC_VER)
++#if MSVCRT
++  #define HAVE_REGEX 0
++#else
++  #define HAVE_REGEX 1
++#endif
++
++#if MSVCRT
++  #define XMLRPC_SOCKETPAIR xmlrpc_win32_socketpair
++  #define XMLRPC_CLOSESOCKET closesocket
++#else
++  #define XMLRPC_SOCKETPAIR socketpair
++  #define XMLRPC_CLOSESOCKET close
++#endif
++
++#if defined(_MSC_VER) && (_MSC_VER >= 1400)
+ /* Starting with MSVC 8, the runtime library defines various POSIX functions
+    such as strdup() whose names violate the ISO C standard (the standard
+    says the strXXX names are reserved for the standard), but warns you of
+@@ -152,4 +188,24 @@
+ #pragma warning(disable:4996)
+ #endif
++#if HAVE_STRTOLL
++  # define XMLRPC_STRTOLL strtoll
++#elif HAVE_STRTOQ
++  # define XMLRPC_STRTOLL strtoq /* Interix */
++#elif HAVE___STRTOLL
++  # define XMLRPC_STRTOLL __strtoll /* HP-UX <= 11.11 */
++#elif HAVE__STRTOUI64
++  #define XMLRPC_STRTOLL _strtoui64  /* Windows MSVC */
++#endif
++
++#if HAVE_STRTOULL
++  # define XMLRPC_STRTOULL strtoull
++#elif HAVE_STRTOUQ
++  # define XMLRPC_STRTOULL strtouq /* Interix */
++#elif HAVE___STRTOULL
++  # define XMLRPC_STRTOULL __strtoull /* HP-UX <= 11.11 */
++#elif HAVE__STRTOUI64
++  #define XMLRPC_STRTOULL _strtoui64  /* Windows MSVC */
++#endif
++
+ #endif
+diff --git a/src/include/switch_event.h b/src/include/switch_event.h
+index cc78336..550cba3 100644
+--- a/src/include/switch_event.h
++++ b/src/include/switch_event.h
+@@ -41,10 +41,10 @@
+       Builtin events are fired by the core at various points in the execution of the application and custom events can be 
+       reserved and registered so events from an external module can be rendered and handled by an another even handler module.
+-      If the work time to process an event in a callback is anticipated to grow beyond a very small amount of time it is reccommended
+-      that you impelment your own handler thread and FIFO queue so you can accept the events int the callback and queue them 
+-      into your own thread rather than tie up the delivery agent.  It is in to opinion of the author that such a necessity 
+-      should be judged on a per-use basis and therefore does not fall within the scope of this system to provide that 
++      If the work time to process an event in a callback is anticipated to grow beyond a very small amount of time it is recommended
++      that you implement your own handler thread and FIFO queue so you can accept the events in the callback and queue them 
++      into your own thread rather than tie up the delivery agent.  It is in the opinion of the author that such a necessity 
++      should be judged on a per-use basis and therefore it does not fall within the scope of this system to provide that 
+       functionality at a core level.
+ */
+@@ -294,7 +294,7 @@ SWITCH_DECLARE(switch_status_t) switch_name_event(const char *name, switch_event
+   \param owner the owner of the event name
+   \param subclass_name the name to reserve
+   \return SWITCH_STATUS_SUCCESS if the name was reserved
+-  \note There is nothing to enforce this but I reccommend using module::event_name for the subclass names
++  \note There is nothing to enforce this but I recommend using module::event_name for the subclass names
+ */
+ SWITCH_DECLARE(switch_status_t) switch_event_reserve_subclass_detailed(const char *owner, const char *subclass_name);
+@@ -302,7 +302,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_reserve_subclass_detailed(const cha
+ SWITCH_DECLARE(switch_status_t) switch_event_free_subclass_detailed(const char *owner, const char *subclass_name);
+ /*!
+-  \brief Render a string representation of an event sutable for printing or network transport 
++  \brief Render a string representation of an event suitable for printing or network transport 
+   \param event the event to render
+   \param str a string pointer to point at the allocated data
+   \param encode url encode the headers
+@@ -318,7 +318,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_create_brackets(char *data, char a,
+ #ifndef SWIG
+ /*!
+-  \brief Render a XML representation of an event sutable for printing or network transport
++  \brief Render a XML representation of an event suitable for printing or network transport
+   \param event the event to render
+   \param fmt optional body of the event (varargs see standard sprintf family)
+   \return the xml object if the operation was successful
+@@ -328,7 +328,7 @@ SWITCH_DECLARE(switch_xml_t) switch_event_xmlize(switch_event_t *event, const ch
+ #endif
+ /*!
+-  \brief Determine if the event system has been initilized
++  \brief Determine if the event system has been initialized
+   \return SWITCH_STATUS_SUCCESS if the system is running
+ */
+ SWITCH_DECLARE(switch_status_t) switch_event_running(void);
+diff --git a/src/include/switch_xml.h b/src/include/switch_xml.h
+index f2a6eb3..a29250a 100644
+--- a/src/include/switch_xml.h
++++ b/src/include/switch_xml.h
+@@ -198,7 +198,7 @@ SWITCH_DECLARE(const char *) switch_xml_attr(_In_opt_ switch_xml_t xml, _In_opt_
+ ///\return the value
+ SWITCH_DECLARE(const char *) switch_xml_attr_soft(_In_ switch_xml_t xml, _In_z_ const char *attr);
+-///\brief Traverses the switch_xml sturcture to retrieve a specific subtag. Takes a
++///\brief Traverses the switch_xml structure to retrieve a specific subtag. Takes a
+ ///\ variable length list of tag names and indexes. The argument list must be
+ ///\ terminated by either an index of -1 or an empty string tag name. Example: 
+ ///\ title = switch_xml_get(library, "shelf", 0, "book", 2, "title", -1);
+@@ -208,13 +208,15 @@ SWITCH_DECLARE(const char *) switch_xml_attr_soft(_In_ switch_xml_t xml, _In_z_
+ ///\return an xml node or NULL
+ SWITCH_DECLARE(switch_xml_t) switch_xml_get(_In_ switch_xml_t xml,...);
+-///\brief Converts an switch_xml structure back to xml. Returns a string of xml data that
++///\brief Converts an switch_xml structure back to xml in html format. Returns a string of html data that
+ ///\ must be freed.
+ ///\param xml the xml node
+ ///\param prn_header add <?xml version..> header too
+-///\return the xml text string
++///\return the ampersanded html text string to display xml
+ SWITCH_DECLARE(char *) switch_xml_toxml(_In_ switch_xml_t xml, _In_ switch_bool_t prn_header);
+ SWITCH_DECLARE(char *) switch_xml_toxml_nolock(switch_xml_t xml, _In_ switch_bool_t prn_header);
++SWITCH_DECLARE(char *) switch_xml_tohtml(_In_ switch_xml_t xml, _In_ switch_bool_t prn_header);
++
+ ///\brief Converts an switch_xml structure back to xml using the buffer passed in the parameters.
+ ///\param xml the xml node
+ ///\param buf buffer to use
+diff --git a/src/mod/applications/mod_commands/mod_commands.c b/src/mod/applications/mod_commands/mod_commands.c
+index 7287d95..afd7b28 100644
+--- a/src/mod/applications/mod_commands/mod_commands.c
++++ b/src/mod/applications/mod_commands/mod_commands.c
+@@ -1,4 +1,4 @@
+-/* 
++/*
+  * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
+  * Copyright (C) 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
+  *
+@@ -22,7 +22,7 @@
+  * the Initial Developer. All Rights Reserved.
+  *
+  * Contributor(s):
+- * 
++ *
+  * Anthony Minessale II <anthm@freeswitch.org>
+  * Michael Jerris <mike@jerris.com>
+  * Johny Kadarisman <jkr888@gmail.com>
+@@ -35,7 +35,8 @@
+  * Joseph Sullivan <jossulli@amazon.com>
+  * Raymond Chandler <intralanman@freeswitch.org>
+  *
+- * 
++ * Garmt Boekholt <garmt@cimico.com>
++ *
+  * mod_commands.c -- Misc. Command Module
+  *
+  */
+@@ -54,6 +55,15 @@ struct cb_helper {
+       switch_stream_handle_t *stream;
+ };
++struct stream_format {
++      char *http;           /* http cmd (from xmlrpc)                                              */
++      char *query;          /* http query (cmd args)                                               */
++      switch_bool_t api;    /* flag: define content type for http reply e.g. text/html or text/xml */
++      switch_bool_t html;   /* flag: format as html                                                */
++      char *nl;             /* newline to use: html "<br>\n" or just "\n"                          */
++};
++typedef struct stream_format stream_format;
++
+ static int url_callback(void *pArg, int argc, char **argv, char **columnNames)
+ {
+       struct cb_helper *cb = (struct cb_helper *) pArg;
+@@ -70,7 +80,7 @@ static int url_callback(void *pArg, int argc, char **argv, char **columnNames)
+ static switch_status_t select_url(const char *user,
+                                          const char *domain,
+                                          const char *concat,
+-                                         const char *exclude_contact, 
++                                         const char *exclude_contact,
+                                          switch_stream_handle_t *stream)
+ {
+       struct cb_helper cb;
+@@ -79,12 +89,12 @@ static switch_status_t select_url(const char *user,
+       switch_cache_db_handle_t *db = NULL;
+       if (!(cflags & SCF_USE_SQL)) {
+-              stream->write_function(stream, "-ERR SQL DISABLED NO DATA AVAILABLE!\n");
++              stream->write_function(stream, "-ERR SQL disabled, no data available!\n");
+               return SWITCH_STATUS_SUCCESS;
+       }
+       if (switch_core_db_handle(&db) != SWITCH_STATUS_SUCCESS) {
+-              stream->write_function(stream, "%s", "-ERR Databse Error!\n");
++              stream->write_function(stream, "%s", "-ERR Database error!\n");
+               return SWITCH_STATUS_SUCCESS;
+       }
+@@ -105,10 +115,10 @@ static switch_status_t select_url(const char *user,
+       switch_cache_db_execute_sql_callback(db, sql, url_callback, &cb, &errmsg);
+       if (errmsg) {
+-              stream->write_function(stream, "-ERR SQL Error [%s]\n", errmsg);
++              stream->write_function(stream, "-ERR SQL error [%s]\n", errmsg);
+               free(errmsg);
+               errmsg = NULL;
+-      }       
++      }
+       switch_safe_free(sql);
+@@ -119,6 +129,22 @@ static switch_status_t select_url(const char *user,
+       return SWITCH_STATUS_SUCCESS;
+ }
++static stream_format set_format(stream_format *format, switch_stream_handle_t *stream)
++{
++      format->nl = "\n";
++      if (stream->param_event && (format->http = switch_event_get_header(stream->param_event, "HTTP-URI"))) {
++              format->query = switch_event_get_header(stream->param_event, "HTTP-QUERY");
++              if (switch_event_get_header(stream->param_event, "HTTP-API")) {
++                      format->api = SWITCH_TRUE;
++              }
++              if (!strncasecmp(format->http, "/webapi/", 8)) {
++                      format->nl = "<br>\n";
++                      format->html = SWITCH_TRUE;
++              }
++      }
++
++      return *format;
++}
+ #define SAY_STRING_SYNTAX "<module_name>[.<ext>] <lang>[.<ext>] <say_type> <say_method> [<say_gender>] <text>"
+ SWITCH_STANDARD_API(say_string_function)
+@@ -159,10 +185,10 @@ SWITCH_STANDARD_API(say_string_function)
+                                                         argv[1],
+                                                         ext,
+                                                         tosay,
+-                                                        argv[0], 
+-                                                        argv[2], 
+-                                                        argv[3], 
+-                                                        (argc == 6) ? argv[4] : NULL , 
++                                                        argv[0],
++                                                        argv[2],
++                                                        argv[3],
++                                                        (argc == 6) ? argv[4] : NULL ,
+                                                         &string);
+               if (string) {
+                       stream->write_function(stream, "%s", strip ? string + 14 : string);
+@@ -174,11 +200,11 @@ SWITCH_STANDARD_API(say_string_function)
+       if (err) {
+               stream->write_function(stream, "-ERR Usage: %s\n", SAY_STRING_SYNTAX);
+       }
+-      
++
+       free(lbuf);
+       return SWITCH_STATUS_SUCCESS;
+-      
++
+ }
+ struct user_struct {
+@@ -423,12 +449,12 @@ SWITCH_STANDARD_API(reg_url_function)
+               exclude_contact = switch_channel_get_variable(channel, "sip_exclude_contact");
+       }
+-      
++
+       data = strdup(cmd);
+       switch_assert(data);
+       user = data;
+-      
++
+       if ((domain = strchr(user, '@'))) {
+               *domain++ = '\0';
+               if ((concat = strchr(domain, '/'))) {
+@@ -447,7 +473,7 @@ SWITCH_STANDARD_API(reg_url_function)
+       if (!user) goto end;
+-      
++
+       SWITCH_STANDARD_STREAM(mystream);
+       switch_assert(mystream.data);
+@@ -455,8 +481,8 @@ SWITCH_STANDARD_API(reg_url_function)
+       reply = mystream.data;
+- end:
+-      
++  end:
++
+       if (zstr(reply)) {
+               reply = "error/user_not_registered";
+       } else if (end_of(reply) == ',') {
+@@ -466,7 +492,7 @@ SWITCH_STANDARD_API(reg_url_function)
+       stream->write_function(stream, "%s", reply);
+       reply = NULL;
+-      switch_safe_free(mystream.data);                                        
++      switch_safe_free(mystream.data);
+       switch_safe_free(data);
+       switch_safe_free(dup_domain);
+@@ -671,7 +697,7 @@ SWITCH_STANDARD_API(nat_map_function)
+       stream->write_function(stream, "false");
+       goto ok;
+- usage:
++  usage:
+       stream->write_function(stream, "USAGE: nat_map [status|reinit|republish] | [add|del] <port> [tcp|udp] [sticky] | [mapping] <enable|disable>");
+   ok:
+@@ -1014,14 +1040,14 @@ SWITCH_STANDARD_API(group_call_function)
+       }
+   end:
+-      
++
+       switch_safe_free(group_name);
+       switch_safe_free(dup_domain);
+       if (!ok) {
+               stream->write_function(stream, "error/NO_ROUTE_DESTINATION");
+       }
+-      
++
+       return SWITCH_STATUS_SUCCESS;
+ }
+@@ -1183,17 +1209,15 @@ static switch_status_t _find_user(const char *cmd, switch_core_session_t *sessio
+       char *mydata = NULL, *argv[3];
+       char *key, *user, *domain;
+       char *xmlstr;
+-      char *path_info = NULL;
+       char delim = ' ';
+-      char *host = NULL;
+       const char *err = NULL;
+-      if (stream->param_event && (host = switch_event_get_header(stream->param_event, "http-host"))) {
++      stream_format format = { 0 };
++      set_format(&format, stream);
++
++      if (!tf && format.api) {
+               stream->write_function(stream, "Content-Type: text/xml\r\n\r\n");
+-              if ((path_info = switch_event_get_header(stream->param_event, "http-path-info"))) {
+-                      cmd = path_info;
+-                      delim = '/';
+-              }
++              format.html = SWITCH_FALSE;
+       }
+       if (!cmd) {
+@@ -1230,24 +1254,27 @@ static switch_status_t _find_user(const char *cmd, switch_core_session_t *sessio
+               stream->write_function(stream, err ? "false" : "true");
+       } else {
+               if (err) {
+-                      if (host) {
++                      if (format.api) {
+                               stream->write_function(stream, "<error>%s</error>\n", err);
+                       } else {
+-                              stream->write_function(stream, "-Error %s\n", err);
++                              stream->write_function(stream, "-ERR %s\n", err);
+                       }
+               }
+               if (x_user) {
+-                      xmlstr = switch_xml_toxml(x_user, SWITCH_FALSE);
++                      /* print header if request to show xml on webpage */
++                      if (format.html) {
++                              xmlstr = switch_xml_tohtml(x_user, SWITCH_TRUE);
++                      } else {
++                              xmlstr = switch_xml_toxml(x_user, SWITCH_FALSE);
++                      }
+                       switch_assert(xmlstr);
+-
+-                      stream->write_function(stream, "%s", xmlstr);
+-                      free(xmlstr);
++                      stream->write_function(stream, "%s%s%s", format.html?"<pre>":"", xmlstr, format.html?"</pre>":"");
++                      switch_safe_free(xmlstr);
+               }
+       }
+       switch_xml_free(xml);
+-
+       switch_safe_free(mydata);
+       return SWITCH_STATUS_SUCCESS;
+ }
+@@ -1363,7 +1390,7 @@ SWITCH_STANDARD_API(expand_function)
+       char uuid[80] = "";
+       if (zstr(cmd)) {
+-              stream->write_function(stream, "-ERR, no input\n");
++              stream->write_function(stream, "-ERR No input\n");
+               return SWITCH_STATUS_SUCCESS;
+       }
+@@ -1378,7 +1405,7 @@ SWITCH_STANDARD_API(expand_function)
+       }
+       if (zstr(mycmd)) {
+-              stream->write_function(stream, "-ERR, no input\n");
++              stream->write_function(stream, "-ERR No input\n");
+               return SWITCH_STATUS_SUCCESS;
+       }
+@@ -1395,7 +1422,7 @@ SWITCH_STANDARD_API(expand_function)
+       expanded = arg ? switch_event_expand_headers(stream->param_event, arg) : arg;
+       if ((status = switch_api_execute(mycmd, expanded, session, stream)) != SWITCH_STATUS_SUCCESS) {
+-              stream->write_function(stream, "-ERR, error executing command\n");
++              stream->write_function(stream, "-ERR Cannot execute command\n");
+       }
+       if (expanded != arg) {
+@@ -1569,20 +1596,20 @@ SWITCH_STANDARD_API(xml_locate_function)
+ {
+       switch_xml_t xml = NULL, obj = NULL;
+       int argc;
+-      char *mydata = NULL, *argv[4];
++      char *mydata = NULL, *argv[4] = { 0 } ;
+       char *section, *tag, *tag_attr_name, *tag_attr_val;
+       switch_event_t *params = NULL;
+       char *xmlstr;
+-      char *path_info, delim = ' ';
++      char delim = ' ';
+       char *host = NULL;
+       const char *err = NULL;
+-      if (stream->param_event && (host = switch_event_get_header(stream->param_event, "http-host"))) {
++      stream_format format = { 0 };
++      set_format(&format, stream);
++      if (format.api) {
+               stream->write_function(stream, "Content-Type: text/xml\r\n\r\n");
+-              if ((path_info = switch_event_get_header(stream->param_event, "http-path-info"))) {
+-                      cmd = path_info;
+-                      delim = '/';
+-              }
++              cmd = format.query;
++              delim = '/';
+       }
+       if (!cmd) {
+@@ -1595,7 +1622,7 @@ SWITCH_STANDARD_API(xml_locate_function)
+       argc = switch_separate_string(mydata, delim, argv, (sizeof(argv) / sizeof(argv[0])));
+-      if (argc == 1 && !strcasecmp(argv[0], "root")) {
++      if (argc == 1 && argv[0] && !strcasecmp(argv[0], "root")) {
+               const char *error;
+               xml = switch_xml_open_root(0, &error);
+               obj = xml;
+@@ -1638,7 +1665,7 @@ SWITCH_STANDARD_API(xml_locate_function)
+               if (host) {
+                       stream->write_function(stream, "<error>%s</error>\n", err);
+               } else {
+-                      stream->write_function(stream, "-Error %s\n", err);
++                      stream->write_function(stream, "-ERR %s\n", err);
+               }
+       }
+@@ -1663,12 +1690,12 @@ SWITCH_STANDARD_API(reload_acl_function)
+       if (cmd && !strcasecmp(cmd, "reloadxml")) {
+               stream->write_function(stream, "This option is deprecated, we now always reloadxml.\n");
+       }
+-      
++
+       if (switch_xml_reload(&err) == SWITCH_STATUS_SUCCESS) {
+               switch_load_network_lists(SWITCH_TRUE);
+               stream->write_function(stream, "+OK acl reloaded\n");
+       } else {
+-              stream->write_function(stream, "-Error [%s]\n", err);
++              stream->write_function(stream, "-ERR [%s]\n", err);
+       }
+       return SWITCH_STATUS_SUCCESS;
+@@ -1715,8 +1742,8 @@ SWITCH_STANDARD_API(replace_function)
+       int argc = 0;
+       if (!cmd) {
+-        goto error;
+-    }
++              goto error;
++      }
+       mydata = strdup(cmd);
+       d = mydata;
+@@ -1754,7 +1781,7 @@ SWITCH_STANDARD_API(replace_function)
+   ok:
+       switch_safe_free(mydata);
+       return SWITCH_STATUS_SUCCESS;
+-      
++
+ }
+@@ -1969,69 +1996,57 @@ SWITCH_STANDARD_API(lan_addr_function)
+ SWITCH_STANDARD_API(status_function)
+ {
+-      uint8_t html = 0;
+       switch_core_time_duration_t duration = { 0 };
+-      char *http = NULL;
+       int sps = 0, last_sps = 0;
+-      const char *var;
++      switch_bool_t html = SWITCH_FALSE;      /* shortcut to format.html      */
++      char * nl = "\n";                                       /* shortcut to format.nl        */
++      stream_format format = { 0 };
+       switch_size_t cur = 0, max = 0;
+-      switch_core_measure_time(switch_core_uptime(), &duration);
++      set_format(&format, stream);
+-      if (stream->param_event) {
+-              http = switch_event_get_header(stream->param_event, "http-host");
+-              if ((var = switch_event_get_header(stream->param_event, "content-type"))) {
+-                      if (!strcasecmp(var, "text/plain")) {
+-                              http = NULL;
+-                      }
+-              }
++      if (format.api) {
++              format.html = SWITCH_TRUE;
++              format.nl = "<br>\n";
+       }
+-      if (http) {
+-              stream->write_function(stream, "%s", "Content-Type: text/html\n\n");
++      if (format.html) {
++              /* set flag to allow refresh of webpage if web request contained kv-pair refresh=xx  */
++              switch_event_add_header_string(stream->param_event, SWITCH_STACK_BOTTOM, "HTTP-REFRESH", "true");
++              if (format.api) {
++                      /* "Overwrite" default "api" Content-Type: text/plain */
++                      stream->write_function(stream, "Content-Type: text/html\r\n\r\n");
++              }
+       }
+-      if (http || (cmd && strstr(cmd, "html"))) {
+-              html = 1;
+-              stream->write_function(stream, "<h1>FreeSWITCH Status</h1>\n<b>");
++      html = format.html;
++      nl = format.nl;
++
++      if (html) {
++              /* don't bother cli with heading and timestamp */
++              stream->write_function(stream, "%sFreeSWITCH Status%s", html?"<h1>":"", html?"</h1>\n":"\n");
++              stream->write_function(stream, "%s%s", switch_event_get_header(stream->param_event,"Event-Date-Local"), nl);
+       }
++
++      switch_core_measure_time(switch_core_uptime(), &duration);
+       stream->write_function(stream,
+-                                                 "UP %u year%s, %u day%s, %u hour%s, %u minute%s, %u second%s, %u millisecond%s, %u microsecond%s\n",
+-                                                 duration.yr, duration.yr == 1 ? "" : "s", duration.day, duration.day == 1 ? "" : "s",
+-                                                 duration.hr, duration.hr == 1 ? "" : "s", duration.min, duration.min == 1 ? "" : "s",
+-                                                 duration.sec, duration.sec == 1 ? "" : "s", duration.ms, duration.ms == 1 ? "" : "s", duration.mms,
+-                                                 duration.mms == 1 ? "" : "s");
+-
+-      stream->write_function(stream, "FreeSWITCH is %s\n", switch_core_ready() ? "ready" : "not ready");
+-      stream->write_function(stream, "%" SWITCH_SIZE_T_FMT " session(s) since startup\n", switch_core_session_id() - 1);
++                                              "UP %u year%s, %u day%s, %u hour%s, %u minute%s, %u second%s, %u millisecond%s, %u microsecond%s%s",
++                                              duration.yr,  duration.yr  == 1 ? "" : "s", duration.day, duration.day == 1 ? "" : "s",
++                                              duration.hr,  duration.hr  == 1 ? "" : "s", duration.min, duration.min == 1 ? "" : "s",
++                                              duration.sec, duration.sec == 1 ? "" : "s", duration.ms , duration.ms  == 1 ? "" : "s", duration.mms,
++                                              duration.mms == 1 ? "" : "s", nl);
++
++      stream->write_function(stream, "FreeSWITCH is %s%s", switch_core_ready() ? "ready" : "not ready", nl);
++      stream->write_function(stream, "%" SWITCH_SIZE_T_FMT " session(s) since startup%s", switch_core_session_id() - 1, nl);
+       switch_core_session_ctl(SCSC_LAST_SPS, &last_sps);
+       switch_core_session_ctl(SCSC_SPS, &sps);
+-      stream->write_function(stream, "%d session(s) %d/%d\n", switch_core_session_count(), last_sps, sps);
+-      stream->write_function(stream, "%d session(s) max\n", switch_core_session_limit(0));
+-      stream->write_function(stream, "min idle cpu %0.2f/%0.2f\n", switch_core_min_idle_cpu(-1.0), switch_core_idle_cpu());
++      stream->write_function(stream, "%d session(s) - %d out of max %d per sec %s", switch_core_session_count(), last_sps, sps, nl);
++      stream->write_function(stream, "%d session(s) max%s", switch_core_session_limit(0), nl);
++      stream->write_function(stream, "min idle cpu %0.2f/%0.2f%s", switch_core_min_idle_cpu(-1.0), switch_core_idle_cpu(), nl);
+-
+-      if (switch_core_get_stacksizes(&cur, &max) == SWITCH_STATUS_SUCCESS) {
+-              stream->write_function(stream, "Current Stack Size/Max %ldK/%ldK\n", cur / 1024, max / 1024);
+-      }
+-
+-      if (html) {
+-              stream->write_function(stream, "</b>\n");
++      if (switch_core_get_stacksizes(&cur, &max) == SWITCH_STATUS_SUCCESS) {          stream->write_function(stream, "Current Stack Size/Max %ldK/%ldK\n", cur / 1024, max / 1024);
+       }
+-
+-      if (cmd && strstr(cmd, "refresh=")) {
+-              char *refresh = strchr(cmd, '=');
+-              if (refresh) {
+-                      int r;
+-                      refresh++;
+-                      r = atoi(refresh);
+-                      if (r > 0) {
+-                              stream->write_function(stream, "<META HTTP-EQUIV=REFRESH CONTENT=\"%d; URL=/api/status?refresh=%d%s\">\n", r, r, html ? "html=1" : "");
+-                      }
+-              }
+-      }
+-
+       return SWITCH_STATUS_SUCCESS;
+ }
+@@ -2125,7 +2140,7 @@ SWITCH_STANDARD_API(ctl_function)
+                       switch_core_session_ctl(SCSC_THREADED_SYSTEM_EXEC, &arg);
+                       stream->write_function(stream, "+OK threaded_system_exec is %s \n", arg ? "true" : "false");
+-                      
++
+               } else if (!strcasecmp(argv[0], "save_history")) {
+                       switch_core_session_ctl(SCSC_SAVE_HISTORY, NULL);
+                       stream->write_function(stream, "+OK\n");
+@@ -2198,7 +2213,7 @@ SWITCH_STANDARD_API(ctl_function)
+                       stream->write_function(stream, "+OK max sessions: %d\n", arg);
+               } else if (!strcasecmp(argv[0], "min_idle_cpu")) {
+                       double d = -1;
+-                      
++
+                       if (argc > 1) {
+                               d = atof(argv[1]);
+                       }
+@@ -2211,7 +2226,7 @@ SWITCH_STANDARD_API(ctl_function)
+                               stream->write_function(stream, "+OK min idle cpu: DISABLED\n", d);
+                       }
+-                      
++
+               } else if (!strcasecmp(argv[0], "max_dtmf_duration")) {
+                       if (argc > 1) {
+                               arg = atoi(argv[1]);
+@@ -2281,14 +2296,14 @@ SWITCH_STANDARD_API(ctl_function)
+                               stream->write_function(stream, "+OK clock will synchronize when there are no more calls\n");
+                       }
+               } else {
+-                      stream->write_function(stream, "-ERR INVALID COMMAND\nUSAGE: fsctl %s", CTL_SYNTAX);
++                      stream->write_function(stream, "-ERR Invalid command\nUSAGE: fsctl %s\n", CTL_SYNTAX);
+                       goto end;
+               }
+         end:
+               free(mydata);
+       } else {
+-              stream->write_function(stream, "-ERR Memory Error\n");
++              stream->write_function(stream, "-ERR Memory error\n");
+       }
+       return SWITCH_STATUS_SUCCESS;
+@@ -2358,7 +2373,7 @@ SWITCH_STANDARD_API(unload_function)
+       }
+       switch_mutex_lock(reload_mutex);
+-      
++
+       if (switch_loadable_module_unload_module((char *) SWITCH_GLOBAL_dirs.mod_dir, (char *) cmd, force, &err) == SWITCH_STATUS_SUCCESS) {
+               stream->write_function(stream, "+OK\n");
+       } else {
+@@ -2452,11 +2467,11 @@ SWITCH_STANDARD_API(kill_function)
+               *kcause++ = '\0';
+               if (!zstr(kcause)) {
+                       cause = switch_channel_str2cause(kcause);
+-              }               
++              }
+       }
+       if (switch_ivr_kill_uuid(mycmd, cause) != SWITCH_STATUS_SUCCESS) {
+-              stream->write_function(stream, "-ERR No Such Channel!\n");
++              stream->write_function(stream, "-ERR No such channel!\n");
+       } else {
+               stream->write_function(stream, "+OK\n");
+       }
+@@ -2477,7 +2492,7 @@ SWITCH_STANDARD_API(outgoing_answer_function)
+       }
+       if (zstr(mycmd) || !(outgoing_session = switch_core_session_locate(mycmd))) {
+-              stream->write_function(stream, "-ERR No Such Channel!\n");
++              stream->write_function(stream, "-ERR No such channel!\n");
+       } else {
+               switch_channel_t *channel = switch_core_session_get_channel(outgoing_session);
+               if (switch_channel_direction(channel) == SWITCH_CALL_DIRECTION_OUTBOUND) {
+@@ -2511,7 +2526,7 @@ SWITCH_STANDARD_API(preprocess_function)
+       }
+       if (!(ksession = switch_core_session_locate(argv[0]))) {
+-              stream->write_function(stream, "-ERR No Such Channel!\n");
++              stream->write_function(stream, "-ERR No such channel!\n");
+               goto done;
+       } else {
+               switch_ivr_preprocess_session(ksession, (char *) argv[1]);
+@@ -2540,7 +2555,7 @@ SWITCH_STANDARD_API(park_function)
+               switch_core_session_rwunlock(ksession);
+               stream->write_function(stream, "+OK\n");
+       } else {
+-              stream->write_function(stream, "-ERR No Such Channel!\n");
++              stream->write_function(stream, "-ERR No such channel!\n");
+       }
+       return SWITCH_STATUS_SUCCESS;
+@@ -2571,7 +2586,7 @@ SWITCH_STANDARD_API(transfer_function)
+       context = argv[3];
+       if (zstr(tuuid) || !(tsession = switch_core_session_locate(tuuid))) {
+-              stream->write_function(stream, "-ERR No Such Channel!\n");
++              stream->write_function(stream, "-ERR No such channel!\n");
+               goto done;
+       }
+@@ -2665,10 +2680,10 @@ SWITCH_STANDARD_API(dual_transfer_function)
+       }
+       if (zstr(tuuid) || !(tsession = switch_core_session_locate(tuuid))) {
+-              stream->write_function(stream, "-ERR No Such Channel!\n");
++              stream->write_function(stream, "-ERR No such channel!\n");
+               goto done;
+       }
+-      
++
+       if (switch_core_session_get_partner(tsession, &other_session) == SWITCH_STATUS_SUCCESS) {
+               switch_ivr_session_transfer(other_session, dest2, dp2, context2);
+               switch_core_session_rwunlock(other_session);
+@@ -2709,7 +2724,7 @@ SWITCH_STANDARD_API(tone_detect_session_function)
+       }
+       if (!(rsession = switch_core_session_locate(argv[0]))) {
+-              stream->write_function(stream, "-ERR Error Cannot locate session!\n");
++              stream->write_function(stream, "-ERR Cannot locate session!\n");
+               return SWITCH_STATUS_SUCCESS;
+       }
+@@ -2754,8 +2769,8 @@ SWITCH_STANDARD_API(uuid_function)
+       char uuid_str[SWITCH_UUID_FORMATTED_LENGTH + 1];
+       switch_uuid_str(uuid_str, sizeof(uuid_str));
+-      
+-      stream->write_function(stream, "%s", uuid_str); 
++
++      stream->write_function(stream, "%s", uuid_str);
+       return SWITCH_STATUS_SUCCESS;
+ }
+@@ -2780,14 +2795,14 @@ SWITCH_STANDARD_API(uuid_chat)
+                               switch_event_add_body(event, "%s", text);
+                               if (switch_core_session_receive_event(tsession, &event) != SWITCH_STATUS_SUCCESS) {
+                                       switch_event_destroy(&event);
+-                                      stream->write_function(stream, "-ERR Send Failed\n");
++                                      stream->write_function(stream, "-ERR Send failed\n");
+                               } else {
+                                       stream->write_function(stream, "+OK\n");
+                               }
+                       }
+                       switch_core_session_rwunlock(tsession);
+               } else {
+-                      stream->write_function(stream, "-ERR No Such Channel %s!\n", uuid);
++                      stream->write_function(stream, "-ERR No such channel %s!\n", uuid);
+               }
+       }
+@@ -2823,7 +2838,7 @@ SWITCH_STANDARD_API(uuid_deflect)
+                       stream->write_function(stream, "+OK:%s\n", msg.string_reply);
+                       switch_core_session_rwunlock(tsession);
+               } else {
+-                      stream->write_function(stream, "-ERR No Such Channel %s!\n", uuid);
++                      stream->write_function(stream, "-ERR No such channel %s!\n", uuid);
+               }
+       }
+@@ -2857,7 +2872,7 @@ SWITCH_STANDARD_API(uuid_recovery_refresh)
+                       stream->write_function(stream, "+OK:%s\n", msg.string_reply);
+                       switch_core_session_rwunlock(tsession);
+               } else {
+-                      stream->write_function(stream, "-ERR No Such Channel %s!\n", uuid);
++                      stream->write_function(stream, "-ERR No such channel %s!\n", uuid);
+               }
+       }
+@@ -2896,7 +2911,7 @@ SWITCH_STANDARD_API(sched_transfer_function)
+                       stream->write_function(stream, "+OK\n");
+                       switch_core_session_rwunlock(tsession);
+               } else {
+-                      stream->write_function(stream, "-ERR No Such Channel!\n");
++                      stream->write_function(stream, "-ERR No such channel!\n");
+               }
+       }
+@@ -2945,7 +2960,7 @@ SWITCH_STANDARD_API(sched_hangup_function)
+                       stream->write_function(stream, "+OK\n");
+                       switch_core_session_rwunlock(hsession);
+               } else {
+-                      stream->write_function(stream, "-ERR No Such Channel!\n");
++                      stream->write_function(stream, "-ERR No such channel!\n");
+               }
+       }
+@@ -2977,7 +2992,7 @@ SWITCH_STANDARD_API(uuid_media_function)
+       if (status == SWITCH_STATUS_SUCCESS) {
+               stream->write_function(stream, "+OK Success\n");
+       } else {
+-              stream->write_function(stream, "-ERR Operation Failed\n");
++              stream->write_function(stream, "-ERR Operation failed\n");
+       }
+       switch_safe_free(mycmd);
+@@ -3098,7 +3113,7 @@ SWITCH_STANDARD_API(uuid_broadcast_function)
+                       if (switch_stristr("aleg", argv[2])) {
+                               flags |= SMF_ECHO_ALEG;
+-                      } 
++                      }
+                       if (switch_stristr("bleg", argv[2])) {
+                               flags &= ~SMF_HOLD_BLEG;
+@@ -3115,7 +3130,7 @@ SWITCH_STANDARD_API(uuid_broadcast_function)
+               }
+               switch_ivr_broadcast(argv[0], argv[1], flags);
+-              stream->write_function(stream, "+OK Message Sent\n");
++              stream->write_function(stream, "+OK Message sent\n");
+       }
+       switch_safe_free(mycmd);
+@@ -3157,7 +3172,7 @@ SWITCH_STANDARD_API(sched_broadcast_function)
+               }
+               switch_ivr_schedule_broadcast(when, argv[1], argv[2], flags);
+-              stream->write_function(stream, "+OK Message Scheduled\n");
++              stream->write_function(stream, "+OK Message scheduled\n");
+       }
+       switch_safe_free(mycmd);
+@@ -3188,7 +3203,7 @@ SWITCH_STANDARD_API(uuid_hold_function)
+       if (status == SWITCH_STATUS_SUCCESS) {
+               stream->write_function(stream, "+OK Success\n");
+       } else {
+-              stream->write_function(stream, "-ERR Operation Failed\n");
++              stream->write_function(stream, "-ERR Operation failed\n");
+       }
+       switch_safe_free(mycmd);
+@@ -3226,10 +3241,10 @@ SWITCH_STANDARD_API(uuid_display_function)
+       if (status == SWITCH_STATUS_SUCCESS) {
+               stream->write_function(stream, "+OK Success\n");
+       } else {
+-              stream->write_function(stream, "-ERR Operation Failed\n");
++              stream->write_function(stream, "-ERR Operation failed\n");
+       }
+- end:
++  end:
+       switch_safe_free(mycmd);
+       return SWITCH_STATUS_SUCCESS;
+@@ -3322,7 +3337,7 @@ SWITCH_STANDARD_API(uuid_simplify_function)
+       if (status == SWITCH_STATUS_SUCCESS) {
+               stream->write_function(stream, "+OK Success\n");
+       } else {
+-              stream->write_function(stream, "-ERR Operation Failed\n");
++              stream->write_function(stream, "-ERR Operation failed\n");
+       }
+       return SWITCH_STATUS_SUCCESS;
+@@ -3375,7 +3390,7 @@ SWITCH_STANDARD_API(uuid_jitterbuffer_function)
+       if (status == SWITCH_STATUS_SUCCESS) {
+               stream->write_function(stream, "+OK Success\n");
+       } else {
+-              stream->write_function(stream, "-ERR Operation Failed\n");
++              stream->write_function(stream, "-ERR Operation failed\n");
+       }
+       return SWITCH_STATUS_SUCCESS;
+@@ -3412,7 +3427,7 @@ SWITCH_STANDARD_API(uuid_phone_event_function)
+       if (status == SWITCH_STATUS_SUCCESS) {
+               stream->write_function(stream, "+OK Success\n");
+       } else {
+-              stream->write_function(stream, "-ERR Operation Failed\n");
++              stream->write_function(stream, "-ERR Operation failed\n");
+       }
+       switch_safe_free(mycmd);
+@@ -3573,7 +3588,7 @@ SWITCH_STANDARD_API(uuid_debug_audio_function)
+       if (status == SWITCH_STATUS_SUCCESS) {
+               stream->write_function(stream, "+OK Success\n");
+       } else {
+-              stream->write_function(stream, "-ERR Operation Failed\n");
++              stream->write_function(stream, "-ERR Operation failed\n");
+       }
+   done:
+@@ -3772,7 +3787,7 @@ SWITCH_STANDARD_API(session_audio_function)
+       }
+       if (!(u_session = switch_core_session_locate(argv[0]))) {
+-              stream->write_function(stream, "-ERR No Such Channel!\n");
++              stream->write_function(stream, "-ERR No such channel!\n");
+               goto done;
+       }
+@@ -3836,7 +3851,7 @@ SWITCH_STANDARD_API(break_function)
+       }
+       if (!(psession = switch_core_session_locate(mycmd))) {
+-              stream->write_function(stream, "-ERR No Such Channel!\n");
++              stream->write_function(stream, "-ERR No such channel!\n");
+               goto done;
+       }
+@@ -3865,7 +3880,7 @@ SWITCH_STANDARD_API(break_function)
+               }
+       }
+-      
++
+       if (switch_channel_test_flag(channel, CF_BROADCAST)) {
+               switch_channel_stop_broadcast(channel);
+@@ -3925,7 +3940,7 @@ SWITCH_STANDARD_API(pause_function)
+                       switch_core_session_rwunlock(psession);
+               } else {
+-                      stream->write_function(stream, "-ERR No Such Channel!\n");
++                      stream->write_function(stream, "-ERR No such channel!\n");
+               }
+       }
+@@ -3947,7 +3962,7 @@ SWITCH_STANDARD_API(originate_function)
+       switch_status_t status = SWITCH_STATUS_SUCCESS;
+       if (zstr(cmd)) {
+-              stream->write_function(stream, "-USAGE %s\n", ORIGINATE_SYNTAX);
++              stream->write_function(stream, "-USAGE: %s\n", ORIGINATE_SYNTAX);
+               return SWITCH_STATUS_SUCCESS;
+       }
+@@ -4000,7 +4015,7 @@ SWITCH_STANDARD_API(originate_function)
+               if (machine) {
+                       stream->write_function(stream, "-ERR %s\n", switch_channel_cause2str(cause));
+               } else {
+-                      stream->write_function(stream, "-ERR Cannot Create Outgoing Channel! [%s] cause: %s\n", aleg, switch_channel_cause2str(cause));
++                      stream->write_function(stream, "-ERR Cannot create outgoing channel! [%s] cause: %s\n", aleg, switch_channel_cause2str(cause));
+               }
+               goto done;
+       }
+@@ -4034,7 +4049,7 @@ SWITCH_STANDARD_API(originate_function)
+       if (machine) {
+               stream->write_function(stream, "+OK %s\n", switch_core_session_get_uuid(caller_session));
+       } else {
+-              stream->write_function(stream, "+OK Created Session: %s\n", switch_core_session_get_uuid(caller_session));
++              stream->write_function(stream, "+OK Created session: %s\n", switch_core_session_get_uuid(caller_session));
+       }
+       switch_core_session_rwunlock(caller_session);
+@@ -4156,7 +4171,7 @@ SWITCH_STANDARD_API(unsched_api_function)
+       }
+       if ((id = (uint32_t) atol(cmd))) {
+-              stream->write_function(stream, "%s\n", switch_scheduler_del_task_id(id) ? "+OK" : "-ERR no such id");
++              stream->write_function(stream, "%s\n", switch_scheduler_del_task_id(id) ? "+OK" : "-ERR No such id");
+       }
+       return SWITCH_STATUS_SUCCESS;
+@@ -4317,15 +4332,15 @@ SWITCH_STANDARD_API(bgapi_function)
+ }
+ struct holder {
++      char * delim;
+       switch_stream_handle_t *stream;
+-      char *http;
+-      char *delim;
+       uint32_t count;
+       int print_title;
+       switch_xml_t xml;
+       cJSON *json;
+       int rows;
+       int justcount;
++      stream_format *format;
+ };
+ static int show_as_json_callback(void *pArg, int argc, char **argv, char **columnNames)
+@@ -4424,7 +4439,7 @@ static int show_callback(void *pArg, int argc, char **argv, char **columnNames)
+       }
+       if (holder->print_title && holder->count == 0) {
+-              if (holder->http) {
++              if (holder->format && holder->format->html) {
+                       holder->stream->write_function(holder->stream, "\n<tr>");
+               }
+@@ -4434,7 +4449,7 @@ static int show_callback(void *pArg, int argc, char **argv, char **columnNames)
+                               name = "undefined";
+                       }
+-                      if (holder->http) {
++                      if (holder->format && holder->format->html) {
+                               holder->stream->write_function(holder->stream, "<td>");
+                               holder->stream->write_function(holder->stream, "<b>%s</b>%s", name, x == (argc - 1) ? "</td></tr>\n" : "</td><td>");
+                       } else {
+@@ -4443,7 +4458,7 @@ static int show_callback(void *pArg, int argc, char **argv, char **columnNames)
+               }
+       }
+-      if (holder->http) {
++      if (holder->format && holder->format->html) {
+               holder->stream->write_function(holder->stream, "<tr bgcolor=%s>", holder->count % 2 == 0 ? "eeeeee" : "ffffff");
+       }
+@@ -4451,7 +4466,7 @@ static int show_callback(void *pArg, int argc, char **argv, char **columnNames)
+               char *val = switch_str_nil(argv[x]);
+-              if (holder->http) {
++              if (holder->format && holder->format->html) {
+                       char aval[512];
+                       switch_amp_encode(val, aval, sizeof(aval));
+@@ -4494,7 +4509,7 @@ SWITCH_STANDARD_API(alias_function)
+       return SWITCH_STATUS_SUCCESS;
+ }
+-#define SHOW_SYNTAX "codec|endpoint|application|api|dialplan|file|timer|calls [count]|channels [count|like <match string>]|calls|detailed_calls|bridged_calls|detailed_bridged_calls|aliases|complete|chat|management|modules|nat_map|say|interfaces|interface_types|tasks|limits"
++#define SHOW_SYNTAX "codec|endpoint|application|api|dialplan|file|timer|calls [count]|channels [count|like <match string>]|calls|detailed_calls|bridged_calls|detailed_bridged_calls|aliases|complete|chat|management|modules|nat_map|say|interfaces|interface_types|tasks|limits|status"
+ SWITCH_STANDARD_API(show_function)
+ {
+       char sql[1024];
+@@ -4506,50 +4521,49 @@ SWITCH_STANDARD_API(show_function)
+       char *command = NULL, *as = NULL;
+       switch_core_flag_t cflags = switch_core_flags();
+       switch_status_t status = SWITCH_STATUS_SUCCESS;
+-    const char *hostname = switch_core_get_switchname();
++      const char *hostname = switch_core_get_switchname();
++      int html = 0;
++      char *nl = "\n";
++      stream_format format = { 0 };
++
++      holder.format = &format;
++      set_format(holder.format, stream);
++      html = holder.format->html; /* html is just a shortcut */
+       if (!(cflags & SCF_USE_SQL)) {
+-              stream->write_function(stream, "-ERR SQL DISABLED NO DATA AVAILABLE!\n");
++              stream->write_function(stream, "-ERR SQL disabled, no data available!\n");
+               return SWITCH_STATUS_SUCCESS;
+       }
+       if (switch_core_db_handle(&db) != SWITCH_STATUS_SUCCESS) {
+-              stream->write_function(stream, "%s", "-ERR Databse Error!\n");
++              stream->write_function(stream, "%s", "-ERR Database error!\n");
+               return SWITCH_STATUS_SUCCESS;
+       }
+       holder.justcount = 0;
+-      if (cmd && (mydata = strdup(cmd))) {
++      if (cmd && *cmd && (mydata = strdup(cmd))) {
+               switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
+               command = argv[0];
+               if (argv[2] && !strcasecmp(argv[1], "as")) {
+                       as = argv[2];
+               }
+-
+-      }
+-
+-      if (stream->param_event) {
+-              const char *var;
+-              holder.http = switch_event_get_header(stream->param_event, "http-host");
+-
+-              if ((var = switch_event_get_header(stream->param_event, "content-type"))) {
+-                      if (!strcasecmp(var, "text/plain")) {
+-                              holder.http = NULL;
+-                      }
+-              } else if (holder.http) {
+-                      stream->write_function(stream, "%s", "Content-Type: text/html\n\n");
+-              }
+-
+       }
+       holder.print_title = 1;
+-      /* If you change the field qty or order of any of these select */
+-      /* statements, you must also change show_callback and friends to match! */
+       if (!command) {
+               stream->write_function(stream, "-USAGE: %s\n", SHOW_SYNTAX);
+               goto end;
++      /* for those of us that keep on typing at the CLI: "show status" instead of "status" */
++      } else if (!strncasecmp(command, "status", 6)) {
++              if (!as) {
++                      as = argv[1];
++              }
++              switch_api_execute(command, as, NULL, stream);
++              goto end;
++      /* If you change the field qty or order of any of these select          */
++      /* statements, you must also change show_callback and friends to match! */
+       } else if (!strncasecmp(command, "codec", 5) ||
+                          !strncasecmp(command, "dialplan", 8) ||
+                          !strncasecmp(command, "file", 4) ||
+@@ -4563,7 +4577,7 @@ SWITCH_STANDARD_API(show_function)
+               sprintf(sql, "select type, name, ikey from interfaces where hostname='%s' and type = '%s' order by type,name", hostname, command);
+       } else if (!strncasecmp(command, "module", 6)) {
+               if (argv[1]) {
+-                      sprintf(sql, "select distinct type, name, ikey, filename from interfaces where hostname='%s' and ikey = '%s' order by type,name", 
++                      sprintf(sql, "select distinct type, name, ikey, filename from interfaces where hostname='%s' and ikey = '%s' order by type,name",
+                                       hostname, argv[1]);
+               } else {
+                       sprintf(sql, "select distinct type, name, ikey, filename from interfaces where hostname='%s' order by type,name", hostname);
+@@ -4582,70 +4596,7 @@ SWITCH_STANDARD_API(show_function)
+               } else {
+                       sprintf(sql, "select name, description, syntax, ikey from interfaces where hostname='%s' and type = '%s' and description != '' order by type,name", hostname, command);
+               }
+-      } else if (!strcasecmp(command, "calls")) {
+-              sprintf(sql, "select * from basic_calls where hostname='%s' order by call_created_epoch", hostname);
+-              if (argv[1] && !strcasecmp(argv[1], "count")) {
+-                      holder.justcount = 1;
+-                      if (argv[3] && !strcasecmp(argv[2], "as")) {
+-                              as = argv[3];
+-                      }
+-              }
+-      } else if (!strcasecmp(command, "registrations")) {
+-              sprintf(sql, "select * from registrations where hostname='%s'", hostname);
+-              if (argv[1] && !strcasecmp(argv[1], "count")) {
+-                      holder.justcount = 1;
+-                      if (argv[3] && !strcasecmp(argv[2], "as")) {
+-                              as = argv[3];
+-                      }
+-              }
+-      } else if (!strcasecmp(command, "channels") && argv[1] && !strcasecmp(argv[1], "like")) {
+-              if (argv[2]) {
+-                      char *p;
+-                      for (p = argv[2]; p && *p; p++) {
+-                              if (*p == '\'' || *p == ';') {
+-                                      *p = ' ';
+-                              }
+-                      }
+-                      if (strchr(argv[2], '%')) {
+-                              sprintf(sql,
+-                                              "select * from channels where hostname='%s' and uuid like '%s' or name like '%s' or cid_name like '%s' or cid_num like '%s' or presence_data like '%s' order by created_epoch",
+-                                              hostname, argv[2], argv[2], argv[2], argv[2], argv[2]);
+-                      } else {
+-                              sprintf(sql,
+-                                              "select * from channels where hostname='%s' and uuid like '%%%s%%' or name like '%%%s%%' or cid_name like '%%%s%%' or cid_num like '%%%s%%' or presence_data like '%%%s%%' order by created_epoch",
+-                                              hostname, argv[2], argv[2], argv[2], argv[2], argv[2]);
+-
+-                      }
+-
+-                      if (argv[4] && !strcasecmp(argv[3], "as")) {
+-                              as = argv[4];
+-                      }
+-              } else {
+-                      sprintf(sql, "select * from channels where hostname='%s' order by created_epoch", hostname);
+-              }
+-      } else if (!strcasecmp(command, "channels")) {
+-              sprintf(sql, "select * from channels where hostname='%s' order by created_epoch", hostname);
+-              if (argv[1] && !strcasecmp(argv[1], "count")) {
+-                      holder.justcount = 1;
+-                      if (argv[3] && !strcasecmp(argv[2], "as")) {
+-                              as = argv[3];
+-                      }
+-              }
+-      } else if (!strcasecmp(command, "detailed_calls")) {
+-              sprintf(sql, "select * from detailed_calls where hostname='%s' order by created_epoch", hostname);
+-              if (argv[2] && !strcasecmp(argv[1], "as")) {
+-                      as = argv[2];
+-              }
+-      } else if (!strcasecmp(command, "bridged_calls")) {
+-              sprintf(sql, "select * from basic_calls where b_uuid is not null and hostname='%s' order by created_epoch", hostname);
+-              if (argv[2] && !strcasecmp(argv[1], "as")) {
+-                      as = argv[2];
+-              }
+-      } else if (!strcasecmp(command, "detailed_bridged_calls")) {
+-              sprintf(sql, "select * from detailed_calls where b_uuid is not null and hostname='%s' order by created_epoch", hostname);
+-              if (argv[2] && !strcasecmp(argv[1], "as")) {
+-                      as = argv[2];
+-              }
++      /* moved refreshable webpage show commands i.e. show calls|registrations|channels||detailed_calls|bridged_calls|detailed_bridged_calls */
+       } else if (!strcasecmp(command, "aliases")) {
+               sprintf(sql, "select * from aliases where hostname='%s' order by alias", hostname);
+       } else if (!strcasecmp(command, "complete")) {
+@@ -4658,7 +4609,7 @@ SWITCH_STANDARD_API(show_function)
+               if ((cmdname = strchr(command, ' ')) && strcasecmp(cmdname, "as")) {
+                       *cmdname++ = '\0';
+                       switch_snprintfv(sql, sizeof(sql),
+-                                                      "select name, syntax, description, ikey from interfaces where hostname='%s' and type = 'api' and name = '%q' order by name", 
++                                                      "select name, syntax, description, ikey from interfaces where hostname='%s' and type = 'api' and name = '%q' order by name",
+                                                       hostname, cmdname);
+               } else {
+                       switch_snprintfv(sql, sizeof(sql), "select name, syntax, description, ikey from interfaces where hostname='%q' and type = 'api' order by name", hostname);
+@@ -4671,14 +4622,101 @@ SWITCH_STANDARD_API(show_function)
+                                               "       WHEN 1 THEN 'tcp' "
+                                               "       ELSE 'unknown' " "  END AS proto, " "  proto AS proto_num, " "  sticky " " FROM nat where hostname='%s' ORDER BY port, proto", hostname);
+       } else {
+-              stream->write_function(stream, "-USAGE: %s\n", SHOW_SYNTAX);
+-              goto end;
++              /* from here on refreshable commands: calls|registrations|channels||detailed_calls|bridged_calls|detailed_bridged_calls */
++              if (holder.format->api) {
++                      holder.format->html = SWITCH_TRUE;
++                      holder.format->nl = "<br>\n";
++              }
++
++              html = holder.format->html;
++              if (html) {
++                      /* set flag to allow refresh of webpage if web request contained kv-pair refresh=xx  */
++                      switch_event_add_header_string(stream->param_event, SWITCH_STACK_BOTTOM, "HTTP-REFRESH", "true");
++                      if (holder.format->api) {
++                              /* "Overwrite" default "api" Content-Type: text/plain */
++                              stream->write_function(stream, "Content-Type: text/html\r\n\r\n");
++                      }
++              }
++
++              if (!strcasecmp(command, "calls")) {
++                      sprintf(sql, "select * from basic_calls where hostname='%s' order by call_created_epoch", hostname);
++                      if (argv[1] && !strcasecmp(argv[1], "count")) {
++                              holder.justcount = 1;
++                              if (argv[3] && !strcasecmp(argv[2], "as")) {
++                                      as = argv[3];
++                              }
++                      }
++              } else if (!strcasecmp(command, "registrations")) {
++                      sprintf(sql, "select * from registrations where hostname='%s'", hostname);
++                      if (argv[1] && !strcasecmp(argv[1], "count")) {
++                              holder.justcount = 1;
++                              if (argv[3] && !strcasecmp(argv[2], "as")) {
++                                      as = argv[3];
++                              }
++                      }
++              } else if (!strcasecmp(command, "channels") && argv[1] && !strcasecmp(argv[1], "like")) {
++                      if (argv[2]) {
++                              char *p;
++                              for (p = argv[2]; p && *p; p++) {
++                                      if (*p == '\'' || *p == ';') {
++                                              *p = ' ';
++                                      }
++                              }
++                              if (strchr(argv[2], '%')) {
++                                      sprintf(sql,
++                                              "select * from channels where hostname='%s' and uuid like '%s' or name like '%s' or cid_name like '%s' or cid_num like '%s' or presence_data like '%s' order by created_epoch",
++                                              hostname, argv[2], argv[2], argv[2], argv[2], argv[2]);
++                              } else {
++                                      sprintf(sql,
++                                              "select * from channels where hostname='%s' and uuid like '%%%s%%' or name like '%%%s%%' or cid_name like '%%%s%%' or cid_num like '%%%s%%' or presence_data like '%%%s%%' order by created_epoch",
++                                              hostname, argv[2], argv[2], argv[2], argv[2], argv[2]);
++                              }
++                              if (argv[4] && !strcasecmp(argv[3], "as")) {
++                                      as = argv[4];
++                              }
++                      } else {
++                              sprintf(sql, "select * from channels where hostname='%s' order by created_epoch", hostname);
++                      }
++              } else if (!strcasecmp(command, "channels")) {
++                      sprintf(sql, "select * from channels where hostname='%s' order by created_epoch", hostname);
++                      if (argv[1] && !strcasecmp(argv[1], "count")) {
++                              holder.justcount = 1;
++                              if (argv[3] && !strcasecmp(argv[2], "as")) {
++                                      as = argv[3];
++                              }
++                      }
++              } else if (!strcasecmp(command, "detailed_calls")) {
++                      sprintf(sql, "select * from detailed_calls where hostname='%s' order by created_epoch", hostname);
++                      if (argv[2] && !strcasecmp(argv[1], "as")) {
++                              as = argv[2];
++                      }
++              } else if (!strcasecmp(command, "bridged_calls")) {
++                      sprintf(sql, "select * from basic_calls where b_uuid is not null and hostname='%s' order by created_epoch", hostname);
++                      if (argv[2] && !strcasecmp(argv[1], "as")) {
++                              as = argv[2];
++                      }
++              } else if (!strcasecmp(command, "detailed_bridged_calls")) {
++                      sprintf(sql, "select * from detailed_calls where b_uuid is not null and hostname='%s' order by created_epoch", hostname);
++                      if (argv[2] && !strcasecmp(argv[1], "as")) {
++                              as = argv[2];
++                      }
++              } else {
++
++                      stream->write_function(stream, "-USAGE: %s\n", SHOW_SYNTAX);
++                      goto end;
++              }
+       }
+       holder.stream = stream;
+       holder.count = 0;
+-      if (holder.http) {
++      if (html) {
++              nl = holder.format->nl;
++              if (!as || strcasecmp(as,"xml")) {
++                      /* don't bother cli with heading and timestamp */
++                      stream->write_function(stream, "<h1>FreeSWITCH %s %s</h1>\n", command, holder.justcount?"(count)":"");
++                      stream->write_function(stream, "%s%s", switch_event_get_header(stream->param_event,"Event-Date-Local"), nl);
++              }
+               holder.stream->write_function(holder.stream, "<table cellpadding=1 cellspacing=4 border=1>\n");
+       }
+@@ -4687,7 +4725,7 @@ SWITCH_STANDARD_API(show_function)
+               holder.delim = ",";
+       }
+-      /* switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "SQL: %s.\n", sql); */
++      /* switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "SQL: %s\n", sql); */
+       if (!strcasecmp(as, "delim") || !strcasecmp(as, "csv")) {
+               if (zstr(holder.delim)) {
+@@ -4696,25 +4734,25 @@ SWITCH_STANDARD_API(show_function)
+                       }
+               }
+               switch_cache_db_execute_sql_callback(db, sql, show_callback, &holder, &errmsg);
+-              if (holder.http) {
++              if (html) {
+                       holder.stream->write_function(holder.stream, "</table>");
+               }
+               if (errmsg) {
+-                      stream->write_function(stream, "-ERR SQL Error [%s]\n", errmsg);
++                      stream->write_function(stream, "-ERR SQL error [%s]\n", errmsg);
+                       free(errmsg);
+                       errmsg = NULL;
+               } else if (help) {
+                       if (holder.count == 0)
+-                              stream->write_function(stream, "-ERR No such command.\n");
++                              stream->write_function(stream, "-ERR No such command\n");
+               } else {
+-                      stream->write_function(stream, "\n%u total.\n", holder.count);
++                      stream->write_function(stream, "%s%u total.%s", nl, holder.count, nl);
+               }
+       } else if (!strcasecmp(as, "xml")) {
+               switch_cache_db_execute_sql_callback(db, sql, show_as_xml_callback, &holder, &errmsg);
+               if (errmsg) {
+-                      stream->write_function(stream, "-ERR SQL Error [%s]\n", errmsg);
++                      stream->write_function(stream, "-ERR SQL error [%s]\n", errmsg);
+                       free(errmsg);
+                       errmsg = NULL;
+               }
+@@ -4778,6 +4816,7 @@ SWITCH_STANDARD_API(show_function)
+       } else {
+               holder.stream->write_function(holder.stream, "-ERR Cannot find format %s\n", as);
++              goto end;
+       }
+   end:
+@@ -4831,7 +4870,7 @@ SWITCH_STANDARD_API(uuid_session_heartbeat_function)
+       }
+       if (!(l_session = switch_core_session_locate(argv[0]))) {
+-              stream->write_function(stream, "-ERR Usage: cannot locate session.\n");
++              stream->write_function(stream, "-ERR Cannot locate session. USAGE: uuid_session_heartbeat %s\n", HEARTBEAT_SYNTAX);
+               return SWITCH_STATUS_SUCCESS;
+       }
+@@ -4870,7 +4909,7 @@ SWITCH_STANDARD_API(uuid_session_heartbeat_function)
+   error:
+       switch_safe_free(mycmd);
+-      stream->write_function(stream, "-ERR Usage: uuid_session_heartbeat %s", HEARTBEAT_SYNTAX);
++      stream->write_function(stream, "-USAGE: uuid_session_heartbeat %s\n", HEARTBEAT_SYNTAX);
+       return SWITCH_STATUS_SUCCESS;
+ }
+@@ -4883,7 +4922,7 @@ SWITCH_STANDARD_API(uuid_flush_dtmf_function)
+               switch_core_session_rwunlock(fsession);
+               stream->write_function(stream, "+OK\n");
+       } else {
+-              stream->write_function(stream, "-ERR no such session\n");
++              stream->write_function(stream, "-ERR No such session\n");
+       }
+       return SWITCH_STATUS_SUCCESS;
+@@ -4937,7 +4976,7 @@ SWITCH_STANDARD_API(uuid_setvar_function)
+                               switch_core_session_rwunlock(psession);
+                       } else {
+-                              stream->write_function(stream, "-ERR No Such Channel!\n");
++                              stream->write_function(stream, "-ERR No such channel!\n");
+                       }
+                       goto done;
+               }
+@@ -4991,7 +5030,7 @@ SWITCH_STANDARD_API(uuid_setvar_multi_function)
+                               goto done;
+                       }
+               } else {
+-                      stream->write_function(stream, "-ERR No Such Channel!\n");
++                      stream->write_function(stream, "-ERR No such channel!\n");
+               }
+       }
+@@ -5050,7 +5089,7 @@ SWITCH_STANDARD_API(uuid_getvar_function)
+                               switch_core_session_rwunlock(psession);
+                       } else {
+-                              stream->write_function(stream, "-ERR No Such Channel!\n");
++                              stream->write_function(stream, "-ERR No such channel!\n");
+                       }
+                       goto done;
+               }
+@@ -5080,21 +5119,21 @@ SWITCH_STANDARD_API(uuid_fileman_function)
+                       if ((psession = switch_core_session_locate(uuid))) {
+                               //switch_channel_t *channel;
+                               switch_file_handle_t *fh = NULL;
+-                              
++
+                               //channel = switch_core_session_get_channel(psession);
+-                              
++
+                               if (switch_ivr_get_file_handle(psession, &fh) == SWITCH_STATUS_SUCCESS) {
+                                       switch_ivr_process_fh(psession, cmd, fh);
+                                       switch_ivr_release_file_handle(psession, &fh);
+                                       stream->write_function(stream, "+OK\n");
+                               } else {
+-                                      stream->write_function(stream, "-ERR No File Handle!\n");
++                                      stream->write_function(stream, "-ERR No file handle!\n");
+                               }
+                               switch_core_session_rwunlock(psession);
+                       } else {
+-                              stream->write_function(stream, "-ERR No Such Channel!\n");
++                              stream->write_function(stream, "-ERR No such channel!\n");
+                       }
+                       goto done;
+               }
+@@ -5205,7 +5244,7 @@ SWITCH_STANDARD_API(uuid_recv_dtmf_function)
+ SWITCH_STANDARD_API(uuid_dump_function)
+ {
+       switch_core_session_t *psession = NULL;
+-      char *mycmd = NULL, *argv[4] = { 0 };
++      char *mycmd = NULL, *argv[2] = { 0 };
+       int argc = 0;
+       if (!zstr(cmd) && (mycmd = strdup(cmd))) {
+@@ -5241,7 +5280,7 @@ SWITCH_STANDARD_API(uuid_dump_function)
+                                       } else if (!strcasecmp(format, "json")) {
+                                               switch_event_serialize_json(event, &buf);
+                                       } else {
+-                                              switch_event_serialize(event, &buf, strcasecmp(format, "plain"));
++                                              switch_event_serialize(event, &buf, (switch_bool_t) strcasecmp(format, "plain"));
+                                       }
+                                       switch_assert(buf);
+@@ -5255,7 +5294,7 @@ SWITCH_STANDARD_API(uuid_dump_function)
+                               switch_core_session_rwunlock(psession);
+                       } else {
+-                              stream->write_function(stream, "-ERR No Such Channel!\n");
++                              stream->write_function(stream, "-ERR No such channel!\n");
+                       }
+                       goto done;
+               }
+@@ -5366,7 +5405,7 @@ SWITCH_STANDARD_API(strftime_tz_api_function)
+               if ((format = strchr(mycmd, ' '))) {
+                       *format++ = '\0';
+-              
++
+                       if (format && (p = strchr(format, '|'))) {
+                               *p++ = '\0';
+                               when = atol(format);
+@@ -5378,11 +5417,11 @@ SWITCH_STANDARD_API(strftime_tz_api_function)
+       if (zstr(format)) {
+               format = "%Y-%m-%d";
+       }
+-      
++
+       if (format && switch_strftime_tz(tz_name, format, date, sizeof(date), when * 1000000) == SWITCH_STATUS_SUCCESS) {       /* The lookup of the zone may fail. */
+               stream->write_function(stream, "%s", date);
+       } else {
+-              stream->write_function(stream, "-ERR Invalid Timezone/Format\n");
++              stream->write_function(stream, "-ERR Invalid timezone/format\n");
+       }
+       switch_safe_free(mycmd);
+@@ -5494,7 +5533,7 @@ SWITCH_STANDARD_API(uuid_loglevel)
+                       stream->write_function(stream, "+OK\n");
+                       switch_core_session_rwunlock(tsession);
+               } else {
+-                      stream->write_function(stream, "-ERR No Such Channel %s!\n", uuid);
++                      stream->write_function(stream, "-ERR No such channel %s!\n", uuid);
+               }
+       }
+@@ -5530,7 +5569,7 @@ SWITCH_STANDARD_API(limit_usage_function)
+               switch_assert(mydata);
+               argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
+       }
+-      
++
+       /* backwards compat version */
+       if (argc == 2) {
+               switch_safe_free(mydata);
+@@ -5541,7 +5580,7 @@ SWITCH_STANDARD_API(limit_usage_function)
+               argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
+               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Using deprecated limit api: Please specify backend.  Defaulting to 'db' backend.\n");
+       }
+-      
++
+       if (argc < 3) {
+               stream->write_function(stream, "USAGE: limit_usage %s\n", LIMIT_USAGE_SYNTAX);
+               goto end;
+@@ -5552,9 +5591,9 @@ SWITCH_STANDARD_API(limit_usage_function)
+                       dorate = SWITCH_TRUE;
+               }
+       }
+-      
++
+       count = switch_limit_usage(argv[0], argv[1], argv[2], &rcount);
+-      
++
+       if (dorate == SWITCH_TRUE) {
+               stream->write_function(stream, "%d/%d", count, rcount);
+       } else {
+@@ -5601,7 +5640,7 @@ SWITCH_STANDARD_API(limit_status_function)
+               stream->write_function(stream, "USAGE: limit_status %s\n", LIMIT_STATUS_SYNTAX);
+               goto end;
+       }
+-      
++
+       ret = switch_limit_status(argv[0]);
+       stream->write_function(stream, "%s", ret);
+@@ -5631,7 +5670,7 @@ SWITCH_STANDARD_API(limit_reset_function)
+               stream->write_function(stream, "USAGE: limit_reset %s\n", LIMIT_RESET_SYNTAX);
+               goto end;
+       }
+-      
++
+       ret = switch_limit_reset(argv[0]);
+       stream->write_function(stream, "%s", (ret == SWITCH_STATUS_SUCCESS) ? "+OK" : "-ERR");
+@@ -5661,7 +5700,7 @@ SWITCH_STANDARD_API(uuid_limit_function)
+               switch_assert(mydata);
+               argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
+       }
+-      
++
+       if (argc < 4) {
+               stream->write_function(stream, "USAGE: uuid_limit %s\n", LIMIT_SYNTAX);
+               goto end;
+@@ -5697,7 +5736,7 @@ SWITCH_STANDARD_API(uuid_limit_function)
+       sess = switch_core_session_locate(argv[0]);
+       if (!sess) {
+-              stream->write_function(stream, "-ERR did not find a session with uuid %s\n", argv[0]);
++              stream->write_function(stream, "-ERR Cannot find session with uuid %s\n", argv[0]);
+               goto end;
+       }
+@@ -5738,7 +5777,7 @@ SWITCH_STANDARD_API(uuid_limit_release_function)
+               switch_assert(mydata);
+               argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
+       }
+-      
++
+       if (argc < 2) {
+               stream->write_function(stream, "USAGE: uuid_limit_release %s\n", LIMIT_RELEASE_SYNTAX);
+               goto end;
+@@ -5754,14 +5793,14 @@ SWITCH_STANDARD_API(uuid_limit_release_function)
+       sess = switch_core_session_locate(argv[0]);
+       if (!sess) {
+-              stream->write_function(stream, "-ERR did not find a session with uuid %s\n", argv[0]);
++              stream->write_function(stream, "-ERR Cannot find session with uuid %s\n", argv[0]);
+               goto end;
+       }
+       switch_limit_release(argv[1], sess, realm, resource);
+       switch_core_session_rwunlock(sess);
+-      
++
+       stream->write_function(stream, "+OK");
+ end:
+@@ -5782,7 +5821,7 @@ SWITCH_STANDARD_API(limit_interval_reset_function)
+               switch_assert(mydata);
+               argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
+       }
+-      
++
+       if (argc < 3) {
+               stream->write_function(stream, "USAGE: limit_interval_reset %s\n", LIMIT_INTERVAL_RESET_SYNTAX);
+               goto end;
+@@ -5876,23 +5915,23 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_commands_load)
+       switch_thread_rwlock_create(&bgapi_rwlock, pool);
+       switch_mutex_init(&reload_mutex, SWITCH_MUTEX_NESTED, pool);
+-      
+-      SWITCH_ADD_API(commands_api_interface, "acl", "compare an ip to an acl list", acl_function, "<ip> <list_name>");
++
++      SWITCH_ADD_API(commands_api_interface, "acl", "Compare an ip to an acl list", acl_function, "<ip> <list_name>");
+       SWITCH_ADD_API(commands_api_interface, "alias", "Alias", alias_function, ALIAS_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "banner", "Returns the system banner", banner_function, "");
++      SWITCH_ADD_API(commands_api_interface, "banner", "Return the system banner", banner_function, "");
+       SWITCH_ADD_API(commands_api_interface, "bgapi", "Execute an api command in a thread", bgapi_function, "<command>[ <arg>]");
+       SWITCH_ADD_API(commands_api_interface, "bg_system", "Execute a system command in the background", bg_system_function, SYSTEM_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "break", "Break", break_function, BREAK_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "break", "uuid_break", break_function, BREAK_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "complete", "Complete", complete_function, COMPLETE_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "cond", "Eval a conditional", cond_function, "<expr> ? <true val> : <false val>");
++      SWITCH_ADD_API(commands_api_interface, "cond", "Evaluate a conditional", cond_function, "<expr> ? <true val> : <false val>");
+       SWITCH_ADD_API(commands_api_interface, "console_complete", "", console_complete_function, "<line>");
+       SWITCH_ADD_API(commands_api_interface, "console_complete_xml", "", console_complete_xml_function, "<line>");
+       SWITCH_ADD_API(commands_api_interface, "create_uuid", "Create a uuid", uuid_function, UUID_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "db_cache", "db cache management", db_cache_function, "status");
+-      SWITCH_ADD_API(commands_api_interface, "domain_exists", "check if a domain exists", domain_exists_function, "<domain>");
+-      SWITCH_ADD_API(commands_api_interface, "echo", "echo", echo_function, "<data>");
+-      SWITCH_ADD_API(commands_api_interface, "escape", "escape a string", escape_function, "<data>");
++      SWITCH_ADD_API(commands_api_interface, "db_cache", "Manage db cache", db_cache_function, "status");
++      SWITCH_ADD_API(commands_api_interface, "domain_exists", "Check if a domain exists", domain_exists_function, "<domain>");
++      SWITCH_ADD_API(commands_api_interface, "echo", "Echo", echo_function, "<data>");
++      SWITCH_ADD_API(commands_api_interface, "escape", "Escape a string", escape_function, "<data>");
+       SWITCH_ADD_API(commands_api_interface, "eval", "eval (noop)", eval_function, "[uuid:<uuid> ]<expression>");
+       SWITCH_ADD_API(commands_api_interface, "expand", "expand vars and execute", expand_function, "[uuid:<uuid> ]<cmd> <args>");
+       SWITCH_ADD_API(commands_api_interface, "find_user_xml", "find a user", find_user_function, "<key> <user> <domain>");
+@@ -5904,104 +5943,103 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_commands_load)
+       SWITCH_ADD_API(commands_api_interface, "global_setvar", "global_setvar", global_setvar_function, GLOBAL_SETVAR_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "group_call", "Generate a dial string to call a group", group_call_function, "<group>[@<domain>]");
+       SWITCH_ADD_API(commands_api_interface, "help", "Show help for all the api commands", help_function, "");
+-      SWITCH_ADD_API(commands_api_interface, "host_lookup", "host_lookup", host_lookup_function, "<hostname>");
+-      SWITCH_ADD_API(commands_api_interface, "hostname", "Returns the system hostname", hostname_api_function, "");
+-      SWITCH_ADD_API(commands_api_interface, "switchname", "Returns the switch name", switchname_api_function, "");
++      SWITCH_ADD_API(commands_api_interface, "host_lookup", "Lookup host", host_lookup_function, "<hostname>");
++      SWITCH_ADD_API(commands_api_interface, "hostname", "Return the system hostname", hostname_api_function, "");
++      SWITCH_ADD_API(commands_api_interface, "switchname", "Return the switch name", switchname_api_function, "");
+       SWITCH_ADD_API(commands_api_interface, "hupall", "hupall", hupall_api_function, "<cause> [<var> <value>]");
+-      SWITCH_ADD_API(commands_api_interface, "in_group", "determine if a user is in a group", in_group_function, "<user>[@<domain>] <group_name>");
+-      SWITCH_ADD_API(commands_api_interface, "is_lan_addr", "see if an ip is a lan addr", lan_addr_function, "<ip>");
+-      SWITCH_ADD_API(commands_api_interface, "limit_usage", "Gets the usage count of a limited resource", limit_usage_function, "<backend> <realm> <id>");
++      SWITCH_ADD_API(commands_api_interface, "in_group", "Determine if a user is in a group", in_group_function, "<user>[@<domain>] <group_name>");
++      SWITCH_ADD_API(commands_api_interface, "is_lan_addr", "See if an ip is a lan addr", lan_addr_function, "<ip>");
++      SWITCH_ADD_API(commands_api_interface, "limit_usage", "Get the usage count of a limited resource", limit_usage_function, "<backend> <realm> <id>");
+       SWITCH_ADD_API(commands_api_interface, "limit_hash_usage", "Deprecated: gets the usage count of a limited resource", limit_hash_usage_function, "<realm> <id>");
+-      SWITCH_ADD_API(commands_api_interface, "limit_status", "Gets the status of a limit backend", limit_status_function, "<backend>");
++      SWITCH_ADD_API(commands_api_interface, "limit_status", "Get the status of a limit backend", limit_status_function, "<backend>");
+       SWITCH_ADD_API(commands_api_interface, "limit_reset", "Reset the counters of a limit backend", limit_reset_function, "<backend>");
+       SWITCH_ADD_API(commands_api_interface, "limit_interval_reset", "Reset the interval counter for a limited resource", limit_interval_reset_function, LIMIT_INTERVAL_RESET_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "list_users", "List Users configured in Directory", list_users_function, LIST_USERS_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "load", "Load Module", load_function, LOAD_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "log", "Log", log_function, LOG_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "md5", "md5", md5_function, "<data>");
+-      SWITCH_ADD_API(commands_api_interface, "module_exists", "check if module exists", module_exists_function, "<module>");
+-      SWITCH_ADD_API(commands_api_interface, "msleep", "sleep N milliseconds", msleep_function, "<milliseconds>");
+-      SWITCH_ADD_API(commands_api_interface, "nat_map", "nat_map", nat_map_function, "[status|republish|reinit] | [add|del] <port> [tcp|udp] [static]");
+-      SWITCH_ADD_API(commands_api_interface, "originate", "Originate a Call", originate_function, ORIGINATE_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "pause", "Pause", pause_function, PAUSE_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "regex", "Eval a regex", regex_function, "<data>|<pattern>[|<subst string>]");
+-      SWITCH_ADD_API(commands_api_interface, "reloadacl", "Reload ACL", reload_acl_function, "");
+-      SWITCH_ADD_API(commands_api_interface, "reload", "Reload Module", reload_function, UNLOAD_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "md5", "Return md5 hash", md5_function, "<data>");
++      SWITCH_ADD_API(commands_api_interface, "module_exists", "Check if module exists", module_exists_function, "<module>");
++      SWITCH_ADD_API(commands_api_interface, "msleep", "Sleep N milliseconds", msleep_function, "<milliseconds>");
++      SWITCH_ADD_API(commands_api_interface, "nat_map", "Manage NAT", nat_map_function, "[status|republish|reinit] | [add|del] <port> [tcp|udp] [static]");
++      SWITCH_ADD_API(commands_api_interface, "originate", "Originate a call", originate_function, ORIGINATE_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "pause", "Pause media on a channel", pause_function, PAUSE_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "regex", "Evaluate a regex", regex_function, "<data>|<pattern>[|<subst string>]");
++      SWITCH_ADD_API(commands_api_interface, "reloadacl", "Reload XML", reload_acl_function, "");
++      SWITCH_ADD_API(commands_api_interface, "reload", "Reload module", reload_function, UNLOAD_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "reloadxml", "Reload XML", reload_xml_function, "");
+-      SWITCH_ADD_API(commands_api_interface, "replace", "replace a string", replace_function, "<data>|<string1>|<string2>");
++      SWITCH_ADD_API(commands_api_interface, "replace", "Replace a string", replace_function, "<data>|<string1>|<string2>");
+       SWITCH_ADD_API(commands_api_interface, "say_string", "", say_string_function, SAY_STRING_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "sched_api", "Schedule an api command", sched_api_function, SCHED_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "sched_broadcast", "Schedule a broadcast event to a running call", sched_broadcast_function,
+-                                 SCHED_BROADCAST_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "sched_del", "Delete a Scheduled task", sched_del_function, "<task_id>|<group_id>");
++      SWITCH_ADD_API(commands_api_interface, "sched_broadcast", "Schedule a broadcast event to a running call", sched_broadcast_function, SCHED_BROADCAST_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "sched_del", "Delete a scheduled task", sched_del_function, "<task_id>|<group_id>");
+       SWITCH_ADD_API(commands_api_interface, "sched_hangup", "Schedule a running call to hangup", sched_hangup_function, SCHED_HANGUP_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "sched_transfer", "Schedule a transfer for a running call", sched_transfer_function, SCHED_TRANSFER_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "show", "Show", show_function, SHOW_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "show", "Show various reports", show_function, SHOW_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "sql_escape", "Escape a string to prevent sql injection", sql_escape, SQL_ESCAPE_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "status", "status", status_function, "");
+-      SWITCH_ADD_API(commands_api_interface, "strftime_tz", "strftime_tz", strftime_tz_api_function, "<Timezone_name> [<epoch>|][format string]");
+-      SWITCH_ADD_API(commands_api_interface, "stun", "stun", stun_function, "<stun_server>[:port]");
++      SWITCH_ADD_API(commands_api_interface, "status", "Show current status", status_function, "");
++      SWITCH_ADD_API(commands_api_interface, "strftime_tz", "Display formatted time of timezone", strftime_tz_api_function, "<timezone_name> [<epoch>|][format string]");
++      SWITCH_ADD_API(commands_api_interface, "stun", "Execute STUN lookup", stun_function, "<stun_server>[:port]");
+       SWITCH_ADD_API(commands_api_interface, "system", "Execute a system command", system_function, SYSTEM_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "time_test", "time_test", time_test_function, "<mss> [count]");
+-      SWITCH_ADD_API(commands_api_interface, "timer_test", "timer_test", timer_test_function, TIMER_TEST_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "tone_detect", "Start Tone Detection on a channel", tone_detect_session_function, TONE_DETECT_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "unload", "Unload Module", unload_function, UNLOAD_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "time_test", "Show time jitter", time_test_function, "<mss> [count]");
++      SWITCH_ADD_API(commands_api_interface, "timer_test", "Exercise FS timer", timer_test_function, TIMER_TEST_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "tone_detect", "Start tone detection on a channel", tone_detect_session_function, TONE_DETECT_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "unload", "Unload module", unload_function, UNLOAD_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "unsched_api", "Unschedule an api command", unsched_api_function, UNSCHED_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "reg_url", "", reg_url_function, "<user>@<realm>");
+-      SWITCH_ADD_API(commands_api_interface, "url_decode", "url decode a string", url_decode_function, "<string>");
+-      SWITCH_ADD_API(commands_api_interface, "url_encode", "url encode a string", url_encode_function, "<string>");
+-      SWITCH_ADD_API(commands_api_interface, "user_data", "find user data", user_data_function, "<user>@<domain> [var|param|attr] <name>");
++      SWITCH_ADD_API(commands_api_interface, "url_decode", "Url decode a string", url_decode_function, "<string>");
++      SWITCH_ADD_API(commands_api_interface, "url_encode", "Url encode a string", url_encode_function, "<string>");
++      SWITCH_ADD_API(commands_api_interface, "user_data", "Find user data", user_data_function, "<user>@<domain> [var|param|attr] <name>");
+       SWITCH_ADD_API(commands_api_interface, "uuid_early_ok", "stop ignoring early media", uuid_early_ok_function, "<uuid>");
+-      SWITCH_ADD_API(commands_api_interface, "user_exists", "find a user", user_exists_function, "<key> <user> <domain>");
++      SWITCH_ADD_API(commands_api_interface, "user_exists", "Find a user", user_exists_function, "<key> <user> <domain>");
+       SWITCH_ADD_API(commands_api_interface, "uuid_answer", "answer", uuid_answer_function, "<uuid>");
+       SWITCH_ADD_API(commands_api_interface, "uuid_audio", "uuid_audio", session_audio_function, AUDIO_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_break", "Break", break_function, BREAK_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_bridge", "uuid_bridge", uuid_bridge_function, "");
+-      SWITCH_ADD_API(commands_api_interface, "uuid_broadcast", "broadcast", uuid_broadcast_function, BROADCAST_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_break", "Break out of media sent to channel", break_function, BREAK_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_bridge", "Bridge call legs", uuid_bridge_function, "");
++      SWITCH_ADD_API(commands_api_interface, "uuid_broadcast", "Execute dialplan application", uuid_broadcast_function, BROADCAST_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "uuid_buglist", "List media bugs on a session", uuid_buglist_function, BUGLIST_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "uuid_chat", "Send a chat message", uuid_chat, UUID_CHAT_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_debug_audio", "debug audio", uuid_debug_audio_function, DEBUG_AUDIO_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_debug_audio", "Debug audio", uuid_debug_audio_function, DEBUG_AUDIO_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "uuid_deflect", "Send a deflect", uuid_deflect, UUID_DEFLECT_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_displace", "session displace", session_displace_function, "<uuid> [start|stop] <path> [<limit>] [mux]");
+-      SWITCH_ADD_API(commands_api_interface, "uuid_display", "change display", uuid_display_function, DISPLAY_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_dump", "uuid_dump", uuid_dump_function, DUMP_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_exists", "see if a uuid exists", uuid_exists_function, EXISTS_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_fileman", "uuid_fileman", uuid_fileman_function, FILEMAN_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_displace", "Displace audio", session_displace_function, "<uuid> [start|stop] <path> [<limit>] [mux]");
++      SWITCH_ADD_API(commands_api_interface, "uuid_display", "Update phone display", uuid_display_function, DISPLAY_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_dump", "Dump session vars", uuid_dump_function, DUMP_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_exists", "Check if a uuid exists", uuid_exists_function, EXISTS_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_fileman", "Manage session audio", uuid_fileman_function, FILEMAN_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "uuid_flush_dtmf", "Flush dtmf on a given uuid", uuid_flush_dtmf_function, "<uuid>");
+-      SWITCH_ADD_API(commands_api_interface, "uuid_getvar", "uuid_getvar", uuid_getvar_function, GETVAR_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_hold", "hold", uuid_hold_function, HOLD_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_kill", "Kill Channel", kill_function, KILL_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_getvar", "Get a variable from a channel", uuid_getvar_function, GETVAR_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_hold", "Place call on hold", uuid_hold_function, HOLD_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_kill", "Kill channel", kill_function, KILL_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "uuid_send_message", "Send MESSAGE to the endpoint", uuid_send_message_function, SEND_MESSAGE_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "uuid_send_info", "Send info to the endpoint", uuid_send_info_function, INFO_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "uuid_video_refresh", "Send video refresh.", uuid_video_refresh_function, VIDEO_REFRESH_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_outgoing_answer", "Answer Outgoing Channel", outgoing_answer_function, OUTGOING_ANSWER_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_limit", "Increase limit resource", uuid_limit_function, LIMIT_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_outgoing_answer", "Answer outgoing channel", outgoing_answer_function, OUTGOING_ANSWER_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_limit", "Increase limit resource", uuid_limit_function, LIMIT_SYNTAX);     
++      SWITCH_ADD_API(commands_api_interface, "uuid_limit_release", "Release limit resource", uuid_limit_release_function, LIMIT_RELEASE_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "uuid_limit_release", "Release limit resource", uuid_limit_release_function, LIMIT_RELEASE_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_loglevel", "set loglevel on session", uuid_loglevel, UUID_LOGLEVEL_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_media", "media", uuid_media_function, MEDIA_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_media_reneg", "media negotiation", uuid_media_neg_function, MEDIA_RENEG_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_park", "Park Channel", park_function, PARK_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_phone_event", "Send and event to the phone", uuid_phone_event_function, PHONE_EVENT_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_loglevel", "Set loglevel on session", uuid_loglevel, UUID_LOGLEVEL_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_media", "Reinvite FS in or out of media path", uuid_media_function, MEDIA_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_media_reneg", "Media negotiation", uuid_media_neg_function, MEDIA_RENEG_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_park", "Park channel", park_function, PARK_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_pause", "Pause media on a channel", pause_function, PAUSE_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_phone_event", "Send an event to the phone", uuid_phone_event_function, PHONE_EVENT_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "uuid_pre_answer", "pre_answer", uuid_pre_answer_function, "<uuid>");
+       SWITCH_ADD_API(commands_api_interface, "uuid_preprocess", "Pre-process Channel", preprocess_function, PREPROCESS_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_record", "session record", session_record_function, SESS_REC_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_record", "Record session audio", session_record_function, SESS_REC_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "uuid_recovery_refresh", "Send a recovery_refresh", uuid_recovery_refresh, UUID_RECOVERY_REFRESH_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_recv_dtmf", "receive dtmf digits", uuid_recv_dtmf_function, UUID_RECV_DTMF_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_send_dtmf", "send dtmf digits", uuid_send_dtmf_function, UUID_SEND_DTMF_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_recv_dtmf", "Receive dtmf digits", uuid_recv_dtmf_function, UUID_RECV_DTMF_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_send_dtmf", "Send dtmf digits", uuid_send_dtmf_function, UUID_SEND_DTMF_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "uuid_session_heartbeat", "uuid_session_heartbeat", uuid_session_heartbeat_function, HEARTBEAT_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_setvar_multi", "uuid_setvar_multi", uuid_setvar_multi_function, SETVAR_MULTI_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_setvar", "uuid_setvar", uuid_setvar_function, SETVAR_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_setvar_multi", "Set multiple variables", uuid_setvar_multi_function, SETVAR_MULTI_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_setvar", "Set a variable", uuid_setvar_function, SETVAR_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "uuid_transfer", "Transfer a session", transfer_function, TRANSFER_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "uuid_dual_transfer", "Transfer a session and its partner", dual_transfer_function, DUAL_TRANSFER_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "uuid_simplify", "Try to cut out of a call path / attended xfer", uuid_simplify_function, SIMPLIFY_SYNTAX);
+-      SWITCH_ADD_API(commands_api_interface, "uuid_jitterbuffer", "Try to cut out of a call path / attended xfer", 
+-                                 uuid_jitterbuffer_function, JITTERBUFFER_SYNTAX);
++      SWITCH_ADD_API(commands_api_interface, "uuid_jitterbuffer", "uuid_jitterbuffer", uuid_jitterbuffer_function, JITTERBUFFER_SYNTAX);
+       SWITCH_ADD_API(commands_api_interface, "uuid_zombie_exec", "Set zombie_exec flag on the specified uuid", uuid_zombie_exec_function, "<uuid>");
+-      SWITCH_ADD_API(commands_api_interface, "xml_flush_cache", "clear xml cache", xml_flush_function, "<id> <key> <val>");
+-      SWITCH_ADD_API(commands_api_interface, "xml_locate", "find some xml", xml_locate_function, "[root | <section> <tag> <tag_attr_name> <tag_attr_val>]");
++      SWITCH_ADD_API(commands_api_interface, "xml_flush_cache", "Clear xml cache", xml_flush_function, "<id> <key> <val>");
++      SWITCH_ADD_API(commands_api_interface, "xml_locate", "Find some xml", xml_locate_function, "[root | <section> <tag> <tag_attr_name> <tag_attr_val>]");
+       SWITCH_ADD_API(commands_api_interface, "xml_wrap", "Wrap another api command in xml", xml_wrap_api_function, "<command> <args>");
+-      SWITCH_ADD_API(commands_api_interface, "file_exists", "check if a file exists on server", file_exists_function, "<file>");
+-
++      SWITCH_ADD_API(commands_api_interface, "file_exists", "Check if a file exists on server", file_exists_function, "<file>");
+       switch_console_set_complete("add alias add");
+       switch_console_set_complete("add alias del");
+@@ -6086,6 +6124,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_commands_load)
+       switch_console_set_complete("add show nat_map");
+       switch_console_set_complete("add show registrations");
+       switch_console_set_complete("add show say");
++      switch_console_set_complete("add show status");
+       switch_console_set_complete("add show timer");
+       switch_console_set_complete("add shutdown");
+       switch_console_set_complete("add sql_escape");
+@@ -6151,18 +6190,17 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_commands_load)
+       switch_console_set_complete("add ...");
+       switch_console_set_complete("add file_exists");
+-
+       /* indicate that the module should continue to be loaded */
+       return SWITCH_STATUS_NOUNLOAD;
+ }
+ /* For Emacs:
+- * Local Variables:
+- * mode:c
+- * indent-tabs-mode:t
+- * tab-width:4
+- * c-basic-offset:4
+- * End:
+- * For VIM:
+- * vim:set softtabstop=4 shiftwidth=4 tabstop=4:
+- */
++* Local Variables:
++* mode:c
++* indent-tabs-mode:t
++* tab-width:4
++* c-basic-offset:4
++* End:
++* For VIM:
++* vim:set softtabstop=4 shiftwidth=4 tabstop=4:
++*/
+diff --git a/src/mod/languages/mod_lua/mod_lua.cpp b/src/mod/languages/mod_lua/mod_lua.cpp
+index 0df0d8f..a409f05 100644
+--- a/src/mod/languages/mod_lua/mod_lua.cpp
++++ b/src/mod/languages/mod_lua/mod_lua.cpp
+@@ -483,10 +483,14 @@ SWITCH_STANDARD_API(lua_api_function)
+               }
+               if ((error = lua_parse_and_execute(L, mycmd))) {
+-                      if (switch_event_get_header(stream->param_event, "http-host")) {
+-                              stream->write_function(stream, "Content-Type: text/html\n\n<H2>Error Executing Script</H2>");
++                      char * http = switch_event_get_header(stream->param_event, "http-uri");
++                      if (http && (!strncasecmp(http, "/api/", 5) || !strncasecmp(http, "/webapi/", 8))) {
++                                      /* api -> fs api streams the Content-Type e.g. text/html or text/xml               */
++                                      /* api -> default Content-Type is text/plain                                                   */
++                                      /* webapi, txtapi -> Content-Type defined in mod_xmlrpc text/html resp. text/plain */
++                                      stream->write_function(stream, "<H2>Error Executing Script</H2>");
+                       } else {
+-                              stream->write_function(stream, "-ERR encountered\n");
++                              stream->write_function(stream, "-ERR Cannot execute script\n");
+                       }
+               }
+               lua_uninit(L);
+diff --git a/src/mod/xml_int/mod_xml_rpc/Makefile b/src/mod/xml_int/mod_xml_rpc/Makefile
+index b4890d5..cfc0276 100644
+--- a/src/mod/xml_int/mod_xml_rpc/Makefile
++++ b/src/mod/xml_int/mod_xml_rpc/Makefile
+@@ -1,7 +1,8 @@
+ BASE=../../../..
+ XMLRPC_DIR=$(BASE)/libs/xmlrpc-c
+-LOCAL_OBJS = $(XMLRPC_DIR)/lib/libutil/asprintf.o\
++LOCAL_OBJS = $(XMLRPC_DIR)/src/version.o\
++$(XMLRPC_DIR)/lib/libutil/asprintf.o\
+ $(XMLRPC_DIR)/lib/util/casprintf.o\
+ $(XMLRPC_DIR)/lib/abyss/src/channel.o\
+ $(XMLRPC_DIR)/lib/abyss/src/chanswitch.o\
+@@ -22,6 +23,7 @@ $(XMLRPC_DIR)/lib/libutil/make_printable.o\
+ $(XMLRPC_DIR)/lib/libutil/memblock.o\
+ $(XMLRPC_DIR)/src/method.o\
+ $(XMLRPC_DIR)/src/parse_value.o\
++$(XMLRPC_DIR)/src/parse_datetime.o\
+ $(XMLRPC_DIR)/src/registry.o\
+ $(XMLRPC_DIR)/src/resource.o\
+ $(XMLRPC_DIR)/lib/abyss/src/response.o\
+@@ -40,7 +42,8 @@ $(XMLRPC_DIR)/lib/abyss/src/token.o\
+ $(XMLRPC_DIR)/src/trace.o\
+ $(XMLRPC_DIR)/lib/abyss/src/trace.o\
+ $(XMLRPC_DIR)/lib/libutil/utf8.o\
+-$(XMLRPC_DIR)/src/version.o\
++$(XMLRPC_DIR)/lib/libutil/string_number.o\
++$(XMLRPC_DIR)/lib/libutil/base64.o\
+ $(XMLRPC_DIR)/lib/expat/xmlparse/xmlparse.o\
+ $(XMLRPC_DIR)/lib/expat/xmltok/xmlrole.o\
+ $(XMLRPC_DIR)/src/xmlrpc_array.o\
+@@ -59,14 +62,6 @@ $(XMLRPC_DIR)/src/xmlrpc_string.o\
+ $(XMLRPC_DIR)/src/xmlrpc_struct.o\
+ $(XMLRPC_DIR)/lib/expat/xmltok/xmltok.o
+-#XMLRPCLAS  = $(XMLRPC_DIR)/src/libxmlrpc.a 
+-#dont ask...
+-#XMLRPCLAS  = $(XMLRPC_DIR)/src/*.o
+-#XMLRPCLAS += $(XMLRPC_DIR)/src/libxmlrpc_server.so $(XMLRPC_DIR)/src/libxmlrpc.so
+-#XMLRPCLAS += $(XMLRPC_DIR)/src/libxmlrpc_server_abyss.so $(XMLRPC_DIR)/lib/abyss/src/libxmlrpc_abyss.so
+-#XMLRPCLAS += $(XMLRPC_DIR)/lib/expat/xmlparse/libxmlrpc_xmlparse.so $(XMLRPC_DIR)/lib/expat/xmltok/libxmlrpc_xmltok.so
+-#LOCAL_LIBADD =$(XMLRPCLAS)
+-
+ LOCAL_CFLAGS = -w -I$(XMLRPC_DIR)/lib/expat/xmlparse -I$(XMLRPC_DIR)/lib/expat/xmltok -I$(XMLRPC_DIR) -I$(XMLRPC_DIR)/include
+ LOCAL_CFLAGS+= -I$(XMLRPC_DIR)/lib/abyss/src -I$(XMLRPC_DIR)/lib/util/include -D_THREAD -D__EXTENSIONS__
+@@ -81,3 +76,15 @@ $(XMLRPC_DIR)/lib/expat/xmltok/xmltok.o: $(XMLRPC_DIR)/lib/expat/xmltok/nametab.
+ $(XMLRPC_DIR)/lib/expat/xmltok/nametab.h:
+       cd $(XMLRPC_DIR)/lib/expat/gennmtab && $(MAKE)
+       cd $(XMLRPC_DIR)/lib/expat/xmltok   && ../gennmtab/gennmtab > nametab.h
++
++$(XMLRPC_DIR)/src/version.o: $(XMLRPC_DIR)/version.h
++
++$(XMLRPC_DIR)/version.h:
++      cd $(XMLRPC_DIR) && $(MAKE) version.h
++      cd $(XMLRPC_DIR)/include && $(MAKE) xmlrpc-c/config.h
++
++local_clean:
++      cd $(XMLRPC_DIR) && $(MAKE) clean
++
++
++
+diff --git a/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.2010.vcxproj b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.2010.vcxproj
+index a57eaf0..f95e975 100644
+--- a/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.2010.vcxproj
++++ b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.2010.vcxproj
+@@ -1,167 +1,155 @@
+-<?xml version="1.0" encoding="utf-8"?>\r
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+-  <ItemGroup Label="ProjectConfigurations">\r
+-    <ProjectConfiguration Include="Debug|Win32">\r
+-      <Configuration>Debug</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Debug|x64">\r
+-      <Configuration>Debug</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release|Win32">\r
+-      <Configuration>Release</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release|x64">\r
+-      <Configuration>Release</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-  </ItemGroup>\r
+-  <PropertyGroup Label="Globals">\r
+-    <ProjectName>mod_xml_rpc</ProjectName>\r
+-    <ProjectGuid>{CBEC7225-0C21-4DA8-978E-1F158F8AD950}</ProjectGuid>\r
+-    <RootNamespace>mod_xml_rpc</RootNamespace>\r
+-    <Keyword>Win32Proj</Keyword>\r
+-  </PropertyGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+-    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+-    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+-    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+-    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+-    <CharacterSet>MultiByte</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+-  <ImportGroup Label="ExtensionSettings">\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="..\..\..\..\w32\module_release.props" />\r
+-    <Import Project="..\..\..\..\w32\curl.props" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="..\..\..\..\w32\module_debug.props" />\r
+-    <Import Project="..\..\..\..\w32\curl.props" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="..\..\..\..\w32\module_release.props" />\r
+-    <Import Project="..\..\..\..\w32\curl.props" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-    <Import Project="..\..\..\..\w32\module_debug.props" />\r
+-    <Import Project="..\..\..\..\w32\curl.props" />\r
+-  </ImportGroup>\r
+-  <PropertyGroup Label="UserMacros" />\r
+-  <PropertyGroup>\r
+-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+-  </PropertyGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+-    <ClCompile>\r
+-      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\abyss\src;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\util\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\Windows;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>ABYSS_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <PrecompiledHeader>\r
+-      </PrecompiledHeader>\r
+-    </ClCompile>\r
+-    <Link>\r
+-      <AdditionalLibraryDirectories>..\..\..\..\libs\xmlrpc\lib;..\..\..\..\libs\xmlrpc\lib\abyss\src\$(OutDir);..\..\..\..\libs\apr-util\xml\expat\lib\LibD;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+-      <DataExecutionPrevention>\r
+-      </DataExecutionPrevention>\r
+-    </Link>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\abyss\src;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\util\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\Windows;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>ABYSS_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <PrecompiledHeader>\r
+-      </PrecompiledHeader>\r
+-    </ClCompile>\r
+-    <Link>\r
+-      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+-      <DataExecutionPrevention>\r
+-      </DataExecutionPrevention>\r
+-      <TargetMachine>MachineX64</TargetMachine>\r
+-    </Link>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+-    <ClCompile>\r
+-      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\abyss\src;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\util\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\Windows;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>ABYSS_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <PrecompiledHeader>\r
+-      </PrecompiledHeader>\r
+-    </ClCompile>\r
+-    <Link>\r
+-      <AdditionalLibraryDirectories>..\..\..\..\libs\xmlrpc\lib;..\..\..\..\libs\xmlrpc\lib\abyss\src\$(OutDir);..\..\..\..\libs\apr-util\xml\expat\lib\LibR;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+-      <DataExecutionPrevention>\r
+-      </DataExecutionPrevention>\r
+-    </Link>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\abyss\src;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\util\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\Windows;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>ABYSS_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <PrecompiledHeader>\r
+-      </PrecompiledHeader>\r
+-    </ClCompile>\r
+-    <Link>\r
+-      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+-      <DataExecutionPrevention>\r
+-      </DataExecutionPrevention>\r
+-      <TargetMachine>MachineX64</TargetMachine>\r
+-    </Link>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemGroup>\r
+-    <ClCompile Include="mod_xml_rpc.c" />\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <ProjectReference Include="..\..\..\..\libs\win32\curl\curllib.2010.vcxproj">\r
+-      <Project>{87ee9da4-de1e-4448-8324-183c98dca588}</Project>\r
+-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+-    </ProjectReference>\r
+-    <ProjectReference Include="..\..\..\..\libs\xmlrpc-c\Windows\abyss.2010.vcxproj">\r
+-      <Project>{d2396dd7-7d38-473a-abb7-6f96d65ae1b9}</Project>\r
+-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+-    </ProjectReference>\r
+-    <ProjectReference Include="..\..\..\..\libs\xmlrpc-c\Windows\xmlparse.2010.vcxproj">\r
+-      <Project>{0d108721-eae8-4baf-8102-d8960ec93647}</Project>\r
+-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+-    </ProjectReference>\r
+-    <ProjectReference Include="..\..\..\..\libs\xmlrpc-c\Windows\xmlrpc.2010.vcxproj">\r
+-      <Project>{cee544a9-0303-44c2-8ece-efa7d7bcbbba}</Project>\r
+-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+-    </ProjectReference>\r
+-    <ProjectReference Include="..\..\..\..\libs\xmlrpc-c\Windows\xmltok.2010.vcxproj">\r
+-      <Project>{b535402e-38d2-4d54-8360-423acbd17192}</Project>\r
+-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+-    </ProjectReference>\r
+-    <ProjectReference Include="..\..\..\..\w32\Library\FreeSwitchCore.2010.vcxproj">\r
+-      <Project>{202d7a4e-760d-4d0e-afa1-d7459ced30ff}</Project>\r
+-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+-    </ProjectReference>\r
+-  </ItemGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+-  <ImportGroup Label="ExtensionTargets">\r
+-  </ImportGroup>\r
++<?xml version="1.0" encoding="utf-8"?>
++<Project DefaultTargets="Build" ToolsVersion="4.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="Debug|x64">
++      <Configuration>Debug</Configuration>
++      <Platform>x64</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Release|Win32">
++      <Configuration>Release</Configuration>
++      <Platform>Win32</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Release|x64">
++      <Configuration>Release</Configuration>
++      <Platform>x64</Platform>
++    </ProjectConfiguration>
++  </ItemGroup>
++  <PropertyGroup Label="Globals">
++    <ProjectName>mod_xml_rpc</ProjectName>
++    <ProjectGuid>{CBEC7225-0C21-4DA8-978E-1F158F8AD950}</ProjectGuid>
++    <RootNamespace>mod_xml_rpc</RootNamespace>
++    <Keyword>Win32Proj</Keyword>
++  </PropertyGroup>
++  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
++    <ConfigurationType>DynamicLibrary</ConfigurationType>
++    <CharacterSet>MultiByte</CharacterSet>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
++    <ConfigurationType>DynamicLibrary</ConfigurationType>
++    <CharacterSet>MultiByte</CharacterSet>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
++    <ConfigurationType>DynamicLibrary</ConfigurationType>
++    <CharacterSet>MultiByte</CharacterSet>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
++    <ConfigurationType>DynamicLibrary</ConfigurationType>
++    <CharacterSet>MultiByte</CharacterSet>
++  </PropertyGroup>
++  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
++  <ImportGroup Label="ExtensionSettings">
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++    <Import Project="..\..\..\..\w32\module_release.props" />
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++    <Import Project="..\..\..\..\w32\module_debug.props" />
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++    <Import Project="..\..\..\..\w32\module_release.props" />
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++    <Import Project="..\..\..\..\w32\module_debug.props" />
++  </ImportGroup>
++  <PropertyGroup Label="UserMacros" />
++  <PropertyGroup>
++    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
++  </PropertyGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
++    <ClCompile>
++      <AdditionalIncludeDirectories>$(SolutionDir)libs\xmlrpc-c\include;$(SolutionDir)libs\xmlrpc-c\lib\abyss\src;$(SolutionDir)libs\xmlrpc-c\lib\util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>ABYSS_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <PrecompiledHeader>
++      </PrecompiledHeader>
++    </ClCompile>
++    <Link>
++      <AdditionalLibraryDirectories>..\..\..\..\libs\xmlrpc\lib;..\..\..\..\libs\xmlrpc\lib\abyss\src\$(OutDir);..\..\..\..\libs\apr-util\xml\expat\lib\LibD;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <RandomizedBaseAddress>false</RandomizedBaseAddress>
++      <DataExecutionPrevention>
++      </DataExecutionPrevention>
++    </Link>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
++    <Midl>
++      <TargetEnvironment>X64</TargetEnvironment>
++    </Midl>
++    <ClCompile>
++      <AdditionalIncludeDirectories>$(SolutionDir)libs\xmlrpc-c\include;$(SolutionDir)libs\xmlrpc-c\lib\abyss\src;$(SolutionDir)libs\xmlrpc-c\lib\util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>ABYSS_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <PrecompiledHeader>
++      </PrecompiledHeader>
++    </ClCompile>
++    <Link>
++      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <RandomizedBaseAddress>false</RandomizedBaseAddress>
++      <DataExecutionPrevention>
++      </DataExecutionPrevention>
++      <TargetMachine>MachineX64</TargetMachine>
++    </Link>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
++    <ClCompile>
++      <AdditionalIncludeDirectories>$(SolutionDir)libs\xmlrpc-c\include;$(SolutionDir)libs\xmlrpc-c\lib\abyss\src;$(SolutionDir)libs\xmlrpc-c\lib\util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>ABYSS_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <PrecompiledHeader>
++      </PrecompiledHeader>
++    </ClCompile>
++    <Link>
++      <AdditionalLibraryDirectories>..\..\..\..\libs\xmlrpc\lib;..\..\..\..\libs\xmlrpc\lib\abyss\src\$(OutDir);..\..\..\..\libs\apr-util\xml\expat\lib\LibR;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <RandomizedBaseAddress>false</RandomizedBaseAddress>
++      <DataExecutionPrevention>
++      </DataExecutionPrevention>
++    </Link>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
++    <Midl>
++      <TargetEnvironment>X64</TargetEnvironment>
++    </Midl>
++    <ClCompile>
++      <AdditionalIncludeDirectories>$(SolutionDir)libs\xmlrpc-c\include;$(SolutionDir)libs\xmlrpc-c\lib\abyss\src;$(SolutionDir)libs\xmlrpc-c\lib\util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>ABYSS_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <PrecompiledHeader>
++      </PrecompiledHeader>
++    </ClCompile>
++    <Link>
++      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <RandomizedBaseAddress>false</RandomizedBaseAddress>
++      <DataExecutionPrevention>
++      </DataExecutionPrevention>
++      <TargetMachine>MachineX64</TargetMachine>
++    </Link>
++  </ItemDefinitionGroup>
++  <ItemGroup>
++    <ClCompile Include="mod_xml_rpc.c" />
++  </ItemGroup>
++  <ItemGroup>
++    <ProjectReference Include="..\..\..\..\libs\win32\xmlrpc-c\abyss.2010.vcxproj">
++      <Project>{d2396dd7-7d38-473a-abb7-6f96d65ae1b9}</Project>
++    </ProjectReference>
++    <ProjectReference Include="..\..\..\..\libs\win32\xmlrpc-c\xmlparse.2010.vcxproj">
++      <Project>{0d108721-eae8-4baf-8102-d8960ec93647}</Project>
++    </ProjectReference>
++    <ProjectReference Include="..\..\..\..\libs\win32\xmlrpc-c\xmlrpc.2010.vcxproj">
++      <Project>{cee544a9-0303-44c2-8ece-efa7d7bcbbba}</Project>
++    </ProjectReference>
++    <ProjectReference Include="..\..\..\..\libs\win32\xmlrpc-c\xmltok.2010.vcxproj">
++      <Project>{b535402e-38d2-4d54-8360-423acbd17192}</Project>
++    </ProjectReference>
++    <ProjectReference Include="..\..\..\..\w32\Library\FreeSwitchCore.2010.vcxproj">
++      <Project>{202d7a4e-760d-4d0e-afa1-d7459ced30ff}</Project>
++      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
++    </ProjectReference>
++  </ItemGroup>
++  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
++  <ImportGroup Label="ExtensionTargets">
++  </ImportGroup>
+ </Project>
+\ No newline at end of file
+diff --git a/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c
+index 9b20546..4489cfc 100644
+--- a/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c
++++ b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c
+@@ -1,4 +1,4 @@
+-/* 
++/*
+  * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
+  * Copyright (C) 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
+  *
+@@ -22,13 +22,38 @@
+  * the Initial Developer. All Rights Reserved.
+  *
+  * Contributor(s):
+- * 
++ *
+  * Anthony Minessale II <anthm@freeswitch.org>
+  * John Wehle <john@feith.com>
+- *
++ * Garmt Boekholt <garmt@cimico.com>
+  *
+  * mod_xml_rpc.c -- XML RPC
+  *
++ * embedded webserver for FS
++ * exposes fs api to web (and ajax, javascript, ...)
++ * supports GET/POST requests (as defined below)
++ * and similar XMLRPC format /RPC2 freeswitch.api and management.api
++ *
++ * usage:
++ * (1) http:/host:port/[txt|web|xml]api/fsapicommand[?arg[ arg]*][ &key=value[+&key=value]*]
++ *     e.g.  http:/host:port/api/show?calls &refresh=5+&weather=nice
++ * (2) http:/host:port/filepath - serves files from conf/htdocs
++ *
++ * NB:
++ * ad (1) - key/value pairs are propagated as event headers
++ *        - if &key=value is "&refresh=xx" - special feature: automatic refresh after xx sec (triggered by browser)
++ *          note that refresh works only
++ *                IF response content-type: text/html (i.e. "webapi" or "api")
++ *                AND fs api command created an event header HTTP-REFRESH before the first write_stream
++ *                NOTE if "api", fs api command has to overwrite content-type to be text/html i.s.o. text/plain (default)
++ *
++ *        - if api format is "api" mod_xml_rpc will automatically assume plain/text (so webunaware fs commands are rendered apropriately)
++ *        - xmlapi doesn't seem to be used, however if a fs api command renders xml, you can set the format type to xml
++ *          txtapi-text/plain or webapi-text/html surround xml with <pre> xml <pre/>
++ *        - typically fs api command arguments are encoded with UrlPathEncode (spaces -> %20), and k/v pairs are urlencoded (space -> +)
++ *
++ * ad (2)   ms ie may show extra empty lines when serving large txt files as ie has problems rendering content-type "plain/text"
++ *
+  */
+ #include <switch.h>
+ #include <switch_version.h>
+@@ -40,16 +65,17 @@
+ #include <xmlrpc-c/abyss.h>
+ #include <xmlrpc-c/server.h>
+ #include <xmlrpc-c/server_abyss.h>
+-#include "../../libs/xmlrpc-c/lib/abyss/src/token.h"
+-#include "http.h"
+-#include "session.h"
++#include <xmlrpc-c/base64_int.h>
++#include <../lib/abyss/src/token.h>
++#include <../lib/abyss/src/http.h>
++#include <../lib/abyss/src/session.h>
+ SWITCH_MODULE_LOAD_FUNCTION(mod_xml_rpc_load);
+ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_xml_rpc_shutdown);
+ SWITCH_MODULE_RUNTIME_FUNCTION(mod_xml_rpc_runtime);
+ SWITCH_MODULE_DEFINITION(mod_xml_rpc, mod_xml_rpc_load, mod_xml_rpc_shutdown, mod_xml_rpc_runtime);
+-static abyss_bool HTTPWrite(TSession * s, char *buffer, uint32_t len);
++static abyss_bool HTTPWrite(TSession * s, const char *buffer, const uint32_t len);
+ static struct {
+       uint16_t port;
+@@ -60,6 +86,7 @@ static struct {
+       char *default_domain;
+       switch_bool_t virtual_host;
+       TServer abyssServer;
++      xmlrpc_registry *registryP;
+ } globals;
+ SWITCH_DECLARE_GLOBAL_STRING_FUNC(set_global_realm, globals.realm);
+@@ -86,18 +113,20 @@ static switch_status_t do_config(void)
+                       char *var = (char *) switch_xml_attr_soft(param, "name");
+                       char *val = (char *) switch_xml_attr_soft(param, "value");
+-                      if (!strcasecmp(var, "auth-realm")) {
+-                              realm = val;
+-                      } else if (!strcasecmp(var, "auth-user")) {
+-                              user = val;
+-                      } else if (!strcasecmp(var, "auth-pass")) {
+-                              pass = val;
+-                      } else if (!strcasecmp(var, "http-port")) {
+-                              globals.port = (uint16_t) atoi(val);
+-                      } else if (!strcasecmp(var, "default-domain")) {
+-                              default_domain = val;
+-                      } else if (!strcasecmp(var, "virtual-host")) {
+-                              globals.virtual_host = switch_true(val);
++                      if (!zstr(var) && !zstr(val)) {
++                              if (!strcasecmp(var, "auth-realm")) {
++                                      realm = val;
++                              } else if (!strcasecmp(var, "auth-user")) {
++                                      user = val;
++                              } else if (!strcasecmp(var, "auth-pass")) {
++                                      pass = val;
++                              } else if (!strcasecmp(var, "http-port")) {
++                                      globals.port = (uint16_t) atoi(val);
++                              } else if (!strcasecmp(var, "default-domain")) {
++                                      default_domain = val;
++                              } else if (!strcasecmp(var, "virtual-host")) {
++                                      globals.virtual_host = switch_true(val);
++                              }
+                       }
+               }
+       }
+@@ -135,7 +164,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_xml_rpc_load)
+ static switch_status_t http_stream_raw_write(switch_stream_handle_t *handle, uint8_t *data, switch_size_t datalen)
+ {
+-      TSession *r = handle->data;
++      TSession *r = (TSession *) handle->data;
+       return HTTPWrite(r, (char *) data, (uint32_t) datalen) ? SWITCH_STATUS_SUCCESS : SWITCH_STATUS_FALSE;
+@@ -143,19 +172,59 @@ static switch_status_t http_stream_raw_write(switch_stream_handle_t *handle, uin
+ static switch_status_t http_stream_write(switch_stream_handle_t *handle, const char *fmt, ...)
+ {
+-      va_list ap;
+-      TSession *r = handle->data;
+-      int ret = 0;
++      TSession *r = (TSession *) handle->data;
++      int ret = 1;
+       char *data;
++      switch_event_t *evnt = handle->param_event;
++      va_list ap;
+       va_start(ap, fmt);
+       ret = switch_vasprintf(&data, fmt, ap);
+       va_end(ap);
+       if (data) {
+-              ret = 0;
+-              HTTPWrite(r, data, (uint32_t) strlen(data));
+-              free(data);
++              /* Stream Content-Type (http header) to the xmlrpc (web) client, if fs api command did not do it yet.        */
++              /* If (Content-Type in event) then the header was already replied.                                           */
++              /* If fs api command is not "web aware", this will set the Content-Type to "text/plain".                     */
++              const char *http_refresh = NULL;
++              const char *ct = NULL;
++              const char *refresh = NULL;
++              if (evnt && !(ct = switch_event_get_header(evnt, "Content-Type"))){
++                      const char *val = switch_stristr("Content-Type", data);
++                      if (!val) {
++                              val = "Content-Type: text/plain\r\n\r\n";
++                              ret = HTTPWrite(r, val, (uint32_t) strlen(val));
++                      }
++                      /* flag to prevent running this more than once per http reply  */
++                      switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "Content-Type", strstr(val,":")+2);
++                      ct = switch_event_get_header(evnt, "Content-Type");
++              }
++
++              if (ret) {
++                      ret = HTTPWrite(r, data, (uint32_t) strlen(data));
++              }
++              switch_safe_free(data);
++
++              /* e.g. "http://www.cluecon.fs/api/show?calls &refresh=5"  */
++              /* fs api command can set event header "HTTP-REFRESH" so that the web page will automagically refresh, if    */
++              /* "refresh=xxx" was part of the http query kv pairs */
++              if (ret && ct && *ct && (http_refresh = switch_event_get_header(evnt, "HTTP-REFRESH"))
++                                       && (refresh = switch_event_get_header(evnt, "refresh"))
++                                       && !strstr("text/html", ct)
++                                                       && (atoi(refresh) > 0 )) {
++                      const char *query = switch_event_get_header(evnt, "HTTP-QUERY");
++                      const char *uri = switch_event_get_header(evnt, "HTTP-URI");
++                      if (uri && query && *uri && *query) {
++                              char *buf = switch_mprintf("<META HTTP-EQUIV=REFRESH CONTENT=\"%s; URL=%s?%s\">\n", refresh, uri, query);
++                              ret = HTTPWrite(r, buf, (uint32_t) strlen(buf));
++                              switch_safe_free(buf);
++                      }
++              }
++
++              /* only one refresh meta header per reply */
++              if (http_refresh) {
++                      switch_event_del_header(evnt, "HTTP-REFRESH");
++              }
+       }
+       return ret ? SWITCH_STATUS_FALSE : SWITCH_STATUS_SUCCESS;
+@@ -192,7 +261,7 @@ static abyss_bool user_attributes(const char *user, const char *domain_name,
+               switch_event_destroy(&params);
+               return FALSE;
+       }
+-      
++
+       switch_event_destroy(&params);
+       alias = switch_xml_attr(x_user, "number-alias");
+@@ -241,9 +310,8 @@ static abyss_bool is_authorized(const TSession * r, const char *command)
+       char *dp;
+       char *dup = NULL;
+       char *argv[256] = { 0 };
+-      char *status = NULL;
+       int argc = 0, i = 0, ok = 0;
+-      int err = 403;
++      unsigned int err = 403;
+       if (!r) {
+               return FALSE;
+@@ -273,7 +341,7 @@ static abyss_bool is_authorized(const TSession * r, const char *command)
+               goto end;
+       }
+-      
++
+       err = 686;
+       if (!user_attributes(user, domain_name, NULL, NULL, NULL, &allowed_commands)) {
+@@ -288,8 +356,8 @@ static abyss_bool is_authorized(const TSession * r, const char *command)
+       if ((dup = allowed_commands)) {
+               argc = switch_separate_string(dup, ',', argv, (sizeof(argv) / sizeof(argv[0])));
+-              
+-              for (i = 0; i < argc; i++) {
++
++              for (i = 0; i < argc && argv[i]; i++) {
+                       if (!strcasecmp(argv[i], command) || !strcasecmp(argv[i], "any")) {
+                               ok = 1;
+                               break;
+@@ -310,17 +378,17 @@ static abyss_bool is_authorized(const TSession * r, const char *command)
+       return ok ? TRUE : FALSE;
+ }
+-static abyss_bool http_directory_auth(TSession * r, char *domain_name)
++static abyss_bool http_directory_auth(TSession *r, char *domain_name)
+ {
+-      char *p;
+-      char *x;
+-      char z[256], t[80];
+-      char user[512];
+-      char *pass;
++      char *p = NULL;
++      char *x = NULL;
++      char z[256] = "", t[80] = "";
++      char user[512] = "" ;
++      char *pass = NULL;
+       const char *mypass1 = NULL, *mypass2 = NULL;
+       const char *box = NULL;
+       int at = 0;
+-      char *dp;
++      char *dp = NULL;
+       abyss_bool rval = FALSE;
+       char *dup_domain = NULL;
+@@ -372,13 +440,13 @@ static abyss_bool http_directory_auth(TSession * r, char *domain_name)
+                                       } else {
+                                               switch_snprintf(z, sizeof(z), "%s:%s", globals.user, globals.pass);
+                                       }
+-                                      Base64Encode(z, t);
++                                      xmlrpc_base64Encode(z, t);
+                                       if (!strcmp(p, t)) {
+                                               goto authed;
+                                       }
+                               }
+-                              
++
+                               if (!user_attributes(user, domain_name, &mypass1, &mypass2, &box, NULL)) {
+                                       goto fail;
+                               }
+@@ -396,7 +464,7 @@ static abyss_bool http_directory_auth(TSession * r, char *domain_name)
+                                       } else {
+                                               switch_snprintf(z, sizeof(z), "%s:%s", user, mypass1);
+                                       }
+-                                      Base64Encode(z, t);
++                                      xmlrpc_base64Encode(z, t);
+                                       if (!strcmp(p, t)) {
+                                               goto authed;
+@@ -408,7 +476,7 @@ static abyss_bool http_directory_auth(TSession * r, char *domain_name)
+                                               } else {
+                                                       switch_snprintf(z, sizeof(z), "%s:%s", user, mypass2);
+                                               }
+-                                              Base64Encode(z, t);
++                                              xmlrpc_base64Encode(z, t);
+                                               if (!strcmp(p, t)) {
+                                                       goto authed;
+@@ -421,7 +489,7 @@ static abyss_bool http_directory_auth(TSession * r, char *domain_name)
+                                               } else {
+                                                       switch_snprintf(z, sizeof(z), "%s:%s", box, mypass1);
+                                               }
+-                                              Base64Encode(z, t);
++                                              xmlrpc_base64Encode(z, t);
+                                               if (!strcmp(p, t)) {
+                                                       goto authed;
+@@ -434,7 +502,7 @@ static abyss_bool http_directory_auth(TSession * r, char *domain_name)
+                                                               switch_snprintf(z, sizeof(z), "%s:%s", box, mypass2);
+                                                       }
+-                                                      Base64Encode(z, t);
++                                                      xmlrpc_base64Encode(z, t);
+                                                       if (!strcmp(p, t)) {
+                                                               goto authed;
+@@ -536,19 +604,19 @@ abyss_bool auth_hook(TSession * r)
+ }
+-static abyss_bool HTTPWrite(TSession * s, char *buffer, uint32_t len)
++static abyss_bool HTTPWrite(TSession * s, const char *buffer, const uint32_t len)
+ {
+       if (s->chunkedwrite && s->chunkedwritemode) {
+               char t[16];
+-              if (ConnWrite(s->conn, t, sprintf(t, "%x" CRLF, len)))
+-                      if (ConnWrite(s->conn, buffer, len))
+-                              return ConnWrite(s->conn, CRLF, 2);
++              if (ConnWrite(s->connP, t, sprintf(t, "%x" CRLF, len)))
++                      if (ConnWrite(s->connP, buffer, len))
++                              return ConnWrite(s->connP, CRLF, 2);
+               return FALSE;
+       }
+-      return ConnWrite(s->conn, buffer, len);
++      return ConnWrite(s->connP, buffer, len);
+ }
+ static abyss_bool HTTPWriteEnd(TSession * s)
+@@ -559,7 +627,7 @@ static abyss_bool HTTPWriteEnd(TSession * s)
+       if (s->chunkedwrite) {
+               /* May be one day trailer dumping will be added */
+               s->chunkedwritemode = FALSE;
+-              return ConnWrite(s->conn, "0" CRLF CRLF, 5);
++              return ConnWrite(s->connP, "0" CRLF CRLF, 5);
+       }
+       s->requestInfo.keepalive = FALSE;
+@@ -568,47 +636,48 @@ static abyss_bool HTTPWriteEnd(TSession * s)
+ abyss_bool handler_hook(TSession * r)
+ {
+-      //char *mime = "text/html";
+-      char buf[80] = "HTTP/1.1 200 OK\n";
+       switch_stream_handle_t stream = { 0 };
+       char *command;
+       int i;
+-      TTableItem *ti;
+       char *fs_user = NULL, *fs_domain = NULL;
+       char *path_info = NULL;
+       abyss_bool ret = TRUE;
+-      int html = 0, text = 0, xml = 0;
++      int html = 0, text = 0, xml = 0, api = 0;
+       const char *api_str;
++      const char *uri = 0;
++      TRequestInfo *info = 0;
++      switch_event_t *evnt = 0; /* shortcut to stream.param_event */
++
++      if (!r || !(info = &r->requestInfo) || !(uri = info->uri)) {
++              return FALSE;
++      }
+       stream.data = r;
+       stream.write_function = http_stream_write;
+       stream.raw_write_function = http_stream_raw_write;
+-      if (!r || !r->requestInfo.uri) {
+-              return FALSE;
+-      }
+-      
+-      if ((command = strstr(r->requestInfo.uri, "/api/"))) {
++      if ((command = strstr(uri, "/api/"))) {
+               command += 5;
+-      } else if ((command = strstr(r->requestInfo.uri, "/webapi/"))) {
++              api++;
++      } else if ((command = strstr(uri, "/webapi/"))) {
+               command += 8;
+               html++;
+-      } else if ((command = strstr(r->requestInfo.uri, "/txtapi/"))) {
++      } else if ((command = strstr(uri, "/txtapi/"))) {
+               command += 8;
+               text++;
+-      } else if ((command = strstr(r->requestInfo.uri, "/xmlapi/"))) {
++      } else if ((command = strstr(uri, "/xmlapi/"))) {
+               command += 8;
+               xml++;
+       } else {
+-              return FALSE;
++              return FALSE; /* 404 */
+       }
+       if ((path_info = strchr(command, '/'))) {
+               *path_info++ = '\0';
+       }
+-      for (i = 0; i < r->response_headers.size; i++) {
+-              ti = &r->response_headers.item[i];
++      for (i = 0; i < r->responseHeaderFields.size; i++) {
++              TTableItem *ti = &r->responseHeaderFields.item[i];
+               if (!strcasecmp(ti->name, "freeswitch-user")) {
+                       fs_user = ti->value;
+               } else if (!strcasecmp(ti->name, "freeswitch-domain")) {
+@@ -616,63 +685,58 @@ abyss_bool handler_hook(TSession * r)
+               }
+       }
+-      if (is_authorized(r, command)) {
+-              goto auth;
++      if (!is_authorized(r, command)) {
++              ret = TRUE;
++              goto end;
+       }
+-      ret = TRUE;
+-      goto end;
+-
+-  auth:
++/*  auth: */
+       if (switch_event_create(&stream.param_event, SWITCH_EVENT_API) == SWITCH_STATUS_SUCCESS) {
+               const char *const content_length = RequestHeaderValue(r, "content-length");
+-
+-              if (html)
+-                      switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "Content-type", "text/html");
+-              else if (text)
+-                      switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "Content-type", "text/plain");
+-              else if (xml)
+-                      switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "Content-type", "text/xml");
+-              if (fs_user)
+-                      switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "FreeSWITCH-User", fs_user);
+-              if (fs_domain)
+-                      switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "FreeSWITCH-Domain", fs_domain);
+-              if (path_info)
+-                      switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-Path-Info", path_info);
+-              switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-URI", r->requestInfo.uri);
+-              if (r->requestInfo.query)
+-                      switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-QUERY", r->requestInfo.query);
+-              if (r->requestInfo.host)
+-                      switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-HOST", r->requestInfo.host);
+-              if (r->requestInfo.from)
+-                      switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-FROM", r->requestInfo.from);
+-              if (r->requestInfo.useragent)
+-                      switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-USER-AGENT", r->requestInfo.useragent);
+-              if (r->requestInfo.referer)
+-                      switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-REFERER", r->requestInfo.referer);
+-              if (r->requestInfo.requestline)
+-                      switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-REQUESTLINE", r->requestInfo.requestline);
+-              if (r->requestInfo.user)
+-                      switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-USER", r->requestInfo.user);
+-              if (r->requestInfo.port)
+-                      switch_event_add_header(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-PORT", "%u", r->requestInfo.port);
+-              if (r->requestInfo.query || content_length) {
++              evnt = stream.param_event;
++
++              if (html) {
++                      switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "Content-Type", "text/html");
++              } else if (text) {
++                      switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "Content-Type", "text/plain");
++              } else if (xml) {
++                      switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "Content-Type", "text/xml");
++              }
++              if (api) {
++                      switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-API", "api");
++              }
++              if (fs_user)   switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "FreeSWITCH-User", fs_user);
++              if (fs_domain) switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "FreeSWITCH-Domain", fs_domain);
++              if (path_info) switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-Path-Info", path_info);
++
++              if (info->host)        switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-HOST", info->host);
++              if (info->from)        switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-FROM", info->from);
++              if (info->useragent)   switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-USER-AGENT", info->useragent);
++              if (info->referer)     switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-REFERER", info->referer);
++              if (info->requestline) switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-REQUESTLINE", info->requestline);
++              if (info->user)        switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-USER", info->user);
++              if (info->port)        switch_event_add_header(evnt, SWITCH_STACK_BOTTOM, "HTTP-PORT", "%u", info->port);
++
++              {
+                       char *q, *qd;
+                       char *next;
+-                      char *query = (char *) r->requestInfo.query;
++                      char *query = (char *) info->query;
+                       char *name, *val;
+                       char qbuf[8192] = "";
+-                      if (r->requestInfo.method == m_post && content_length) {
++                      /* first finish reading from the socket if post method was used*/
++                      if (info->method == m_post && content_length) {
+                               int len = atoi(content_length);
+                               int qlen = 0;
+                               if (len > 0) {
+-                                      int succeeded;
++                                      int succeeded = TRUE;
+                                       char *qp = qbuf;
++                                      char *readError;
++
+                                       do {
+-                                              int blen = r->conn->buffersize - r->conn->bufferpos;
++                                              int blen = r->connP->buffersize - r->connP->bufferpos;
+                                               if ((qlen + blen) > len) {
+                                                       blen = len - qlen;
+@@ -684,75 +748,101 @@ abyss_bool handler_hook(TSession * r)
+                                                       break;
+                                               }
+-                                              memcpy(qp, r->conn->buffer + r->conn->bufferpos, blen);
++                                              memcpy(qp, r->connP->buffer.b + r->connP->bufferpos, blen);
+                                               qp += blen;
+                                               if (qlen >= len) {
+                                                       break;
+                                               }
+-                                      } while ((succeeded = ConnRead(r->conn, 2000)));
++
++                                              ConnRead(r->connP, 2000, NULL, NULL, &readError);
++                              if (readError) {
++                                                      succeeded = FALSE;
++                                                      free(readError);
++                                              }
++
++                                      } while (succeeded);
+                                       query = qbuf;
+                               }
+                       }
+-                      if (query) {
+-                              switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-QUERY", query);
++                      /* parse query and add kv-pairs as event headers  */
++                      /* a kv pair starts with '&', '+' or \0 mark the end */
++                      if (query) {
++                              switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-QUERY", query);
+                               qd = strdup(query);
+-                              switch_assert(qd != NULL);
+-
+-                              q = qd;
+-                              next = q;
+-
+-                              do {
+-                                      char *p;
++                      } else {
++                              qd = strdup(uri);
++                      }
+-                                      if ((next = strchr(next, '&'))) {
+-                                              *next++ = '\0';
++                      switch_assert(qd != NULL);
++
++                      q = qd;
++                      next = q;
++
++                      do {
++                              char *p;
++
++                              if (next = strchr(next, '&')) {
++                                      if (!query) {
++                                              /* pass kv pairs from uri to query       */
++                                  /* "?" is absent in url so parse uri     */
++                                              *((char *)uri + (next - q - 1)) = '\0';
++                                              query = next;
++                                              switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-QUERY", next);
++                                              /* and strip uri                                     */
++                                              /* the start of first kv pair marks the end of uri   */
++                                              /* to prevent kv-pairs confusing fs api commands     */
++                                              /* that have arguments separated by space            */
+                                       }
++                                      *next++ = '\0';
++                              }
+-                                      for (p = q; p && *p; p++) {
+-                                              if (*p == '+') {
+-                                                      *p = ' ';
+-                                              }
++                              for (p = q; p && *p; p++) {
++                                      if (*p == '+') {
++                                              *p = ' ';
+                                       }
++                              }
++                              /* hmmm, get method requests are already decoded ... */
++                              switch_url_decode(q);
+-                                      switch_url_decode(q);
+-
+-                                      name = q;
+-                                      if ((val = strchr(name, '='))) {
+-                                              *val++ = '\0';
+-                                              switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, name, val);
+-                                      }
+-                                      q = next;
+-                              } while (q != NULL);
++                              name = q;
++                              if ((val = strchr(name, '='))) {
++                                      *val++ = '\0';
++                                      switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, name, val);
++                              }
++                              q = next;
++                      } while (q != NULL);
+-                              free(qd);
+-                      }
++                      free(qd);
+               }
+       }
+-      //ResponseChunked(r);
+-      //ResponseContentType(r, mime);
+-      //ResponseWrite(r);
++      switch_event_add_header_string(evnt, SWITCH_STACK_BOTTOM, "HTTP-URI", uri);
+-      HTTPWrite(r, buf, (uint32_t) strlen(buf));
++      /* We made it this far, always OK */
++      if (!HTTPWrite(r, "HTTP/1.1 200 OK\r\n", (uint32_t) strlen("HTTP/1.1 200 OK\r\n"))) {
++              return TRUE;
++      }
+-      //HTTPWrite(r, "<pre>\n\n", 7);
++      ResponseAddField(r, "Connection", "close");
+       /* generation of the date field */
++      if (evnt)
+       {
++              ResponseAddField(r, "Date", switch_event_get_header(evnt, "Event-Date-GMT"));
++      }
++      else {
+               const char *dateValue;
+               DateToString(r->date, &dateValue);
+-
+               if (dateValue) {
+                       ResponseAddField(r, "Date", dateValue);
+-                      free(dateValue);
++                      free((void *)dateValue);
+               }
+       }
+-
+       /* Generation of the server field */
+       ResponseAddField(r, "Server", "FreeSWITCH-" SWITCH_VERSION_FULL "-mod_xml_rpc");
+@@ -764,48 +854,45 @@ abyss_bool handler_hook(TSession * r)
+               ResponseAddField(r, "Content-Type", "text/xml");
+       }
+-      for (i = 0; i < r->response_headers.size; i++) {
+-              ti = &r->response_headers.item[i];
+-              ConnWrite(r->conn, ti->name, (uint32_t) strlen(ti->name));
+-              ConnWrite(r->conn, ": ", 2);
+-              ConnWrite(r->conn, ti->value, (uint32_t) strlen(ti->value));
+-              ConnWrite(r->conn, CRLF, 2);
++      for (i = 0; i < r->responseHeaderFields.size; i++) {
++              TTableItem *ti = &r->responseHeaderFields.item[i];
++              char *header = switch_mprintf("%s: %s\r\n", ti->name, ti->value);
++              if (!ConnWrite(r->connP, header, (uint32_t) strlen(header))) {
++                      switch_safe_free(header);
++                      return TRUE;
++              }
++              switch_safe_free(header);
+       }
+-      switch_snprintf(buf, sizeof(buf), "Connection: close\r\n");
+-      ConnWrite(r->conn, buf, (uint32_t) strlen(buf));
+-
+-      if (html || text || xml) {
+-              ConnWrite(r->conn, "\r\n", 2);
++      /* send end http header */
++      if (html||text||xml) {
++              if (!ConnWrite(r->connP, CRLF, 2)) {
++                      return TRUE;
++              }
++      }
++      else {
++              /* content-type and end of http header will be streamed by fs api or http_stream_write */
+       }
+-      if (switch_stristr("unload", command) && switch_stristr("mod_xml_rpc", r->requestInfo.query)) {
++      if (switch_stristr("unload", command) && switch_stristr("mod_xml_rpc", info->query)) {
+               command = "bgapi";
+               api_str = "unload mod_xml_rpc";
+-      } else if (switch_stristr("reload", command) && switch_stristr("mod_xml_rpc", r->requestInfo.query)) {
++      } else if (switch_stristr("reload", command) && switch_stristr("mod_xml_rpc", info->query)) {
+               command = "bgapi";
+               api_str = "reload mod_xml_rpc";
+       } else {
+-              api_str = r->requestInfo.query;
++              api_str = info->query;
+       }
+-      if (switch_api_execute(command, api_str, NULL, &stream) == SWITCH_STATUS_SUCCESS) {
+-              ResponseStatus(r, 200);
+-              r->responseStarted = TRUE;
+-              //r->done = TRUE;
+-      } else {
+-              ResponseStatus(r, 404);
+-              ResponseError(r);
+-      }
++      /* TODO (maybe): take "refresh=xxx" out of query as to not confuse fs api commands         */
+-      //SocketClose(&(r->conn->socket));
++      /* execute actual fs api command                                                            */
++      /* fs api command will write to stream,  calling http_stream_write / http_stream_raw_write      */
++      /* switch_api_execute will stream INVALID COMMAND before it fails                                               */
++      switch_api_execute(command, api_str, NULL, &stream);
+-      HTTPWriteEnd(r);
+-      //if (r->conn->channelP)
+-      //ConnKill(r->conn);
+-      //ChannelInterrupt(r->conn->channelP);
+-      //ConnClose(r->conn);
+-      //ChannelDestroy(r->conn->channelP);
++      r->responseStarted = TRUE;
++      ResponseStatus(r, 200);     /* we don't want an assertion failure */
+       r->requestInfo.keepalive = 0;
+   end:
+@@ -925,7 +1012,6 @@ static xmlrpc_value *freeswitch_man(xmlrpc_env * const envP, xmlrpc_value * cons
+ SWITCH_MODULE_RUNTIME_FUNCTION(mod_xml_rpc_runtime)
+ {
+-      xmlrpc_registry *registryP;
+       xmlrpc_env env;
+       char logfile[512];
+       switch_hash_index_t *hi;
+@@ -936,15 +1022,16 @@ SWITCH_MODULE_RUNTIME_FUNCTION(mod_xml_rpc_runtime)
+       xmlrpc_env_init(&env);
+-      registryP = xmlrpc_registry_new(&env);
++      globals.registryP = xmlrpc_registry_new(&env);
+-      xmlrpc_registry_add_method2(&env, registryP, "freeswitch.api", &freeswitch_api, NULL, NULL, NULL);
+-      xmlrpc_registry_add_method2(&env, registryP, "freeswitch_api", &freeswitch_api, NULL, NULL, NULL);
+-      xmlrpc_registry_add_method(&env, registryP, NULL, "freeswitch.management", &freeswitch_man, NULL);
+-      xmlrpc_registry_add_method(&env, registryP, NULL, "freeswitch_management", &freeswitch_man, NULL);
++      /* TODO why twice and why add_method for freeswitch.api and add_method2 for freeswitch.management ? */
++    xmlrpc_registry_add_method2(&env, globals.registryP, "freeswitch.api", &freeswitch_api, NULL, NULL, NULL);
++    xmlrpc_registry_add_method2(&env, globals.registryP, "freeswitch_api", &freeswitch_api, NULL, NULL, NULL);
++    xmlrpc_registry_add_method(&env, globals.registryP, NULL, "freeswitch.management", &freeswitch_man, NULL);
++    xmlrpc_registry_add_method(&env, globals.registryP, NULL, "freeswitch_management", &freeswitch_man, NULL);
+       MIMETypeInit();
+-      MIMETypeAdd("text/html", "html");
++
+       for (hi = switch_core_mime_index(); hi; hi = switch_hash_next(hi)) {
+               switch_hash_this(hi, &var, NULL, &val);
+               if (var && val) {
+@@ -955,38 +1042,52 @@ SWITCH_MODULE_RUNTIME_FUNCTION(mod_xml_rpc_runtime)
+       switch_snprintf(logfile, sizeof(logfile), "%s%s%s", SWITCH_GLOBAL_dirs.log_dir, SWITCH_PATH_SEPARATOR, "freeswitch_http.log");
+       ServerCreate(&globals.abyssServer, "XmlRpcServer", globals.port, SWITCH_GLOBAL_dirs.htdocs_dir, logfile);
+-      xmlrpc_server_abyss_set_handler(&env, &globals.abyssServer, "/RPC2", registryP);
++      xmlrpc_server_abyss_set_handler(&env, &globals.abyssServer, "/RPC2", globals.registryP);
++
++      xmlrpc_env_clean(&env);
+       if (ServerInit(&globals.abyssServer) != TRUE) {
+               globals.running = 0;
+               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to start HTTP Port %d\n", globals.port);
++              xmlrpc_registry_free(globals.registryP);
++              MIMETypeTerm();
++
+               return SWITCH_STATUS_TERM;
+       }
+       ServerAddHandler(&globals.abyssServer, handler_hook);
+       ServerAddHandler(&globals.abyssServer, auth_hook);
+-      ServerSetKeepaliveTimeout(&globals.abyssServer, 1);
++      ServerSetKeepaliveTimeout(&globals.abyssServer, 5);
++
+       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Starting HTTP Port %d, DocRoot [%s]\n", globals.port, SWITCH_GLOBAL_dirs.htdocs_dir);
+       ServerRun(&globals.abyssServer);
++
+       switch_yield(1000000);
++
+       globals.running = 0;
+       return SWITCH_STATUS_TERM;
+ }
++/* upon module unload */
+ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_xml_rpc_shutdown)
+ {
+-      //globals.abyssServer.running = 0;
+-      //shutdown(globals.abyssServer.listensock, 2);
++
++      /* this makes the worker thread (ServerRun) stop */
+       ServerTerminate(&globals.abyssServer);
+       do {
+               switch_yield(100000);
+       } while (globals.running);
++      ServerFree(&globals.abyssServer);
++      xmlrpc_registry_free(globals.registryP);
++      MIMETypeTerm();
++
+       switch_safe_free(globals.realm);
+       switch_safe_free(globals.user);
+       switch_safe_free(globals.pass);
++      switch_safe_free(globals.default_domain);
+       return SWITCH_STATUS_SUCCESS;
+ }
+diff --git a/src/switch_loadable_module.c b/src/switch_loadable_module.c
+index 7185726..90410d3 100644
+--- a/src/switch_loadable_module.c
++++ b/src/switch_loadable_module.c
+@@ -2259,10 +2259,10 @@ SWITCH_DECLARE(switch_status_t) switch_api_execute(const char *cmd, const char *
+       }
+       if (stream->param_event) {
+-              if (cmd_used) {
++              if (cmd_used && *cmd_used) {
+                       switch_event_add_header_string(stream->param_event, SWITCH_STACK_BOTTOM, "API-Command", cmd_used);
+               }
+-              if (arg_used) {
++              if (arg_used && *arg_used) {
+                       switch_event_add_header_string(stream->param_event, SWITCH_STACK_BOTTOM, "API-Command-Argument", arg_used);
+               }
+       }
+diff --git a/src/switch_xml.c b/src/switch_xml.c
+index f441567..2e74780 100644
+--- a/src/switch_xml.c
++++ b/src/switch_xml.c
+@@ -972,7 +972,7 @@ SWITCH_DECLARE(switch_xml_t) switch_xml_parse_str_dynamic(char *s, switch_bool_t
+       }
+ }
+-/* parse the given xml string and return an switch_xml structure */
++/* parse the given xml string and return a switch_xml structure */
+ SWITCH_DECLARE(switch_xml_t) switch_xml_parse_str(char *s, switch_size_t len)
+ {
+       switch_xml_root_t root = (switch_xml_root_t) switch_xml_new(NULL);
+@@ -2455,7 +2455,7 @@ static char *switch_xml_toxml_r(switch_xml_t xml, char **s, switch_size_t *len,
+                               *len += sprintf(*s + *len, "%s", XML_INDENT);   /* indent */
+                       }
+               }
+-              *len += sprintf(*s + (*len), "</%s>\n", xml->name);     /* close tag */
++              *len += sprintf(*s + (*len), "</%s>", xml->name);       /* close tag */
+       }
+       while (txt[off] && off < xml->off)
+@@ -2496,7 +2496,24 @@ SWITCH_DECLARE(char *) switch_xml_toxml(switch_xml_t xml, switch_bool_t prn_head
+       return r;
+ }
+-/* converts an switch_xml structure back to xml, returning a string of xml date that
++SWITCH_DECLARE(char *) switch_xml_tohtml(switch_xml_t xml, switch_bool_t prn_header)
++{
++      char *r, *s, *h;
++      switch_size_t rlen = 0;
++      switch_size_t len = SWITCH_XML_BUFSIZE;
++      switch_mutex_lock(XML_GEN_LOCK);
++      s = (char *) malloc(SWITCH_XML_BUFSIZE);
++      switch_assert(s);
++      h = (char *) malloc(SWITCH_XML_BUFSIZE);
++      switch_assert(h);
++      r = switch_xml_toxml_buf(xml, s, SWITCH_XML_BUFSIZE, 0, prn_header);
++      h = switch_xml_ampencode(r, 0, &h, &rlen, &len, 1);
++      switch_safe_free(r);
++      switch_mutex_unlock(XML_GEN_LOCK);
++      return h;
++}
++
++/* converts a switch_xml structure back to xml, returning a string of xml data that
+    must be freed */
+ SWITCH_DECLARE(char *) switch_xml_toxml_buf(switch_xml_t xml, char *buf, switch_size_t buflen, switch_size_t offset, switch_bool_t prn_header)
+ {
+@@ -2684,7 +2701,7 @@ SWITCH_DECLARE(switch_xml_t) switch_xml_new(const char *name)
+       return &root->xml;
+ }
+-/* inserts an existing tag into an switch_xml structure */
++/* inserts an existing tag into a switch_xml structure */
+ SWITCH_DECLARE(switch_xml_t) switch_xml_insert(switch_xml_t xml, switch_xml_t dest, switch_size_t off)
+ {
+       switch_xml_t cur, prev, head;