Index: CVSROOT/checkoutlist
===================================================================
--- CVSROOT/checkoutlist	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
+++ CVSROOT/checkoutlist	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
@@ -0,0 +1,13 @@
+# The "checkoutlist" file is used to support additional version controlled
+# administrative files in $CVSROOT/CVSROOT, such as template files.
+#
+# The first entry on a line is a filename which will be checked out from
+# the corresponding RCS file in the $CVSROOT/CVSROOT directory.
+# The remainder of the line is an error message to use if the file cannot
+# be checked out.
+#
+# File format:
+#
+#	[<whitespace>]<filename>[<whitespace><error message>]<end-of-line>
+#
+# comment lines begin with '#'
Index: CVSROOT/commitinfo
===================================================================
--- CVSROOT/commitinfo	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
+++ CVSROOT/commitinfo	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
@@ -0,0 +1,15 @@
+# The "commitinfo" file is used to control pre-commit checks.
+# The filter on the right is invoked with the repository and a list 
+# of files to check.  A non-zero exit of the filter program will 
+# cause the commit to be aborted.
+#
+# The first entry on a line is a regular expression which is tested
+# against the directory that the change is being committed to, relative
+# to the $CVSROOT.  For the first match that is found, then the remainder
+# of the line is the name of the filter to run.
+#
+# If the repository name does not match any of the regular expressions in this
+# file, the "DEFAULT" line is used, if it is specified.
+#
+# If the name "ALL" appears as a regular expression it is always used
+# in addition to the first matching regex or "DEFAULT".
Index: CVSROOT/config
===================================================================
--- CVSROOT/config	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
+++ CVSROOT/config	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
@@ -0,0 +1,21 @@
+# Set this to "no" if pserver shouldn't check system users/passwords
+#SystemAuth=no
+
+# Put CVS lock files in this directory rather than directly in the repository.
+#LockDir=/var/lock/cvs
+
+# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top
+# level of the new working directory when using the `cvs checkout'
+# command.
+#TopLevelAdmin=no
+
+# Set `LogHistory' to `all' or `TOEFWUPCGMAR' to log all transactions to the
+# history file, or a subset as needed (ie `TMAR' logs all write operations)
+#LogHistory=TOEFWUPCGMAR
+
+# Set `RereadLogAfterVerify' to `always' (the default) to allow the verifymsg
+# script to change the log message.  Set it to `stat' to force CVS to verify# that the file has changed before reading it (this can take up to an extra
+# second per directory being committed, so it is not recommended for large
+# repositories.  Set it to `never' (the previous CVS behavior) to prevent
+# verifymsg scripts from changing the log message.
+#RereadLogAfterVerify=always
Index: CVSROOT/cvswrappers
===================================================================
--- CVSROOT/cvswrappers	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
+++ CVSROOT/cvswrappers	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
@@ -0,0 +1,19 @@
+# This file affects handling of files based on their names.
+#
+# The -m option specifies whether CVS attempts to merge files.
+#
+# The -k option specifies keyword expansion (e.g. -kb for binary).
+#
+# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers)
+#
+#  wildcard	[option value][option value]...
+#
+#  where option is one of
+#  -f		from cvs filter		value: path to filter
+#  -t		to cvs filter		value: path to filter
+#  -m		update methodology	value: MERGE or COPY
+#  -k		expansion mode		value: b, o, kkv, &c
+#
+#  and value is a single-quote delimited value.
+# For example:
+#*.gif -k 'b'
Index: CVSROOT/editinfo
===================================================================
--- CVSROOT/editinfo	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
+++ CVSROOT/editinfo	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
@@ -0,0 +1,21 @@
+# The "editinfo" file is used to allow verification of logging
+# information.  It works best when a template (as specified in the
+# rcsinfo file) is provided for the logging procedure.  Given a
+# template with locations for, a bug-id number, a list of people who
+# reviewed the code before it can be checked in, and an external
+# process to catalog the differences that were code reviewed, the
+# following test can be applied to the code:
+#
+#   Making sure that the entered bug-id number is correct.
+#   Validating that the code that was reviewed is indeed the code being
+#       checked in (using the bug-id number or a seperate review
+#       number to identify this particular code set.).
+#
+# If any of the above test failed, then the commit would be aborted.
+#
+# Actions such as mailing a copy of the report to each reviewer are
+# better handled by an entry in the loginfo file.
+#
+# One thing that should be noted is the the ALL keyword is not
+# supported.  There can be only one entry that matches a given
+# repository.
Index: CVSROOT/loginfo
===================================================================
--- CVSROOT/loginfo	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
+++ CVSROOT/loginfo	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
@@ -0,0 +1,27 @@
+# The "loginfo" file controls where "cvs commit" log information
+# is sent.  The first entry on a line is a regular expression which must match
+# the directory that the change is being made to, relative to the
+# $CVSROOT.  If a match is found, then the remainder of the line is a filter
+# program that should expect log information on its standard input.
+#
+# If the repository name does not match any of the regular expressions in this
+# file, the "DEFAULT" line is used, if it is specified.
+#
+# If the name ALL appears as a regular expression it is always used
+# in addition to the first matching regex or DEFAULT.
+#
+# You may specify a format string as part of the
+# filter.  The string is composed of a `%' followed
+# by a single format character, or followed by a set of format
+# characters surrounded by `{' and `}' as separators.  The format
+# characters are:
+#
+#   s = file name
+#   V = old version number (pre-checkin)
+#   v = new version number (post-checkin)
+#   t = tag or branch name
+#
+# For example:
+#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog
+# or
+#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog
Index: CVSROOT/modules
===================================================================
--- CVSROOT/modules	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
+++ CVSROOT/modules	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
@@ -0,0 +1,26 @@
+# Three different line formats are valid:
+#	key	-a    aliases...
+#	key [options] directory
+#	key [options] directory files...
+#
+# Where "options" are composed of:
+#	-i prog		Run "prog" on "cvs commit" from top-level of module.
+#	-o prog		Run "prog" on "cvs checkout" of module.
+#	-e prog		Run "prog" on "cvs export" of module.
+#	-t prog		Run "prog" on "cvs rtag" of module.
+#	-u prog		Run "prog" on "cvs update" of module.
+#	-d dir		Place module in directory "dir" instead of module name.
+#	-l		Top-level directory only -- do not recurse.
+#
+# NOTE:  If you change any of the "Run" options above, you'll have to
+# release and re-checkout any working directories of these modules.
+#
+# And "directory" is a path to a directory relative to $CVSROOT.
+#
+# The "-a" option specifies an alias.  An alias is interpreted as if
+# everything on the right of the "-a" had been typed on the command line.
+#
+# You can encode a module within a module by using the special '&'
+# character to interpose another module into the current module.  This
+# can be useful for creating a module that consists of many directories
+# spread out over the entire source repository.
Index: CVSROOT/notify
===================================================================
--- CVSROOT/notify	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
+++ CVSROOT/notify	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
@@ -0,0 +1,12 @@
+# The "notify" file controls where notifications from watches set by
+# "cvs watch add" or "cvs edit" are sent.  The first entry on a line is
+# a regular expression which is tested against the directory that the
+# change is being made to, relative to the $CVSROOT.  If it matches,
+# then the remainder of the line is a filter program that should contain
+# one occurrence of %s for the user to notify, and information on its
+# standard input.
+#
+# "ALL" or "DEFAULT" can be used in place of the regular expression.
+#
+# For example:
+#ALL mail -s "CVS notification" %s
Index: CVSROOT/rcsinfo
===================================================================
--- CVSROOT/rcsinfo	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
+++ CVSROOT/rcsinfo	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
@@ -0,0 +1,13 @@
+# The "rcsinfo" file is used to control templates with which the editor
+# is invoked on commit and import.
+#
+# The first entry on a line is a regular expression which is tested
+# against the directory that the change is being made to, relative to the
+# $CVSROOT.  For the first match that is found, then the remainder of the
+# line is the name of the file that contains the template.
+#
+# If the repository name does not match any of the regular expressions in this
+# file, the "DEFAULT" line is used, if it is specified.
+#
+# If the name "ALL" appears as a regular expression it is always used
+# in addition to the first matching regex or "DEFAULT".
Index: CVSROOT/taginfo
===================================================================
--- CVSROOT/taginfo	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
+++ CVSROOT/taginfo	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
@@ -0,0 +1,20 @@
+# The "taginfo" file is used to control pre-tag checks.
+# The filter on the right is invoked with the following arguments:
+#
+# $1 -- tagname
+# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d
+# $3 -- repository
+# $4->  file revision [file revision ...]
+#
+# A non-zero exit of the filter program will cause the tag to be aborted.
+#
+# The first entry on a line is a regular expression which is tested
+# against the directory that the change is being committed to, relative
+# to the $CVSROOT.  For the first match that is found, then the remainder
+# of the line is the name of the filter to run.
+#
+# If the repository name does not match any of the regular expressions in this
+# file, the "DEFAULT" line is used, if it is specified.
+#
+# If the name "ALL" appears as a regular expression it is always used
+# in addition to the first matching regex or "DEFAULT".
Index: CVSROOT/verifymsg
===================================================================
--- CVSROOT/verifymsg	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
+++ CVSROOT/verifymsg	(revision 8472cb1f56ae42f3435f1a13cb56175b3776b865)
@@ -0,0 +1,21 @@
+# The "verifymsg" file is used to allow verification of logging
+# information.  It works best when a template (as specified in the
+# rcsinfo file) is provided for the logging procedure.  Given a
+# template with locations for, a bug-id number, a list of people who
+# reviewed the code before it can be checked in, and an external
+# process to catalog the differences that were code reviewed, the
+# following test can be applied to the code:
+#
+#   Making sure that the entered bug-id number is correct.
+#   Validating that the code that was reviewed is indeed the code being
+#       checked in (using the bug-id number or a seperate review
+#       number to identify this particular code set.).
+#
+# If any of the above test failed, then the commit would be aborted.
+#
+# Actions such as mailing a copy of the report to each reviewer are
+# better handled by an entry in the loginfo file.
+#
+# One thing that should be noted is the the ALL keyword is not
+# supported.  There can be only one entry that matches a given
+# repository.
Index: gs/0.3.1/AutoBuild.h
===================================================================
--- tags/0.3.1/AutoBuild.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,10 +1,0 @@
-#ifndef AUTOBUILD_H
-#define AUTOBUILD_H
-// change the FALSE to TRUE for autoincrement of build number
-#define INCREMENT_VERSION TRUE
-#define FILEVER        0,3,1,12
-#define PRODUCTVER     0,3,1,12
-#define STRFILEVER     _T("0.3.1.12")
-#define STRPRODUCTVER  _T("0.3.1.12")
-#define STRPRODUCTDATE  _T("2008-03-11")
-#endif // AUTOBUILD_H
Index: gs/0.3.1/CVSROOT/checkoutlist
===================================================================
--- tags/0.3.1/CVSROOT/checkoutlist	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,13 +1,0 @@
-# The "checkoutlist" file is used to support additional version controlled
-# administrative files in $CVSROOT/CVSROOT, such as template files.
-#
-# The first entry on a line is a filename which will be checked out from
-# the corresponding RCS file in the $CVSROOT/CVSROOT directory.
-# The remainder of the line is an error message to use if the file cannot
-# be checked out.
-#
-# File format:
-#
-#	[<whitespace>]<filename>[<whitespace><error message>]<end-of-line>
-#
-# comment lines begin with '#'
Index: gs/0.3.1/CVSROOT/commitinfo
===================================================================
--- tags/0.3.1/CVSROOT/commitinfo	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,15 +1,0 @@
-# The "commitinfo" file is used to control pre-commit checks.
-# The filter on the right is invoked with the repository and a list 
-# of files to check.  A non-zero exit of the filter program will 
-# cause the commit to be aborted.
-#
-# The first entry on a line is a regular expression which is tested
-# against the directory that the change is being committed to, relative
-# to the $CVSROOT.  For the first match that is found, then the remainder
-# of the line is the name of the filter to run.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name "ALL" appears as a regular expression it is always used
-# in addition to the first matching regex or "DEFAULT".
Index: gs/0.3.1/CVSROOT/config
===================================================================
--- tags/0.3.1/CVSROOT/config	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,21 +1,0 @@
-# Set this to "no" if pserver shouldn't check system users/passwords
-#SystemAuth=no
-
-# Put CVS lock files in this directory rather than directly in the repository.
-#LockDir=/var/lock/cvs
-
-# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top
-# level of the new working directory when using the `cvs checkout'
-# command.
-#TopLevelAdmin=no
-
-# Set `LogHistory' to `all' or `TOEFWUPCGMAR' to log all transactions to the
-# history file, or a subset as needed (ie `TMAR' logs all write operations)
-#LogHistory=TOEFWUPCGMAR
-
-# Set `RereadLogAfterVerify' to `always' (the default) to allow the verifymsg
-# script to change the log message.  Set it to `stat' to force CVS to verify# that the file has changed before reading it (this can take up to an extra
-# second per directory being committed, so it is not recommended for large
-# repositories.  Set it to `never' (the previous CVS behavior) to prevent
-# verifymsg scripts from changing the log message.
-#RereadLogAfterVerify=always
Index: gs/0.3.1/CVSROOT/cvswrappers
===================================================================
--- tags/0.3.1/CVSROOT/cvswrappers	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,19 +1,0 @@
-# This file affects handling of files based on their names.
-#
-# The -m option specifies whether CVS attempts to merge files.
-#
-# The -k option specifies keyword expansion (e.g. -kb for binary).
-#
-# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers)
-#
-#  wildcard	[option value][option value]...
-#
-#  where option is one of
-#  -f		from cvs filter		value: path to filter
-#  -t		to cvs filter		value: path to filter
-#  -m		update methodology	value: MERGE or COPY
-#  -k		expansion mode		value: b, o, kkv, &c
-#
-#  and value is a single-quote delimited value.
-# For example:
-#*.gif -k 'b'
Index: gs/0.3.1/CVSROOT/editinfo
===================================================================
--- tags/0.3.1/CVSROOT/editinfo	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,21 +1,0 @@
-# The "editinfo" file is used to allow verification of logging
-# information.  It works best when a template (as specified in the
-# rcsinfo file) is provided for the logging procedure.  Given a
-# template with locations for, a bug-id number, a list of people who
-# reviewed the code before it can be checked in, and an external
-# process to catalog the differences that were code reviewed, the
-# following test can be applied to the code:
-#
-#   Making sure that the entered bug-id number is correct.
-#   Validating that the code that was reviewed is indeed the code being
-#       checked in (using the bug-id number or a seperate review
-#       number to identify this particular code set.).
-#
-# If any of the above test failed, then the commit would be aborted.
-#
-# Actions such as mailing a copy of the report to each reviewer are
-# better handled by an entry in the loginfo file.
-#
-# One thing that should be noted is the the ALL keyword is not
-# supported.  There can be only one entry that matches a given
-# repository.
Index: gs/0.3.1/CVSROOT/loginfo
===================================================================
--- tags/0.3.1/CVSROOT/loginfo	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,27 +1,0 @@
-# The "loginfo" file controls where "cvs commit" log information
-# is sent.  The first entry on a line is a regular expression which must match
-# the directory that the change is being made to, relative to the
-# $CVSROOT.  If a match is found, then the remainder of the line is a filter
-# program that should expect log information on its standard input.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name ALL appears as a regular expression it is always used
-# in addition to the first matching regex or DEFAULT.
-#
-# You may specify a format string as part of the
-# filter.  The string is composed of a `%' followed
-# by a single format character, or followed by a set of format
-# characters surrounded by `{' and `}' as separators.  The format
-# characters are:
-#
-#   s = file name
-#   V = old version number (pre-checkin)
-#   v = new version number (post-checkin)
-#   t = tag or branch name
-#
-# For example:
-#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog
-# or
-#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog
Index: gs/0.3.1/CVSROOT/modules
===================================================================
--- tags/0.3.1/CVSROOT/modules	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,26 +1,0 @@
-# Three different line formats are valid:
-#	key	-a    aliases...
-#	key [options] directory
-#	key [options] directory files...
-#
-# Where "options" are composed of:
-#	-i prog		Run "prog" on "cvs commit" from top-level of module.
-#	-o prog		Run "prog" on "cvs checkout" of module.
-#	-e prog		Run "prog" on "cvs export" of module.
-#	-t prog		Run "prog" on "cvs rtag" of module.
-#	-u prog		Run "prog" on "cvs update" of module.
-#	-d dir		Place module in directory "dir" instead of module name.
-#	-l		Top-level directory only -- do not recurse.
-#
-# NOTE:  If you change any of the "Run" options above, you'll have to
-# release and re-checkout any working directories of these modules.
-#
-# And "directory" is a path to a directory relative to $CVSROOT.
-#
-# The "-a" option specifies an alias.  An alias is interpreted as if
-# everything on the right of the "-a" had been typed on the command line.
-#
-# You can encode a module within a module by using the special '&'
-# character to interpose another module into the current module.  This
-# can be useful for creating a module that consists of many directories
-# spread out over the entire source repository.
Index: gs/0.3.1/CVSROOT/notify
===================================================================
--- tags/0.3.1/CVSROOT/notify	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,12 +1,0 @@
-# The "notify" file controls where notifications from watches set by
-# "cvs watch add" or "cvs edit" are sent.  The first entry on a line is
-# a regular expression which is tested against the directory that the
-# change is being made to, relative to the $CVSROOT.  If it matches,
-# then the remainder of the line is a filter program that should contain
-# one occurrence of %s for the user to notify, and information on its
-# standard input.
-#
-# "ALL" or "DEFAULT" can be used in place of the regular expression.
-#
-# For example:
-#ALL mail -s "CVS notification" %s
Index: gs/0.3.1/CVSROOT/rcsinfo
===================================================================
--- tags/0.3.1/CVSROOT/rcsinfo	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,13 +1,0 @@
-# The "rcsinfo" file is used to control templates with which the editor
-# is invoked on commit and import.
-#
-# The first entry on a line is a regular expression which is tested
-# against the directory that the change is being made to, relative to the
-# $CVSROOT.  For the first match that is found, then the remainder of the
-# line is the name of the file that contains the template.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name "ALL" appears as a regular expression it is always used
-# in addition to the first matching regex or "DEFAULT".
Index: gs/0.3.1/CVSROOT/taginfo
===================================================================
--- tags/0.3.1/CVSROOT/taginfo	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,20 +1,0 @@
-# The "taginfo" file is used to control pre-tag checks.
-# The filter on the right is invoked with the following arguments:
-#
-# $1 -- tagname
-# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d
-# $3 -- repository
-# $4->  file revision [file revision ...]
-#
-# A non-zero exit of the filter program will cause the tag to be aborted.
-#
-# The first entry on a line is a regular expression which is tested
-# against the directory that the change is being committed to, relative
-# to the $CVSROOT.  For the first match that is found, then the remainder
-# of the line is the name of the filter to run.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name "ALL" appears as a regular expression it is always used
-# in addition to the first matching regex or "DEFAULT".
Index: gs/0.3.1/CVSROOT/verifymsg
===================================================================
--- tags/0.3.1/CVSROOT/verifymsg	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,21 +1,0 @@
-# The "verifymsg" file is used to allow verification of logging
-# information.  It works best when a template (as specified in the
-# rcsinfo file) is provided for the logging procedure.  Given a
-# template with locations for, a bug-id number, a list of people who
-# reviewed the code before it can be checked in, and an external
-# process to catalog the differences that were code reviewed, the
-# following test can be applied to the code:
-#
-#   Making sure that the entered bug-id number is correct.
-#   Validating that the code that was reviewed is indeed the code being
-#       checked in (using the bug-id number or a seperate review
-#       number to identify this particular code set.).
-#
-# If any of the above test failed, then the commit would be aborted.
-#
-# Actions such as mailing a copy of the report to each reviewer are
-# better handled by an entry in the loginfo file.
-#
-# One thing that should be noted is the the ALL keyword is not
-# supported.  There can be only one entry that matches a given
-# repository.
Index: gs/0.3.1/Doxyfile
===================================================================
--- tags/0.3.1/Doxyfile	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,285 +1,0 @@
-# Doxyfile 1.4.1
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME           = NSClient++
-PROJECT_NUMBER         = 1
-OUTPUT_DIRECTORY       = Doc
-CREATE_SUBDIRS         = NO
-OUTPUT_LANGUAGE        = English
-USE_WINDOWS_ENCODING   = YES
-BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = YES
-ABBREVIATE_BRIEF       = "The $name class" \
-                         "The $name widget" \
-                         "The $name file" \
-                         is \
-                         provides \
-                         specifies \
-                         contains \
-                         represents \
-                         a \
-                         an \
-                         the
-ALWAYS_DETAILED_SEC    = YES
-INLINE_INHERITED_MEMB  = YES
-FULL_PATH_NAMES        = YES
-STRIP_FROM_PATH        = 
-STRIP_FROM_INC_PATH    = 
-SHORT_NAMES            = NO
-JAVADOC_AUTOBRIEF      = YES
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP         = YES
-INHERIT_DOCS           = YES
-DISTRIBUTE_GROUP_DOC   = NO
-TAB_SIZE               = 8
-ALIASES                = 
-OPTIMIZE_OUTPUT_FOR_C  = NO
-OPTIMIZE_OUTPUT_JAVA   = NO
-SUBGROUPING            = YES
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL            = YES
-EXTRACT_PRIVATE        = YES
-EXTRACT_STATIC         = YES
-EXTRACT_LOCAL_CLASSES  = YES
-EXTRACT_LOCAL_METHODS  = YES
-HIDE_UNDOC_MEMBERS     = NO
-HIDE_UNDOC_CLASSES     = NO
-HIDE_FRIEND_COMPOUNDS  = NO
-HIDE_IN_BODY_DOCS      = NO
-INTERNAL_DOCS          = NO
-CASE_SENSE_NAMES       = NO
-HIDE_SCOPE_NAMES       = NO
-SHOW_INCLUDE_FILES     = YES
-INLINE_INFO            = YES
-SORT_MEMBER_DOCS       = YES
-SORT_BRIEF_DOCS        = YES
-SORT_BY_SCOPE_NAME     = YES
-GENERATE_TODOLIST      = YES
-GENERATE_TESTLIST      = YES
-GENERATE_BUGLIST       = YES
-GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS       = 
-MAX_INITIALIZER_LINES  = 10
-SHOW_USED_FILES        = YES
-SHOW_DIRECTORIES       = YES
-FILE_VERSION_FILTER    = 
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET                  = YES
-WARNINGS               = YES
-WARN_IF_UNDOCUMENTED   = YES
-WARN_IF_DOC_ERROR      = YES
-WARN_NO_PARAMDOC       = YES
-WARN_FORMAT            = "$file($line) : $text"
-WARN_LOGFILE           = 
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT                  = C:\Source\nscplus
-FILE_PATTERNS          = *.cpp \
-                         *.h \
-                         *.hpp \
-                         *.c
-RECURSIVE              = YES
-EXCLUDE                = 
-EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
-EXAMPLE_PATH           = .
-EXAMPLE_PATTERNS       = 
-EXAMPLE_RECURSIVE      = YES
-IMAGE_PATH             = 
-INPUT_FILTER           = 
-FILTER_PATTERNS        = 
-FILTER_SOURCE_FILES    = NO
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER         = YES
-INLINE_SOURCES         = NO
-STRIP_CODE_COMMENTS    = YES
-REFERENCED_BY_RELATION = YES
-REFERENCES_RELATION    = YES
-VERBATIM_HEADERS       = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = YES
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML          = YES
-HTML_OUTPUT            = 
-HTML_FILE_EXTENSION    = 
-HTML_HEADER            = 
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
-GENERATE_HTMLHELP      = NO
-CHM_FILE               = 
-HHC_LOCATION           = 
-GENERATE_CHI           = NO
-BINARY_TOC             = NO
-TOC_EXPAND             = NO
-DISABLE_INDEX          = YES
-ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = YES
-TREEVIEW_WIDTH         = 300
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX         = NO
-LATEX_OUTPUT           = 
-LATEX_CMD_NAME         = latex
-MAKEINDEX_CMD_NAME     = 
-COMPACT_LATEX          = NO
-PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = YES
-USE_PDFLATEX           = YES
-LATEX_BATCHMODE        = YES
-LATEX_HIDE_INDICES     = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF           = NO
-RTF_OUTPUT             = 
-COMPACT_RTF            = NO
-RTF_HYPERLINKS         = YES
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN           = NO
-MAN_OUTPUT             = 
-MAN_EXTENSION          = .3
-MAN_LINKS              = YES
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML           = NO
-XML_OUTPUT             = xml
-XML_SCHEMA             = 
-XML_DTD                = 
-XML_PROGRAMLISTING     = YES
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF   = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO
-PERLMOD_LATEX          = NO
-PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = YES
-EXPAND_ONLY_PREDEF     = NO
-SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = "DECLARE_INTERFACE(name)=class name" \
-                         "STDMETHOD(result,name)=virtual result name" \
-                         "PURE= = 0" \
-                         THIS_= \
-                         THIS= \
-                         DECLARE_REGISTRY_RESOURCEID=// \
-                         DECLARE_PROTECT_FINAL_CONSTRUCT=// \
-                         "DECLARE_AGGREGATABLE(Class)= " \
-                         "DECLARE_REGISTRY_RESOURCEID(Id)= " \
-                         DECLARE_MESSAGE_MAP \
-                         = \
-                         BEGIN_MESSAGE_MAP=/* \
-                         END_MESSAGE_MAP=*/// \
-                         BEGIN_COM_MAP=/* \
-                         END_COM_MAP=*/// \
-                         BEGIN_PROP_MAP=/* \
-                         END_PROP_MAP=*/// \
-                         BEGIN_MSG_MAP=/* \
-                         END_MSG_MAP=*/// \
-                         BEGIN_PROPERTY_MAP=/* \
-                         END_PROPERTY_MAP=*/// \
-                         BEGIN_OBJECT_MAP=/* \
-                         END_OBJECT_MAP()=*/// \
-                         DECLARE_VIEW_STATUS=// \
-                         "STDMETHOD(a)=HRESULT a" \
-                         "ATL_NO_VTABLE= " \
-                         "__declspec(a)= " \
-                         BEGIN_CONNECTION_POINT_MAP=/* \
-                         END_CONNECTION_POINT_MAP=*/// \
-                         "DECLARE_DYNAMIC(class)= " \
-                         "IMPLEMENT_DYNAMIC(class1, class2)= " \
-                         "DECLARE_DYNCREATE(class)= " \
-                         "IMPLEMENT_DYNCREATE(class1, class2)= " \
-                         "IMPLEMENT_SERIAL(class1, class2, class3)= " \
-                         "DECLARE_MESSAGE_MAP()= " \
-                         TRY=try \
-                         "CATCH_ALL(e)= catch(...)" \
-                         END_CATCH_ALL= \
-                         "THROW_LAST()= throwRUNTIME_CLASS(class)=class" \
-                         MAKEINTRESOURCE(nId)=nId \
-                         "IMPLEMENT_REGISTER(v, w, x, y, z)= " \
-                         ASSERT(x)=assert(x) \
-                         ASSERT_VALID(x)=assert(x) \
-                         TRACE0(x)=printf(x) \
-                         "OS_ERR(A,B)={ #A, B }" \
-                         __cplusplus \
-                         "DECLARE_OLECREATE(class)= " \
-                         "BEGIN_DISPATCH_MAP(class1, class2)= " \
-                         "INTERFACE_PART(class, id, name)= " \
-                         END_INTERFACE_MAP()= \
-                         "DISP_FUNCTION(class, name, function, result, id)=" \
-                         END_DISPATCH_MAP()= \
-                         "IMPLEMENT_OLECREATE2(class, name, id1, id2, id3, id4, id5, id6, id7, id8, id9, id10, id11)="
-EXPAND_AS_DEFINED      = 
-SKIP_FUNCTION_MACROS   = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references   
-#---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       = 
-ALLEXTERNALS           = NO
-EXTERNAL_GROUPS        = NO
-PERL_PATH              = 
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS         = YES
-HIDE_UNDOC_RELATIONS   = NO
-HAVE_DOT               = YES
-CLASS_GRAPH            = YES
-COLLABORATION_GRAPH    = YES
-GROUP_GRAPHS           = YES
-UML_LOOK               = YES
-TEMPLATE_RELATIONS     = YES
-INCLUDE_GRAPH          = YES
-INCLUDED_BY_GRAPH      = YES
-CALL_GRAPH             = YES
-GRAPHICAL_HIERARCHY    = YES
-DIRECTORY_GRAPH        = YES
-DOT_IMAGE_FORMAT       = png
-DOT_PATH               = 
-DOTFILE_DIRS           = 
-MAX_DOT_GRAPH_WIDTH    = 1024
-MAX_DOT_GRAPH_HEIGHT   = 1024
-MAX_DOT_GRAPH_DEPTH    = 1000
-DOT_TRANSPARENT        = NO
-DOT_MULTI_TARGETS      = NO
-GENERATE_LEGEND        = YES
-DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-SEARCHENGINE           = NO
Index: gs/0.3.1/NSC.dist
===================================================================
--- tags/0.3.1/NSC.dist	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,285 +1,0 @@
-[modules]
-;# NSCLIENT++ MODULES
-;# A list with DLLs to load at startup.
-;  You will need to enable some of these for NSClient++ to work.
-; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
-; *                                                               *
-; * N O T I C E ! ! ! - Y O U   H A V E   T O   E D I T   T H I S *
-; *                                                               *
-; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
-;FileLogger.dll
-;CheckSystem.dll
-;CheckDisk.dll
-;NSClientListener.dll
-;NRPEListener.dll
-;SysTray.dll
-;CheckEventLog.dll
-;CheckHelpers.dll
-;CheckWMI.dll
-;
-; RemoteConfiguration IS AN EXTREM EARLY IDEA SO DONT USE FOR PRODUCTION ENVIROMNEMTS!
-;RemoteConfiguration.dll
-; NSCA Agent is a new beta module use with care!
-;NSCAAgent.dll
-; LUA script module used to write your own "check deamon" (sort of) early beta.
-;LUAScript.dll
-; Script to check external scripts and/or internal aliases, early beta.
-;CheckExternalScripts.dll
-; Check other hosts through NRPE extreme beta and probably a bit dangerous! :)
-;NRPEClient.dll
-
-
-
-[Settings]
-;# OBFUSCATED PASSWORD
-;  This is the same as the password option but here you can store the password in an obfuscated manner.
-;  *NOTICE* obfuscation is *NOT* the same as encryption, someone with access to this file can still figure out the 
-;  password. Its just a bit harder to do it at first glance.
-;obfuscated_password=Jw0KAUUdXlAAUwASDAAB
-;
-;# PASSWORD
-;  This is the password (-s) that is required to access NSClient remotely. If you leave this blank everyone will be able to access the daemon remotly.
-;password=secret-password
-;
-;# ALLOWED HOST ADDRESSES
-;  This is a comma-delimited list of IP address of hosts that are allowed to talk to the all daemons.
-;  If leave this blank anyone can access the deamon remotly (NSClient still requires a valid password).
-;  The syntax is host or ip/mask so 192.168.0.0/24 will allow anyone on that subnet access
-;allowed_hosts=127.0.0.1/32
-;
-;# USE THIS FILE
-;  Use the INI file as opposed to the registry if this is 0 and the use_reg in the registry is set to 1 
-;  the registry will be used instead.
-use_file=1
-
-[log]
-;# LOG DEBUG
-;  Set to 1 if you want debug message printed in the log file (debug messages are always printed to stdout when run with -test)
-;debug=1
-;
-;# LOG FILE
-;  The file to print log statements to
-;file=NSC.log
-;
-;# LOG DATE MASK
-;  The format to for the date/time part of the log entry written to file.
-;date_mask=%Y-%m-%d %H:%M:%S
-
-
-[NSClient]
-;# ALLOWED HOST ADDRESSES
-;  This is a comma-delimited list of IP address of hosts that are allowed to talk to NSClient deamon.
-;  If you leave this blank the global version will be used instead.
-;allowed_hosts=
-;
-;# NSCLIENT PORT NUMBER
-;  This is the port the NSClientListener.dll will listen to.
-;port=12489
-;
-;# BIND TO ADDRESS
-;  Allows you to bind server to a specific local address. This has to be a dotted ip adress not a hostname.
-;  Leaving this blank will bind to all avalible IP adresses.
-;bind_to_address=
-;
-;# SOCKET TIMEOUT
-;  Timeout when reading packets on incoming sockets. If the data has not arrived withint this time we will bail out.
-;socket_timeout=30
-
-[NRPE]
-;# NRPE PORT NUMBER
-;  This is the port the NRPEListener.dll will listen to.
-;port=5666
-;
-;# COMMAND TIMEOUT
-;  This specifies the maximum number of seconds that the NRPE daemon will allow plug-ins to finish executing before killing them off.
-;command_timeout=60
-;
-;# COMMAND ARGUMENT PROCESSING
-;  This option determines whether or not the NRPE daemon will allow clients to specify arguments to commands that are executed.
-;allow_arguments=0
-;
-;# COMMAND ALLOW NASTY META CHARS
-;  This option determines whether or not the NRPE daemon will allow clients to specify nasty (as in |`&><'"\[]{}) characters in arguments.
-;allow_nasty_meta_chars=0
-;
-;# USE SSL SOCKET
-;  This option controls if SSL should be used on the socket.
-;use_ssl=1
-;
-;# BIND TO ADDRESS
-;  Allows you to bind server to a specific local address. This has to be a dotted ip adress not a hostname.
-;  Leaving this blank will bind to all avalible IP adresses.
-; bind_to_address=
-;
-;# ALLOWED HOST ADDRESSES
-;  This is a comma-delimited list of IP address of hosts that are allowed to talk to NRPE deamon.
-;  If you leave this blank the global version will be used instead.
-;allowed_hosts=
-;
-;# SCRIPT DIRECTORY
-;  All files in this directory will become check commands.
-;  *WARNING* This is undoubtedly dangerous so use with care!
-;script_dir=scripts\
-;
-;# SOCKET TIMEOUT
-;  Timeout when reading packets on incoming sockets. If the data has not arrived withint this time we will bail out.
-;socket_timeout=30
-
-[Check System]
-;# CPU BUFFER SIZE
-;  Can be anything ranging from 1s (for 1 second) to 10w for 10 weeks. Notice that a larger buffer will waste memory 
-;  so don't use a larger buffer then you need (ie. the longest check you do +1).
-;CPUBufferSize=1h
-;
-;# CHECK RESOLUTION
-;  The resolution to check values (currently only CPU).
-;  The value is entered in 1/10:th of a second and the default is 10 (which means ones every second)
-;CheckResolution=10
-;
-;# CHECK ALL SERVICES
-;  Configure how to check services when a CheckAll is performed.
-;  ...=started means services in that class *has* to be running.
-;  ...=stopped means services in that class has to be stopped.
-;  ...=ignored means services in this class will be ignored.
-;check_all_services[SERVICE_BOOT_START]=ignored
-;check_all_services[SERVICE_SYSTEM_START]=ignored
-;check_all_services[SERVICE_AUTO_START]=started
-;check_all_services[SERVICE_DEMAND_START]=ignored
-;check_all_services[SERVICE_DISABLED]=stopped
-
-[External Script]
-;# COMMAND TIMEOUT
-;  This specifies the maximum number of seconds that the NRPE daemon will allow plug-ins to finish executing before killing them off.
-;command_timeout=60
-;
-;# COMMAND ARGUMENT PROCESSING
-;  This option determines whether or not the NRPE daemon will allow clients to specify arguments to commands that are executed.
-;allow_arguments=0
-;
-;# COMMAND ALLOW NASTY META CHARS
-;  This option determines whether or not the NRPE daemon will allow clients to specify nasty (as in |`&><'"\[]{}) characters in arguments.
-;allow_nasty_meta_chars=0
-;
-;# COMMAND ALLOW NASTY META CHARS
-;  This option determines whether or not the NRPE daemon will allow clients to specify nasty (as in |`&><'"\[]{}) characters in arguments.
-;script_dir=c:\my\script\dir
-
-[External Scripts]
-;check_es_long=scripts\long.bat
-;check_es_ok=scripts\ok.bat
-;check_es_nok=scripts\nok.bat
-;check_vbs_sample=cscript.exe //T:30 //NoLogo scripts\check_vb.vbs
-
-[External Alias]
-;alias_cpu=checkCPU warn=80 crit=90 time=5m time=1m time=30s
-;alias_disk=CheckDriveSize MinWarn=10% MinCrit=5% CheckAll FilterType=FIXED
-;alias_service=checkServiceState CheckAll
-;alias_mem=checkMem MaxWarn=80% MaxCrit=90% ShowAll type=physical
-
-
-
-
-; [includes]
-;# The order when used is "reversed" thus the last included file will be "first"
-;# Included files can include other files (be carefull only do basic recursive checking)
-;
-; myotherfile.ini
-; real.ini
-
-
-[NSCA Agent]
-;# CHECK INTERVALL (in seconds)
-;   How often we should run the checks and submit the results.
-;interval=5
-;
-;# ENCRYPTION METHOD
-;   This option determines the method by which the send_nsca client will encrypt the packets it sends 
-;   to the nsca daemon. The encryption method you choose will be a balance between security and 
-;   performance, as strong encryption methods consume more processor resources.
-;   You should evaluate your security needs when choosing an encryption method.
-;
-; Note: The encryption method you specify here must match the decryption method the nsca daemon uses 
-;       (as specified in the nsca.cfg file)!!
-; Values:
-;	0 = None	(Do NOT use this option)
-;	1 = Simple XOR  (No security, just obfuscation, but very fast)
-;   2 = DES
-;   3 = 3DES (Triple DES)
-;	4 = CAST-128
-;	6 = xTEA
-;	8 = BLOWFISH
-;	9 = TWOFISH
-;	11 = RC2
-;	14 = RIJNDAEL-128 (AES)
-;	20 = SERPENT
-;encryption_method=14
-;
-;# ENCRYPTION PASSWORD
-;  This is the password/passphrase that should be used to encrypt the sent packets. 
-;password=
-;
-;# BIND TO ADDRESS
-;  Allows you to bind server to a specific local address. This has to be a dotted ip adress not a hostname.
-;  Leaving this blank will bind to "one" local interface.
-; -- not supported as of now -- 
-;bind_to_address=
-;
-;# LOCAL HOST NAME
-;  The name of this host (if empty "computername" will be used.
-;hostname=
-;
-;# NAGIOS SERVER ADDRESS
-;  The address to the nagios server to submit results to.
-;nsca_host=192.168.0.1
-;
-;# NAGIOS SERVER PORT
-;  The port to the nagios server to submit results to.
-;nsca_port=5667
-;
-
-;# CHECK COMMAND LIST
-;  The checks to run everytime we submit results back to nagios
-;  Any command(alias/key) starting with a host_ is sent as HOST_COMMAND others are sent as SERVICE_COMMANDS
-;  where the alias/key is used as service name.
-;
-[NSCA Commands]
-;my_cpu_check=checkCPU warn=80 crit=90 time=20m time=10s time=4
-;my_mem_check=checkMem MaxWarn=80% MaxCrit=90% ShowAll type=page
-;my_svc_check=checkServiceState CheckAll exclude=wampmysqld exclude=MpfService
-;host_check=check_ok
-
-[NRPE Handlers]
-;# COMMAND DEFINITIONS
-;# Command definitions that this daemon will run.
-;# Can be either NRPE syntax:
-;command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
-;# Or simplified syntax:
-;test=c:\test.bat foo $ARG1$ bar
-;check_disk1=/usr/local/nagios/libexec/check_disk -w 5 -c 10
-;# Or even loopback (inject) syntax (to run internal commands)
-;# This is a way to run "NSClient" commands and other internal module commands such as check eventlog etc.
-;check_cpu=inject checkCPU warn=80 crit=90 5 10 15
-;check_eventlog=inject CheckEventLog Application warn.require.eventType=error warn.require.eventType=warning critical.require.eventType=error critical.exclude.eventType=info truncate=1024 descriptions
-;check_disk_c=inject CheckFileSize ShowAll MaxWarn=1024M MaxCrit=4096M File:WIN=c:\ATI\*.*
-;# But be careful:
-; dont_check=inject dont_check This will "loop forever" so be careful with the inject command...
-;# Check some escapings...
-; check_escape=inject CheckFileSize ShowAll MaxWarn=1024M MaxCrit=4096M "File: foo \" WIN=c:\\WINDOWS\\*.*"
-;# Some real world samples
-;nrpe_cpu=inject checkCPU warn=80 crit=90 5 10 15
-;nrpe_ok=scripts\ok.bat
-;check_multi_line=scripts\multi_line.bat
-;#
-;# The sample scripts
-;#
-;check_long=scripts\long.bat
-;check_ok=scripts\ok.bat
-;check_nok=scripts\xlong.bat
-;check_vbs=cscript.exe //T:30 //NoLogo scripts\check_vb.vbs
-
-;# REMOTE NRPE PROXY COMMANDS
-;  A list of commands that check other hosts.
-;  Used by the NRPECLient module
-[NRPE Client Handlers]
-check_other=-H 192.168.0.1 -p 5666 -c remote_command -a arguments
-
Index: gs/0.3.1/NSCPlugin.cpp
===================================================================
--- tags/0.3.1/NSCPlugin.cpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,349 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#include "stdafx.h"
-#include "NSClient++.h"
-#include <error.hpp>
-/**
- * Default c-tor
- * Initializes the plug in name but does not load the actual plug in.<br>
- * To load the plug in use function load() that loads an initializes the plug in.
- *
- * @param file The file (DLL) to load as a NSC plug in.
- */
-NSCPlugin::NSCPlugin(const std::wstring file)
-	: file_(file)
-	,hModule_(NULL)
-	,fLoadModule(NULL)
-	,fGetName(NULL)
-	,fHasCommandHandler(NULL)
-	,fUnLoadModule(NULL)
-	,fHasMessageHandler(NULL)
-	,fHandleMessage(NULL)
-	,fGetDescription(NULL)
-	,fGetConfigurationMeta(NULL)
-	,fGetVersion(NULL)
-	,fCommandLineExec(NULL)
-	,bLoaded_(false)
-{
-}
-
-NSCPlugin::NSCPlugin(NSCPlugin &other)
-	:hModule_(NULL)
-	,fLoadModule(NULL)
-	,fGetName(NULL)
-	,fHasCommandHandler(NULL)
-	,fUnLoadModule(NULL)
-	,fHasMessageHandler(NULL)
-	,fHandleMessage(NULL)
-	,fGetDescription(NULL)
-	,fGetConfigurationMeta(NULL)
-	,fGetVersion(NULL)
-	,fCommandLineExec(NULL)
-	,bLoaded_(false)
-{
-	if (other.bLoaded_) {
-		file_ = other.file_;
-		hModule_ = LoadLibrary(file_.c_str());
-		if (!hModule_)
-			throw NSPluginException(file_, _T("Could not load library: ") + error::lookup::last_error());
-		loadRemoteProcs_();
-		if (!fLoadModule)
-			throw NSPluginException(file_, _T("Critical error (fLoadModule)"));
-		bLoaded_ = other.bLoaded_;
-	}
-}
-
-/**
- * Default d-tor
- */
-NSCPlugin::~NSCPlugin() {
-	if (isLoaded())
-		unload();
-}
-/**
- * Returns the name of the plug in.
- *
- * @return Name of the plug in.
- *
- * @throws NSPluginException if the module is not loaded.
- */
-std::wstring NSCPlugin::getName() {
-	TCHAR *buffer = new TCHAR[1024];
-	if (!getName_(buffer, 1023)) {
-		throw NSPluginException(file_, _T("Could not get name"));
-	}
-	std::wstring ret = buffer;
-	delete [] buffer;
-	return ret;
-}
-std::wstring NSCPlugin::getDescription() {
-	TCHAR *buffer = new TCHAR[4096];
-	if (!getDescription_(buffer, 4095)) {
-		throw NSPluginException(file_, _T("Could not get description"));
-	}
-	std::wstring ret = buffer;
-	delete [] buffer;
-	return ret;
-}
-
-/**
- * Loads the plug in (DLL) and initializes the plug in by calling NSLoadModule
- *
- * @throws NSPluginException when exceptions occur. 
- * Exceptions include but are not limited to: DLL fails to load, DLL is not a correct plug in.
- */
-void NSCPlugin::load_dll() {
-	if (isLoaded())
-		throw NSPluginException(file_, _T("Module already loaded"));
-	hModule_ = LoadLibrary(file_.c_str());
-	if (!hModule_)
-		throw NSPluginException(file_, _T("Could not load library: ") + error::lookup::last_error());
-	loadRemoteProcs_();
-	bLoaded_ = true;
-}
-
-void NSCPlugin::load_plugin() {
-	if (!fLoadModule)
-		throw NSPluginException(file_, _T("Critical error (fLoadModule)"));
-	if (!fLoadModule())
-		throw NSPluginException(file_, _T("Could not load plug in"));
-}
-
-
-/**
- * Get the plug in version.
- *
- * @bug Not implemented as of yet
- *
- * @param *major 
- * @param *minor 
- * @param *revision 
- * @return False
- */
-bool NSCPlugin::getVersion(int *major, int *minor, int *revision) {
-	if (!isLoaded())
-		throw NSPluginException(file_, _T("Library is not loaded"));
-	if (!fGetVersion)
-		throw NSPluginException(file_, _T("Critical error (fGetVersion)"));
-	try {
-		return fGetVersion(major, minor, revision)?true:false;
-	} catch (...) {
-		throw NSPluginException(file_, _T("Unhandled exception in getVersion."));
-	}
-}
-/**
- * Returns true if the plug in has a command handler.
- * @return true if the plug in has a command handler.
- * @throws NSPluginException if the module is not loaded.
- */
-bool NSCPlugin::hasCommandHandler() {
-	if (!isLoaded())
-		throw NSPluginException(file_, _T("Module not loaded"));
-	try {
-		if (fHasCommandHandler())
-			return true;
-		return false;
-	} catch (...) {
-		throw NSPluginException(file_, _T("Unhandled exception in hasCommandHandler."));
-	}
-}
-/**
-* Returns true if the plug in has a message (log) handler.
-* @return true if the plug in has a message (log) handler.
-* @throws NSPluginException if the module is not loaded.
-*/
-bool NSCPlugin::hasMessageHandler() {
-	if (!isLoaded())
-		throw NSPluginException(file_, _T("Module not loaded"));
-	try {
-		if (fHasMessageHandler())
-			return true;
-		return false;
-	} catch (...) {
-		throw NSPluginException(file_, _T("Unhandled exception in hasMessageHandler."));
-	}
-}
-/**
- * Allow for the plug in to handle a command from the input core.
- * 
- * Plug ins may refuse to handle the plug in (if not applicable) by returning an empty string.
- *
- * @param command The command name (is a string encoded number for legacy commands)
- * @param argLen The length of the argument buffer.
- * @param **arguments The arguments for this command
- * @param returnMessageBuffer Return buffer for plug in to store the result of the executed command.
- * @param returnMessageBufferLen Size of returnMessageBuffer
- * @param returnPerfBuffer Return buffer for performance data
- * @param returnPerfBufferLen Size of returnPerfBuffer
- * @return Status of execution. Could be error codes, buffer length messages etc.
- * @throws NSPluginException if the module is not loaded.
- */
-NSCAPI::nagiosReturn NSCPlugin::handleCommand(const TCHAR* command, const unsigned int argLen, TCHAR **arguments, TCHAR* returnMessageBuffer, unsigned int returnMessageBufferLen, TCHAR* returnPerfBuffer, unsigned int returnPerfBufferLen) {
-	if (!isLoaded())
-		throw NSPluginException(file_, _T("Library is not loaded"));
-	try {
-		return fHandleCommand(command, argLen, arguments, returnMessageBuffer, returnMessageBufferLen, returnPerfBuffer, returnPerfBufferLen);
-	} catch (...) {
-		throw NSPluginException(file_, _T("Unhandled exception in handleCommand."));
-	}
-}
-/**
- * Handle a message from the core (or any other (or even potentially self) plug in).
- * A message may be anything really errors, log messages etc.
- *
- * @param msgType Type of message (error, warning, debug, etc.)
- * @param file The file that generated this message generally __FILE__.
- * @param line The line in the file that generated the message generally __LINE__
- * @throws NSPluginException if the module is not loaded.
- */
-void NSCPlugin::handleMessage(int msgType, const TCHAR* file, const int line, const TCHAR *message) {
-	if (!fHandleMessage)
-		throw NSPluginException(file_, _T("Library is not loaded"));
-	try {
-		fHandleMessage(msgType, file, line, message);
-	} catch (...) {
-		throw NSPluginException(file_, _T("Unhandled exception in handleMessage."));
-	}
-}
-/**
- * Unload the plug in
- * @throws NSPluginException if the module is not loaded and/or cannot be unloaded (plug in remains loaded if so).
- */
-void NSCPlugin::unload() {
-	if (!isLoaded())
-		throw NSPluginException(file_, _T("Library is not loaded"));
-	if (!fUnLoadModule)
-		throw NSPluginException(file_, _T("Critical error (fUnLoadModule)"));
-	try {
-		fUnLoadModule();
-	} catch (...) {
-		throw NSPluginException(file_, _T("Unhandled exception in handleMessage."));
-	}
-	FreeLibrary(hModule_);
-	hModule_ = NULL;
-	bLoaded_ = false;
-}
-bool NSCPlugin::getName_(TCHAR* buf, unsigned int buflen) {
-	if (fGetName == NULL)
-		throw NSPluginException(file_, _T("Critical error (fGetName)"));
-	try {
-		return fGetName(buf, buflen)?true:false;
-	} catch (...) {
-		throw NSPluginException(file_, _T("Unhandled exception in getName."));
-	}
-}
-bool NSCPlugin::getDescription_(TCHAR* buf, unsigned int buflen) {
-	if (fGetDescription == NULL)
-		throw NSPluginException(file_, _T("Critical error (fGetDescription)"));
-	try {
-		return fGetDescription(buf, buflen)?true:false;
-	} catch (...) {
-		throw NSPluginException(file_, _T("Unhandled exception in getDescription."));
-	}
-}
-/**
- * Load all remote function pointers from the loaded module.
- * These pointers are cached for "speed" which might (?) be dangerous if something changes.
- * @throws NSPluginException if any of the function pointers fail to load.
- * If NSPluginException  is thrown the loaded might remain partially loaded and crashes might occur if plug in is used in this state.
- */
-void NSCPlugin::loadRemoteProcs_(void) {
-
-	fLoadModule = (lpLoadModule)GetProcAddress(hModule_, "NSLoadModule");
-	if (!fLoadModule)
-		throw NSPluginException(file_, _T("Could not load NSLoadModule"));
-
-	fModuleHelperInit = (lpModuleHelperInit)GetProcAddress(hModule_, "NSModuleHelperInit");
-	if (!fModuleHelperInit)
-		throw NSPluginException(file_, _T("Could not load NSModuleHelperInit"));
-
-	try {
-		fModuleHelperInit(NSAPILoader);
-	} catch (...) {
-		throw NSPluginException(file_, _T("Unhandled exception in getDescription."));
-	}
-	
-	fGetName = (lpGetName)GetProcAddress(hModule_, "NSGetModuleName");
-	if (!fGetName)
-		throw NSPluginException(file_, _T("Could not load NSGetModuleName"));
-
-	fGetVersion = (lpGetVersion)GetProcAddress(hModule_, "NSGetModuleVersion");
-	if (!fGetVersion)
-		throw NSPluginException(file_, _T("Could not load NSGetModuleVersion"));
-
-	fGetDescription = (lpGetDescription)GetProcAddress(hModule_, "NSGetModuleDescription");
-	if (!fGetDescription)
-		throw NSPluginException(file_, _T("Could not load NSGetModuleDescription"));
-
-	fHasCommandHandler = (lpHasCommandHandler)GetProcAddress(hModule_, "NSHasCommandHandler");
-	if (!fHasCommandHandler)
-		throw NSPluginException(file_, _T("Could not load NSHasCommandHandler"));
-
-	fHasMessageHandler = (lpHasMessageHandler)GetProcAddress(hModule_, "NSHasMessageHandler");
-	if (!fHasMessageHandler)
-		throw NSPluginException(file_, _T("Could not load NSHasMessageHandler"));
-
-	fHandleCommand = (lpHandleCommand)GetProcAddress(hModule_, "NSHandleCommand");
-	if (!fHandleCommand)
-		throw NSPluginException(file_, _T("Could not load NSHandleCommand"));
-
-	fHandleMessage = (lpHandleMessage)GetProcAddress(hModule_, "NSHandleMessage");
-	if (!fHandleMessage)
-		throw NSPluginException(file_, _T("Could not load NSHandleMessage"));
-
-	fUnLoadModule = (lpUnLoadModule)GetProcAddress(hModule_, "NSUnloadModule");
-	if (!fUnLoadModule)
-		throw NSPluginException(file_, _T("Could not load NSUnloadModule"));
-
-	fGetConfigurationMeta = (lpGetConfigurationMeta)GetProcAddress(hModule_, "NSGetConfigurationMeta");
-	fCommandLineExec = (lpCommandLineExec)GetProcAddress(hModule_, "NSCommandLineExec");
-}
-
-
-std::wstring NSCPlugin::getCongifurationMeta() 
-{
-	TCHAR *buffer = new TCHAR[4097];
-	if (!getConfigurationMeta_(buffer, 4096)) {
-		throw NSPluginException(file_, _T("Could not get metadata"));
-	}
-	std::wstring ret = buffer;
-	delete [] buffer;
-	return ret;
-}
-bool NSCPlugin::getConfigurationMeta_(TCHAR* buf, unsigned int buflen) {
-	if (fGetConfigurationMeta == NULL)
-		throw NSPluginException(file_, _T("Critical error (getCongifurationMeta)"));
-	try {
-		return fGetConfigurationMeta(buflen, buf)?true:false;
-	} catch (...) {
-		throw NSPluginException(file_, _T("Unhandled exception in getConfigurationMeta."));
-	}
-}
-
-int NSCPlugin::commandLineExec(const TCHAR* command, const unsigned int argLen, TCHAR **arguments) {
-	if (fCommandLineExec== NULL)
-		throw NSPluginException(file_, _T("Module does not support CommandLineExec"));
-	try {
-		return fCommandLineExec(command, argLen, arguments);
-	} catch (...) {
-		throw NSPluginException(file_, _T("Unhandled exception in commandLineExec."));
-	}
-}
Index: gs/0.3.1/NSCPlugin.h
===================================================================
--- tags/0.3.1/NSCPlugin.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,166 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <NSCAPI.h>
-#include <NSCHelper.h>
-#include <sstream>
-
-/**
- * @ingroup NSClient++
- * Exception class for the NSCPlugin class.
- * When an unexpected error occurs in NSCPlugin this exception is thrown.
- *
- * @version 1.0
- * first version
- *
- * @date 02-12-2005
- *
- * @author mickem
- *
- * @par license
- * This code is absolutely free to use and modify. The code is provided "as is" with
- * no expressed or implied warranty. The author accepts no liability if it causes
- * any damage to your computer, causes your pet to fall ill, increases baldness
- * or makes your car start emitting strange noises when you start it up.
- * This code has no bugs, just undocumented features!
- * 
- * @todo 
- * Add status codes to make error type simpler to parse out.
- *
- * @bug 
- *
- */
-class NSPluginException {
-public:
-	std::wstring file_;	// DLL filename (for which the exception was thrown)
-	std::wstring error_;	// An error message (human readable format)
-	/**
-	 * @param file DLL filename (for which the exception is thrown)
-	 * @param error An error message (human readable format)
-	 */
-	NSPluginException(std::wstring file, std::wstring error) : file_(file), error_(error) {
-	}
-};
-
-/**
- * @ingroup NSClient++
- * NSCPlugin is a wrapper class to wrap all DLL calls and make things simple and clean inside the actual application.<br>
- * Things tend to be one-to-one by which I mean that a call to a function here should call the corresponding function in the plug in (if loaded).
- * If things are "broken" NSPluginException is called to indicate this. Error states are returned for normal "conditions".
- *
- *
- * @version 1.0
- * first version
- *
- * @date 02-12-2005
- *
- * @author mickem
- *
- * @par license
- * This code is absolutely free to use and modify. The code is provided "as is" with
- * no expressed or implied warranty. The author accepts no liability if it causes
- * any damage to your computer, causes your pet to fall ill, increases baldness
- * or makes your car start emitting strange noises when you start it up.
- * This code has no bugs, just undocumented features!
- * 
- * @todo 
- * getVersion() is not implemented as of yet.
- *
- * @bug 
- *
- */
-class NSCPlugin {
-private:
-	bool bLoaded_;			// Status of plug in
-	HMODULE hModule_;		// module handle to the DLL (once it is loaded)
-	std::wstring file_;		// Name of the DLL file
-
-	typedef INT (*lpModuleHelperInit)(NSCModuleHelper::lpNSAPILoader f);
-	typedef INT (*lpLoadModule)();
-	typedef INT (*lpGetName)(TCHAR*,unsigned int);
-	typedef INT (*lpGetDescription)(TCHAR*,unsigned int);
-	typedef INT (*lpGetVersion)(int*,int*,int*);
-	typedef INT (*lpHasCommandHandler)();
-	typedef INT (*lpHasMessageHandler)();
-	typedef NSCAPI::nagiosReturn (*lpHandleCommand)(const TCHAR*,const unsigned int, TCHAR**,TCHAR*,unsigned int,TCHAR *,unsigned int);
-	typedef INT (*lpCommandLineExec)(const TCHAR*,const unsigned int,TCHAR**);
-	typedef INT (*lpHandleMessage)(int,const TCHAR*,const int,const TCHAR*);
-	typedef INT (*lpUnLoadModule)();
-	typedef INT (*lpGetConfigurationMeta)(int, TCHAR*);
-
-
-	lpModuleHelperInit fModuleHelperInit;
-	lpLoadModule fLoadModule;
-	lpGetName fGetName;
-	lpGetVersion fGetVersion;
-	lpGetDescription fGetDescription;
-	lpHasCommandHandler fHasCommandHandler;
-	lpHasMessageHandler fHasMessageHandler;
-	lpHandleCommand fHandleCommand;
-	lpHandleMessage fHandleMessage;
-	lpUnLoadModule fUnLoadModule;
-	lpGetConfigurationMeta fGetConfigurationMeta;
-	lpCommandLineExec fCommandLineExec;
-
-public:
-	NSCPlugin(const std::wstring file);
-	NSCPlugin(NSCPlugin &other);
-	virtual ~NSCPlugin(void);
-
-	std::wstring getName(void);
-	std::wstring getDescription();
-	void load_dll(void);
-	void load_plugin(void);
-	bool getVersion(int *major, int *minor, int *revision);
-	bool hasCommandHandler(void);
-	bool hasMessageHandler(void);
-	NSCAPI::nagiosReturn handleCommand(const TCHAR *command, const unsigned int argLen, TCHAR **arguments, TCHAR* returnMessageBuffer, unsigned int returnMessageBufferLen, TCHAR* returnPerfBuffer, unsigned int returnPerfBufferLen);
-	void handleMessage(int msgType, const TCHAR* file, const int line, const TCHAR *message);
-	void unload(void);
-	std::wstring getCongifurationMeta();
-	int commandLineExec(const TCHAR* command, const unsigned int argLen, TCHAR **arguments);
-	std::wstring getModule() {
-		if (file_.empty())
-			return _T("");
-		std::wstring ret = file_;
-		std::wstring::size_type pos = ret.find_last_of(_T("\\"));
-		if (pos != std::wstring::npos && ++pos < ret.length()) {
-			ret = ret.substr(pos);
-		}
-		pos = ret.find_last_of(_T("."));
-		if (pos != std::wstring::npos) {
-			ret = ret.substr(0, pos);
-		}
-		return ret;
-	}
-
-private:
-	bool isLoaded() const {
-		return bLoaded_;
-	}
-	bool getName_(TCHAR* buf, unsigned int buflen);
-	bool getDescription_(TCHAR* buf, unsigned int buflen);
-	void loadRemoteProcs_(void);
-	bool getConfigurationMeta_(TCHAR* buf, unsigned int buflen);
-};
-
-
Index: gs/0.3.1/NSClient++-2005.sln
===================================================================
--- tags/0.3.1/NSClient++-2005.sln	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,1052 +1,0 @@
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NSClient++", "NSClient++-2005.vcproj", "{2286162D-7571-4735-BAC8-4A8D33A4F42D}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6} = {2FF60AF6-09AA-49AB-B414-2E8FD01655C6}
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F} = {62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8} = {08D6246D-1B4A-47A3-965D-296DCC54A4E8}
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D} = {2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F} = {8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4} = {626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129} = {0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}
-		{26B84883-BE52-40E6-9BEE-55AD056D5751} = {26B84883-BE52-40E6-9BEE-55AD056D5751}
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996} = {4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE} = {6F55C9BF-57F6-4A15-A058-C83A52F539EE}
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0} = {05DE66AC-E55C-43B3-849F-7EC695D8B8D0}
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45} = {E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}
-		{BBFF8362-C626-4838-B0A2-F695D638AD24} = {BBFF8362-C626-4838-B0A2-F695D638AD24}
-		{BA246C01-063A-4548-8957-32D5CC76171B} = {BA246C01-063A-4548-8957-32D5CC76171B}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SysTray", "modules\SysTray\SysTray-2005.vcproj", "{BBFF8362-C626-4838-B0A2-F695D638AD24}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FileLogger", "modules\FileLogger\FileLogger-2005.vcproj", "{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CheckEventLog", "modules\CheckEventLog\CheckEventLog-2005.vcproj", "{BA246C01-063A-4548-8957-32D5CC76171B}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CheckDisk", "modules\CheckDisk\CheckDisk-2005.vcproj", "{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NRPEListener", "modules\NRPEListener\NRPEListener-2005.vcproj", "{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NSClientListener", "modules\NSClientListener\NSClientListener-2005.vcproj", "{08D6246D-1B4A-47A3-965D-296DCC54A4E8}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CheckSystem", "modules\CheckSystem\CheckSystem-2005.vcproj", "{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CheckHelpers", "modules\CheckHelpers\CheckHelpers-2005.vcproj", "{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CheckWMI", "modules\CheckWMI\CheckWMI-2005.vcproj", "{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RemoteConfiguration", "modules\RemoteConfiguration\RemoteConfiguration-2005.vcproj", "{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XAutobuild-2005", "helpers\XAutoBuild\XAutobuild-2005.csproj", "{0E2B21D9-F432-4127-8E92-7716B1072510}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NSCAAgent", "modules\NSCAAgent\NSCAAgent-2005.vcproj", "{6F55C9BF-57F6-4A15-A058-C83A52F539EE}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A} = {630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LUAScript", "modules\LUAScript\LUAScript-2005.vcproj", "{26B84883-BE52-40E6-9BEE-55AD056D5751}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{B6D08289-B8AE-4391-9D07-93B22618BE58} = {B6D08289-B8AE-4391-9D07-93B22618BE58}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CheckExternalScripts", "modules\CheckExternalScripts\CheckExternalScripts-2005.vcproj", "{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NRPEClient", "modules\NRPEClient\NRPEClient-2005.vcproj", "{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lib-src", "lib-src", "{C8DCE3D7-A802-4C5D-ABB1-B478F545B6E5}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Crypto++", "lib-source\Crypto++\Crypto++.vcproj", "{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LUA", "lib-source\LUA\LUA.vcproj", "{B6D08289-B8AE-4391-9D07-93B22618BE58}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "modules", "modules", "{9757464B-C125-4307-A84A-F4181AE6A081}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "helpers", "helpers", "{9A087442-7BB2-4CF0-9F58-5D1BC3C32CD2}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{A49CE20D-CE64-4A08-9F24-92A6443D6699}") = "installer", "helpers\installer\installer.wixproj", "{A3CF4E23-1D1B-4D93-A16A-48C52D118560}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D} = {2286162D-7571-4735-BAC8-4A8D33A4F42D}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UploadInstaller", "helpers\UploadInstaller\UploadInstaller.vcproj", "{6206F046-3D36-4258-BB03-3291A7070117}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560} = {A3CF4E23-1D1B-4D93-A16A-48C52D118560}
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D} = {2286162D-7571-4735-BAC8-4A8D33A4F42D}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UploadBinaries", "helpers\UploadBinaries\UploadBinaries.vcproj", "{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D} = {2286162D-7571-4735-BAC8-4A8D33A4F42D}
-	EndProjectSection
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Debug|Itanium = Debug|Itanium
-		Debug|Mixed Platforms = Debug|Mixed Platforms
-		Debug|Win32 = Debug|Win32
-		Debug|x64 = Debug|x64
-		Debug-MemCheck|Any CPU = Debug-MemCheck|Any CPU
-		Debug-MemCheck|Itanium = Debug-MemCheck|Itanium
-		Debug-MemCheck|Mixed Platforms = Debug-MemCheck|Mixed Platforms
-		Debug-MemCheck|Win32 = Debug-MemCheck|Win32
-		Debug-MemCheck|x64 = Debug-MemCheck|x64
-		Distribution|Any CPU = Distribution|Any CPU
-		Distribution|Itanium = Distribution|Itanium
-		Distribution|Mixed Platforms = Distribution|Mixed Platforms
-		Distribution|Win32 = Distribution|Win32
-		Distribution|x64 = Distribution|x64
-		Nightly|Any CPU = Nightly|Any CPU
-		Nightly|Itanium = Nightly|Itanium
-		Nightly|Mixed Platforms = Nightly|Mixed Platforms
-		Nightly|Win32 = Nightly|Win32
-		Nightly|x64 = Nightly|x64
-		Release|Any CPU = Release|Any CPU
-		Release|Itanium = Release|Itanium
-		Release|Mixed Platforms = Release|Mixed Platforms
-		Release|Win32 = Release|Win32
-		Release|x64 = Release|x64
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|Itanium.ActiveCfg = Debug|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|Win32.ActiveCfg = Debug|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|Win32.Build.0 = Debug|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|x64.ActiveCfg = Debug|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|x64.Build.0 = Debug|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Distribution|Itanium.ActiveCfg = Distribution|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Distribution|Win32.Build.0 = Distribution|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Distribution|x64.ActiveCfg = Distribution|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|Win32.Build.0 = Nightly|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|x64.ActiveCfg = Nightly|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|x64.Build.0 = Nightly|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Release|Any CPU.ActiveCfg = Release|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Release|Itanium.ActiveCfg = Release|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Release|Mixed Platforms.Build.0 = Release|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Release|Win32.ActiveCfg = Release|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Release|Win32.Build.0 = Release|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Release|x64.ActiveCfg = Release|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|Itanium.ActiveCfg = Debug|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|Win32.ActiveCfg = Debug|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|Win32.Build.0 = Debug|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|x64.ActiveCfg = Debug|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|x64.Build.0 = Debug|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Distribution|Itanium.ActiveCfg = Distribution|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Distribution|Win32.Build.0 = Distribution|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Distribution|x64.ActiveCfg = Distribution|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|Win32.Build.0 = Nightly|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|x64.ActiveCfg = Nightly|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|x64.Build.0 = Nightly|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Release|Any CPU.ActiveCfg = Release|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Release|Itanium.ActiveCfg = Release|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Release|Mixed Platforms.Build.0 = Release|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Release|Win32.ActiveCfg = Release|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Release|Win32.Build.0 = Release|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Release|x64.ActiveCfg = Release|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|Itanium.ActiveCfg = Debug|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|Win32.ActiveCfg = Debug|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|Win32.Build.0 = Debug|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|x64.ActiveCfg = Debug|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|x64.Build.0 = Debug|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Distribution|Itanium.ActiveCfg = Distribution|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Distribution|Win32.Build.0 = Distribution|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Distribution|x64.ActiveCfg = Distribution|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|Win32.Build.0 = Nightly|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|x64.ActiveCfg = Nightly|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|x64.Build.0 = Nightly|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Release|Any CPU.ActiveCfg = Release|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Release|Itanium.ActiveCfg = Release|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Release|Mixed Platforms.Build.0 = Release|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Release|Win32.ActiveCfg = Release|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Release|Win32.Build.0 = Release|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Release|x64.ActiveCfg = Release|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|Itanium.ActiveCfg = Debug|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|Win32.ActiveCfg = Debug|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|Win32.Build.0 = Debug|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|x64.ActiveCfg = Debug|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|x64.Build.0 = Debug|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Distribution|Itanium.ActiveCfg = Distribution|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Distribution|Win32.Build.0 = Distribution|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Distribution|x64.ActiveCfg = Distribution|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|Win32.Build.0 = Nightly|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|x64.ActiveCfg = Nightly|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|x64.Build.0 = Nightly|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Release|Any CPU.ActiveCfg = Release|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Release|Itanium.ActiveCfg = Release|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Release|Mixed Platforms.Build.0 = Release|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Release|Win32.ActiveCfg = Release|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Release|Win32.Build.0 = Release|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Release|x64.ActiveCfg = Release|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|Itanium.ActiveCfg = Debug|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|Win32.ActiveCfg = Debug|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|Win32.Build.0 = Debug|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|x64.ActiveCfg = Debug|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|x64.Build.0 = Debug|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Distribution|Itanium.ActiveCfg = Distribution|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Distribution|Win32.Build.0 = Distribution|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Distribution|x64.ActiveCfg = Distribution|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|Win32.Build.0 = Nightly|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|x64.ActiveCfg = Nightly|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|x64.Build.0 = Nightly|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Release|Any CPU.ActiveCfg = Release|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Release|Itanium.ActiveCfg = Release|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Release|Mixed Platforms.Build.0 = Release|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Release|Win32.ActiveCfg = Release|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Release|Win32.Build.0 = Release|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Release|x64.ActiveCfg = Release|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|Itanium.ActiveCfg = Debug|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|Win32.ActiveCfg = Debug|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|Win32.Build.0 = Debug|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|x64.ActiveCfg = Debug|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|x64.Build.0 = Debug|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Distribution|Itanium.ActiveCfg = Distribution|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Distribution|Win32.Build.0 = Distribution|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Distribution|x64.ActiveCfg = Distribution|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|Win32.Build.0 = Nightly|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|x64.ActiveCfg = Nightly|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|x64.Build.0 = Nightly|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Release|Any CPU.ActiveCfg = Release|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Release|Itanium.ActiveCfg = Release|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Release|Mixed Platforms.Build.0 = Release|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Release|Win32.ActiveCfg = Release|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Release|Win32.Build.0 = Release|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Release|x64.ActiveCfg = Release|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|Itanium.ActiveCfg = Debug|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|Win32.ActiveCfg = Debug|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|Win32.Build.0 = Debug|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|x64.ActiveCfg = Debug|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|x64.Build.0 = Debug|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Distribution|Itanium.ActiveCfg = Distribution|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Distribution|Win32.Build.0 = Distribution|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Distribution|x64.ActiveCfg = Distribution|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|Win32.Build.0 = Nightly|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|x64.ActiveCfg = Nightly|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|x64.Build.0 = Nightly|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Release|Any CPU.ActiveCfg = Release|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Release|Itanium.ActiveCfg = Release|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Release|Mixed Platforms.Build.0 = Release|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Release|Win32.ActiveCfg = Release|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Release|Win32.Build.0 = Release|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Release|x64.ActiveCfg = Release|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|Itanium.ActiveCfg = Debug|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|Win32.ActiveCfg = Debug|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|Win32.Build.0 = Debug|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|x64.ActiveCfg = Debug|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|x64.Build.0 = Debug|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Distribution|Itanium.ActiveCfg = Distribution|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Distribution|Win32.Build.0 = Distribution|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Distribution|x64.ActiveCfg = Distribution|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|Win32.Build.0 = Nightly|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|x64.ActiveCfg = Nightly|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|x64.Build.0 = Nightly|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Release|Any CPU.ActiveCfg = Release|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Release|Itanium.ActiveCfg = Release|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Release|Mixed Platforms.Build.0 = Release|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Release|Win32.ActiveCfg = Release|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Release|Win32.Build.0 = Release|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Release|x64.ActiveCfg = Release|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|Itanium.ActiveCfg = Debug|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|Win32.ActiveCfg = Debug|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|Win32.Build.0 = Debug|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|x64.ActiveCfg = Debug|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|x64.Build.0 = Debug|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Distribution|Itanium.ActiveCfg = Distribution|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Distribution|Win32.Build.0 = Distribution|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Distribution|x64.ActiveCfg = Distribution|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|Win32.Build.0 = Nightly|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|x64.ActiveCfg = Nightly|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|x64.Build.0 = Nightly|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Release|Any CPU.ActiveCfg = Release|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Release|Itanium.ActiveCfg = Release|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Release|Mixed Platforms.Build.0 = Release|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Release|Win32.ActiveCfg = Release|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Release|Win32.Build.0 = Release|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Release|x64.ActiveCfg = Release|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|Itanium.ActiveCfg = Debug|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|Win32.ActiveCfg = Debug|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|Win32.Build.0 = Debug|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|x64.ActiveCfg = Debug|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|x64.Build.0 = Debug|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Distribution|Itanium.ActiveCfg = Distribution|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Distribution|Win32.Build.0 = Distribution|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Distribution|x64.ActiveCfg = Distribution|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|Win32.Build.0 = Nightly|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|x64.ActiveCfg = Nightly|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|x64.Build.0 = Nightly|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Release|Any CPU.ActiveCfg = Release|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Release|Itanium.ActiveCfg = Release|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Release|Mixed Platforms.Build.0 = Release|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Release|Win32.ActiveCfg = Release|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Release|Win32.Build.0 = Release|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Release|x64.ActiveCfg = Release|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|Itanium.ActiveCfg = Debug|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|Win32.ActiveCfg = Debug|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|Win32.Build.0 = Debug|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|x64.ActiveCfg = Debug|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|x64.Build.0 = Debug|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|Itanium.ActiveCfg = Distribution|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|Win32.Build.0 = Distribution|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|x64.ActiveCfg = Distribution|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|x64.Build.0 = Distribution|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|Win32.Build.0 = Nightly|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|x64.ActiveCfg = Nightly|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|x64.Build.0 = Nightly|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|Any CPU.ActiveCfg = Release|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|Itanium.ActiveCfg = Release|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|Mixed Platforms.Build.0 = Release|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|Win32.ActiveCfg = Release|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|Win32.Build.0 = Release|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|x64.ActiveCfg = Release|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|x64.Build.0 = Release|x64
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|Itanium.ActiveCfg = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug-MemCheck|Any CPU.Build.0 = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Distribution|Any CPU.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Distribution|Any CPU.Build.0 = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Distribution|Itanium.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Distribution|Mixed Platforms.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Distribution|Mixed Platforms.Build.0 = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Distribution|Win32.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Distribution|x64.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Nightly|Any CPU.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Nightly|Any CPU.Build.0 = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Nightly|Itanium.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Nightly|Mixed Platforms.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Nightly|Mixed Platforms.Build.0 = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Nightly|Win32.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Nightly|x64.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|Any CPU.Build.0 = Release|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|Itanium.ActiveCfg = Release|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|Win32.ActiveCfg = Release|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|x64.ActiveCfg = Release|Any CPU
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug|Itanium.ActiveCfg = Debug|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug|Win32.ActiveCfg = Debug|Win32
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug|Win32.Build.0 = Debug|Win32
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug|x64.ActiveCfg = Debug|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug|x64.Build.0 = Debug|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Distribution|Itanium.ActiveCfg = Distribution|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Distribution|Win32.Build.0 = Distribution|Win32
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Distribution|x64.ActiveCfg = Distribution|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Distribution|x64.Build.0 = Distribution|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Nightly|Win32.Build.0 = Nightly|Win32
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Nightly|x64.ActiveCfg = Nightly|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Nightly|x64.Build.0 = Nightly|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Release|Any CPU.ActiveCfg = Release|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Release|Itanium.ActiveCfg = Release|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Release|Mixed Platforms.Build.0 = Release|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Release|Win32.ActiveCfg = Release|Win32
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Release|Win32.Build.0 = Release|Win32
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Release|x64.ActiveCfg = Release|x64
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE}.Release|x64.Build.0 = Release|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug|Itanium.ActiveCfg = Debug|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug|Win32.ActiveCfg = Debug|Win32
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug|Win32.Build.0 = Debug|Win32
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug|x64.ActiveCfg = Debug|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug|x64.Build.0 = Debug|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Distribution|Itanium.ActiveCfg = Distribution|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Distribution|Win32.Build.0 = Distribution|Win32
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Distribution|x64.ActiveCfg = Distribution|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Distribution|x64.Build.0 = Distribution|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Nightly|Win32.Build.0 = Nightly|Win32
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Nightly|x64.ActiveCfg = Nightly|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Nightly|x64.Build.0 = Nightly|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Release|Any CPU.ActiveCfg = Release|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Release|Itanium.ActiveCfg = Release|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Release|Mixed Platforms.Build.0 = Release|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Release|Win32.ActiveCfg = Release|Win32
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Release|Win32.Build.0 = Release|Win32
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Release|x64.ActiveCfg = Release|x64
-		{26B84883-BE52-40E6-9BEE-55AD056D5751}.Release|x64.Build.0 = Release|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug|Itanium.ActiveCfg = Debug|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug|Win32.ActiveCfg = Debug|Win32
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug|Win32.Build.0 = Debug|Win32
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug|x64.ActiveCfg = Debug|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug|x64.Build.0 = Debug|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Distribution|Itanium.ActiveCfg = Distribution|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Distribution|Win32.Build.0 = Distribution|Win32
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Distribution|x64.ActiveCfg = Distribution|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Distribution|x64.Build.0 = Distribution|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Nightly|Win32.Build.0 = Nightly|Win32
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Nightly|x64.ActiveCfg = Nightly|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Nightly|x64.Build.0 = Nightly|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Release|Any CPU.ActiveCfg = Release|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Release|Itanium.ActiveCfg = Release|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Release|Mixed Platforms.Build.0 = Release|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Release|Win32.ActiveCfg = Release|Win32
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Release|Win32.Build.0 = Release|Win32
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Release|x64.ActiveCfg = Release|x64
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129}.Release|x64.Build.0 = Release|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug|Itanium.ActiveCfg = Debug|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug|Win32.ActiveCfg = Debug|Win32
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug|Win32.Build.0 = Debug|Win32
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug|x64.ActiveCfg = Debug|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug|x64.Build.0 = Debug|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Distribution|Itanium.ActiveCfg = Distribution|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Distribution|Win32.Build.0 = Distribution|Win32
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Distribution|x64.ActiveCfg = Distribution|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Distribution|x64.Build.0 = Distribution|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Nightly|Win32.Build.0 = Nightly|Win32
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Nightly|x64.ActiveCfg = Nightly|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Nightly|x64.Build.0 = Nightly|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Release|Any CPU.ActiveCfg = Release|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Release|Itanium.ActiveCfg = Release|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Release|Mixed Platforms.Build.0 = Release|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Release|Win32.ActiveCfg = Release|Win32
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Release|Win32.Build.0 = Release|Win32
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Release|x64.ActiveCfg = Release|x64
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996}.Release|x64.Build.0 = Release|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Debug|Itanium.ActiveCfg = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Debug|Win32.ActiveCfg = Debug|Win32
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Debug|Win32.Build.0 = Debug|Win32
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Debug|x64.ActiveCfg = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Debug|x64.Build.0 = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Debug-MemCheck|Any CPU.ActiveCfg = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Debug-MemCheck|Itanium.ActiveCfg = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Debug-MemCheck|Win32.ActiveCfg = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Debug-MemCheck|x64.ActiveCfg = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Debug-MemCheck|x64.Build.0 = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Distribution|Any CPU.ActiveCfg = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Distribution|Itanium.ActiveCfg = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Distribution|Mixed Platforms.ActiveCfg = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Distribution|Mixed Platforms.Build.0 = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Distribution|Win32.ActiveCfg = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Distribution|x64.ActiveCfg = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Distribution|x64.Build.0 = Debug|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Nightly|Itanium.ActiveCfg = Nightly|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Nightly|Mixed Platforms.ActiveCfg = Nightly|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Nightly|Mixed Platforms.Build.0 = Nightly|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Nightly|Win32.Build.0 = Nightly|Win32
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Nightly|x64.ActiveCfg = Nightly|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Nightly|x64.Build.0 = Nightly|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Release|Any CPU.ActiveCfg = Release|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Release|Itanium.ActiveCfg = Release|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Release|Mixed Platforms.Build.0 = Release|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Release|Win32.ActiveCfg = Release|Win32
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Release|Win32.Build.0 = Release|Win32
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Release|x64.ActiveCfg = Release|x64
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}.Release|x64.Build.0 = Release|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Debug|Itanium.ActiveCfg = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Debug|Win32.ActiveCfg = Debug|Win32
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Debug|Win32.Build.0 = Debug|Win32
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Debug|x64.ActiveCfg = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Debug|x64.Build.0 = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Debug-MemCheck|Any CPU.ActiveCfg = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Debug-MemCheck|Itanium.ActiveCfg = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Debug-MemCheck|Win32.ActiveCfg = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Debug-MemCheck|x64.ActiveCfg = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Debug-MemCheck|x64.Build.0 = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Distribution|Any CPU.ActiveCfg = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Distribution|Itanium.ActiveCfg = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Distribution|Mixed Platforms.ActiveCfg = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Distribution|Mixed Platforms.Build.0 = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Distribution|Win32.ActiveCfg = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Distribution|x64.ActiveCfg = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Distribution|x64.Build.0 = Debug|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Nightly|Any CPU.ActiveCfg = Release|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Nightly|Itanium.ActiveCfg = Release|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Nightly|Mixed Platforms.ActiveCfg = Release|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Nightly|Mixed Platforms.Build.0 = Release|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Nightly|Win32.Build.0 = Nightly|Win32
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Nightly|x64.ActiveCfg = Nightly|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Nightly|x64.Build.0 = Nightly|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Release|Any CPU.ActiveCfg = Release|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Release|Itanium.ActiveCfg = Release|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Release|Mixed Platforms.Build.0 = Release|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Release|Win32.ActiveCfg = Release|Win32
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Release|Win32.Build.0 = Release|Win32
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Release|x64.ActiveCfg = Release|x64
-		{B6D08289-B8AE-4391-9D07-93B22618BE58}.Release|x64.Build.0 = Release|x64
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug|Any CPU.ActiveCfg = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug|Any CPU.Build.0 = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug|Itanium.ActiveCfg = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug|Itanium.Build.0 = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug|Mixed Platforms.ActiveCfg = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug|Mixed Platforms.Build.0 = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug|Win32.ActiveCfg = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug|Win32.Build.0 = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug|x64.ActiveCfg = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug|x64.Build.0 = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug-MemCheck|Any CPU.ActiveCfg = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug-MemCheck|Any CPU.Build.0 = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug-MemCheck|Itanium.ActiveCfg = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug-MemCheck|Itanium.Build.0 = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug-MemCheck|Win32.ActiveCfg = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug-MemCheck|Win32.Build.0 = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug-MemCheck|x64.ActiveCfg = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Debug-MemCheck|x64.Build.0 = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Distribution|Any CPU.ActiveCfg = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Distribution|Any CPU.Build.0 = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Distribution|Itanium.ActiveCfg = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Distribution|Itanium.Build.0 = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Distribution|Mixed Platforms.ActiveCfg = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Distribution|Mixed Platforms.Build.0 = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Distribution|Win32.ActiveCfg = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Distribution|Win32.Build.0 = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Distribution|x64.ActiveCfg = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Distribution|x64.Build.0 = Debug
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Nightly|Any CPU.ActiveCfg = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Nightly|Any CPU.Build.0 = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Nightly|Itanium.ActiveCfg = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Nightly|Itanium.Build.0 = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Nightly|Mixed Platforms.ActiveCfg = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Nightly|Mixed Platforms.Build.0 = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Nightly|Win32.ActiveCfg = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Nightly|Win32.Build.0 = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Nightly|x64.ActiveCfg = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Nightly|x64.Build.0 = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Release|Any CPU.ActiveCfg = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Release|Any CPU.Build.0 = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Release|Itanium.ActiveCfg = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Release|Itanium.Build.0 = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Release|Mixed Platforms.ActiveCfg = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Release|Mixed Platforms.Build.0 = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Release|Win32.ActiveCfg = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Release|Win32.Build.0 = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Release|x64.ActiveCfg = Release
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560}.Release|x64.Build.0 = Release
-		{6206F046-3D36-4258-BB03-3291A7070117}.Debug|Any CPU.ActiveCfg = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Debug|Itanium.ActiveCfg = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Debug|Mixed Platforms.Build.0 = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Debug|Win32.ActiveCfg = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Debug|Win32.Build.0 = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Debug|x64.ActiveCfg = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Debug-MemCheck|Any CPU.ActiveCfg = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Debug-MemCheck|Itanium.ActiveCfg = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Debug-MemCheck|Win32.ActiveCfg = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Debug-MemCheck|Win32.Build.0 = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Debug-MemCheck|x64.ActiveCfg = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Distribution|Any CPU.ActiveCfg = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Distribution|Itanium.ActiveCfg = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Distribution|Mixed Platforms.ActiveCfg = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Distribution|Mixed Platforms.Build.0 = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Distribution|Win32.ActiveCfg = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Distribution|Win32.Build.0 = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Distribution|x64.ActiveCfg = Debug|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Nightly|Any CPU.ActiveCfg = Release|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Nightly|Itanium.ActiveCfg = Release|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Nightly|Mixed Platforms.ActiveCfg = Release|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Nightly|Mixed Platforms.Build.0 = Release|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Nightly|Win32.ActiveCfg = Release|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Nightly|Win32.Build.0 = Release|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Nightly|x64.ActiveCfg = Release|x64
-		{6206F046-3D36-4258-BB03-3291A7070117}.Nightly|x64.Build.0 = Release|x64
-		{6206F046-3D36-4258-BB03-3291A7070117}.Release|Any CPU.ActiveCfg = Release|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Release|Itanium.ActiveCfg = Release|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Release|Mixed Platforms.ActiveCfg = Release|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Release|Mixed Platforms.Build.0 = Release|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Release|Win32.ActiveCfg = Release|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Release|Win32.Build.0 = Release|Win32
-		{6206F046-3D36-4258-BB03-3291A7070117}.Release|x64.ActiveCfg = Release|Win32
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Debug|Itanium.ActiveCfg = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Debug|Win32.ActiveCfg = Debug|Win32
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Debug|Win32.Build.0 = Debug|Win32
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Debug|x64.ActiveCfg = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Debug|x64.Build.0 = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Debug-MemCheck|Any CPU.ActiveCfg = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Debug-MemCheck|Itanium.ActiveCfg = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Debug-MemCheck|Win32.ActiveCfg = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Debug-MemCheck|x64.ActiveCfg = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Debug-MemCheck|x64.Build.0 = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Distribution|Any CPU.ActiveCfg = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Distribution|Itanium.ActiveCfg = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Distribution|Mixed Platforms.ActiveCfg = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Distribution|Mixed Platforms.Build.0 = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Distribution|Win32.ActiveCfg = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Distribution|x64.ActiveCfg = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Distribution|x64.Build.0 = Debug|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Nightly|Any CPU.ActiveCfg = Release|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Nightly|Itanium.ActiveCfg = Release|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Nightly|Mixed Platforms.ActiveCfg = Release|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Nightly|Mixed Platforms.Build.0 = Release|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Nightly|Win32.Build.0 = Nightly|Win32
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Nightly|x64.ActiveCfg = Nightly|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Nightly|x64.Build.0 = Nightly|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Release|Any CPU.ActiveCfg = Release|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Release|Itanium.ActiveCfg = Release|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Release|Mixed Platforms.Build.0 = Release|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Release|Win32.ActiveCfg = Release|Win32
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Release|Win32.Build.0 = Release|Win32
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Release|x64.ActiveCfg = Release|x64
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}.Release|x64.Build.0 = Release|x64
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(NestedProjects) = preSolution
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F} = {9757464B-C125-4307-A84A-F4181AE6A081}
-		{BA246C01-063A-4548-8957-32D5CC76171B} = {9757464B-C125-4307-A84A-F4181AE6A081}
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45} = {9757464B-C125-4307-A84A-F4181AE6A081}
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6} = {9757464B-C125-4307-A84A-F4181AE6A081}
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8} = {9757464B-C125-4307-A84A-F4181AE6A081}
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D} = {9757464B-C125-4307-A84A-F4181AE6A081}
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F} = {9757464B-C125-4307-A84A-F4181AE6A081}
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0} = {9757464B-C125-4307-A84A-F4181AE6A081}
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4} = {9757464B-C125-4307-A84A-F4181AE6A081}
-		{6F55C9BF-57F6-4A15-A058-C83A52F539EE} = {9757464B-C125-4307-A84A-F4181AE6A081}
-		{26B84883-BE52-40E6-9BEE-55AD056D5751} = {9757464B-C125-4307-A84A-F4181AE6A081}
-		{0BEEC749-0E3E-4FB2-82DA-AC8D4730A129} = {9757464B-C125-4307-A84A-F4181AE6A081}
-		{4241C6CF-EC01-4AD9-89B0-B75EBA8A5996} = {9757464B-C125-4307-A84A-F4181AE6A081}
-		{BBFF8362-C626-4838-B0A2-F695D638AD24} = {9757464B-C125-4307-A84A-F4181AE6A081}
-		{0E2B21D9-F432-4127-8E92-7716B1072510} = {9A087442-7BB2-4CF0-9F58-5D1BC3C32CD2}
-		{A3CF4E23-1D1B-4D93-A16A-48C52D118560} = {9A087442-7BB2-4CF0-9F58-5D1BC3C32CD2}
-		{6206F046-3D36-4258-BB03-3291A7070117} = {9A087442-7BB2-4CF0-9F58-5D1BC3C32CD2}
-		{D96F7075-F6CD-4921-B5D8-8488E2D24BDB} = {9A087442-7BB2-4CF0-9F58-5D1BC3C32CD2}
-		{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A} = {C8DCE3D7-A802-4C5D-ABB1-B478F545B6E5}
-		{B6D08289-B8AE-4391-9D07-93B22618BE58} = {C8DCE3D7-A802-4C5D-ABB1-B478F545B6E5}
-	EndGlobalSection
-	GlobalSection(DPCodeReviewSolutionGUID) = preSolution
-		DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
-	EndGlobalSection
-EndGlobal
Index: gs/0.3.1/NSClient++-2005.vcproj
===================================================================
--- tags/0.3.1/NSClient++-2005.vcproj	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,3128 +1,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="NSClient++"
-	ProjectGUID="{2286162D-7571-4735-BAC8-4A8D33A4F42D}"
-	RootNamespace="IconService"
-	Keyword="MFCProj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-		<Platform
-			Name="Itanium"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="tmp\$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine=""
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine=""
-				Outputs="$(InputDir)\$(OutDir)\msvcp71.dll"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE; _CRT_SECURE_NO_DEPRECATE"
-				StringPooling="true"
-				RuntimeLibrary="0"
-				BufferSecurityCheck="false"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Release/IconService.pch"
-				AssemblerListingLocation=".\Release/"
-				ObjectFile=".\Release/"
-				ProgramDataBaseFileName=".\Release/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="kernel32.lib user32.lib advapi32.lib ws2_32.lib"
-				OutputFile=".\Release/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				GenerateManifest="false"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeForWindows98="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-				AdditionalManifestFiles="NSClient++.manifest"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="tmp\$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Copying dependency DLLs&#x0D;&#x0A;cmd /c &quot;copy $(InputDir)\dist_dll\*.* $(InputDir)\$(OutDir)\&quot;&#x0D;&#x0A;"
-				Outputs="$(InputDir)\$(OutDir)\msvcp71.dll"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				StringPooling="true"
-				RuntimeLibrary="0"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Release/IconService.pch"
-				AssemblerListingLocation=".\Release/"
-				ObjectFile=".\Release/"
-				ProgramDataBaseFileName=".\Release/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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 Pdh.lib"
-				OutputFile=".\Release/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeForWindows98="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName=".\Debug/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Debug/IconService.pch"
-				AssemblerListingLocation=".\Debug/"
-				ObjectFile=".\Debug/"
-				ProgramDataBaseFileName=".\Debug/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Debug/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile=".\Debug/NSClient++.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName=".\Debug/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Debug/IconService.pch"
-				AssemblerListingLocation=".\Debug/"
-				ObjectFile=".\Debug/"
-				ProgramDataBaseFileName=".\Debug/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Debug/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile=".\Debug/IconService.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Distribution|Win32"
-			OutputDirectory="$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="XAutobuild.exe -f &quot;$(ProjectDir)&quot;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Copying dependency DLLs&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y $(InputDir)\dist_dll\*.dll $(InputDir)\Dist\&quot;&#x0D;&#x0A;echo Copying scripts&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(TargetDir)\scripts&quot;&quot;&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y &quot;$(InputDir)\scripts&quot; &quot;$(TargetDir)\scripts&quot;&quot;&#x0D;&#x0A;echo Removing old archive&#x0D;&#x0A;cmd /c &quot;del &quot;$(InputDir)\Dist\modules\*.pdb&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(InputDir)\Dist\*.zip&quot;&quot;&#x0D;&#x0A;echo Making archive: 7z.exe a -r -tzip -bd &quot;$(TargetDir)\$(ParentName)-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;7z.exe a -r -tzip -bd &quot;$(TargetDir)\$(ParentName)-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;echo Renaming archive&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\$(ParentName)-$(PlatformName).zip&quot;&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;echo pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="$(InputDir)\Dist\$(ProjectName).zip"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="0"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Release/IconService.pch"
-				AssemblerListingLocation=".\Release/"
-				ObjectFile=".\Release/"
-				ProgramDataBaseFileName=".\Release/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Dist/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="false"
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeForWindows98="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-				AdditionalManifestFiles="NSClient++.manifest"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Distribution|x64"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="XAutobuild.exe -f &quot;$(ProjectDir)&quot;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Copying dependency DLLs&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y $(InputDir)\dist_dll\*.dll $(InputDir)\Dist\&quot;&#x0D;&#x0A;echo Copying scripts&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(TargetDir)\scripts&quot;&quot;&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y &quot;$(InputDir)\scripts&quot; &quot;$(TargetDir)\scripts&quot;&quot;&#x0D;&#x0A;echo Removing old archive&#x0D;&#x0A;cmd /c &quot;del &quot;$(InputDir)\Dist\modules\*.pdb&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(InputDir)\Dist\*.zip&quot;&quot;&#x0D;&#x0A;echo Making archive: 7z.exe a -r -tzip -bd &quot;$(TargetDir)\$(InputName)-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;7z.exe a -r -tzip -bd &quot;$(TargetDir)\$(InputName)-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;echo Renaming archive&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\$(InputName)-$(PlatformName).zip&quot;&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;echo pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="$(InputDir)\Dist\$(ProjectName).zip"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				StringPooling="true"
-				RuntimeLibrary="0"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Release/IconService.pch"
-				AssemblerListingLocation=".\Release/"
-				ObjectFile=".\Release/"
-				ProgramDataBaseFileName=".\Release/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Dist/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="false"
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeForWindows98="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-				AdditionalManifestFiles="NSClient++.manifest"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Nightly|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="tmp\$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="XAutobuild.exe -f &quot;$(ProjectDir)&quot;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Seting up scripts&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(TargetDir)\scripts\&quot;&quot;&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y &quot;$(InputDir)\scripts\*.*&quot; &quot;$(TargetDir)\scripts\&quot;&quot;&#x0D;&#x0A;echo Removing old archive and files we dont want&#x0D;&#x0A;cmd /c &quot;del &quot;$(TargetDir)\modules\*.lib&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(TargetDir)\modules\*.exp&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(TargetDir)\*.zip&quot;&quot;&#x0D;&#x0A;"
-				Outputs="$(TargetDir)\$(ProjectName)-$(PlatformName).zip"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Nightly|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="tmp\$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Seting up scripts&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(TargetDir)\scripts\&quot;&quot;&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y &quot;$(InputDir)\scripts\*.*&quot; &quot;$(TargetDir)\scripts\&quot;&quot;&#x0D;&#x0A;echo Removing old archive and files we dont want&#x0D;&#x0A;cmd /c &quot;del &quot;$(TargetDir)\modules\*.lib&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(TargetDir)\modules\*.exp&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(TargetDir)\*.zip&quot;&quot;&#x0D;&#x0A;"
-				Outputs="$(TargetDir)\$(ProjectName)-$(PlatformName).zip"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug-MemCheck|Win32"
-			OutputDirectory="$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName=".\Debug/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;MEMCHECK"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Debug/IconService.pch"
-				AssemblerListingLocation=".\Debug/"
-				ObjectFile=".\Debug/"
-				ProgramDataBaseFileName=".\Debug/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Debug/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile=".\Debug/IconService.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug-MemCheck|x64"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName=".\Debug/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Debug/IconService.pch"
-				AssemblerListingLocation=".\Debug/"
-				ObjectFile=".\Debug/"
-				ProgramDataBaseFileName=".\Debug/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Debug/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile=".\Debug/IconService.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Itanium"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Copying dependency DLLs&#x0D;&#x0A;cmd /c &quot;copy $(InputDir)\dist_dll\*.* $(InputDir)\$(OutDir)\&quot;&#x0D;&#x0A;"
-				Outputs="$(InputDir)\$(OutDir)\msvcp71.dll"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="2"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				StringPooling="true"
-				RuntimeLibrary="0"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Release/IconService.pch"
-				AssemblerListingLocation=".\Release/"
-				ObjectFile=".\Release/"
-				ProgramDataBaseFileName=".\Release/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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 Pdh.lib"
-				OutputFile=".\Release/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				UACExecutionLevel="2"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeForWindows98="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="5"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|Itanium"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="2"
-				TypeLibraryName=".\Debug/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Debug/IconService.pch"
-				AssemblerListingLocation=".\Debug/"
-				ObjectFile=".\Debug/"
-				ProgramDataBaseFileName=".\Debug/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Debug/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				UACExecutionLevel="2"
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile=".\Debug/IconService.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="5"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Distribution|Itanium"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="XAutobuild.exe -f &quot;$(ProjectDir)&quot;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Copying dependency DLLs&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y $(InputDir)\dist_dll\*.dll $(InputDir)\Dist\&quot;&#x0D;&#x0A;echo Copying scripts&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(TargetDir)\scripts&quot;&quot;&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y &quot;$(InputDir)\scripts&quot; &quot;$(TargetDir)\scripts&quot;&quot;&#x0D;&#x0A;echo Removing old archive&#x0D;&#x0A;cmd /c &quot;del &quot;$(InputDir)\Dist\modules\*.pdb&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(InputDir)\Dist\*.zip&quot;&quot;&#x0D;&#x0A;echo Making archive: 7z.exe a -r -tzip -bd &quot;$(TargetDir)\$(InputName)-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;7z.exe a -r -tzip -bd &quot;$(TargetDir)\$(InputName)-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;echo Renaming archive&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\$(InputName)-$(PlatformName).zip&quot;&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;echo pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="$(InputDir)\Dist\$(ProjectName).zip"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="2"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				StringPooling="true"
-				RuntimeLibrary="0"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Release/IconService.pch"
-				AssemblerListingLocation=".\Release/"
-				ObjectFile=".\Release/"
-				ProgramDataBaseFileName=".\Release/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Dist/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				UACExecutionLevel="2"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="false"
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeForWindows98="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="5"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-				AdditionalManifestFiles="NSClient++.manifest"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Nightly|Itanium"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Copying dependency DLLs&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y $(InputDir)\dist_dll\*.dll $(InputDir)\Dist\&quot;&#x0D;&#x0A;cmd /c &quot;mkdir $(InputDir)\Dist\scripts\&quot;&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y $(InputDir)\scripts\*.bat $(InputDir)\Dist\scripts\&quot;&#x0D;&#x0A;echo Removing old archive&#x0D;&#x0A;cmd /c &quot;del $(InputDir)\Dist\modules\*.pdb&quot;&#x0D;&#x0A;cmd /c &quot;del $(InputDir)\Dist\*.zip&quot;&#x0D;&#x0A;echo Making archive&#x0D;&#x0A;7z.exe a -r -tzip -bd $(TargetDir)\$(InputName)-$(PlatformName).zip $(TargetDir)\*&#x0D;&#x0A;echo Renaming archive&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\$(InputName)-$(PlatformName).zip&quot;&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;pscp.exe $(TargetDir)\*.zip mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="$(InputDir)\Dist\$(ProjectName).zip"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="2"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				StringPooling="true"
-				RuntimeLibrary="0"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Release/IconService.pch"
-				AssemblerListingLocation=".\Release/"
-				ObjectFile=".\Release/"
-				ProgramDataBaseFileName=".\Release/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Dist/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				UACExecutionLevel="2"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				ProgramDatabaseFile=".\Release/IconService.pdb"
-				SubSystem="1"
-				OptimizeForWindows98="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="5"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug-MemCheck|Itanium"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="2"
-				TypeLibraryName=".\Debug/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Debug/IconService.pch"
-				AssemblerListingLocation=".\Debug/"
-				ObjectFile=".\Debug/"
-				ProgramDataBaseFileName=".\Debug/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Debug/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				UACExecutionLevel="2"
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile=".\Debug/IconService.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="5"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-			>
-			<File
-				RelativePath=".\include\arrayBuffer.cpp"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\include\b64\b64.c"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\include\NSCHelper.cpp"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\NSClient++.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\NSCPlugin.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\include\ServiceCmd.cpp"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\include\Socket.cpp"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="StdAfx.cpp"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl"
-			>
-			<File
-				RelativePath=".\include\arrayBuffer.h"
-				>
-			</File>
-			<File
-				RelativePath=".\AutoBuild.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\charEx.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\config.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\INISettings.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\Mutex.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\MutexRW.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\NSCAPI.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\NSCHelper.h"
-				>
-			</File>
-			<File
-				RelativePath=".\NSClient++.h"
-				>
-			</File>
-			<File
-				RelativePath=".\NSCPlugin.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\NTService.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\PDHCounter.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\REGSettings.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\ServiceCmd.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\Settings.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\Singleton.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\Socket.h"
-				>
-			</File>
-			<File
-				RelativePath="StdAfx.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\strEx.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\thread.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-			>
-		</Filter>
-		<Filter
-			Name="Misc"
-			>
-			<File
-				RelativePath=".\changelog"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying &quot;$(InputDir)\$(InputName)&quot;...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(InputDir)\Dist\&quot;&quot;&#x0D;&#x0A;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\Dist\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying &quot;$(InputDir)\$(InputName)&quot;...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(InputDir)\Dist\&quot;&quot;&#x0D;&#x0A;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\Dist\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(InputDir)\Dist\&quot;&quot;&#x0D;&#x0A;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying &quot;$(InputDir)\$(InputName)&quot;...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(InputDir)\Dist\&quot;&quot;&#x0D;&#x0A;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\Dist\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(InputDir)\Dist\&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\Dist\$(InputFileName)"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\counters.defs"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\Doxyfile"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\files\license.txt"
-				>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying &quot;$(InputDir)\$(InputFileName)&quot;...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName) "
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying &quot;$(InputDir)\$(InputFileName)&quot;...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName) "
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs="$(TargetDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs="$(TargetDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying &quot;$(InputDir)\$(InputFileName)&quot;...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName) "
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy $(InputDir)\$(InputFileName) $(TargetDir)&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName) "
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\NSC.dist"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)\$(InputName).ini&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputName).ini"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)\$(InputName).ini&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputName).ini"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\Dist\$(InputName).ini&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\Dist\$(InputName).ini"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\Dist\$(InputName).ini&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\Dist\$(InputName).ini"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)\$(InputName).ini&quot;&quot;&#x0D;&#x0A;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputName).ini"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)\$(InputName).ini&quot;&quot;&#x0D;&#x0A;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputName).ini"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\Dist\$(InputName).ini&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\Dist\$(InputName).ini"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy $(InputDir)\$(InputFileName) $(InputDir)\Dist\$(InputName).ini&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\Dist\$(InputName).ini"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\NSC.ini"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy $(InputDir)\$(InputFileName) $(InputDir)\$(OutDir)&quot;&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy $(InputDir)\$(InputFileName) $(InputDir)\$(OutDir)&quot;&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\$(OutDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\$(OutDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine=""
-						AdditionalDependencies=""
-						Outputs="$(InputDir)\Dist\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine=""
-						AdditionalDependencies=""
-						Outputs="$(InputDir)\Dist\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Skipping $(InputFileName)...&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Skipping $(InputFileName)...&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\$(OutDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\$(OutDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy $(InputDir)\$(InputFileName) $(InputDir)\$(OutDir)&quot;&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\$(OutDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine=""
-						AdditionalDependencies=""
-						Outputs="$(InputDir)\Dist\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy $(InputDir)\$(InputFileName) $(InputDir)\Dist\&quot;&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs="$(InputDir)\Dist\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\$(OutDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-			</File>
-		</Filter>
-		<Filter
-			Name="Testcases"
-			Filter="testcases/*.xml"
-			>
-			<File
-				RelativePath=".\testcases\install-service.xml"
-				>
-			</File>
-		</Filter>
-		<File
-			RelativePath=".\NSClient++.manifest"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
Index: gs/0.3.1/NSClient++-2008.sln
===================================================================
--- tags/0.3.1/NSClient++-2008.sln	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,575 +1,0 @@
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NSClient++", "NSClient++-2008.vcproj", "{2286162D-7571-4735-BAC8-4A8D33A4F42D}"
-	ProjectSection(ProjectDependencies) = postProject
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4} = {626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F} = {8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D} = {2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8} = {08D6246D-1B4A-47A3-965D-296DCC54A4E8}
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F} = {62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6} = {2FF60AF6-09AA-49AB-B414-2E8FD01655C6}
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0} = {05DE66AC-E55C-43B3-849F-7EC695D8B8D0}
-		{BA246C01-063A-4548-8957-32D5CC76171B} = {BA246C01-063A-4548-8957-32D5CC76171B}
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45} = {E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}
-		{BBFF8362-C626-4838-B0A2-F695D638AD24} = {BBFF8362-C626-4838-B0A2-F695D638AD24}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SysTray", "modules\SysTray\SysTray-2008.vcproj", "{BBFF8362-C626-4838-B0A2-F695D638AD24}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FileLogger", "modules\FileLogger\FileLogger-2008.vcproj", "{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CheckEventLog", "modules\CheckEventLog\CheckEventLog-2008.vcproj", "{BA246C01-063A-4548-8957-32D5CC76171B}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CheckDisk", "modules\CheckDisk\CheckDisk-2008.vcproj", "{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NRPEListener", "modules\NRPEListener\NRPEListener-2008.vcproj", "{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NSClientListener", "modules\NSClientListener\NSClientListener-2008.vcproj", "{08D6246D-1B4A-47A3-965D-296DCC54A4E8}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CheckSystem", "modules\CheckSystem\CheckSystem-2008.vcproj", "{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CheckHelpers", "modules\CheckHelpers\CheckHelpers-2008.vcproj", "{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CheckWMI", "modules\CheckWMI\CheckWMI-2008.vcproj", "{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RemoteConfiguration", "modules\RemoteConfiguration\RemoteConfiguration-2008.vcproj", "{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XAutobuild-2008", "helpers\XAutoBuild\XAutobuild-2008.csproj", "{0E2B21D9-F432-4127-8E92-7716B1072510}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Debug|Itanium = Debug|Itanium
-		Debug|Mixed Platforms = Debug|Mixed Platforms
-		Debug|Win32 = Debug|Win32
-		Debug|x64 = Debug|x64
-		Debug-MemCheck|Any CPU = Debug-MemCheck|Any CPU
-		Debug-MemCheck|Itanium = Debug-MemCheck|Itanium
-		Debug-MemCheck|Mixed Platforms = Debug-MemCheck|Mixed Platforms
-		Debug-MemCheck|Win32 = Debug-MemCheck|Win32
-		Debug-MemCheck|x64 = Debug-MemCheck|x64
-		Distribution|Any CPU = Distribution|Any CPU
-		Distribution|Itanium = Distribution|Itanium
-		Distribution|Mixed Platforms = Distribution|Mixed Platforms
-		Distribution|Win32 = Distribution|Win32
-		Distribution|x64 = Distribution|x64
-		Nightly|Any CPU = Nightly|Any CPU
-		Nightly|Itanium = Nightly|Itanium
-		Nightly|Mixed Platforms = Nightly|Mixed Platforms
-		Nightly|Win32 = Nightly|Win32
-		Nightly|x64 = Nightly|x64
-		Release|Any CPU = Release|Any CPU
-		Release|Itanium = Release|Itanium
-		Release|Mixed Platforms = Release|Mixed Platforms
-		Release|Win32 = Release|Win32
-		Release|x64 = Release|x64
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|Itanium.ActiveCfg = Debug|Itanium
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|Itanium.Build.0 = Debug|Itanium
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|Win32.ActiveCfg = Debug|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|Win32.Build.0 = Debug|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug|x64.ActiveCfg = Debug|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|Itanium
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|Itanium.Build.0 = Debug-MemCheck|Itanium
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Distribution|Itanium.ActiveCfg = Distribution|Itanium
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Distribution|Itanium.Build.0 = Distribution|Itanium
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Distribution|Win32.Build.0 = Distribution|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Distribution|x64.ActiveCfg = Distribution|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|Itanium.ActiveCfg = Nightly|Itanium
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|Itanium.Build.0 = Nightly|Itanium
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|Mixed Platforms.ActiveCfg = Nightly|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|Mixed Platforms.Build.0 = Nightly|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|Win32.Build.0 = Nightly|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|x64.ActiveCfg = Nightly|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Nightly|x64.Build.0 = Nightly|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Release|Any CPU.ActiveCfg = Release|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Release|Itanium.ActiveCfg = Release|Itanium
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Release|Itanium.Build.0 = Release|Itanium
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Release|Mixed Platforms.Build.0 = Release|x64
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Release|Win32.ActiveCfg = Release|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Release|Win32.Build.0 = Release|Win32
-		{2286162D-7571-4735-BAC8-4A8D33A4F42D}.Release|x64.ActiveCfg = Release|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|Itanium.ActiveCfg = Debug|Itanium
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|Itanium.Build.0 = Debug|Itanium
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|Win32.ActiveCfg = Debug|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|Win32.Build.0 = Debug|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug|x64.ActiveCfg = Debug|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|Itanium
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|Itanium.Build.0 = Debug-MemCheck|Itanium
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Distribution|Itanium.ActiveCfg = Distribution|Itanium
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Distribution|Itanium.Build.0 = Distribution|Itanium
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Distribution|Win32.Build.0 = Distribution|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Distribution|x64.ActiveCfg = Distribution|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|Itanium.ActiveCfg = Nightly|Itanium
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|Itanium.Build.0 = Nightly|Itanium
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|Mixed Platforms.ActiveCfg = Nightly|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|Mixed Platforms.Build.0 = Nightly|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|Win32.Build.0 = Nightly|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|x64.ActiveCfg = Nightly|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Nightly|x64.Build.0 = Nightly|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Release|Any CPU.ActiveCfg = Release|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Release|Itanium.ActiveCfg = Release|Itanium
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Release|Itanium.Build.0 = Release|Itanium
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Release|Mixed Platforms.Build.0 = Release|x64
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Release|Win32.ActiveCfg = Release|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Release|Win32.Build.0 = Release|Win32
-		{BBFF8362-C626-4838-B0A2-F695D638AD24}.Release|x64.ActiveCfg = Release|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|Itanium.ActiveCfg = Debug|Itanium
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|Itanium.Build.0 = Debug|Itanium
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|Win32.ActiveCfg = Debug|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|Win32.Build.0 = Debug|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug|x64.ActiveCfg = Debug|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|Itanium
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|Itanium.Build.0 = Debug-MemCheck|Itanium
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Distribution|Itanium.ActiveCfg = Distribution|Itanium
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Distribution|Itanium.Build.0 = Distribution|Itanium
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Distribution|Win32.Build.0 = Distribution|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Distribution|x64.ActiveCfg = Distribution|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|Itanium.ActiveCfg = Nightly|Itanium
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|Itanium.Build.0 = Nightly|Itanium
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|Mixed Platforms.ActiveCfg = Nightly|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|Mixed Platforms.Build.0 = Nightly|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|Win32.Build.0 = Nightly|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|x64.ActiveCfg = Nightly|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Nightly|x64.Build.0 = Nightly|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Release|Any CPU.ActiveCfg = Release|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Release|Itanium.ActiveCfg = Release|Itanium
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Release|Itanium.Build.0 = Release|Itanium
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Release|Mixed Platforms.Build.0 = Release|x64
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Release|Win32.ActiveCfg = Release|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Release|Win32.Build.0 = Release|Win32
-		{62B685D7-3A2E-4F3E-B2B8-B17F20C0217F}.Release|x64.ActiveCfg = Release|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|Itanium.ActiveCfg = Debug|Itanium
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|Itanium.Build.0 = Debug|Itanium
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|Win32.ActiveCfg = Debug|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|Win32.Build.0 = Debug|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug|x64.ActiveCfg = Debug|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|Itanium
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|Itanium.Build.0 = Debug-MemCheck|Itanium
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Distribution|Itanium.ActiveCfg = Distribution|Itanium
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Distribution|Itanium.Build.0 = Distribution|Itanium
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Distribution|Win32.Build.0 = Distribution|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Distribution|x64.ActiveCfg = Distribution|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|Itanium.ActiveCfg = Nightly|Itanium
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|Itanium.Build.0 = Nightly|Itanium
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|Mixed Platforms.ActiveCfg = Nightly|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|Mixed Platforms.Build.0 = Nightly|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|Win32.Build.0 = Nightly|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|x64.ActiveCfg = Nightly|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Nightly|x64.Build.0 = Nightly|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Release|Any CPU.ActiveCfg = Release|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Release|Itanium.ActiveCfg = Release|Itanium
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Release|Itanium.Build.0 = Release|Itanium
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Release|Mixed Platforms.Build.0 = Release|x64
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Release|Win32.ActiveCfg = Release|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Release|Win32.Build.0 = Release|Win32
-		{BA246C01-063A-4548-8957-32D5CC76171B}.Release|x64.ActiveCfg = Release|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|Itanium.ActiveCfg = Debug|Itanium
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|Itanium.Build.0 = Debug|Itanium
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|Win32.ActiveCfg = Debug|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|Win32.Build.0 = Debug|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug|x64.ActiveCfg = Debug|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|Itanium
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|Itanium.Build.0 = Debug-MemCheck|Itanium
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Distribution|Itanium.ActiveCfg = Distribution|Itanium
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Distribution|Itanium.Build.0 = Distribution|Itanium
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Distribution|Win32.Build.0 = Distribution|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Distribution|x64.ActiveCfg = Distribution|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|Itanium.ActiveCfg = Nightly|Itanium
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|Itanium.Build.0 = Nightly|Itanium
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|Mixed Platforms.ActiveCfg = Nightly|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|Mixed Platforms.Build.0 = Nightly|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|Win32.Build.0 = Nightly|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|x64.ActiveCfg = Nightly|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Nightly|x64.Build.0 = Nightly|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Release|Any CPU.ActiveCfg = Release|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Release|Itanium.ActiveCfg = Release|Itanium
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Release|Itanium.Build.0 = Release|Itanium
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Release|Mixed Platforms.Build.0 = Release|x64
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Release|Win32.ActiveCfg = Release|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Release|Win32.Build.0 = Release|Win32
-		{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}.Release|x64.ActiveCfg = Release|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|Itanium.ActiveCfg = Debug|Itanium
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|Itanium.Build.0 = Debug|Itanium
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|Win32.ActiveCfg = Debug|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|Win32.Build.0 = Debug|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug|x64.ActiveCfg = Debug|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|Itanium
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|Itanium.Build.0 = Debug-MemCheck|Itanium
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Distribution|Itanium.ActiveCfg = Distribution|Itanium
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Distribution|Itanium.Build.0 = Distribution|Itanium
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Distribution|Win32.Build.0 = Distribution|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Distribution|x64.ActiveCfg = Distribution|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|Itanium.ActiveCfg = Nightly|Itanium
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|Itanium.Build.0 = Nightly|Itanium
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|Mixed Platforms.ActiveCfg = Nightly|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|Mixed Platforms.Build.0 = Nightly|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|Win32.Build.0 = Nightly|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|x64.ActiveCfg = Nightly|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Nightly|x64.Build.0 = Nightly|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Release|Any CPU.ActiveCfg = Release|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Release|Itanium.ActiveCfg = Release|Itanium
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Release|Itanium.Build.0 = Release|Itanium
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Release|Mixed Platforms.Build.0 = Release|x64
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Release|Win32.ActiveCfg = Release|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Release|Win32.Build.0 = Release|Win32
-		{2FF60AF6-09AA-49AB-B414-2E8FD01655C6}.Release|x64.ActiveCfg = Release|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|Itanium.ActiveCfg = Debug|Itanium
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|Itanium.Build.0 = Debug|Itanium
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|Win32.ActiveCfg = Debug|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|Win32.Build.0 = Debug|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug|x64.ActiveCfg = Debug|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|Itanium
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|Itanium.Build.0 = Debug-MemCheck|Itanium
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Distribution|Itanium.ActiveCfg = Distribution|Itanium
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Distribution|Itanium.Build.0 = Distribution|Itanium
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Distribution|Win32.Build.0 = Distribution|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Distribution|x64.ActiveCfg = Distribution|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|Itanium.ActiveCfg = Nightly|Itanium
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|Itanium.Build.0 = Nightly|Itanium
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|Mixed Platforms.ActiveCfg = Nightly|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|Mixed Platforms.Build.0 = Nightly|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|Win32.Build.0 = Nightly|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|x64.ActiveCfg = Nightly|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Nightly|x64.Build.0 = Nightly|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Release|Any CPU.ActiveCfg = Release|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Release|Itanium.ActiveCfg = Release|Itanium
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Release|Itanium.Build.0 = Release|Itanium
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Release|Mixed Platforms.Build.0 = Release|x64
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Release|Win32.ActiveCfg = Release|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Release|Win32.Build.0 = Release|Win32
-		{08D6246D-1B4A-47A3-965D-296DCC54A4E8}.Release|x64.ActiveCfg = Release|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|Itanium.ActiveCfg = Debug|Itanium
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|Itanium.Build.0 = Debug|Itanium
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|Win32.ActiveCfg = Debug|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|Win32.Build.0 = Debug|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug|x64.ActiveCfg = Debug|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|Itanium
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|Itanium.Build.0 = Debug-MemCheck|Itanium
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Distribution|Itanium.ActiveCfg = Distribution|Itanium
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Distribution|Itanium.Build.0 = Distribution|Itanium
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Distribution|Win32.Build.0 = Distribution|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Distribution|x64.ActiveCfg = Distribution|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|Itanium.ActiveCfg = Nightly|Itanium
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|Itanium.Build.0 = Nightly|Itanium
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|Mixed Platforms.ActiveCfg = Nightly|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|Mixed Platforms.Build.0 = Nightly|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|Win32.Build.0 = Nightly|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|x64.ActiveCfg = Nightly|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Nightly|x64.Build.0 = Nightly|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Release|Any CPU.ActiveCfg = Release|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Release|Itanium.ActiveCfg = Release|Itanium
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Release|Itanium.Build.0 = Release|Itanium
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Release|Mixed Platforms.Build.0 = Release|x64
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Release|Win32.ActiveCfg = Release|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Release|Win32.Build.0 = Release|Win32
-		{2FCAF54B-AAD3-4F59-895A-8F9CEAFDC65D}.Release|x64.ActiveCfg = Release|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|Itanium.ActiveCfg = Debug|Itanium
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|Itanium.Build.0 = Debug|Itanium
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|Win32.ActiveCfg = Debug|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|Win32.Build.0 = Debug|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug|x64.ActiveCfg = Debug|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|Itanium
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|Itanium.Build.0 = Debug-MemCheck|Itanium
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Distribution|Itanium.ActiveCfg = Distribution|Itanium
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Distribution|Itanium.Build.0 = Distribution|Itanium
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Distribution|Win32.Build.0 = Distribution|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Distribution|x64.ActiveCfg = Distribution|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|Itanium.ActiveCfg = Nightly|Itanium
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|Itanium.Build.0 = Nightly|Itanium
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|Mixed Platforms.ActiveCfg = Nightly|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|Mixed Platforms.Build.0 = Nightly|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|Win32.Build.0 = Nightly|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|x64.ActiveCfg = Nightly|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Nightly|x64.Build.0 = Nightly|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Release|Any CPU.ActiveCfg = Release|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Release|Itanium.ActiveCfg = Release|Itanium
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Release|Itanium.Build.0 = Release|Itanium
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Release|Mixed Platforms.Build.0 = Release|x64
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Release|Win32.ActiveCfg = Release|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Release|Win32.Build.0 = Release|Win32
-		{8F1C3E39-D6C6-4414-AAD2-FE03C9A8655F}.Release|x64.ActiveCfg = Release|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|Itanium.ActiveCfg = Debug|Itanium
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|Itanium.Build.0 = Debug|Itanium
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|Win32.ActiveCfg = Debug|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|Win32.Build.0 = Debug|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug|x64.ActiveCfg = Debug|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|Itanium
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|Itanium.Build.0 = Debug-MemCheck|Itanium
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Distribution|Itanium.ActiveCfg = Distribution|Itanium
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Distribution|Itanium.Build.0 = Distribution|Itanium
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Distribution|Win32.Build.0 = Distribution|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Distribution|x64.ActiveCfg = Distribution|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|Itanium.ActiveCfg = Nightly|Itanium
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|Itanium.Build.0 = Nightly|Itanium
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|Mixed Platforms.ActiveCfg = Nightly|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|Mixed Platforms.Build.0 = Nightly|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|Win32.Build.0 = Nightly|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|x64.ActiveCfg = Nightly|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Nightly|x64.Build.0 = Nightly|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Release|Any CPU.ActiveCfg = Release|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Release|Itanium.ActiveCfg = Release|Itanium
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Release|Itanium.Build.0 = Release|Itanium
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Release|Mixed Platforms.Build.0 = Release|x64
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Release|Win32.ActiveCfg = Release|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Release|Win32.Build.0 = Release|Win32
-		{05DE66AC-E55C-43B3-849F-7EC695D8B8D0}.Release|x64.ActiveCfg = Release|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|Any CPU.ActiveCfg = Debug|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|Itanium.ActiveCfg = Debug|Itanium
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|Itanium.Build.0 = Debug|Itanium
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|Mixed Platforms.Build.0 = Debug|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|Win32.ActiveCfg = Debug|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|Win32.Build.0 = Debug|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|x64.ActiveCfg = Debug|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug|x64.Build.0 = Debug|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|Itanium
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|Itanium.Build.0 = Debug-MemCheck|Itanium
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|Win32.Build.0 = Debug-MemCheck|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Debug-MemCheck|x64.Build.0 = Debug-MemCheck|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|Any CPU.ActiveCfg = Distribution|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|Itanium.ActiveCfg = Distribution|Itanium
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|Itanium.Build.0 = Distribution|Itanium
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|Mixed Platforms.ActiveCfg = Distribution|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|Mixed Platforms.Build.0 = Distribution|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|Win32.ActiveCfg = Distribution|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|Win32.Build.0 = Distribution|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|x64.ActiveCfg = Distribution|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Distribution|x64.Build.0 = Distribution|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|Any CPU.ActiveCfg = Nightly|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|Itanium.ActiveCfg = Nightly|Itanium
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|Itanium.Build.0 = Nightly|Itanium
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|Mixed Platforms.ActiveCfg = Nightly|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|Mixed Platforms.Build.0 = Nightly|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|Win32.ActiveCfg = Nightly|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|Win32.Build.0 = Nightly|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|x64.ActiveCfg = Nightly|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Nightly|x64.Build.0 = Nightly|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|Any CPU.ActiveCfg = Release|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|Itanium.ActiveCfg = Release|Itanium
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|Itanium.Build.0 = Release|Itanium
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|Mixed Platforms.ActiveCfg = Release|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|Mixed Platforms.Build.0 = Release|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|Win32.ActiveCfg = Release|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|Win32.Build.0 = Release|Win32
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|x64.ActiveCfg = Release|x64
-		{626EB00E-A4D2-4B02-9BF4-4C655CA2B7E4}.Release|x64.Build.0 = Release|x64
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|Itanium.ActiveCfg = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug-MemCheck|Any CPU.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug-MemCheck|Any CPU.Build.0 = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug-MemCheck|Itanium.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug-MemCheck|Mixed Platforms.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug-MemCheck|Mixed Platforms.Build.0 = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug-MemCheck|Win32.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug-MemCheck|x64.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Distribution|Any CPU.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Distribution|Any CPU.Build.0 = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Distribution|Itanium.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Distribution|Mixed Platforms.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Distribution|Mixed Platforms.Build.0 = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Distribution|Win32.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Distribution|x64.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Nightly|Any CPU.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Nightly|Any CPU.Build.0 = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Nightly|Itanium.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Nightly|Mixed Platforms.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Nightly|Mixed Platforms.Build.0 = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Nightly|Win32.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Nightly|x64.ActiveCfg = Debug-MemCheck|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|Any CPU.Build.0 = Release|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|Itanium.ActiveCfg = Release|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|Win32.ActiveCfg = Release|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|x64.ActiveCfg = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(DPCodeReviewSolutionGUID) = preSolution
-		DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
-	EndGlobalSection
-EndGlobal
Index: gs/0.3.1/NSClient++-2008.vcproj
===================================================================
--- tags/0.3.1/NSClient++-2008.vcproj	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,3114 +1,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="NSClient++"
-	ProjectGUID="{2286162D-7571-4735-BAC8-4A8D33A4F42D}"
-	RootNamespace="IconService"
-	Keyword="MFCProj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-		<Platform
-			Name="Itanium"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="tmp\$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine=""
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine=""
-				Outputs="$(InputDir)\$(OutDir)\msvcp71.dll"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE; _CRT_SECURE_NO_DEPRECATE"
-				StringPooling="true"
-				RuntimeLibrary="0"
-				BufferSecurityCheck="false"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Release/IconService.pch"
-				AssemblerListingLocation=".\Release/"
-				ObjectFile=".\Release/"
-				ProgramDataBaseFileName=".\Release/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="kernel32.lib user32.lib advapi32.lib ws2_32.lib"
-				OutputFile=".\Release/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				GenerateManifest="false"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeForWindows98="0"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-				AdditionalManifestFiles="NSClient++.manifest"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="tmp\$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Copying dependency DLLs&#x0D;&#x0A;cmd /c &quot;copy $(InputDir)\dist_dll\*.* $(InputDir)\$(OutDir)\&quot;&#x0D;&#x0A;"
-				Outputs="$(InputDir)\$(OutDir)\msvcp71.dll"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				StringPooling="true"
-				RuntimeLibrary="0"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Release/IconService.pch"
-				AssemblerListingLocation=".\Release/"
-				ObjectFile=".\Release/"
-				ProgramDataBaseFileName=".\Release/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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 Pdh.lib"
-				OutputFile=".\Release/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeForWindows98="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Itanium"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Copying dependency DLLs&#x0D;&#x0A;cmd /c &quot;copy $(InputDir)\dist_dll\*.* $(InputDir)\$(OutDir)\&quot;&#x0D;&#x0A;"
-				Outputs="$(InputDir)\$(OutDir)\msvcp71.dll"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="2"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				StringPooling="true"
-				RuntimeLibrary="0"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Release/IconService.pch"
-				AssemblerListingLocation=".\Release/"
-				ObjectFile=".\Release/"
-				ProgramDataBaseFileName=".\Release/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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 Pdh.lib"
-				OutputFile=".\Release/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeForWindows98="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="5"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName=".\Debug/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Debug/IconService.pch"
-				AssemblerListingLocation=".\Debug/"
-				ObjectFile=".\Debug/"
-				ProgramDataBaseFileName=".\Debug/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Debug/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile=".\Debug/NSClient++.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName=".\Debug/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Debug/IconService.pch"
-				AssemblerListingLocation=".\Debug/"
-				ObjectFile=".\Debug/"
-				ProgramDataBaseFileName=".\Debug/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Debug/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile=".\Debug/IconService.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|Itanium"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="2"
-				TypeLibraryName=".\Debug/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Debug/IconService.pch"
-				AssemblerListingLocation=".\Debug/"
-				ObjectFile=".\Debug/"
-				ProgramDataBaseFileName=".\Debug/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Debug/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile=".\Debug/IconService.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="5"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Distribution|Win32"
-			OutputDirectory="$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="XAutobuild.exe -f &quot;$(ProjectDir)&quot;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Copying dependency DLLs&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y $(InputDir)\dist_dll\*.dll $(InputDir)\Dist\&quot;&#x0D;&#x0A;echo Copying scripts&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(TargetDir)\scripts&quot;&quot;&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y &quot;$(InputDir)\scripts&quot; &quot;$(TargetDir)\scripts&quot;&quot;&#x0D;&#x0A;echo Removing old archive&#x0D;&#x0A;cmd /c &quot;del &quot;$(InputDir)\Dist\modules\*.pdb&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(InputDir)\Dist\*.zip&quot;&quot;&#x0D;&#x0A;echo Making archive: 7z.exe a -r -tzip -bd &quot;$(TargetDir)\$(ParentName)-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;7z.exe a -r -tzip -bd &quot;$(TargetDir)\$(ParentName)-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;echo Renaming archive&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\$(ParentName)-$(PlatformName).zip&quot;&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;echo pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="$(InputDir)\Dist\$(ProjectName).zip"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="0"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Release/IconService.pch"
-				AssemblerListingLocation=".\Release/"
-				ObjectFile=".\Release/"
-				ProgramDataBaseFileName=".\Release/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Dist/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="false"
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeForWindows98="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-				AdditionalManifestFiles="NSClient++.manifest"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Distribution|x64"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="XAutobuild.exe -f &quot;$(ProjectDir)&quot;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Copying dependency DLLs&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y $(InputDir)\dist_dll\*.dll $(InputDir)\Dist\&quot;&#x0D;&#x0A;echo Copying scripts&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(TargetDir)\scripts&quot;&quot;&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y &quot;$(InputDir)\scripts&quot; &quot;$(TargetDir)\scripts&quot;&quot;&#x0D;&#x0A;echo Removing old archive&#x0D;&#x0A;cmd /c &quot;del &quot;$(InputDir)\Dist\modules\*.pdb&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(InputDir)\Dist\*.zip&quot;&quot;&#x0D;&#x0A;echo Making archive: 7z.exe a -r -tzip -bd &quot;$(TargetDir)\$(InputName)-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;7z.exe a -r -tzip -bd &quot;$(TargetDir)\$(InputName)-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;echo Renaming archive&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\$(InputName)-$(PlatformName).zip&quot;&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;echo pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="$(InputDir)\Dist\$(ProjectName).zip"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				StringPooling="true"
-				RuntimeLibrary="0"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Release/IconService.pch"
-				AssemblerListingLocation=".\Release/"
-				ObjectFile=".\Release/"
-				ProgramDataBaseFileName=".\Release/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Dist/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="false"
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeForWindows98="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-				AdditionalManifestFiles="NSClient++.manifest"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Distribution|Itanium"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="XAutobuild.exe -f &quot;$(ProjectDir)&quot;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Copying dependency DLLs&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y $(InputDir)\dist_dll\*.dll $(InputDir)\Dist\&quot;&#x0D;&#x0A;echo Copying scripts&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(TargetDir)\scripts&quot;&quot;&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y &quot;$(InputDir)\scripts&quot; &quot;$(TargetDir)\scripts&quot;&quot;&#x0D;&#x0A;echo Removing old archive&#x0D;&#x0A;cmd /c &quot;del &quot;$(InputDir)\Dist\modules\*.pdb&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(InputDir)\Dist\*.zip&quot;&quot;&#x0D;&#x0A;echo Making archive: 7z.exe a -r -tzip -bd &quot;$(TargetDir)\$(InputName)-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;7z.exe a -r -tzip -bd &quot;$(TargetDir)\$(InputName)-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;echo Renaming archive&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\$(InputName)-$(PlatformName).zip&quot;&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;echo pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="$(InputDir)\Dist\$(ProjectName).zip"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="2"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				StringPooling="true"
-				RuntimeLibrary="0"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Release/IconService.pch"
-				AssemblerListingLocation=".\Release/"
-				ObjectFile=".\Release/"
-				ProgramDataBaseFileName=".\Release/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Dist/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="false"
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeForWindows98="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="5"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-				AdditionalManifestFiles="NSClient++.manifest"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Nightly|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="tmp\$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="XAutobuild.exe -f &quot;$(ProjectDir)&quot;"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Seting up scripts&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(TargetDir)\scripts\&quot;&quot;&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y &quot;$(InputDir)\scripts\*.*&quot; &quot;$(TargetDir)\scripts\&quot;&quot;&#x0D;&#x0A;echo Removing old archive and files we dont want&#x0D;&#x0A;cmd /c &quot;del &quot;$(TargetDir)\modules\*.lib&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(TargetDir)\modules\*.exp&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(TargetDir)\*.zip&quot;&quot;&#x0D;&#x0A;echo Making archive&#x0D;&#x0A;7z.exe a -r -tzip -bd &quot;$(TargetDir)\$(ProjectName)-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;echo Renaming archive&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\$(ProjectName)-$(PlatformName).zip&quot;&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="$(TargetDir)\$(ProjectName)-$(PlatformName).zip"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Nightly|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="tmp\$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Seting up scripts&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(TargetDir)\scripts\&quot;&quot;&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y &quot;$(InputDir)\scripts\*.*&quot; &quot;$(TargetDir)\scripts\&quot;&quot;&#x0D;&#x0A;echo Removing old archive and files we dont want&#x0D;&#x0A;cmd /c &quot;del &quot;$(TargetDir)\modules\*.lib&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(TargetDir)\modules\*.exp&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(TargetDir)\*.zip&quot;&quot;&#x0D;&#x0A;echo Making archive&#x0D;&#x0A;7z.exe a -r -tzip -bd &quot;$(TargetDir)\$(ProjectName)-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;echo Renaming archive&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\$(ProjectName)-$(PlatformName).zip&quot;&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="$(TargetDir)\$(ProjectName)-$(PlatformName).zip"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Nightly|Itanium"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="tmp\$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Seting up scripts&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(TargetDir)\scripts\&quot;&quot;&#x0D;&#x0A;cmd /c &quot;xcopy /Q /Y &quot;$(InputDir)\scripts\*.*&quot; &quot;$(TargetDir)\scripts\&quot;&quot;&#x0D;&#x0A;echo Removing old archive and files we dont want&#x0D;&#x0A;cmd /c &quot;del &quot;$(TargetDir)\modules\*.lib&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(TargetDir)\modules\*.exp&quot;&quot;&#x0D;&#x0A;cmd /c &quot;del &quot;$(TargetDir)\*.zip&quot;&quot;&#x0D;&#x0A;echo Making archive&#x0D;&#x0A;7z.exe a -r -tzip -bd &quot;$(TargetDir)\$(ProjectName)-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;echo Renaming archive&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\$(ProjectName)-$(PlatformName).zip&quot;&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="$(TargetDir)\$(ProjectName)-$(PlatformName).zip"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="2"
-				TypeLibraryName=".\Release/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				EnableUAC="false"
-				IgnoreAllDefaultLibraries="false"
-				IgnoreDefaultLibraryNames=""
-				ModuleDefinitionFile=""
-				ProgramDatabaseFile=""
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="5"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug-MemCheck|Win32"
-			OutputDirectory="$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName=".\Debug/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;MEMCHECK"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Debug/IconService.pch"
-				AssemblerListingLocation=".\Debug/"
-				ObjectFile=".\Debug/"
-				ProgramDataBaseFileName=".\Debug/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Debug/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile=".\Debug/IconService.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug-MemCheck|x64"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName=".\Debug/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Debug/IconService.pch"
-				AssemblerListingLocation=".\Debug/"
-				ObjectFile=".\Debug/"
-				ProgramDataBaseFileName=".\Debug/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Debug/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile=".\Debug/IconService.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug-MemCheck|Itanium"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="2"
-				TypeLibraryName=".\Debug/IconService.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="ARCH_x64"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="stdafx.h"
-				PrecompiledHeaderFile=".\Debug/IconService.pch"
-				AssemblerListingLocation=".\Debug/"
-				ObjectFile=".\Debug/"
-				ProgramDataBaseFileName=".\Debug/"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1036"
-				AdditionalIncludeDirectories="./res/"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="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"
-				OutputFile=".\Debug/NSClient++.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				ModuleDefinitionFile=""
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile=".\Debug/IconService.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="5"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-			>
-			<File
-				RelativePath=".\include\arrayBuffer.cpp"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\include\b64\b64.c"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\include\NSCHelper.cpp"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\NSClient++.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\NSCPlugin.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\include\ServiceCmd.cpp"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\include\Socket.cpp"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="StdAfx.cpp"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						PreprocessorDefinitions=""
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl"
-			>
-			<File
-				RelativePath=".\include\arrayBuffer.h"
-				>
-			</File>
-			<File
-				RelativePath=".\AutoBuild.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\charEx.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\config.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\INISettings.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\Mutex.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\MutexRW.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\NSCAPI.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\NSCHelper.h"
-				>
-			</File>
-			<File
-				RelativePath=".\NSClient++.h"
-				>
-			</File>
-			<File
-				RelativePath=".\NSCPlugin.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\NTService.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\PDHCounter.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\REGSettings.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\ServiceCmd.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\Settings.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\Singleton.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\Socket.h"
-				>
-			</File>
-			<File
-				RelativePath="StdAfx.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\strEx.h"
-				>
-			</File>
-			<File
-				RelativePath=".\include\thread.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-			>
-		</Filter>
-		<Filter
-			Name="Misc"
-			>
-			<File
-				RelativePath=".\changelog"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying &quot;$(InputDir)\$(InputName)&quot;...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(InputDir)\Dist\&quot;&quot;&#x0D;&#x0A;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\Dist\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying &quot;$(InputDir)\$(InputName)&quot;...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(InputDir)\Dist\&quot;&quot;&#x0D;&#x0A;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\Dist\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying &quot;$(InputDir)\$(InputName)&quot;...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(InputDir)\Dist\&quot;&quot;&#x0D;&#x0A;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\Dist\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\counters.defs"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)$(InputFileName)"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\Doxyfile"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-						Outputs=".\Doc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="doxygen.exe $(InputPath)&#x0D;&#x0A;"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\files\license.txt"
-				>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying &quot;$(InputDir)\$(InputFileName)&quot;...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName) "
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying &quot;$(InputDir)\$(InputFileName)&quot;...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName) "
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying &quot;$(InputDir)\$(InputFileName)&quot;...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputFileName) "
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs="$(TargetDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs="$(TargetDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)&quot;&quot;&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs="$(TargetDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\NSC.dist"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)\$(InputName).ini&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputName).ini"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)\$(InputName).ini&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputName).ini"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)\$(InputName).ini&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputName).ini"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\Dist\$(InputName).ini&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\Dist\$(InputName).ini"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\Dist\$(InputName).ini&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\Dist\$(InputName).ini"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\Dist\$(InputName).ini&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\Dist\$(InputName).ini"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)\$(InputName).ini&quot;&quot;&#x0D;&#x0A;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputName).ini"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)\$(InputName).ini&quot;&quot;&#x0D;&#x0A;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputName).ini"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(TargetDir)\$(InputName).ini&quot;&quot;&#x0D;&#x0A;&#x0D;&#x0A;"
-						Outputs="$(TargetDir)\$(InputName).ini"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\NSC.ini"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy $(InputDir)\$(InputFileName) $(InputDir)\$(OutDir)&quot;&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy $(InputDir)\$(InputFileName) $(InputDir)\$(OutDir)&quot;&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy $(InputDir)\$(InputFileName) $(InputDir)\$(OutDir)&quot;&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\$(OutDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\$(OutDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\$(OutDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine=""
-						AdditionalDependencies=""
-						Outputs="$(InputDir)\Dist\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine=""
-						AdditionalDependencies=""
-						Outputs="$(InputDir)\Dist\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine=""
-						AdditionalDependencies=""
-						Outputs="$(InputDir)\Dist\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Skipping $(InputFileName)...&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Skipping $(InputFileName)...&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Skipping $(InputFileName)...&#x0D;&#x0A;"
-						AdditionalDependencies=""
-						Outputs=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\$(OutDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\$(OutDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="echo Copying $(InputFileName)...&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)\$(InputFileName)&quot; &quot;$(InputDir)\$(OutDir)&quot;&quot;&#x0D;&#x0A;"
-						Outputs="$(InputDir)\$(OutDir)\$(InputFileName)"
-					/>
-				</FileConfiguration>
-			</File>
-		</Filter>
-		<Filter
-			Name="Testcases"
-			Filter="testcases/*.xml"
-			>
-			<File
-				RelativePath=".\testcases\install-service.xml"
-				>
-			</File>
-		</Filter>
-		<File
-			RelativePath=".\NSClient++.manifest"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
Index: gs/0.3.1/NSClient++.cpp
===================================================================
--- tags/0.3.1/NSClient++.cpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,941 +1,0 @@
-//////////////////////////////////////////////////////////////////////////
-// NSClient++ Base Service
-// 
-// Copyright (c) 2004 MySolutions NORDIC (http://www.medin.name)
-//
-// Date: 2004-03-13
-// Author: Michael Medin (michael@medin.name)
-//
-// Part of this file is based on work by Bruno Vais (bvais@usa.net)
-//
-// This software is provided "AS IS", without a warranty of any kind.
-// You are free to use/modify this code but leave this header intact.
-//
-//////////////////////////////////////////////////////////////////////////
-#include "stdafx.h"
-#include <winsvc.h>
-#include "NSClient++.h"
-#include <Settings.h>
-#include <charEx.h>
-#include <Socket.h>
-#include <b64/b64.h>
-#include <config.h>
-#include <msvc_wrappers.h>
-
-
-NSClient mainClient;	// Global core instance.
-bool g_bConsoleLog = false;
-//////////////////////////////////////////////////////////////////////////
-// Startup code
-
-
-/**
- * Application startup point
- *
- * @param argc Argument count
- * @param argv[] Argument array
- * @param envp[] Environment array
- * @return exit status
- */
-int wmain(int argc, TCHAR* argv[], TCHAR* envp[])
-{
-	srand( (unsigned)time( NULL ) );
-	int nRetCode = 0;
-	if ( (argc > 1) && ((*argv[1] == '-') || (*argv[1] == '/')) ) {
-		if ( _wcsicmp( _T("install"), argv[1]+1 ) == 0 ) {
-			g_bConsoleLog = true;
-			try {
-				serviceControll::Install(SZSERVICENAME, SZSERVICEDISPLAYNAME, SZDEPENDENCIES);
-			} catch (const serviceControll::SCException& e) {
-				LOG_MESSAGE_STD(_T("Service installation failed: ") + e.error_);
-				return -1;
-			}
-			try {
-				serviceControll::SetDescription(SZSERVICENAME, SZSERVICEDESCRIPTION);
-			} catch (const serviceControll::SCException& e) {
-				LOG_MESSAGE_STD(_T("Couldn't set service description: ") + e.error_);
-			}
-			LOG_MESSAGE(_T("Service installed!"));
-		} else if ( _wcsicmp( _T("uninstall"), argv[1]+1 ) == 0 ) {
-			g_bConsoleLog = true;
-			try {
-				serviceControll::Uninstall(SZSERVICENAME);
-			} catch (const serviceControll::SCException& e) {
-				LOG_MESSAGE_STD(_T("Service deinstallation failed; ") + e.error_);
-				return -1;
-			}
-		} else if ( _wcsicmp( _T("encrypt"), argv[1]+1 ) == 0 ) {
-			g_bConsoleLog = true;
-			std::wstring password;
-			try {
-				Settings::getInstance()->setFile(mainClient.getBasePath(), _T("NSC.ini"));
-			} catch (SettingsException e) {
-				std::wcout << _T("Could not find settings: ") << e.getMessage() << std::endl;;
-				return 1;
-			}
-			std::wcout << _T("Enter password to encrypt (has to be a single word): ");
-			std::wcin >> password;
-			std::wstring xor_pwd = Encrypt(password);
-			std::wcout << _T("obfuscated_password=") << xor_pwd << std::endl;
-			std::wstring outPasswd = Decrypt(xor_pwd);
-			if (password != outPasswd) 
-				std::wcout << _T("ERROR: Password did not match: ") << outPasswd<< std::endl;
-			Settings::destroyInstance();
-			return 0;
-		} else if ( _wcsicmp( _T("start"), argv[1]+1 ) == 0 ) {
-			g_bConsoleLog = true;
-			try {
-				serviceControll::Start(SZSERVICENAME);
-			} catch (const serviceControll::SCException& e) {
-				LOG_MESSAGE_STD(_T("Service failed to start: ") + e.error_);
-				return -1;
-			}
-		} else if ( _wcsicmp( _T("stop"), argv[1]+1 ) == 0 ) {
-			g_bConsoleLog = true;
-			try {
-				serviceControll::Stop(SZSERVICENAME);
-			} catch (const serviceControll::SCException& e) {
-				LOG_MESSAGE_STD(_T("Service failed to stop: ") + e.error_);
-				return -1;
-			}
-		} else if ( _wcsicmp( _T("about"), argv[1]+1 ) == 0 ) {
-			g_bConsoleLog = true;
-			LOG_MESSAGE(SZAPPNAME _T(" (C) Michael Medin"));
-			LOG_MESSAGE(_T("Version ") SZVERSION);
-		} else if ( _wcsicmp( _T("version"), argv[1]+1 ) == 0 ) {
-			g_bConsoleLog = true;
-			LOG_MESSAGE(SZAPPNAME _T(" Version: ") SZVERSION _T(", Plattform: ") SZARCH);
-		} else if ( _wcsicmp( _T("noboot"), argv[1]+1 ) == 0 ) {
-			mainClient.setBoot(false);
-			g_bConsoleLog = false;
-			mainClient.enableDebug(true);
-			mainClient.InitiateService();
-			int nRetCode = -1;
-			if (argc>=4)
-				nRetCode = mainClient.commandLineExec(argv[2], argv[3], argc-4, &argv[4]);
-			else if (argc>=3)
-				nRetCode = mainClient.commandLineExec(argv[2], argv[3], 0, NULL);
-			mainClient.TerminateService();
-			return nRetCode;
-		} else if ( _wcsicmp( _T("test"), argv[1]+1 ) == 0 ) {
-			std::wcout << "Launching test mode..." << std::endl;
-			LOG_MESSAGE_STD(_T("Booting: " SZSERVICEDISPLAYNAME ));
-			try {
-				if (serviceControll::isStarted(SZSERVICENAME)) {
-					std::wcerr << "Service seems to be started, this is probably not a good idea..." << std::endl;
-				}
-			} catch (const serviceControll::SCException& e) {
-				// Empty by design
-			}
-			g_bConsoleLog = true;
-			mainClient.enableDebug(true);
-			if (!mainClient.InitiateService()) {
-				LOG_ERROR_STD(_T("Service *NOT* started!"));
-				return -1;
-			}
-			LOG_MESSAGE_STD(_T("Using settings from: ") + Settings::getInstance()->getActiveType());
-			LOG_MESSAGE(_T("Enter command to inject or exit to terminate..."));
-
-			std::wstring s = _T("");
-			std::wstring buff = _T("");
-			while (true) {
-				std::wcin >> s;
-				if (s == _T("exit")) {
-					std::wcout << _T("Exiting...") << std::endl;
-					break;
-				} else if (s == _T("off") && buff == _T("debug ")) {
-					std::wcout << _T("Setting debug log off...") << std::endl;
-					mainClient.enableDebug(false);
-				} else if (s == _T("on") && buff == _T("debug ")) {
-					std::wcout << _T("Setting debug log on...") << std::endl;
-					mainClient.enableDebug(true);
-				} else if (std::cin.peek() < 15) {
-					buff += s;
-					strEx::token t = strEx::getToken(buff, ' ');
-					std::wstring msg, perf;
-					NSCAPI::nagiosReturn ret = mainClient.inject(t.first, t.second, ' ', true, msg, perf);
-					std::wcout << NSCHelper::translateReturn(ret) << _T(":");
-					std::cout << strEx::wstring_to_string(msg);
-					if (!perf.empty())
-						std::cout << "|" << strEx::wstring_to_string(perf);
-					std::wcout << std::endl;
-					buff = _T("");
-				} else {
-					buff += s + _T(" ");
-				}
-			}
-			mainClient.TerminateService();
-			return 0;
-		} else {
-			std::wcerr << _T("Usage: -version, -about, -install, -uninstall, -start, -stop, -encrypt") << std::endl;
-			std::wcerr << _T("Usage: [-noboot] <ModuleName> <commnd> [arguments]") << std::endl;
-			return -1;
-		}
-		return nRetCode;
-	} else if (argc > 2) {
-		g_bConsoleLog = true;
-		mainClient.InitiateService();
-		if (argc>=3)
-			nRetCode = mainClient.commandLineExec(argv[1], argv[2], argc-3, &argv[3]);
-		else
-			nRetCode = mainClient.commandLineExec(argv[1], argv[2], 0, NULL);
-		mainClient.TerminateService();
-		return nRetCode;
-	} else if (argc > 1) {
-		g_bConsoleLog = true;
-		mainClient.enableDebug(true);
-		std::wcerr << _T("Invalid command line argument: ") << argv[1] << std::endl;
-		std::wcerr << _T("Usage: -version, -about, -install, -uninstall, -start, -stop, -encrypt") << std::endl;
-		std::wcerr << _T("Usage: [-noboot] <ModuleName> <commnd> [arguments]") << std::endl;
-		return -1;
-	}
-	std::wcout << _T("Running as service...") << std::endl;
-	if (!mainClient.StartServiceCtrlDispatcher()) {
-		LOG_MESSAGE(_T("We failed to start the service"));
-	}
-	return nRetCode;
-}
-
-//////////////////////////////////////////////////////////////////////////
-// Service functions
-
-/**
- * Service control handler startup point.
- * When the program is started as a service this will be the entry point.
- */
-bool NSClientT::InitiateService() {
-	try {
-		Settings::getInstance()->setFile(getBasePath(), _T("NSC.ini"));
-		if (debug_) {
-			Settings::getInstance()->setInt(_T("log"), _T("debug"), 1);
-		}
-	} catch (SettingsException e) {
-		LOG_ERROR_STD(_T("Could not find settings: ") + e.getMessage());
-		return false;
-	} catch (...) {
-		LOG_ERROR_STD(_T("Unknown exception reading settings..."));
-		return false;
-	}
-
-	try {
-		simpleSocket::WSAStartup();
-	} catch (simpleSocket::SocketException e) {
-		LOG_ERROR_STD(_T("Uncaught exception: ") + e.getMessage());
-		return false;
-	} catch (...) {
-		LOG_ERROR_STD(_T("Unknown exception iniating socket..."));
-		return false;
-	}
-	if (boot_) {
-		try {
-			SettingsT::sectionList list = Settings::getInstance()->getSection(_T("modules"));
-			for (SettingsT::sectionList::iterator it = list.begin(); it != list.end(); it++) {
-				try {
-					loadPlugin(getBasePath() + _T("modules\\") + (*it));
-				} catch(const NSPluginException& e) {
-					LOG_ERROR_STD(_T("Exception raised: ") + e.error_ + _T(" in module: ") + e.file_);
-					//return false;
-				} catch (...) {
-					LOG_ERROR_STD(_T("Unknown exception loading plugin: ") + (*it));
-					return false;
-				}
-			}
-		} catch (SettingsException e) {
-			NSC_LOG_ERROR_STD(_T("Failed to set settings file") + e.getMessage());
-		}
-		try {
-			loadPlugins();
-		} catch (...) {
-			LOG_ERROR_STD(_T("Unknown exception loading plugins"));
-			return false;
-		}
-	}
-	return true;
-}
-/**
- * Service control handler termination point.
- * When the program is stopped as a service this will be the "exit point".
- */
-void NSClientT::TerminateService(void) {
-	if (boot_) {
-		try {
-			mainClient.unloadPlugins();
-		} catch(NSPluginException &e) {
-			std::wcout << _T("Exception raised: ") << e.error_ << _T(" in module: ") << e.file_ << std::endl;;
-		}
-	}
-	try {
-		simpleSocket::WSACleanup();
-	} catch (simpleSocket::SocketException e) {
-		LOG_ERROR_STD(_T("Uncaught exception: ") + e.getMessage());
-	}
-	Settings::destroyInstance();
-}
-
-/**
- * Forward this to the main service dispatcher helper class
- * @param dwArgc 
- * @param *lpszArgv 
- */
-void WINAPI NSClientT::service_main_dispatch(DWORD dwArgc, LPTSTR *lpszArgv) {
-	mainClient.service_main(dwArgc, lpszArgv);
-}
-/**
- * Forward this to the main service dispatcher helper class
- * @param dwCtrlCode 
- */
-void WINAPI NSClientT::service_ctrl_dispatch(DWORD dwCtrlCode) {
-	mainClient.service_ctrl(dwCtrlCode);
-}
-
-//////////////////////////////////////////////////////////////////////////
-// Member functions
-
-int NSClientT::commandLineExec(const TCHAR* module, const TCHAR* command, const unsigned int argLen, TCHAR** args) {
-	std::wstring sModule = module;
-	std::wstring moduleList = _T("");
-	{
-		ReadLock readLock(&m_mutexRW, true, 10000);
-		if (!readLock.IsLocked()) {
-			LOG_ERROR(_T("FATAL ERROR: Could not get read-mutex."));
-			return -1;
-		}
-		for (pluginList::size_type i=0;i<plugins_.size();++i) {
-			NSCPlugin *p = plugins_[i];
-			if (!moduleList.empty())
-				moduleList += _T(", ");
-			moduleList += p->getModule();
-			if (p->getModule() == sModule) {
-				LOG_DEBUG_STD(_T("Found module: ") + p->getName() + _T("..."));
-				try {
-					return p->commandLineExec(command, argLen, args);
-				} catch (NSPluginException e) {
-					LOG_ERROR_STD(_T("Could not execute command: ") + e.error_ + _T(" in ") + e.file_);
-					return -1;
-				}
-			}
-		}
-	}
-	try {
-		plugin_type plugin = loadPlugin(getBasePath() + _T("modules\\") + module);
-		LOG_DEBUG_STD(_T("Loading plugin: ") + plugin->getName() + _T("..."));
-		plugin->load_plugin();
-		return plugin->commandLineExec(command, argLen, args);
-	} catch (NSPluginException e) {
-		LOG_MESSAGE_STD(_T("Module (") + e.file_ + _T(") was not found: ") + e.error_);
-	}
-	try {
-		plugin_type plugin = loadPlugin(getBasePath() + _T("modules\\") + module + _T(".dll"));
-		LOG_DEBUG_STD(_T("Loading plugin: ") + plugin->getName() + _T("..."));
-		plugin->load_plugin();
-		return plugin->commandLineExec(command, argLen, args);
-	} catch (NSPluginException e) {
-		LOG_MESSAGE_STD(_T("Module (") + e.file_ + _T(") was not found: ") + e.error_);
-	}
-	LOG_ERROR_STD(_T("Module not found: ") + module + _T(" available modules are: ") + moduleList);
-	return 0;
-}
-
-/**
- * Load a list of plug-ins
- * @param plugins A list with plug-ins (DLL files) to load
- */
-void NSClientT::addPlugins(const std::list<std::wstring> plugins) {
-	ReadLock readLock(&m_mutexRW, true, 10000);
-	if (!readLock.IsLocked()) {
-		LOG_ERROR(_T("FATAL ERROR: Could not get read-mutex."));
-		return;
-	}
-	std::list<std::wstring>::const_iterator it;
-	for (it = plugins.begin(); it != plugins.end(); ++it) {
-		loadPlugin(*it);
-	}
-}
-/**
- * Unload all plug-ins (in reversed order)
- */
-void NSClientT::unloadPlugins() {
-	{
-		WriteLock writeLock(&m_mutexRW, true, 10000);
-		if (!writeLock.IsLocked()) {
-			LOG_ERROR(_T("FATAL ERROR: Could not get read-mutex."));
-			return;
-		}
-		commandHandlers_.clear();
-		messageHandlers_.clear();
-	}
-	{
-		ReadLock readLock(&m_mutexRW, true, 10000);
-		if (!readLock.IsLocked()) {
-			LOG_ERROR(_T("FATAL ERROR: Could not get read-mutex."));
-			return;
-		}
-		for (pluginList::size_type i=plugins_.size();i>0;i--) {
-			NSCPlugin *p = plugins_[i-1];
-			LOG_DEBUG_STD(_T("Unloading plugin: ") + p->getName() + _T("..."));
-			p->unload();
-		}
-	}
-	{
-		WriteLock writeLock(&m_mutexRW, true, 10000);
-		if (!writeLock.IsLocked()) {
-			LOG_ERROR(_T("FATAL ERROR: Could not get read-mutex."));
-			return;
-		}
-		for (pluginList::size_type i=plugins_.size();i>0;i--) {
-			NSCPlugin *p = plugins_[i-1];
-			plugins_[i-1] = NULL;
-			delete p;
-		}
-		plugins_.clear();
-	}
-}
-
-void NSClientT::loadPlugins() {
-	ReadLock readLock(&m_mutexRW, true, 10000);
-	if (!readLock.IsLocked()) {
-		LOG_ERROR(_T("FATAL ERROR: Could not get read-mutex."));
-		return;
-	}
-	for (pluginList::iterator it=plugins_.begin(); it != plugins_.end(); ++it) {
-		LOG_DEBUG_STD(_T("Loading plugin: ") + (*it)->getName() + _T("..."));
-		(*it)->load_plugin();
-	}
-}
-/**
- * Load a single plug-in using a DLL filename
- * @param file The DLL file
- */
-NSClientT::plugin_type NSClientT::loadPlugin(const std::wstring file) {
-	return addPlugin(new NSCPlugin(file));
-}
-/**
- * Load and add a plugin to various internal structures
- * @param *plugin The plug-ininstance to load. The pointer is managed by the 
- */
-NSClientT::plugin_type NSClientT::addPlugin(plugin_type plugin) {
-	plugin->load_dll();
-	{
-		WriteLock writeLock(&m_mutexRW, true, 10000);
-		if (!writeLock.IsLocked()) {
-			LOG_ERROR(_T("FATAL ERROR: Could not get read-mutex."));
-			return plugin;
-		}
-		plugins_.insert(plugins_.end(), plugin);
-		if (plugin->hasCommandHandler())
-			commandHandlers_.insert(commandHandlers_.end(), plugin);
-		if (plugin->hasMessageHandler())
-			messageHandlers_.insert(messageHandlers_.end(), plugin);
-	}
-	return plugin;
-}
-
-
-std::wstring NSClientT::describeCommand(std::wstring command) {
-	ReadLock readLock(&m_mutexRWcmdDescriptions, true, 5000);
-	if (!readLock.IsLocked()) {
-		LOG_ERROR(_T("FATAL ERROR: Could not get read-mutex when trying to get command list."));
-		return _T("Failed to get mutex when describing command: ") + command;
-	}
-	cmdMap::const_iterator cit = cmdDescriptions_.find(command);
-	if (cit == cmdDescriptions_.end())
-		return _T("Command not found: ") + command + _T(", maybe it has not been register?");
-	return (*cit).second;
-}
-std::list<std::wstring> NSClientT::getAllCommandNames() {
-	std::list<std::wstring> lst;
-	ReadLock readLock(&m_mutexRWcmdDescriptions, true, 5000);
-	if (!readLock.IsLocked()) {
-		LOG_ERROR(_T("FATAL ERROR: Could not get read-mutex when trying to get command list."));
-		return lst;
-	}
-	for (cmdMap::const_iterator cit = cmdDescriptions_.begin(); cit != cmdDescriptions_.end(); ++cit) {
-		lst.push_back((*cit).first);
-	}
-	return lst;
-}
-void NSClientT::registerCommand(std::wstring cmd, std::wstring desc) {
-	WriteLock writeLock(&m_mutexRWcmdDescriptions, true, 10000);
-	if (!writeLock.IsLocked()) {
-		LOG_ERROR_STD(_T("FATAL ERROR: Failed to describe command:") + cmd);
-		return;
-	}
-	cmdDescriptions_[cmd] = desc;
-}
-
-unsigned int NSClientT::getBufferLength() {
-	static unsigned int len = 0;
-	if (len == 0) {
-		try {
-			len = Settings::getInstance()->getInt(MAIN_SECTION_TITLE, MAIN_STRING_LENGTH, MAIN_STRING_LENGTH_DEFAULT);
-		} catch (SettingsException &e) {
-			NSC_DEBUG_MSG(_T("Failed to get length: ") + e.getMessage());
-			return MAIN_STRING_LENGTH_DEFAULT;
-		} catch (...) {
-			NSC_LOG_ERROR(_T("Failed to get length: :("));
-			return MAIN_STRING_LENGTH_DEFAULT;
-		}
-	}
-	return len;
-}
-
-NSCAPI::nagiosReturn NSClientT::inject(std::wstring command, std::wstring arguments, TCHAR splitter, bool escape, std::wstring &msg, std::wstring & perf) {
-	unsigned int aLen = 0;
-	TCHAR ** aBuf = arrayBuffer::split2arrayBuffer(arguments, splitter, aLen, escape);
-	unsigned int buf_len = getBufferLength();
-	TCHAR * mBuf = new TCHAR[buf_len+1]; mBuf[0] = '\0';
-	TCHAR * pBuf = new TCHAR[buf_len+1]; pBuf[0] = '\0';
-	NSCAPI::nagiosReturn ret = injectRAW(command.c_str(), aLen, aBuf, mBuf, buf_len, pBuf, buf_len);
-	arrayBuffer::destroyArrayBuffer(aBuf, aLen);
-	if ( (ret == NSCAPI::returnInvalidBufferLen) || (ret == NSCAPI::returnIgnored) ) {
-		delete [] mBuf;
-		delete [] pBuf;
-		return ret;
-	}
-	msg = mBuf;
-	perf = pBuf;
-	delete [] mBuf;
-	delete [] pBuf;
-	return ret;
-}
-
-/**
- * Inject a command into the plug-in stack.
- *
- * @param command Command to inject
- * @param argLen Length of argument buffer
- * @param **argument Argument buffer
- * @param *returnMessageBuffer Message buffer
- * @param returnMessageBufferLen Length of returnMessageBuffer
- * @param *returnPerfBuffer Performance data buffer
- * @param returnPerfBufferLen Length of returnPerfBuffer
- * @return The command status
- */
-NSCAPI::nagiosReturn NSClientT::injectRAW(const TCHAR* command, const unsigned int argLen, TCHAR **argument, TCHAR *returnMessageBuffer, unsigned int returnMessageBufferLen, TCHAR *returnPerfBuffer, unsigned int returnPerfBufferLen) {
-	if (logDebug()) {
-		LOG_DEBUG_STD(_T("Injecting: ") + (std::wstring) command + _T(": ") + arrayBuffer::arrayBuffer2string(argument, argLen, _T(", ")));
-	}
-	ReadLock readLock(&m_mutexRW, true, 5000);
-	if (!readLock.IsLocked()) {
-		LOG_ERROR(_T("FATAL ERROR: Could not get read-mutex."));
-		return NSCAPI::returnUNKNOWN;
-	}
-	for (pluginList::size_type i = 0; i < commandHandlers_.size(); i++) {
-		try {
-			NSCAPI::nagiosReturn c = commandHandlers_[i]->handleCommand(command, argLen, argument, returnMessageBuffer, returnMessageBufferLen, returnPerfBuffer, returnPerfBufferLen);
-			switch (c) {
-				case NSCAPI::returnInvalidBufferLen:
-					LOG_ERROR(_T("UNKNOWN: Return buffer to small to handle this command."));
-					return c;
-				case NSCAPI::returnIgnored:
-					break;
-				case NSCAPI::returnOK:
-				case NSCAPI::returnWARN:
-				case NSCAPI::returnCRIT:
-				case NSCAPI::returnUNKNOWN:
-					LOG_DEBUG_STD(_T("Injected Result: ") + NSCHelper::translateReturn(c) + _T(" '") + (std::wstring)(returnMessageBuffer) + _T("'"));
-					LOG_DEBUG_STD(_T("Injected Performance Result: '") +(std::wstring)(returnPerfBuffer) + _T("'"));
-					return c;
-				default:
-					LOG_ERROR_STD(_T("Unknown error from handleCommand: ") + strEx::itos(c) + _T(" the injected command was: ") + (std::wstring)command);
-					return c;
-			}
-		} catch(const NSPluginException& e) {
-			LOG_ERROR_STD(_T("Exception raised: ") + e.error_ + _T(" in module: ") + e.file_);
-			return NSCAPI::returnCRIT;
-		} catch(...) {
-			LOG_ERROR_STD(_T("Unknown exception raised in module"));
-			return NSCAPI::returnCRIT;
-		}
-	}
-	LOG_MESSAGE_STD(_T("No handler for command: '") + command + _T("'"));
-	return NSCAPI::returnIgnored;
-}
-
-bool NSClientT::logDebug() {
-	if (debug_ == log_unknown) {
-		try {
-			if (Settings::getInstance()->getInt(_T("log"), _T("debug"), 0) == 1)
-				debug_ = log_debug;
-			else
-				debug_ = log_nodebug;
-		} catch (SettingsException e) {
-			debug_ = log_debug;
-		}
-	}
-	return (debug_ == log_debug);
-}
-
-/**
- * Report a message to all logging enabled modules.
- *
- * @param msgType Message type 
- * @param file Filename generally __FILE__
- * @param line  Line number, generally __LINE__
- * @param message The message as a human readable string.
- */
-void NSClientT::reportMessage(int msgType, const TCHAR* file, const int line, std::wstring message) {
-	if ((msgType == NSCAPI::debug)&&(!logDebug())) {
-		return;
-	}
-	std::wstring file_stl = file;
-	std::wstring::size_type pos = file_stl.find_last_of(_T("\\"));
-	if (pos != std::wstring::npos)
-		file_stl = file_stl.substr(pos);
-	{
-		ReadLock readLock(&m_mutexRW, true, 5000);
-		if (!readLock.IsLocked()) {
-			std::wcout << _T("Message was lost as the core was locked...") << std::endl;
-			return;
-		}
-		MutexLock lock(messageMutex);
-		if (!lock.hasMutex()) {
-			std::wcout << _T("Message was lost as the core was locked...") << std::endl;
-			std::wcout << message << std::endl;
-			return;
-		}
-		if (g_bConsoleLog) {
-			std::string k = "?";
-			switch (msgType) {
-			case NSCAPI::critical:
-				k ="c";
-				break;
-			case NSCAPI::warning:
-				k ="w";
-				break;
-			case NSCAPI::error:
-				k ="e";
-				break;
-			case NSCAPI::log:
-				k ="l";
-				break;
-			case NSCAPI::debug:
-				k ="d";
-				break;
-			}	
-			std::cout << k << " " << strEx::wstring_to_string(file_stl) << "(" << line << ") " << strEx::wstring_to_string(message) << std::endl;
-		}
-		for (pluginList::size_type i = 0; i< messageHandlers_.size(); i++) {
-			try {
-				messageHandlers_[i]->handleMessage(msgType, file, line, message.c_str());
-			} catch(const NSPluginException& e) {
-				// Here we are pretty much fucked! (as logging this might cause a loop :)
-				std::wcout << _T("Caught: ") << e.error_ << _T(" when trying to log a message...") << std::endl;
-				std::wcout << _T("This is *really really* bad, now the world is about to end...") << std::endl;
-			}
-		}
-	}
-}
-std::wstring NSClientT::getBasePath(void) {
-	MutexLock lock(internalVariables);
-	if (!lock.hasMutex()) {
-		LOG_ERROR(_T("FATAL ERROR: Could not get mutex."));
-		return _T("FATAL ERROR");
-	}
-	if (!basePath.empty())
-		return basePath;
-	unsigned int buf_len = 4096;
-	TCHAR* buffer = new TCHAR[buf_len+1];
-	GetModuleFileName(NULL, buffer, buf_len);
-	std::wstring path = buffer;
-	std::wstring::size_type pos = path.rfind('\\');
-	basePath = path.substr(0, pos) + _T("\\");
-	delete [] buffer;
-	try {
-		Settings::getInstance()->setFile(basePath, _T("NSC.ini"));
-	} catch (SettingsException e) {
-		NSC_LOG_ERROR_STD(_T("Failed to set settings file") + e.getMessage());
-	}
-	return basePath;
-}
-
-
-NSCAPI::errorReturn NSAPIGetSettingsString(const TCHAR* section, const TCHAR* key, const TCHAR* defaultValue, TCHAR* buffer, unsigned int bufLen) {
-	try {
-		return NSCHelper::wrapReturnString(buffer, bufLen, Settings::getInstance()->getString(section, key, defaultValue), NSCAPI::isSuccess);
-	} catch (...) {
-		NSC_LOG_ERROR_STD(_T("Failed to getString: ") + key);
-		return NSCAPI::hasFailed;
-	}
-}
-int NSAPIGetSettingsInt(const TCHAR* section, const TCHAR* key, int defaultValue) {
-	try {
-		return Settings::getInstance()->getInt(section, key, defaultValue);
-	} catch (SettingsException e) {
-		NSC_LOG_ERROR_STD(_T("Failed to set settings file") + e.getMessage());
-		return defaultValue;
-	}
-}
-NSCAPI::errorReturn NSAPIGetBasePath(TCHAR*buffer, unsigned int bufLen) {
-	return NSCHelper::wrapReturnString(buffer, bufLen, mainClient.getBasePath(), NSCAPI::isSuccess);
-}
-NSCAPI::errorReturn NSAPIGetApplicationName(TCHAR*buffer, unsigned int bufLen) {
-	return NSCHelper::wrapReturnString(buffer, bufLen, SZAPPNAME, NSCAPI::isSuccess);
-}
-NSCAPI::errorReturn NSAPIGetApplicationVersionStr(TCHAR*buffer, unsigned int bufLen) {
-	return NSCHelper::wrapReturnString(buffer, bufLen, SZVERSION, NSCAPI::isSuccess);
-}
-void NSAPIMessage(int msgType, const TCHAR* file, const int line, const TCHAR* message) {
-	mainClient.reportMessage(msgType, file, line, message);
-}
-void NSAPIStopServer(void) {
-	serviceControll::StopNoWait(SZSERVICENAME);
-}
-NSCAPI::nagiosReturn NSAPIInject(const TCHAR* command, const unsigned int argLen, TCHAR **argument, TCHAR *returnMessageBuffer, unsigned int returnMessageBufferLen, TCHAR *returnPerfBuffer, unsigned int returnPerfBufferLen) {
-	return mainClient.injectRAW(command, argLen, argument, returnMessageBuffer, returnMessageBufferLen, returnPerfBuffer, returnPerfBufferLen);
-}
-NSCAPI::errorReturn NSAPIGetSettingsSection(const TCHAR* section, TCHAR*** aBuffer, unsigned int * bufLen) {
-	try {
-		unsigned int len = 0;
-		*aBuffer = arrayBuffer::list2arrayBuffer(Settings::getInstance()->getSection(section), len);
-		*bufLen = len;
-		return NSCAPI::isSuccess;
-	} catch (...) {
-		NSC_LOG_ERROR_STD(_T("Failed to getSection: ") + section);
-		return NSCAPI::hasFailed;
-	}
-}
-NSCAPI::errorReturn NSAPIReleaseSettingsSectionBuffer(TCHAR*** aBuffer, unsigned int * bufLen) {
-	arrayBuffer::destroyArrayBuffer(*aBuffer, *bufLen);
-	*bufLen = 0;
-	*aBuffer = NULL;
-	return NSCAPI::isSuccess;
-}
-
-NSCAPI::boolReturn NSAPICheckLogMessages(int messageType) {
-	if (mainClient.logDebug())
-		return NSCAPI::istrue;
-	return NSCAPI::isfalse;
-}
-
-std::wstring Encrypt(std::wstring str, unsigned int algorithm) {
-	unsigned int len = 0;
-	NSAPIEncrypt(algorithm, str.c_str(), static_cast<unsigned int>(str.size()), NULL, &len);
-	len+=2;
-	TCHAR *buf = new TCHAR[len+1];
-	NSCAPI::errorReturn ret = NSAPIEncrypt(algorithm, str.c_str(), static_cast<unsigned int>(str.size()), buf, &len);
-	if (ret == NSCAPI::isSuccess) {
-		std::wstring ret = buf;
-		delete [] buf;
-		return ret;
-	}
-	return _T("");
-}
-std::wstring Decrypt(std::wstring str, unsigned int algorithm) {
-	unsigned int len = 0;
-	NSAPIDecrypt(algorithm, str.c_str(), static_cast<unsigned int>(str.size()), NULL, &len);
-	len+=2;
-	TCHAR *buf = new TCHAR[len+1];
-	NSCAPI::errorReturn ret = NSAPIDecrypt(algorithm, str.c_str(), static_cast<unsigned int>(str.size()), buf, &len);
-	if (ret == NSCAPI::isSuccess) {
-		std::wstring ret = buf;
-		delete [] buf;
-		return ret;
-	}
-	return _T("");
-}
-
-NSCAPI::errorReturn NSAPIEncrypt(unsigned int algorithm, const TCHAR* inBuffer, unsigned int inBufLen, TCHAR* outBuf, unsigned int *outBufLen) {
-	if (algorithm != NSCAPI::xor) {
-		LOG_ERROR(_T("Unknown algortihm requested."));
-		return NSCAPI::hasFailed;
-	}
-	std::wstring key = Settings::getInstance()->getString(MAIN_SECTION_TITLE, MAIN_MASTERKEY, MAIN_MASTERKEY_DEFAULT);
-	int tcharInBufLen = 0;
-	char *c = charEx::tchar_to_char(inBuffer, inBufLen, tcharInBufLen);
-	std::wstring::size_type j=0;
-	for (int i=0;i<tcharInBufLen;i++,j++) {
-		if (j > key.size())
-			j = 0;
-		c[i] ^= key[j];
-	}
-	size_t cOutBufLen = b64::b64_encode(reinterpret_cast<void*>(c), tcharInBufLen, NULL, NULL);
-	if (!outBuf) {
-		*outBufLen = static_cast<unsigned int>(cOutBufLen*2); // TODO: Guessing wildly here but no proper way to tell without a lot of extra work
-		return NSCAPI::isSuccess;
-	}
-	char *cOutBuf = new char[cOutBufLen+1];
-	size_t len = b64::b64_encode(reinterpret_cast<void*>(c), tcharInBufLen, cOutBuf, cOutBufLen);
-	delete [] c;
-	if (len == 0) {
-		LOG_ERROR(_T("Invalid out buffer length."));
-		return NSCAPI::isInvalidBufferLen;
-	}
-	int realOutLen;
-	TCHAR *realOut = charEx::char_to_tchar(cOutBuf, cOutBufLen, realOutLen);
-	if (static_cast<unsigned int>(realOutLen) >= *outBufLen) {
-		LOG_ERROR_STD(_T("Invalid out buffer length: ") + strEx::itos(realOutLen) + _T(" was needed but only ") + strEx::itos(*outBufLen) + _T(" was allocated."));
-		return NSCAPI::isInvalidBufferLen;
-	}
-	wcsncpy_s(outBuf, *outBufLen, realOut, realOutLen);
-	delete [] realOut;
-	outBuf[realOutLen] = 0;
-	*outBufLen = static_cast<unsigned int>(realOutLen);
-	return NSCAPI::isSuccess;
-}
-
-NSCAPI::errorReturn NSAPIDecrypt(unsigned int algorithm, const TCHAR* inBuffer, unsigned int inBufLen, TCHAR* outBuf, unsigned int *outBufLen) {
-	if (algorithm != NSCAPI::xor) {
-		LOG_ERROR(_T("Unknown algortihm requested."));
-		return NSCAPI::hasFailed;
-	}
-	int inBufLenC = 0;
-	char *inBufferC = charEx::tchar_to_char(inBuffer, inBufLen, inBufLenC);
-	size_t cOutLen =  b64::b64_decode(inBufferC, inBufLenC, NULL, NULL);
-	if (!outBuf) {
-		*outBufLen = static_cast<unsigned int>(cOutLen*2); // TODO: Guessing wildly here but no proper way to tell without a lot of extra work
-		return NSCAPI::isSuccess;
-	}
-	char *cOutBuf = new char[cOutLen+1];
-	size_t len = b64::b64_decode(inBufferC, inBufLenC, reinterpret_cast<void*>(cOutBuf), cOutLen);
-	delete [] inBufferC;
-	if (len == 0) {
-		LOG_ERROR(_T("Invalid out buffer length."));
-		return NSCAPI::isInvalidBufferLen;
-	}
-	int realOutLen;
-
-	std::wstring key = Settings::getInstance()->getString(MAIN_SECTION_TITLE, MAIN_MASTERKEY, MAIN_MASTERKEY_DEFAULT);
-	std::wstring::size_type j=0;
-	for (int i=0;i<cOutLen;i++,j++) {
-		if (j > key.size())
-			j = 0;
-		cOutBuf[i] ^= key[j];
-	}
-
-	TCHAR *realOut = charEx::char_to_tchar(cOutBuf, cOutLen, realOutLen);
-	if (static_cast<unsigned int>(realOutLen) >= *outBufLen) {
-		LOG_ERROR_STD(_T("Invalid out buffer length: ") + strEx::itos(realOutLen) + _T(" was needed but only ") + strEx::itos(*outBufLen) + _T(" was allocated."));
-		return NSCAPI::isInvalidBufferLen;
-	}
-	wcsncpy_s(outBuf, *outBufLen, realOut, realOutLen);
-	delete [] realOut;
-	outBuf[realOutLen] = 0;
-	*outBufLen = static_cast<unsigned int>(realOutLen);
-	return NSCAPI::isSuccess;
-}
-
-NSCAPI::errorReturn NSAPISetSettingsString(const TCHAR* section, const TCHAR* key, const TCHAR* value) {
-	try {
-		Settings::getInstance()->setString(section, key, value);
-	} catch (...) {
-		NSC_LOG_ERROR_STD(_T("Failed to setString: ") + key);
-		return NSCAPI::hasFailed;
-	}
-	return NSCAPI::isSuccess;
-}
-NSCAPI::errorReturn NSAPISetSettingsInt(const TCHAR* section, const TCHAR* key, int value) {
-	try {
-		Settings::getInstance()->setInt(section, key, value);
-	} catch (...) {
-		NSC_LOG_ERROR_STD(_T("Failed to setInt: ") + key);
-		return NSCAPI::hasFailed;
-	}
-	return NSCAPI::isSuccess;
-}
-NSCAPI::errorReturn NSAPIWriteSettings(int type) {
-	try {
-		if (type == NSCAPI::settings_registry)
-			Settings::getInstance()->write(REGSettings::getType());
-		else if (type == NSCAPI::settings_inifile)
-			Settings::getInstance()->write(INISettings::getType());
-		else
-			Settings::getInstance()->write();
-	} catch (SettingsException e) {
-		LOG_ERROR_STD(_T("Failed to write settings: ") + e.getMessage());
-		return NSCAPI::hasFailed;
-	} catch (...) {
-		NSC_LOG_ERROR_STD(_T("Failed to write settings"));
-		return NSCAPI::hasFailed;
-	}
-	return NSCAPI::isSuccess;
-}
-NSCAPI::errorReturn NSAPIReadSettings(int type) {
-	try {
-		if (type == NSCAPI::settings_registry)
-			Settings::getInstance()->read(REGSettings::getType());
-		else if (type == NSCAPI::settings_inifile)
-			Settings::getInstance()->read(INISettings::getType());
-		else
-			Settings::getInstance()->read();
-	} catch (SettingsException e) {
-		LOG_ERROR_STD(_T("Failed to read settings: ") + e.getMessage());
-		return NSCAPI::hasFailed;
-	} catch (...) {
-		NSC_LOG_ERROR_STD(_T("Failed to read settings"));
-		return NSCAPI::hasFailed;
-	}
-	return NSCAPI::isSuccess;
-}
-NSCAPI::errorReturn NSAPIRehash(int flag) {
-	return NSCAPI::hasFailed;
-}
-NSCAPI::errorReturn NSAPIDescribeCommand(const TCHAR* command, TCHAR* buffer, unsigned int bufLen) {
-	return NSCHelper::wrapReturnString(buffer, bufLen, mainClient.describeCommand(command), NSCAPI::isSuccess);
-}
-NSCAPI::errorReturn NSAPIGetAllCommandNames(arrayBuffer::arrayBuffer* aBuffer, unsigned int *bufLen) {
-	unsigned int len = 0;
-	*aBuffer = arrayBuffer::list2arrayBuffer(mainClient.getAllCommandNames(), len);
-	*bufLen = len;
-	return NSCAPI::isSuccess;
-}
-NSCAPI::errorReturn NSAPIReleaseAllCommandNamessBuffer(TCHAR*** aBuffer, unsigned int * bufLen) {
-	arrayBuffer::destroyArrayBuffer(*aBuffer, *bufLen);
-	*bufLen = 0;
-	*aBuffer = NULL;
-	return NSCAPI::isSuccess;
-}
-NSCAPI::errorReturn NSAPIRegisterCommand(const TCHAR* cmd,const TCHAR* desc) {
-	mainClient.registerCommand(cmd, desc);
-	return NSCAPI::isSuccess;
-}
-
-
-LPVOID NSAPILoader(TCHAR*buffer) {
-	if (_wcsicmp(buffer, _T("NSAPIGetApplicationName")) == 0)
-		return &NSAPIGetApplicationName;
-	if (_wcsicmp(buffer, _T("NSAPIGetApplicationVersionStr")) == 0)
-		return &NSAPIGetApplicationVersionStr;
-	if (_wcsicmp(buffer, _T("NSAPIGetSettingsString")) == 0)
-		return &NSAPIGetSettingsString;
-	if (_wcsicmp(buffer, _T("NSAPIGetSettingsSection")) == 0)
-		return &NSAPIGetSettingsSection;
-	if (_wcsicmp(buffer, _T("NSAPIReleaseSettingsSectionBuffer")) == 0)
-		return &NSAPIReleaseSettingsSectionBuffer;
-	if (_wcsicmp(buffer, _T("NSAPIGetSettingsInt")) == 0)
-		return &NSAPIGetSettingsInt;
-	if (_wcsicmp(buffer, _T("NSAPIMessage")) == 0)
-		return &NSAPIMessage;
-	if (_wcsicmp(buffer, _T("NSAPIStopServer")) == 0)
-		return &NSAPIStopServer;
-	if (_wcsicmp(buffer, _T("NSAPIInject")) == 0)
-		return &NSAPIInject;
-	if (_wcsicmp(buffer, _T("NSAPIGetBasePath")) == 0)
-		return &NSAPIGetBasePath;
-	if (_wcsicmp(buffer, _T("NSAPICheckLogMessages")) == 0)
-		return &NSAPICheckLogMessages;
-	if (_wcsicmp(buffer, _T("NSAPIEncrypt")) == 0)
-		return &NSAPIEncrypt;
-	if (_wcsicmp(buffer, _T("NSAPIDecrypt")) == 0)
-		return &NSAPIDecrypt;
-	if (_wcsicmp(buffer, _T("NSAPISetSettingsString")) == 0)
-		return &NSAPISetSettingsString;
-	if (_wcsicmp(buffer, _T("NSAPISetSettingsInt")) == 0)
-		return &NSAPISetSettingsInt;
-	if (_wcsicmp(buffer, _T("NSAPIWriteSettings")) == 0)
-		return &NSAPIWriteSettings;
-	if (_wcsicmp(buffer, _T("NSAPIReadSettings")) == 0)
-		return &NSAPIReadSettings;
-	if (_wcsicmp(buffer, _T("NSAPIRehash")) == 0)
-		return &NSAPIRehash;
-	if (_wcsicmp(buffer, _T("NSAPIDescribeCommand")) == 0)
-		return &NSAPIDescribeCommand;
-	if (_wcsicmp(buffer, _T("NSAPIGetAllCommandNames")) == 0)
-		return &NSAPIGetAllCommandNames;
-	if (_wcsicmp(buffer, _T("NSAPIReleaseAllCommandNamessBuffer")) == 0)
-		return &NSAPIReleaseAllCommandNamessBuffer;
-	if (_wcsicmp(buffer, _T("NSAPIRegisterCommand")) == 0)
-		return &NSAPIRegisterCommand;
-
-	return NULL;
-}
Index: gs/0.3.1/NSClient++.h
===================================================================
--- tags/0.3.1/NSClient++.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,178 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <config.h>
-#include <ServiceCmd.h>
-#include <NTService.h>
-#include "NSCPlugin.h"
-#include <Mutex.h>
-#include <NSCAPI.h>
-#include <MutexRW.h>
-#include <map>
-
-
-/**
- * @ingroup NSClient++
- * Main NSClient++ core class. This is the service core and as such is responsible for pretty much everything.
- * It also acts as a broker for all plugins and other sub threads and such.
- *
- * @version 1.0
- * first version
- *
- * @date 02-12-2005
- *
- * @author mickem
- *
- * @par license
- * This code is absolutely free to use and modify. The code is provided "as is" with
- * no expressed or implied warranty. The author accepts no liability if it causes
- * any damage to your computer, causes your pet to fall ill, increases baldness
- * or makes your car start emitting strange noises when you start it up.
- * This code has no bugs, just undocumented features!
- * 
- * @todo Plugininfy the socket somehow ?
- * It is technically possible to make the socket a plug-in but would it be a good idea ?
- *
- * @bug 
- *
- */
-class NSClientT {
-private:
-	typedef NSCPlugin* plugin_type;
-	typedef std::vector<plugin_type> pluginList;
-	typedef std::map<std::wstring,std::wstring> cmdMap;
-	pluginList plugins_;
-	pluginList commandHandlers_;
-	pluginList messageHandlers_;
-	std::wstring basePath;
-	MutexHandler internalVariables;
-	MutexHandler messageMutex;
-	MutexRW  m_mutexRW;
-	MutexRW  m_mutexRWcmdDescriptions;
-	cmdMap cmdDescriptions_;
-	typedef enum log_status {log_unknown, log_debug, log_nodebug };
-	log_status debug_;
-	bool boot_;
-
-public:
-	// c-tor, d-tor
-	NSClientT(void) : debug_(log_unknown), boot_(true) {}
-	virtual ~NSClientT(void) {}
-	void enableDebug(bool debug = true) {
-		if (debug)
-			debug_ = log_debug;
-		else
-			debug_ = log_nodebug;
-	}
-	void setBoot(bool boot = true) {
-		boot_ = boot;
-	}
-
-	// Service helper functions
-	bool InitiateService();
-	void TerminateService(void);
-	static void WINAPI service_main_dispatch(DWORD dwArgc, LPTSTR *lpszArgv);
-	static void WINAPI service_ctrl_dispatch(DWORD dwCtrlCode);
-
-	// Member functions
-	std::wstring getBasePath(void);
-	NSCAPI::nagiosReturn injectRAW(const TCHAR* command, const unsigned int argLen, TCHAR **argument, TCHAR *returnMessageBuffer, unsigned int returnMessageBufferLen, TCHAR *returnPerfBuffer, unsigned int returnPerfBufferLen);
-	NSCAPI::nagiosReturn NSClientT::inject(std::wstring command, std::wstring arguments, TCHAR splitter, bool escape, std::wstring &msg, std::wstring & perf);
-//	std::wstring inject(const std::wstring buffer);
-	std::wstring execute(std::wstring password, std::wstring cmd, std::list<std::wstring> args);
-	void reportMessage(int msgType, const TCHAR* file, const int line, std::wstring message);
-	int commandLineExec(const TCHAR* module, const TCHAR* command, const unsigned int argLen, TCHAR** args);
-
-	void addPlugins(const std::list<std::wstring> plugins);
-	plugin_type loadPlugin(const std::wstring plugin);
-	void loadPlugins(void);
-	void unloadPlugins(void);
-	std::wstring describeCommand(std::wstring command);
-	std::list<std::wstring> getAllCommandNames();
-	void registerCommand(std::wstring cmd, std::wstring desc);
-	unsigned int getBufferLength();
-
-	bool logDebug();
-
-private:
-	plugin_type addPlugin(plugin_type plugin);
-
-};
-
-typedef NTService<NSClientT> NSClient;
-
-
-std::wstring Encrypt(std::wstring str, unsigned int algorithm = NSCAPI::xor);
-std::wstring Decrypt(std::wstring str, unsigned int algorithm = NSCAPI::xor);
-
-//////////////////////////////////////////////////////////////////////////
-// Various NSAPI callback functions (available for plug-ins to make calls back to the core.
-// <b>NOTICE</b> No threading is allowed so technically every thread is responsible for marshaling things back. 
-// Though I think this is not the case at the moment.
-//
-
-LPVOID NSAPILoader(TCHAR*buffer);
-NSCAPI::errorReturn NSAPIGetApplicationName(TCHAR*buffer, unsigned int bufLen);
-NSCAPI::errorReturn NSAPIGetBasePath(TCHAR*buffer, unsigned int bufLen);
-NSCAPI::errorReturn NSAPIGetApplicationVersionStr(TCHAR*buffer, unsigned int bufLen);
-NSCAPI::errorReturn NSAPIGetSettingsString(const TCHAR* section, const TCHAR* key, const TCHAR* defaultValue, TCHAR* buffer, unsigned int bufLen);
-int NSAPIGetSettingsInt(const TCHAR* section, const TCHAR* key, int defaultValue);
-void NSAPIMessage(int msgType, const TCHAR* file, const int line, const TCHAR* message);
-void NSAPIStopServer(void);
-NSCAPI::nagiosReturn NSAPIInject(const TCHAR* command, const unsigned int argLen, TCHAR **argument, TCHAR *returnMessageBuffer, unsigned int returnMessageBufferLen, TCHAR *returnPerfBuffer, unsigned int returnPerfBufferLen);
-NSCAPI::errorReturn NSAPIGetSettingsSection(const TCHAR*, TCHAR***, unsigned int *);
-NSCAPI::errorReturn NSAPIReleaseSettingsSectionBuffer(TCHAR*** aBuffer, unsigned int * bufLen);
-NSCAPI::boolReturn NSAPICheckLogMessages(int messageType);
-NSCAPI::errorReturn NSAPIEncrypt(unsigned int algorithm, const TCHAR* inBuffer, unsigned int inBufLen, TCHAR* outBuf, unsigned int *outBufLen);
-NSCAPI::errorReturn NSAPIDecrypt(unsigned int algorithm, const TCHAR* inBuffer, unsigned int inBufLen, TCHAR* outBuf, unsigned int *outBufLen);
-NSCAPI::errorReturn NSAPISetSettingsString(const TCHAR* section, const TCHAR* key, const TCHAR* value);
-NSCAPI::errorReturn NSAPISetSettingsInt(const TCHAR* section, const TCHAR* key, int value);
-NSCAPI::errorReturn NSAPIWriteSettings(int type);
-NSCAPI::errorReturn NSAPIReadSettings(int type);
-NSCAPI::errorReturn NSAPIRehash(int flag);
-NSCAPI::errorReturn NSAPIDescribeCommand(const TCHAR*,TCHAR*,unsigned int);
-NSCAPI::errorReturn NSAPIGetAllCommandNames(TCHAR***, unsigned int *);
-NSCAPI::errorReturn NSAPIReleaseAllCommandNamessBuffer(TCHAR***, unsigned int *);
-NSCAPI::errorReturn NSAPIRegisterCommand(const TCHAR*,const TCHAR*);
-
-//////////////////////////////////////////////////////////////////////////
-// Log macros to simplify logging
-// Generally names are of the form LOG_<severity>[_STD] 
-// Where _STD indicates that strings are force wrapped inside a std::wstring
-//
-#define LOG_ERROR_STD(msg) LOG_ERROR(((std::wstring)msg).c_str())
-#define LOG_ERROR(msg) \
-	NSAPIMessage(NSCAPI::error, _T(__FILE__), __LINE__, msg)
-#define LOG_CRITICAL_STD(msg) LOG_CRITICAL(((std::wstring)msg).c_str())
-#define LOG_CRITICAL(msg) \
-	NSAPIMessage(NSCAPI::critical, _T(__FILE__), __LINE__, msg)
-#define LOG_MESSAGE_STD(msg) LOG_MESSAGE(((std::wstring)msg).c_str())
-#define LOG_MESSAGE(msg) \
-	NSAPIMessage(NSCAPI::log, _T(__FILE__), __LINE__, msg)
-
-#define LOG_DEBUG_STD(msg) LOG_DEBUG(((std::wstring)msg).c_str())
-#define LOG_DEBUG(msg) \
-	NSAPIMessage(NSCAPI::debug, _T(__FILE__), __LINE__, msg)
-/*
-#define LOG_DEBUG_STD(msg)
-#define LOG_DEBUG(msg)
-*/
Index: gs/0.3.1/NSClient++.manifest
===================================================================
--- tags/0.3.1/NSClient++.manifest	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,10 +1,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
-  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
-    <security>
-      <requestedPrivileges>
-        <requestedExecutionLevel level="requireAdministrator"/>
-      </requestedPrivileges>
-    </security>
-  </trustInfo>
-</assembly>
Index: gs/0.3.1/NSClient++.rc
===================================================================
--- tags/0.3.1/NSClient++.rc	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,102 +1,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_STANDBY             ICON                    "res/standby.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-
-#endif    // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE 
-BEGIN
-    "resource.h\0"
-END
-
-2 TEXTINCLUDE 
-BEGIN
-    "#include ""afxres.h""\r\n"
-    "\0"
-END
-
-#endif    // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE 
-BEGIN
-    IDS_HELLO               "Hello from MFC!"
-END
-
-#endif    // French (France) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// Swedish resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_SVE)
-#ifdef _WIN32
-LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-
-#endif    // Swedish resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
Index: gs/0.3.1/NSParser.cpp
===================================================================
--- tags/0.3.1/NSParser.cpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,41 +1,0 @@
-#include "stdafx.h"
-#include ".\nsparser.h"
-#include "strEx.h"
-//#include <PDHCollector.h>
-//#include <PDHCollectors.h>
-//#include <EnumNtSrv.h>
-#include <utilities.h>
-//#include <pdh.h>
-//#include <pdhmsg.h>
-
-/*
-#include "commands/CommandID.h"
-#include "commands/NSCommandCLIENTVERSION.h"
-#include "commands/NSCommandCPULOAD.h"
-#include "commands/NSCommandMEMUSE.h"
-#include "commands/NSCommandSERVICESTATE.h"
-#include "commands/NSCommandUPTIME.h"
-#include "commands/NSCommandUSEDDISKSPACE.h"
-
-using namespace PDHCollector;
-
-#define ADD_NS_COMMAND(cls) \
-if (cls::getCommandID() == cmdID) \
-	return cls::execute(args);
-*/
-std::string NSParser::execute(int cmdID, std::list<std::string> args) 
-{
-	/*
-	ADD_NS_COMMAND(NSCommandCLIENTVERSION);	// 1
-	ADD_NS_COMMAND(NSCommandCPULOAD);		// 2
-	ADD_NS_COMMAND(NSCommandUPTIME);		// 3
-	ADD_NS_COMMAND(NSCommandUSEDDISKSPACE);	// 4
-	ADD_NS_COMMAND(NSCommandSERVICESTATE);	// 5
-											// 6
-	ADD_NS_COMMAND(NSCommandMEMUSE);		// 7
-											// 8
-											// 9
-											// 10
-											*/
-	return "ERROR: Invalid command.";
-}
Index: gs/0.3.1/NSParser.h
===================================================================
--- tags/0.3.1/NSParser.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,14 +1,0 @@
-#pragma once
-
-namespace NSParser {
-	typedef std::list<std::string> ArgumentList;
-
-/*
-	class NSCommand {
-		static int getCommandID() const;
-		static void execute(ArgumentList args) const;
-	};
-*/
-	std::string execute(int cmdID, std::list<std::string> args);
-}
-
Index: gs/0.3.1/Settings.h
===================================================================
--- tags/0.3.1/Settings.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,79 +1,0 @@
-#pragma once
-
-#include <Singleton.h>
-#define BUFF_LEN 4096
-
-class Section {
-};
-
-class SettingsT
-{
-private:
-	std::string file_;
-public:
-	typedef std::list<std::string> sectionList;
-
-	SettingsT(void)
-	{
-	}
-
-	virtual ~SettingsT(void)
-	{
-	}
-
-	/**
-	 * Set the file to read from
-	 * @param file A INI-file to use as settings repository
-	 */
-	void setFile(std::string file) {
-		file_ = file;
-	}
-	/**
-	 * Get all keys from a section as a list<string>
-	 * @param section The section to return all keys from
-	 * @return A list with all keys from the section
-	 */
-	std::list<std::string> getSection(std::string section) {
-		std::list<std::string> ret;
-		char* buffer = new char[BUFF_LEN+1];
-		unsigned int count = GetPrivateProfileSection(section.c_str(), buffer, BUFF_LEN, file_.c_str());
-		if (count == BUFF_LEN-2)
-			throw "Fuck...";
-		unsigned int last = 0;
-		for (unsigned int i=0;i<count;i++) {
-			if (buffer[i] == '\0') {
-				std::string s = &buffer[last];
-				ret.push_back(s);
-				last = i+1;
-			}
-		}
-		delete [] buffer;
-		return ret;
-	}
-	/**
-	 * Get a string from the settings file
-	 * @param section Section to read from 
-	 * @param key Key to retrieve
-	 * @param defaultValue Default value to return if key is not found
-	 * @return The value or defaultValue if the key is not found
-	 */
-	std::string getString(std::string section, std::string key, std::string defaultValue = "") const {
-		char* buffer = new char[1024];
-		GetPrivateProfileString(section.c_str(), key.c_str(), defaultValue.c_str(), buffer, 1023, file_.c_str());
-		std::string ret = buffer;
-		delete [] buffer;
-		return ret;
-	}
-	/**
-	 * Get an integer from the settings file
-	 * @param section Section to read from 
-	 * @param key Key to retrieve
-	 * @param defaultValue Default value to return if key is not found
-	 * @return The value or defaultValue if the key is not found
-	 */
-	int getInt(std::string section, std::string key, int defaultValue = 0) {
-		return GetPrivateProfileInt(section.c_str(), key.c_str(), defaultValue, file_.c_str());
-	}
-};
-
-typedef Singleton<SettingsT> Settings;		// Implement the settings manager as a singleton
Index: gs/0.3.1/StdAfx.cpp
===================================================================
--- tags/0.3.1/StdAfx.cpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,22 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#include "stdafx.h"
-#define COMPILE_NEWAPIS_STUBS 
Index: gs/0.3.1/StdAfx.h
===================================================================
--- tags/0.3.1/StdAfx.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,55 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#if !defined(AFX_STDAFX_H__6B96F953_C431_11D3_BCD2_00A0D21A1A22__INCLUDED_)
-#define AFX_STDAFX_H__6B96F953_C431_11D3_BCD2_00A0D21A1A22__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#define _WINSOCKAPI_
-//#include <WinSock2.h>
-
-#define VC_EXTRALEAN		// Exclude rarely-used stuff from Windows headers
-#include <windows.h>
-
-#define COMPILE_NEWAPIS_STUBS
-#define WANT_GETLONGPATHNAME_WRAPPER
-//#include <NewAPIs.h>
-
-#include <iostream>
-#include <tchar.h>
-#include <string>
-#include <list>
-#include <sstream>
-#include <vector>
-
-#include "config.h"
-#include <singleton.h>
-#include <charEx.h>
-#include <memory>
-
-#ifdef MEMCHECK
-#include <vld.h>
-#endif
-
-
-#endif // !defined(AFX_STDAFX_H__6B96F953_C431_11D3_BCD2_00A0D21A1A22__INCLUDED_)
Index: gs/0.3.1/TCPSocketResponder.cpp
===================================================================
--- tags/0.3.1/TCPSocketResponder.cpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,139 +1,0 @@
-#include "stdafx.h"
-#include "strEx.h"
-#include "NSParser.h"
-#include "NSClient++.h"
-#include "TCPSocketResponder.h"
-#include "Settings.h"
-
-extern NSClient mainClient;
-
-/**
- * Default c-tor
- */
-TCPSocketResponder::TCPSocketResponder() : running_(false) {
-}
-/**
- * Return true if the socket is "running".
- * @return true if the socket is spoused to be running
- */
-bool TCPSocketResponder::isRunning(void) {
-	MutexLock mutex(mutexHandler);
-	if (!mutex.hasMutex()) {
-		LOG_ERROR_STD("Failed to get Mutex: " + strEx::itos(mutex.getWaitResult()));
-		return false;
-	}
-	return running_;
-}
-/**
- * Set the running flag to "stop" (will prevent the socket to start waiting again)
- */
-void TCPSocketResponder::stopRunning(void) {
-	MutexLock mutex(mutexHandler);
-	if (!mutex.hasMutex()) {
-		LOG_ERROR_STD("Failed to get Mutex!" + strEx::itos(mutex.getWaitResult()));
-		return;
-	}
-	running_ = false;
-}
-/**
-* Set the running flag to "start" (will make the socket wait again)
- */
-void TCPSocketResponder::startRunning(void) {
-	MutexLock mutex(mutexHandler);
-	if (!mutex.hasMutex()) {
-		LOG_ERROR_STD("Failed to get Mutex!" + strEx::itos(mutex.getWaitResult()));
-		return;
-	}
-	running_ = true;
-}
-/**
- * Parse a command string into command, password and arguments. Then the command will be executed bu the core.
- * @param request A request string to parse
- * @return The result (if any) of the executed command.
- */
-std::string TCPSocketResponder::parseCommand(char* request) {
-	std::list<std::string> args = charEx::split(request, '&');
-	if (args.size() < 2) {
-		return "Insufficient arguments!";
-	}
-	std::string password = args.front(); args.pop_front();
-	std::string command = args.front(); args.pop_front();
-	return mainClient.execute(password, command, args);
-}
-/**
- * Thread procedure for the socket listener
- * @param lpParameter Potential argument to the thread proc.
- * @return thread exit status
- * @todo This needs to be reworked, possibly completely redone ?
- */
-DWORD TCPSocketResponder::threadProc(LPVOID lpParameter)
-{
-	startRunning();
-	WSADATA wsaData;
-	sockaddr_in local;
-	int wsaret=WSAStartup(0x101,&wsaData);
-	if(wsaret!=0) {
-		LOG_ERROR_STD("WSA Startup failed: " + strEx::itos(wsaret));
-		return 0;
-	}
-
-	local.sin_family=AF_INET;
-	local.sin_addr.s_addr=INADDR_ANY;
-	local.sin_port=htons(static_cast<u_short>(Settings::getInstance()->getInt("generic", "port", DEFAULT_TCP_PORT)));
-	server=socket(AF_INET,SOCK_STREAM,0);
-	if(server==INVALID_SOCKET) {
-		LOG_ERROR_STD("Could not create listening socket: " + strEx::itos(GetLastError()));
-		return 0;
-	}
-
-	if(bind(server,(sockaddr*)&local,sizeof(local))!=0) {
-		LOG_ERROR_STD("Could not bind socket: " + strEx::itos(GetLastError()));
-		return 0;
-	}
-
-	if(listen(server,10)!=0) {
-		LOG_ERROR_STD("Could not open socket: " + strEx::itos(GetLastError()));
-		return 0;
-	}
-
-	SOCKET client;
-	sockaddr_in from;
-	int fromlen=sizeof(from);
-
-	while(isRunning()) {
-		client=accept(server, (struct sockaddr*)&from,&fromlen);
-		if (client != INVALID_SOCKET) {
-			char *buff = new char[RECV_BUFFER_LEN+1];
-			int n=recv(client,buff,RECV_BUFFER_LEN,0);
-			if ((n!=SOCKET_ERROR )&&(n > 0)&&(n < RECV_BUFFER_LEN)) {
-				buff[n] = '\0';
-				LOG_DEBUG("Incoming data: ");
-				LOG_DEBUG(buff);
-				std::string ret = parseCommand(buff);
-				LOG_DEBUG("Outgoing data: ");
-				LOG_DEBUG(ret.c_str());
-				send(client, ret.c_str(), ret.length(), 0);
-			} else {
-				std::string str = "ERROR: Unknown socket error";
-				send(client,str.c_str(),str.length(),0);
-			}
-			delete [] buff;
-			closesocket(client);
-		}
-	}
-	closesocket(server);
-	WSACleanup();
-	LOG_DEBUG("Socket closed!");
-	return 0;
-}
-
-/**
- * Exit thread callback proc. 
- * This is called by the thread manager when the thread should initiate a shutdown procedure.
- * The thread manager is responsible for waiting for the actual termination of the thread.
- */
-void TCPSocketResponder::exitThread(void) {
-	LOG_DEBUG("Requesting shutdown!");
-	stopRunning();
-	closesocket(server);
-}
Index: gs/0.3.1/TCPSocketResponder.h
===================================================================
--- tags/0.3.1/TCPSocketResponder.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,50 +1,0 @@
-#pragma once
-#include "resource.h"
-#include <Thread.h>
-#include <Mutex.h>
-/**
- * @ingroup NSClient++
- * Socket responder class.
- * This is a background thread that listens to the socket and executes incoming commands.
- *
- * @version 1.0
- * first version
- *
- * @date 02-12-2005
- *
- * @author mickem
- *
- * @par license
- * This code is absolutely free to use and modify. The code is provided "as is" with
- * no expressed or implied warranty. The author accepts no liability if it causes
- * any damage to your computer, causes your pet to fall ill, increases baldness
- * or makes your car start emitting strange noises when you start it up.
- * This code has no bugs, just undocumented features!
- * 
- * @todo This is not very well written and should probably be reworked.
- *
- * @bug 
- *
- */
-class TCPSocketResponder {
-private:
-	MutexHandler mutexHandler;
-	bool running_;
-	SOCKET server;
-
-public:
-	TCPSocketResponder();
-	DWORD threadProc(LPVOID lpParameter);
-	void exitThread(void);
-
-private:
-	bool isRunning(void);
-	void stopRunning(void);
-	void startRunning(void);
-	std::list<std::string> split(char* buffer);
-	std::string parseCommand(char* request);
-};
-
-typedef Thread<TCPSocketResponder> TCPSocketResponderThread; // Thread manager
-
-
Index: gs/0.3.1/changelog
===================================================================
--- tags/0.3.1/changelog	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,563 +1,0 @@
-TODO: 
- * Process times and similar ?
- * Fix configuration GUI (low priority)
- * Fix installer (after configuration UI)
- * Add API for rehashing the daemon (or implement it the API is there but does nothing)
- * Improved socket performance (would be nice if we could be used as a "hub")
- * "The message is blocked by User Interface Privilege Isolation, Administrative applications that need to see it can allow it through by calling ChangeWindowMessageFilter after making sure the necessary security precautions are in place. "
-
-2007-03-11 MickeM
- ! 0.3.1 Released
-
-2008-03-08 MickeM
- * Changed so log is now in unicode format
-   Hopefully this will make it simpler to diagnose PDH issues in "strange locales".
-   If anyone hates this let me know and I will add an option to use "old ansi log".
- * Fixed so the console is logged as ANSI (properly) and all unicodes are discarded.
-   This means "strangness" in unicode and non-us-ascii chars on the console,
-    so for details refer to the log-file which is proper unicode.
- + Since log module is loaded "after" the client has booted I added a "hello" message that prints the current version
-    (if you find this annoying let me know, I will make it optional :)
- * Fixed some issues in the registry handling
-
-2008-03-06 MickeM
- * Fixed silly ordering bug with the <> syntax.
-
-2008-03-05 MickeM
- + Added debug to new section [Eventlog], when enabled it will (log) wat lines matched what, this is a pretty big performance overhead so dont run with this one.
- + Added syntax to new section [Eventlog] used as a shorthand for the syntax to use as "default" (when no syntax=... option is given)
- * Fixed an issue with eventlog and . matching.
- + Added shorthand ! for != in "all" numeric filters (eventlog)
- + Added <> (same as ! and !=) as NRPE breaks the use of ! (in "all" numeric filters (eventlog))
-   Try using: filter-eventType=<>warning to remove everything that is not a warning
- * Fixed two spelling misstakes in the SysTray module.
- * Fixed 64-bit issues with installer
- * Fixed so installer uninstalls/installs the service
- 
-2008-02-26 MickeM
- + Added installer
- 
-2008-02-22 MickeM
- * Fixed issues in the NRPE module (now returns the correct status)
- + Added a lot of "error log" for when the packet size in NRPEListener is not correct 
-    (might make it simpler to diagnose problems)
-
-2008-02-20 MickeM
- + Added new module NRPEClient that can act as a NRPE client, might be useful for testing things and 
-   eventually for relaying events.
-   Usage: nsclient++ -noboot NRPEClient -H 192.168.0.1 -p 5666 -c check_something -a foo bar
-   This is an early concept so don't expect much...
- * Fixed a bug in NSCA module (now it works again :)
- + Added a command wrapper for the NRPECLient module so now it can act as a check command.
-   (No argument handling yet though), For a sample check out the [NRPE Client Handlers] section in NSC.ini
-
-2008-02-19 MickeM
- + Fixed a buffer overflow in the NRPE socket handling.
- 
-2008-02-18 MickeM
- + Added proper output handling to process subsystem (now you can execute programs that return "much" data.
- + Added select support for SSL_write (now you can send "any amount of data" to the (SSL) socket.
-   Since check_nrpe doesn't do this it wont work in that end, but still...
-
-2008-02-16 MickeM
- + Re factored ExternalCommand handling so NRPE and new module does the same thing.
-
-2008-02-14 MickeM
- + Added so commands starting in host_ (NSCA Handlers) are sent as host-commands
- * Fixed a copy constructor in NSCA Commands (now service checks are sent as service checks)
-
-2008-02-13 MickeM
- + Added string_length to [Settings] as well (used internally) for all "injected" buffers.
- * Fixed issue with scripts result truncated after 1024 chars 
-    (now they return "all" output and thus you can use the NRPE settings I added yesterday :)
- + Added hostname setting to [NSCA] section (must have been  when I did not add it before)
- + Added to NSCA truncates output when to long.
-
-2008-02-12 MickeM
- + Added new option for the [NRPE] section string_length which is the length of the NRPE strings 
-   (notice you need to recompile the check_nrpe to match this value)
- * Improved exception handling in the PDH collector (hopefully less deadlocks)
-
-2008-02-11 MickeM
- + Added encryption support for NSCA module (about half of the algorithms are available, 
-     if someone wants to use one not available let me know, and I will try to add it)
-
-2008-02-09 MickeM
- + New module CheckExternalScripts to handle 1, external script (similar to the old NRPE but in its own module)
-   - Can Check batch/vbs/programs/*
-   - Works with NSCA module (if you don't want to have NRPE at the same time)
-   - Simpler syntax (discarded old and added new section for alias)
-   - Started to add "sample alias" to ease initial setup and give some nice ideas (please provide me with feedback on them)
-
-2008-02-08 MickeM
- + Added some more default catch handlers (on the "core" side of plugin-calls).
-
-2008-02-07 MickeM
- + Added default catch handlers to all wrapped plug in calls.
-
-2008-02-05 MickeM
- * Fixed issue with checkEventLog (sometimes you got the wrong message back)
-
-2008-02-04 MickeM
- *** Happy Birthday bogi!! :)
- * Fixed issues with performance counter rendering (mainly checkDisk)
-
-2008-02-03 MickeM
- + Added encryption subsystem to NSCA module (still no mcrypt support, but at least you have "xor" and passwords)
- + Added API for scripts to register commands
- + Added command descriptions (for some modules)
- * Fixed issue in NRPE that displayed a console window when running commands
- * New improved "inject" dialog from the system tray
-   Lists available commands, and shows command descriptions and a lot of other improvements.
- + Added an internal log windows that displays log in real-time.
- + Fixed some issues with the dialog procs (should work smoother now, especially Termination)
-
-2008-02-02 MickeM
- * Might have fixed the "missing eventlog messages" problem.
- + Added %count% parameter to syntax which (when used with unique) will display the number of hits for each message displayed.
-
-2008-01-27 MickeM
- * Fixed a memory-leak in format_time
- * Fixed so time/date is displayed in "local time" (not UTC) for the eventlog check
- + Added %message% to eventlog check. Will display the "proper formated eventlog message" as in the eventlog viewer.
-   For this to work you need to have the descriptions flag set
-   In short: /nrpe -H 192.168.0.147 -c checkEventLog -a truncate=1024 "syntax=%generated%: %message%" descriptions=true file=System MaxWarn=1 MaxCrit=1 filter+eventType==error filter+generated=\<12h filter=new filter=all filter=in
- + Added option "unique" to CheckEventLog If this is present only unique errors will be returned.
-   The uniqueness is defined by event-log, event-source, event-id and event-category.
-
-2007-12-16 MickeM
- + A lot of new features in the LUA module only "arguments" missing (as well as exposing more of the API)
- * Changed some exceptions that were thrown wrong
-
-2007-12-11 MickeM
- + Added support for index-lookups of PDH counters (hopefully *all* locale problems are now fixed (yeah right))
-
-2007-12-10 MickeM
- + Added initial draft for LUA module
-
-2007-12-09 MickeM
- + Added a check if the service is started when running with /test so you get a warning
- + Improved the socket thread with:
-    * a default-catch
-    * If the socket fails to start we still wait for it to shut down (no error message)
- + Added first version of the NSCA agent (NSCAgent.dll)
-   (no encryption support as of yet, but will come)
-
-2007-12-04 MickeM
- ! 0.3.0 Released
-
-2007-12-01 MickeM
- * Fixed issue with date formating in FILEAGE
-
-2007-11-29 MickeM
- * Fixed issue with date formating in FILEAGE
-
-2007-11-28 MickeM
- ! 0.3.0 RC-1
- * Fixed some UNICODE issues with process-listings
- + Added an error message if the "detected" process enumeration method is not available.
- + Fixed some more Unicode issues Password encrypt/decrypt: #107
- * Fixed Unicode issues with "external programs" #109
- * Fixed so default string for check_nt:s FILEAGE command is "delta" is 5 minutes ago (and not absolute ie. 1970...), Issue #39
- + added support for  <date strings> to check_nt:s FILEAGE command, Issue #39
-    append: .<date string> if you want to use a "custom date" like so: ... -v FILEAGE -l c:\\windows,Date: %Y-%m-%d %H:%M:%S" -w 5 -c 6 ...
-    Only the above listed %<char> works, and default to 0 so might not be to pretty but works...
-
-2007-11-26 MickeM
- + Fixed a socket issue (erroneously reported "Could not read NSClient packet from socket :(")
- * More 2k5 build tweaks
-
-2007-11-23 MickeM
- * Converted to Unicode (damn sometimes I **HATE** C++)
- + Added support for escaping " on the /test syntax so now you can do: CheckWMI MaxCrit=3 "MinWarn=1" "Query:load=Select * from win32_Processor"
-
-2007-11-22 MickeM
- * Fixed so the "default path" is correct even when running as a service (issue: #96)
-
-2007-11-21 MickeM
- * Fixed process counter so checkProcState  now return the *correct* number (previously it was correct-1)
- * Fixed some missing exceptions that were not caught
- + Added "AliasCol" option to CheckWMIValue to allow a column to be used as "alias" for a result set:
-     CheckWMIValue -a "Query=select Caption, ThreadCount from Win32_Process" MaxWarn=50 MaxCrit=100 Check:threads=ThreadCount AliasCol=Caption
-    will give you: "System threads: 98 > warning, svchost.exe threads: 87 > warning"
- - Removed  from SVN (as it is old and outdated and no longer used)
-
-2007-11-20 MickeM
- + Added new option to CheckSystem to override detected language (force_language=0x0014)
-
-2007-11-19 MickeM
- * Fixed a minor issue in reading registry keys
- + Added -noboot option to startup used for running command line utilities without booting the client
-   "nsclient++ -noboot RemoteConfigruation ini2reg" for instance
- + Added fall back to try <module> and <module>.dll if the module was not loaded (when running command lines)
- * Migrated 2008 project files to new name and back ported to 2005 project files.
-
-2007-11-16 MickeM
- * Fixed an NRPE issue I added when I improved the sockets_timeout (now SSL works as well :).
- + Added sample VBS script and definitions
-
-2007-11-15 MickeM
- * Improved error message when external NRPE command failles.
-
-2007-11-14 MickeM
- + Added multi-line output support ( issue #91 )
- * Improved error handling for external commands
- * Fixed an issue with NRPE/NSClient socket-reading (introduced by the socket_timeout)
- + Added an English fall back if "local" language PDH counters fail.
-
-2007-11-12 MickeM
- + Added option to configure socket_timeouts (default is now 30 seconds) should (I hope) fix issue #85
-
-2007-11-11 MickeM
- + Added option to configure the behavior of CheckService CheckAll (#64)
-
-2007-11-08 MickeM
- + Added CheckWMIValue to check result-values from a WMI Query
- * Changed so performance values are "collapsed" i.e. 75362115584 = 70.0G (#89)
-    If anyone don't want this let me know and I will make an option for it.
-
-2007-11-06 MickeM
- + Added CLI interface to CheckWMI to check queries
-
-2007-11-04 MickeM
- * Rewritten WMI handling as well as checks so things should be more useful now (cf. the wiki page for details)
-
-2007-10-29 MickeM
- * Restructured build and include to work from CLI
- + Started to add makefiles to build from CLI
- + Added Finnish counters (#98)
- * Fixed performance counter issue with check_nt (#99)
- 
-2007-10-06 MickeM
- + Added auto-upda-te of versions and dates on build to make versions better updated.
- + Fixed x64 build and cleanup a bit.
-
-2007-09-15 MickeM
- + Added better error messages (now return codes are displayed as text). Not implemented all over yet but the infrastructure is there.
-
-2007-09-11 MickeM
- + Added Dutch performance counters to counters.defs
- + Added Spanish performance counters to counters.defs
- + Added #69 [includes] directive to INI-file to include other files
- * Fixed #75 (spelling issue)
-
-2007-06-23 MickeM
- * Might have fixed #53 I was not able to get the problem locally but I have fixed the problem ias at op5 discovered at least...
- * Fixed the "check memory" issues for real this time.
- * Fixed problem with : in counter names #50 (anything starts with \ is considered a counter so if you use aliases with \ this will break things for you.
-
-2007-06-20 MickeM
- * Fixed #24 crash in NSClient++.exe CheckSystem listpdh | debugpdh
- * Fixed #62 Problems with CheckServiceState and services with spaces.
-
-2007-03-06 MickeM
- ! 0.2.7 released
-
-2007-03-05 MickeM
- * Fixed -v FILEAGE check_nt (NSClient) check.
- * Added license agreement header to all files
-
-2007-03-04 MickeM
- + Added script_dir option to NRPE section as well as some sample scripts in the scripts/
-   subdirectory. The script_dir will use all files in this directory as scripts for NRPE
- + Added Japanese counters to counters.defs from patch (thanx!!!)
-
-2007-02-25 MickeM
- + Added possibility to check many memory checks in one go, just stack type options.
-     type=paged type=physical etc...
- * Fixed a performance check bug in the last nightly.
- * Fixed a potential crash when a malformed check-file-age command was issued.
- + Added support for more then and NSClient command
- + Added net mask support to allowed_hosts (try with 192.168.0.1/24 and such)
- 
-2007-02-22 MickeM
- + Added debug output to see if the socket is bound and/or has shutdown.
- * Fixed a potential bug in the thread manager.
- + Added configuration option for suppressing performance data to the NRPE section.
-   Set performance_data=0 to stop sending performance data to nagios
- + New (better?) (simpler?) event log checking
- + Added option to most commands (ignore-perf-data) to suppress performance data
- + Added option CheckAll for checking all auto-start services to checkServiceState.
-   Also an exclude=<service> to exclude checking that.
- * Fixed return syntax for PROCSTATE nsclient
-
-2007-02-21 MickeM
- * Fixed "broken password check" (again) in NSClient listener (this time it is correct! :)
-
-2006-12-02 MickeM
- + Managed to build so it works on NT 4.0 (SP6a) and W2K3
- * Fixed "broken password check" in NSClient listener
-
-2006-11-18 MickeM
- + Added support for empty NRPE checking (i.e.. chec_nrpe without a -c argument)
- * Added error message when detected language is missing from counters.defs
- + Added Swedish locale to counters.defs (yes, I switched to Swedish XP on my computer :)
- * Fixed : (and possibly other problems) in counters when checking from check_nt (via NSCLient protocol)
- + Added CheckAllExcept to CheckDrive to check all except the specified drives.
- * Fixed a display error in the various size functions (1000-1024 byte was displayed incorrectly)
-
-2006-10-05 MickeM
- * Yayyy!!! (first fix in a looong while :)
- * Fixed a W2k3 "bug" (actually just an incorrect error) but the:
-   "e .\PDHCollector.cpp(130) Failed to query performance counters..." is no more...
- + Added option to NRPE/NSClient section to not-cache host names (for dyndns etc.)
-   NOTICE this is "not safe" really in so far as someone might hi-jack your DNS and quickly gain 
-   access to your nagios box (probably only a theoretical problem but hey! :)
-   NOTICE this is "slow" since all hosts in the list are "looked up" each time you get a NRPE/NSClient 
-   request it will be "slow" but I think it is not that much of a problem really.
-   NOTICE I don't have the possibility to test this so feel free to report if it works and if it doesn't.
-   Set cache_allowed_hosts=0 to disable host cache
-
-2006-04-04 MickeM
- * Fixed a few more bugs to the INI/REG readers
-
-2006-04-02 MickeM
- * Could all magicians stop trying to kill me? 
-   *Please* i don't like to die!
-
-2006-03-31 MickeM
- * Damn necromancers! stop 0wning my ass all the time!
- 
-2006-03-29 MickeM
- + Added API for saving/reading settings
- 
-2006-03-28 MickeM
- + Added REG/INI parsers
- * *NOTICE* You need to add an option (use_file=1) to your nsc.ini file or new builds wont work.
-
-2006-03-25 MickeM
- * Oblivion f*cking roxx!
-
-2006-03-02 MickeM
- * Fixed bug in INI-file reader (memory leak)
-
-2006-03-01 MickeM
- * Fixed bug in CheckFile (now dates work correctly)
-
-2006-02-26 MickeM
- + Added syntax option to CheckFile (%filename%, %creation%, %access%, %write%, %size%).
-
-2006-02-25 MickeM
- * Fixed Sections problem (now sections can be any size)
- + Added bind_to_address option to both NRPE and NSClient section in the INI file.
-   Allows you to bind the listener to a specific IP address (only dotted number not host name).
-   This might break things as I had to do some internal rewrite of the Socket classes so be careful :)
- * Disabled default-debug logging (as things are fairly stable, you can still enable it by using debug=1 in the NSC:ini file)
- * "Fixed" socket backlog to use "max responsible value" as opposed to "10" if no value is specified.
- + Added option socket_back_log to both NRPE and NSClient section that allows you to tweak the "back-log" of incoming connections to keep.
-   This is an advanced setting and should not be used. If you get "connection refused" when running many client this might be something you want to tweak though.
-   And if you then start getting "Socket timeout" you might wanna tweak the timeout value as well because larger value here means it takes "longer" to process a socket.
- - I have looked into the event log problem and dates seem to work here so if anyone still have problems (use the syntax option to debug) let me know.
- * Moved listpdh and debugpdh into the CheckSystem module
- * Removed PDH dependencies from "core exe" means you can run NSClient++ without PDH (though you cant use the CheckSystem module)
- 
-2006-02-2? MickeM
- + Added new Interface for Modules (NSCommandLineExec that allows modules to execute things give from command line.
-   Syntax is NSClient++ <module name> <command> [arguments] and if a module doesn't support this it is simply ignored.
- + Added new install/uninstall command to SystemTray module:
-   NSClient++.exe SystemTray install 
-   NSClient++.exe SystemTray uninstall 
-   That will install/uninstall the system tray module this sets the "Allow Service to Interact with Desktop" flag for the service.
- * Removed the "Allow Service to Interact with Desktop" flag from the /install option so that it no longer defaults to on (see commands to set this above).
- * Fixed so checkProcess isn't case sensitive.
- * Added (not finished) syntax option to event log checker to format the outputted data
-
-2006-02-12 MickeM
- + Added support for host name resolve to allowed_hosts
-
-2006-02-08 MickeM
- ! Fixed filter-eventID in EventLog module (now works for all IDs regardless of severity state)
- + Added new filters to EventLog (filter-severity that can filter based on event severity success, error, warning, informational)
-
-2006-02-07 MickeM
- + Added new filter option to eventlog filter-eventID
- + Added new operator to all numeric filters in:number,number,... etc. (for instance filter-eventID=in:123,456,789 to check for lists.
-
-2006-02-05 MickeM
- + Added CheckFile check command
-   This new command (in development) will allow various file checks such as age, size, date, etc on single or multiple files.
- + Added FILEAGE support to NSClient
- + Started to convert the web page to WIKI
- 
-2006-01-21 MickeM
- + Added WMI Check module (early alpha)
-   This is an extremely early alpha more to see if there is an interest and how to progress with it.
-   To use the WMI module enable the WMICheck.dll (nsc.ini) and then run the following check:
-   CheckWMI MaxWarn=10 MaxCrit=15 "Query:load=Select LoadPercentage from win32_Processor"
-   The Max* are as every other check and sets limits. 
-   The Query works similarly to other check commands i.e.. Query:<name>=<WMI query>
-   So any other WMI query should work (notice this is experimental and not stable and has virtually 
-   no error handling so it is likely to crash nsclient if you ask anything "non working".)
-   I would *really* *really* like to get feedback on how to expand this concept to work better so feel free to come with feedback.
-  * Fixed NT4 /install (should work now!)
-
-2006-01-02 MickeM
- * Fixed ChangeServiceConfig2 on NT4
- + Added support for more then 4GB memory (8GB?)
-   Since I don't have this much memory this needs to be verified...
- * Fixed syntax of performance data
-
-2005-09-24 MickeM
- * Fixed memory size bug (free and used were swapped)
-
-2005-09-20 MickeM
- + Added option to debug all PDH counters /debugpdh
-
-2005-09-17 MickeM
- + Added support for checking service by display name
-
-2005-09-03 MickeM
- * First off, sorry for lack of updates, but was on vacation :)
- + Added ShowAll=long to CPULoad
- + Added several new types to checkMem (type=paged, type=physical, type=page, type=virtual)
-
-2005-07-31 MickeM
- + /install now sets the service to autostart
- * Did some cleanup of minor code sections
- * (done before but not reported i think) /listpdh option added to list all PDH counters (nsclient++ /listpdh)
- + Added service description
- * Event log reworked (again) this time I hope it is better (and even useful, but syntax has changed)
-
-2005-07-26 MickeM
- + Added support for ShowAll=long (to show long and short info, only applies to some areas, but available everywhere)
- + Extended Drive and memory check syntax to facilitate both Free and Used space checks: MaxWarnFree / MaxWarnUsed etc)
-
-2005-07-19 MickeM
- * Changed thread API to use _creatthreadex as opposed to _creatthread (works better now!)
- * Fixed UNKNOWN return code (was 4 should have been 3)
-
-2005-07-16 MickeM
- * Fixed drive checks from NSClient
-
-2005-07-11 MickeM
- * *ALOT* of bug fixes and enhancements all checking code has been centralized and rewritten also my internal check scripts 
-   have been extended to check a lot more things.
-   *NOTICE* that EventLog has not been upgraded yet neither has the documentation.
- + Added MaxWarnCount / MinWarnCount to checkProcState to check number of processes running
-
-2005-06-09 MickeM
- * Escapes " in NRPE commands in the NSC.ini
-
-2005-06-05 MickeM
- * Created configuration interface (not released yet)
-
-2005-06-03 MickeM
- * Created interactive installer (not released yet)
-
-2005-06-02 MickeM
- * CheckEventLog reworked...
-
-2005-06-01 MickeM
- * CheckSystem auto detects windows version and language.
-
-2005-05-29 MickeM
- * Fixed PROCSTATE and SERVICESTATE return state.
- + Added support for individual size in CheckDriveSize and CheckFileSize (size has to be specified before a drive/path)
- * Fixed performance data for drives (and possibly other places)
-
-2005-05-23 MickeM
- + Added obfuscated password support
- + Added some more debug info on commands (return code, and input args)
- + Added some more comments to the NSC.ini
- + Added central password "override"
- + Added central "host override"
- + Fixed bug with external commands always getting WARNING state
-
-2005-05-22 MickeM
- + Added debug output for command
- + Added timestamps for log-to-file (date_mask to configure format)
- + Added support for "no password" with check_nt
- + Added log of bad password on NSClient requests.
- * Some threading issues fixed (I hate threading :)
-
-2005-05-19 MickeM
- * Verified NT4 compatibility
-
-2005-05-18 MickeM
- * Fixed bug in NSC.ini (section title for Check System was wrong)
- + Added multitasking for plug-ins (now two plug-ins can handle requests simultaneously)
- * Fixed some minor issues here and there
-
-2005-05-15 MickeM
- + Added NRPE support for checkCounter
- + Updated documentation
- * Make check commands ignore case
- + Added CheckHelpers module to alter the result of various check and similar things 
-
-2005-05-14 MickeM
- + Added support for Volumes (CheckDisk)
- + Added support for checking all drives of a certain kind
- + Added support for altering filter (makes it possible to check removable drives)
- + Created web page and better documentation
-
-2005-04-20 MickeM
- + Added multitasking to socket listener (it can now handle multiple connections)
- * Fixed bug in NSClientListener now "seqv" in check_nt shouldn't happen.
- + Added COUNTER support to NSClient and CheckSystem
-
-2005-04-19 MickeM
- + Added SSL support
- + Added a lot of new options
- + Added documentation
- * Renamed and restructured NSCLientCompat to CheckSystem
- * *ALOT* of fixes all over
- : We are now starting to get to something that is "stable"
- : This means that soon you might actually be able to use this.
- 
-2005-03-28 MickeM
- * Changed the Thread class a bit (mutex -> signal, and CreatThread does not return the instance)
- * Moved settings "keys" fro NRPE to config.h
- * Changed build options (added Distribution) which builds a zip file under ./dist (requires 7z installed)
- * Minor tweaks to error/debug logging and small fixes "here and there"
-
-2005-03-26 MickeM
- + NRPE Support (very basic, no encryption, and nothing fancy)
- * Socket classes rewritten
- + Added NSCModuleHelper::getSettingsSection to the API
-
-2005-03-22 MickeM
- * Fixed NSClientListener return codes for basic commands
- * Extracted arrayBuffer code into new files under /include
- * Minor tweaks in the API (fixed minor issues)
- + Added some basic "tests" to a few commands (getToken, and arrayBuffer related)
-
-2005-03-21 MickeM
- * Fixed BUG in inject command (now things should "work" again, but far from stable)
- + Added NRPE return code
- * Fixed some return states to NSClientListener (not verified yet, but soon they will be back in order :)
-
-2005-03-20 MickeM
- * Fundamental API changes (due to NRPE compatibility)
-   - HandleCommand has changed
-   - Inject has changed
-   - Most API calls have new "return codes" (typedef:ed INT to allow for return code compiler checks)
-   - A lot of the old return codes have changed
- + Preliminary NRPE support (can parse and execute incoming requests, cant return data yet, and no encryption)
- + New SimpleSocket in include/ will be used as base class for Listeners
- * A lot of rewrite to the NSC API
-
-2005-03-19 MickeM
- * Re factored out NSCLient Listener as a separate module
- + Added initial NRPE listener module (not yet implemented only a shell)
- * Changed Module API (Inject function has new syntax)
- + Added some tokenizer function to charEx
- + Added new wrapper function to inject Command
- * Minor changes in relation to refactor work
-
-2005-03-01 MickeM
- * Improved thread safety in Core
- + Added exception handling and logging in PDH code
- * Various fixes all over the place
- + New module for check size of files/directories
- * Changed build to Dynamic link
- * Added regular expression support for EventLog checker
-
-2005-02-22 MickeM
- + Added documentation
-
-2005-02-17 MickeM
- * NSClient issues fixed
- * System Tray issues fixed
-
-2005-02-14 MickeM
- * Initial SourceForge release
Index: gs/0.3.1/config.h
===================================================================
--- tags/0.3.1/config.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,25 +1,0 @@
-
-
-#pragma once
-/*
-// Application Name
-#define SZAPPNAME "NSClient++"
-
-// Version
-#define SZVERSION "0.0.1 RC4 2005-03-01"
-
-// internal name of the service
-#define SZSERVICENAME        "NSClient++"
-
-// displayed name of the service
-#define SZSERVICEDISPLAYNAME SZSERVICENAME " (Nagios) " SZVERSION
-
-// list of service dependencies - "dep1\0dep2\0\0"
-#define SZDEPENDENCIES       ""
-
-// Buffer size of incoming data (noteice this is the maximum request length!)
-#define RECV_BUFFER_LEN		1024
-
-*/
-// internal name of the service
-//#define SZSERVICENAME        "NSClient++"
Index: gs/0.3.1/counters.defs
===================================================================
--- tags/0.3.1/counters.defs	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,107 +1,0 @@
-﻿[FileInfo]
-Purpose = "NSClient counters definitions"
-Version = 1.02
-ReleaseDate = "10.02.2002"
-
-[0x0409]
-Description = "English US"
-NT4_SystemTotalProcessorTime = "\System\% Total Processor Time"
-NT4_SystemSystemUpTime = "\System\System Up Time"
-NT4_MemoryCommitLimit = "\Memory\Commit Limit"
-NT4_MemoryCommitByte = "\Memory\Committed Bytes"
-
-W2K_SystemTotalProcessorTime = "\Processor(_total)\% Processor Time"
-W2K_SystemSystemUpTime = "\System\System Up Time"
-W2K_MemoryCommitLimit = "\Memory\Commit Limit"
-W2K_MemoryCommitByte = "\Memory\Committed Bytes"
-
-[0x0407]
-Description = "German"
-NT4_SystemTotalProcessorTime = "\System\% Gesamtprozessorzeit"
-NT4_SystemSystemUpTime = "\System\Systemarbeitszeit"
-NT4_MemoryCommitLimit = "\Speicher\Zusagegrenze"
-NT4_MemoryCommitByte = "\Speicher\Bytes verfügbar"
-
-W2K_SystemTotalProcessorTime = "\Prozessor(_Total)\Prozessorzeit (%)"
-W2K_SystemSystemUpTime = "\System\Systembetriebszeit"
-W2K_MemoryCommitLimit = "\Speicher\Zusagegrenze"
-W2K_MemoryCommitByte = "\Speicher\Zugesicherte Bytes"
-
-[0x0410]
-Description = "Italian"
-W2K_SystemTotalProcessorTime = "\Processore(_total)\% Tempo processore"
-W2K_SystemSystemUpTime = "\Sistema\Tempo di funzionamento sistema"
-W2K_MemoryCommitLimit = "\Memoria\Limite memoria vincolata"
-W2K_MemoryCommitByte = "\Memoria\Byte vincolati"
-
-NT4_SystemTotalProcessorTime = "\Processore(_total)\% Tempo processore"
-NT4_SystemSystemUpTime = "\Sistema\Tempo di funzionamento sistema"
-NT4_MemoryCommitLimit = "\Memoria\Limite memoria vincolata"
-NT4_MemoryCommitByte = "\Memoria\Byte vincolati"
-
-[0x040c]
-Description = "French (France)"
-NT4_SystemTotalProcessorTime = "\Système\% Temps total du processeur"
-NT4_SystemSystemUpTime = "\Système\Temps d'activité système"
-NT4_MemoryCommitLimit = "\Mémoire\Limite de mémoire dédiée"
-NT4_MemoryCommitByte = "\Mémoire\Octets dédiés"
-
-W2K_SystemTotalProcessorTime = "\Processeur(_Total)\% Temps processeur"
-W2K_SystemSystemUpTime = "\Système\Temps d'activité système"
-W2K_MemoryCommitLimit = "\Mémoire\Limite de mémoire dédiée"
-W2K_MemoryCommitByte = "\Mémoire\Octets dédiés"
-
-[0x0C0A]
-Description = "Spanish"
-NT4_SystemTotalProcessorTime = "\Procesador(_Total)\% de tiempo de procesador"
-NT4_SystemSystemUpTime = "\Sistema\Tiempo de actividad del sistema"
-NT4_MemoryCommitLimit = "\Memoria\Límite comprometido"
-NT4_MemoryCommitByte = "\Memoria\Bytes comprometidos"
-
-W2K_SystemTotalProcessorTime = "\Procesador(_Total)\% de tiempo de procesador"
-W2K_SystemSystemUpTime = "\Sistema\Tiempo de actividad del sistema"
-W2K_MemoryCommitLimit = "\Memoria\Límite comprometido"
-W2K_MemoryCommitByte = "\Memoria\Bytes comprometidos"
-
-[0x0416]
-Description = "Portuguese_BR"
-NT4_SystemTotalProcessorTime = "\Sistema\% tempo total do processador"
-NT4_SystemSystemUpTime = "\Sistema\Tempo de atividade do sistema"
-NT4_MemoryCommitLimit = "\Memória\Limite confirmado"
-NT4_MemoryCommitByte = "\Memória\Bytes confirmados"
-
-[0x041d]
-Description = "Swedish SE"
-W2K_SystemTotalProcessorTime = "\Processor(_Total)\% processortid"
-W2K_SystemSystemUpTime = "\System\Tid sedan systemstart"
-W2K_MemoryCommitLimit = "\Minne\Dedikationsgräns"
-W2K_MemoryCommitByte = "\Minne\Dedicerade byte"
-
-[0x0411]
-Description = "Japanese"
-W2K_SystemTotalProcessorTime = "\Processor(_total)\% Processor Time"
-W2K_SystemSystemUpTime = "\System\System Up Time"
-W2K_MemoryCommitLimit = "\Memory\Commit Limit"
-W2K_MemoryCommitByte = "\Memory\Committed Bytes" 
-
-[0x0413]
-Description = "Dutch"
-W2K_SystemTotalProcessorTime = "\Processor(_total)\Percentage processortijd"
-W2K_SystemSystemUpTime = "\Systeem\Systeem ingeschakeld"
-W2K_MemoryCommitLimit = "\Geheugen\Toewijzingslimiet"
-W2K_MemoryCommitByte = "\Geheugen\Toegewezen bytes" 
-
-
-[0x040b]
-Description = "Suomi"
-W2K_SystemTotalProcessorTime = "\Suoritin(_Total)\Suoritinaika prosentteina"
-W2K_SystemSystemUpTime = "\Järjestelmä\Järjestelmän toiminta-aika"
-W2K_MemoryCommitLimit = "\Muisti\Varausraja"
-W2K_MemoryCommitByte = "\Muisti\Varatut tavut"
-
-[0x040e]
-Description = "Hungarian (Magyar)"
-W2K_SystemTotalProcessorTime = "\Processzor(_Total)\A processzor kihasználtsága (%)"
-W2K_SystemSystemUpTime = "\Rendszer\Rendszerindítás óta eltelt idő (mp)"
-W2K_MemoryCommitLimit = "\Memória\Előjegyzési küszöb (bájt)"
-W2K_MemoryCommitByte = "\Memória\Előjegyzett memória (bájt)" 
Index: gs/0.3.1/dist_dll/placeholder.txt
===================================================================
--- tags/0.3.1/dist_dll/placeholder.txt	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,9 +1,0 @@
-Put your "libs" here to make building automatic:
-I have the following in my directory:
-
-boost_regex-vc71-mt-p-1_32.dll	- Only needed if you want to use the CheckEventLog module
-msvcp71.dll			- Regular MS VC++ 7.1 runtimes
-msvcr71.dll			- Regular MS VC++ 7.1 runtimes
-stlport_vc7146.dll		- STL port runtimes
-libeay32.dll			- SSL
-ssleay32.dll			- SSL
Index: gs/0.3.1/files/license.txt
===================================================================
--- tags/0.3.1/files/license.txt	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,340 +1,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
Index: gs/0.3.1/helpers/UploadBinaries/UploadBinaries.vcproj
===================================================================
--- tags/0.3.1/helpers/UploadBinaries/UploadBinaries.vcproj	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,456 +1,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="UploadBinaries"
-	ProjectGUID="{D96F7075-F6CD-4921-B5D8-8488E2D24BDB}"
-	RootNamespace="UploadBinaries"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				GenerateDebugInformation="true"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				GenerateDebugInformation="true"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Making archive: 7z.exe a -r -tzip -bd &quot;$(TargetDir)\NSClient++-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;7z.exe a -r -tzip -bd &quot;$(TargetDir)\NSClient++-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;echo Renaming archive: postbuild.pl &quot;$(TargetDir)\NSClient++-$(PlatformName).zip&quot; zip&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\NSClient++-$(PlatformName).zip&quot; zip&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;echo pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="foo"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				RuntimeLibrary="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				GenerateDebugInformation="true"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Making archive: 7z.exe a -r -tzip -bd &quot;$(TargetDir)\NSClient++-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;7z.exe a -r -tzip -bd &quot;$(TargetDir)\NSClient++-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;echo Renaming archive: postbuild.pl &quot;$(TargetDir)\NSClient++-$(PlatformName).zip&quot; zip&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\NSClient++-$(PlatformName).zip&quot; zip&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;echo pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="foo"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				RuntimeLibrary="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				GenerateDebugInformation="true"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Nightly|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Making archive&#x0D;&#x0A;7z.exe a -r -tzip -bd &quot;$(TargetDir)\NSClient++-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;echo Renaming archive&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\NSClient++-$(PlatformName).zip&quot; zip&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="foo"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				RuntimeLibrary="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Nightly|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Making archive&#x0D;&#x0A;7z.exe a -r -tzip -bd &quot;$(TargetDir)\NSClient++-$(PlatformName).zip&quot; &quot;$(TargetDir)\*&quot;&#x0D;&#x0A;echo Renaming archive&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\NSClient++-$(PlatformName).zip&quot; zip&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;pscp.exe &quot;$(TargetDir)\*.zip&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="foo"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				RuntimeLibrary="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
Index: gs/0.3.1/helpers/UploadInstaller/UploadInstaller.vcproj
===================================================================
--- tags/0.3.1/helpers/UploadInstaller/UploadInstaller.vcproj	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,335 +1,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="UploadInstaller"
-	ProjectGUID="{6206F046-3D36-4258-BB03-3291A7070117}"
-	RootNamespace="UploadInstaller"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				GenerateDebugInformation="true"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Renaming archive&#x0D;&#x0A;echo mkdir &quot;$(OutDir)&quot;&#x0D;&#x0A;mkdir &quot;$(OutDir)&quot;&#x0D;&#x0A;cmd /c del &quot;$(OutDir)\*.msi&quot;&quot;&#x0D;&#x0A;cmd /c copy &quot;..\installer\bin\$(ConfigurationName)\NSClient++.msi&quot; &quot;$(OutDir)\NSClient++-$(PlatformName).msi&quot;&quot;&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\NSClient++-$(PlatformName).msi&quot; msi&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;pscp.exe &quot;$(TargetDir)\*.msi&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="foo"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				RuntimeLibrary="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				GenerateDebugInformation="true"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				GenerateDebugInformation="true"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo Renaming archive&#x0D;&#x0A;echo mkdir &quot;$(OutDir)&quot;&#x0D;&#x0A;mkdir &quot;$(OutDir)&quot;&#x0D;&#x0A;cmd /c del &quot;$(OutDir)\*.msi&quot;&quot;&#x0D;&#x0A;cmd /c copy &quot;..\installer\bin\$(ConfigurationName)\NSClient++.msi&quot; &quot;$(OutDir)\NSClient++-$(PlatformName).msi&quot;&quot;&#x0D;&#x0A;postbuild.pl &quot;$(TargetDir)\NSClient++-$(PlatformName).msi&quot; msi&#x0D;&#x0A;echo Sending to server&#x0D;&#x0A;pscp.exe &quot;$(TargetDir)\*.msi&quot; mickem@ssl.nakednuns.org:/var/www/files/nightly/&#x0D;&#x0A;"
-				Outputs="foo"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				RuntimeLibrary="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				GenerateDebugInformation="true"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
Index: gs/0.3.1/helpers/XAutoBuild/AutoBuild.h
===================================================================
--- tags/0.3.1/helpers/XAutoBuild/AutoBuild.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,10 +1,0 @@
-#ifndef AUTOBUILD_H
-#define AUTOBUILD_H
-// change the FALSE to TRUE for autoincrement of build number
-#define INCREMENT_VERSION TRUE
-#define FILEVER        1,0,0,13
-#define PRODUCTVER     1,0,0,13
-#define STRFILEVER     "1.0.0.13"
-#define STRPRODUCTVER  "1.0.0.13"
-#define STRPRODUCTDATE  "2007-11-03"
-#endif // AUTOBUILD_H
Index: gs/0.3.1/helpers/XAutoBuild/XAutobuild-2005.csproj
===================================================================
--- tags/0.3.1/helpers/XAutoBuild/XAutobuild-2005.csproj	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,83 +1,0 @@
-﻿<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.20706</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{0E2B21D9-F432-4127-8E92-7716B1072510}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>XAutobuild</RootNamespace>
-    <AssemblyName>XAutobuild</AssemblyName>
-    <ApplicationIcon>
-    </ApplicationIcon>
-    <Win32Resource>XAutobuild.res</Win32Resource>
-    <FileUpgradeFlags>
-    </FileUpgradeFlags>
-    <UpgradeBackupLocation>
-    </UpgradeBackupLocation>
-    <OldToolsVersion>2.0</OldToolsVersion>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug-MemCheck|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>bin\Debug-MemCheck\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <CodeAnalysisRuleAssemblies>D:\Program\Microsoft Visual Studio 9.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleAssemblies>
-    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
-    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-    <ErrorReport>prompt</ErrorReport>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="XAutobuild.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="XGetopt.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="AutoBuild.h" />
-    <Content Include="hans.ico" />
-  </ItemGroup>
-  <ItemGroup>
-    <Folder Include="Properties\" />
-  </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-  <PropertyGroup>
-    <PostBuildEvent>
-    </PostBuildEvent>
-    <PreBuildEvent>
-    </PreBuildEvent>
-  </PropertyGroup>
-</Project>
Index: gs/0.3.1/helpers/XAutoBuild/XAutobuild.cs
===================================================================
--- tags/0.3.1/helpers/XAutoBuild/XAutobuild.cs	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,337 +1,0 @@
-// XAutoBuild.cs  Version 1.0
-//
-// Author:  Hans Dietrich
-//          hdietrich@gmail.com
-//
-// Description:
-//     The XAutoBuild utility automatically increments the build number
-//     in the file AutoBuild.h.
-//
-// History
-//     Version 1.0 - 2007 June 6
-//     - Initial public release
-//
-// License:
-//     This software is released into the public domain.  You are free to use
-//     it in any way you like, except that you may not sell this source code.
-//
-//     This software is provided "as is" with no expressed or implied warranty.
-//     I accept no liability for any damage or loss of business that this
-//     software may cause.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-//#define XAUTOBUILD_VERBOSE
-
-using System;
-using System.IO;
-using XGetoptCS;
-
-namespace XAutoBuild
-{
-	class Version
-	{
-		public Version(bool verbose)
-		{
-			_filever    = new uint [4] { 1, 0, 0, 1 };
-			_productver = new uint [4] { 1, 0, 0, 1 };
-			_autoIncrement = true;
-			_verbose = verbose;
-		}
-
-		/// <summary>
-		/// ReadVersion() reads the information from AutoBuild.h
-		/// </summary>
-		/// <param name="path">fully qualified path to AutoBuild.h</param>
-		/// <returns>true = success</returns>
-		public bool ReadVersion(string path)
-		{
-			_filever[0] = 1;
-			_filever[1] = 0;
-			_filever[2] = 0;
-			_filever[3] = 1;
-			_productver[0] = 1;
-			_productver[1] = 0;
-			_productver[2] = 0;
-			_productver[3] = 1;
-			_autoIncrement = true;
-
-			StreamReader xabfile = null;
-
-			try
-			{
-				xabfile = new StreamReader(path);
-			}
-			catch
-			{
-				Console.WriteLine("XAutoBuild: Error opening XAutoBuild file {0}.", path);
-				return false;
-			}
-
-			string line;
-			int pos;
-			while ((line = xabfile.ReadLine()) != null)
-			{
-				line = line.ToUpper();
-
-				if ((pos = line.IndexOf("INCREMENT_VERSION")) >= 0)
-				{
-					pos += "INCREMENT_VERSION".Length + 1;
-					string flagIncrement = line.Substring(pos);
-					if (flagIncrement.IndexOf("FALSE") >= 0)
-						_autoIncrement = false;
-					if (_verbose)
-						Console.WriteLine("XAutoBuild: _autoIncrement = {0}", _autoIncrement);
-					continue;
-				}
-
-				if ((pos = line.IndexOf("FILEVER")) >= 0)
-				{
-					pos += "FILEVER".Length + 1;
-					string temp = line.Substring(pos).Trim();
-					string [] filever = temp.Split(",".ToCharArray());
-					int i = 0;
-					foreach (string s in filever)
-					{
-						if (s.Length > 0)
-							_filever[i] = Convert.ToUInt32(s);
-						if (++i > 3)
-							break;
-					}
-					if (_verbose)
-						Console.WriteLine("XAutoBuild: _filever = {0}.{1}.{2}.{3}", 
-							_filever[0], _filever[1], _filever[2], _filever[3]);
-					continue;
-				}
-
-				if ((pos = line.IndexOf("PRODUCTVER")) >= 0)
-				{
-					pos += "PRODUCTVER".Length + 1;
-					string temp = line.Substring(pos).Trim();
-					string [] productver = temp.Split(",".ToCharArray());
-					int i = 0;
-					foreach (string s in productver)
-					{
-						if (s.Length > 0)
-							_productver[i] = Convert.ToUInt32(s);
-						if (++i > 3)
-							break;
-					}
-					if (_verbose)
-						Console.WriteLine("XAutoBuild: _productver = {0}.{1}.{2}.{3}", 
-							_productver[0], _productver[1], _productver[2], _productver[3]);
-					break;
-				}
-			}
-
-			xabfile.Close();
-
-			return true;
-		}
-
-		/// <summary>
-		/// WriteVersion() writes AutoBuild.h based on information from
-		/// this class.
-		/// </summary>
-		/// <param name="path">fully qualified path to AutoBuild.h</param>
-		/// <returns>true = success</returns>
-		public bool WriteVersion(string path)
-		{
-
-			StreamWriter xabfile = null;
-
-			try
-			{
-				xabfile = new StreamWriter(path);
-			}
-			catch
-			{
-				Console.WriteLine("XAutoBuild: Error opening XAutoBuild file {0}.", path);
-				return false;
-			}
-
-			string auto = "FALSE";
-			if (_autoIncrement)
-				auto = "TRUE";
-
-			xabfile.WriteLine("#ifndef AUTOBUILD_H");
-			xabfile.WriteLine("#define AUTOBUILD_H");
-			xabfile.WriteLine("// change the FALSE to TRUE for autoincrement of build number");
-			xabfile.WriteLine("#define INCREMENT_VERSION {0}", auto);
-			xabfile.WriteLine("#define FILEVER        {0},{1},{2},{3}", _filever[0], _filever[1], _filever[2], _filever[3]);
-			xabfile.WriteLine("#define PRODUCTVER     {0},{1},{2},{3}", _productver[0], _productver[1], _productver[2], _productver[3]);
-            xabfile.WriteLine("#define STRFILEVER     _T(\"{0}.{1}.{2}.{3}\")", _filever[0], _filever[1], _filever[2], _filever[3]);
-            xabfile.WriteLine("#define STRPRODUCTVER  _T(\"{0}.{1}.{2}.{3}\")", _productver[0], _productver[1], _productver[2], _productver[3]);
-            xabfile.WriteLine("#define STRPRODUCTDATE  _T(\"{0}\")", DateTime.Now.ToString("yyyy-MM-dd"));
-			xabfile.WriteLine("#endif // AUTOBUILD_H");
-
-			xabfile.Close();
-
-			return true;
-		}
-
-		/// <summary>
-		/// AutoIncrement (readonly) returns the _autoincrement flag.
-		/// </summary>
-		public bool AutoIncrement
-		{
-			get
-			{
-				return _autoIncrement;
-			}
-		}
-
-		/// <summary>
-		/// Increment() increments the file version and product version build numbers.
-		/// </summary>
-		public void Increment()
-		{
-			_filever[3] += 1;
-			_productver[3] += 1;
-		}
-
-		private uint[] _filever, _productver;
-		private bool _autoIncrement;
-		private bool _verbose;
-	}
-
-	class Program
-	{
-		private const string FILE_NAME = "AutoBuild.h";
-
-		static void Usage()
-		{
-			Console.WriteLine("XAutoBuild: Copyright (c) 2007 by Hans Dietrich");
-			Console.WriteLine("XAutoBuild: Usage: XAutoBuild -f <path to autobuild header> [-v]");
-		}
-
-		static int Main(string[] args)
-		{
-#if XAUTOBUILD_VERBOSE
-			int i = 0;
-			foreach (string arg in args)
-			{
-				Console.WriteLine("arg[{0}]: {1}", i, arg);
-				i++;
-			}
-#endif
-
-			string path = string.Empty;
-			bool verbose = false;
-
-			char c;
-			XGetopt go = new XGetopt();
-			while ((c = go.Getopt(args.Length, args, "f:v")) != '\0')
-			{
-#if XAUTOBUILD_VERBOSE
-				Console.WriteLine("Getopt returned '{0}'", c);
-#endif
-
-				switch (c)
-				{
-					case 'f':
-						path = go.Optarg;
-						break;
-
-					case 'v':
-						verbose = true;
-						break;
-
-					case '?':
-						Console.WriteLine("illegal option or missing arg");
-						Usage();
-						return 1;
-				}
-			}
-
-			if (path.Length < 4)
-			{
-				Usage();
-				return 1;
-			}
-
-            if (path.EndsWith("\"")) {
-                path = path.Substring(0, path.Length - 1);
-            }
-            path = path + Path.DirectorySeparatorChar;
-            try
-            {
-                path = Path.GetDirectoryName(path);
-            }
-            catch (System.ArgumentException e)
-            {
-                Console.WriteLine("Path not valid {0}", path);
-                Usage();
-                return 1;
-            }
-
-
-			string infile = path + Path.DirectorySeparatorChar + FILE_NAME;
-
-			if (verbose)
-				Console.WriteLine("XAutoBuild: XAutoBuild file is {0}", infile);
-
-			Version ver = new Version(verbose);
-
-			if (File.Exists(infile))
-			{
-				if (verbose)
-					Console.WriteLine("XAutoBuild: {0} already exists.", infile);
-
-				string bakfile = infile + ".bak";
-
-				// make backup copy
-				try
-				{
-					if (verbose)
-						Console.WriteLine("XAutoBuild: creating {0}", bakfile);
-					File.Copy(infile, bakfile, true);
-				}
-				catch
-				{
-					Console.WriteLine("XAutoBuild: failed to create {0}", bakfile);
-					return 1;
-				}
-			}
-			else
-			{
-				// file doesn't exist, start with version 1.0.0.1
-
-				if (verbose)
-					Console.WriteLine("XAutoBuild: creating {0}", infile);
-
-				if (!ver.WriteVersion(infile))
-				{
-					return 1;
-				}
-			}
-
-			// at this point input file does exist - now read values
-
-			if (!ver.ReadVersion(infile))
-			{
-				return 1;
-			}
-
-			if (ver.AutoIncrement)
-			{
-				if (verbose)
-					Console.WriteLine("XAutoBuild: updating {0}", infile);
-
-				ver.Increment();
-
-				if (!ver.WriteVersion(infile))
-				{
-					return 1;
-				}
-			}
-			else
-			{
-				if (verbose)
-					Console.WriteLine("XAutoBuild: INCREMENT_VERSION set to FALSE, skipping update");
-			}
-
-			return 0;
-		}
-	}
-}
Index: gs/0.3.1/helpers/XAutoBuild/XAutobuild.csproj
===================================================================
--- tags/0.3.1/helpers/XAutoBuild/XAutobuild.csproj	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,117 +1,0 @@
-﻿<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.20706</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{0E2B21D9-F432-4127-8E92-7716B1072510}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>XAutobuild</RootNamespace>
-    <AssemblyName>XAutobuild</AssemblyName>
-    <ApplicationIcon>
-    </ApplicationIcon>
-    <Win32Resource>XAutobuild.res</Win32Resource>
-    <FileUpgradeFlags>
-    </FileUpgradeFlags>
-    <UpgradeBackupLocation>
-    </UpgradeBackupLocation>
-    <OldToolsVersion>2.0</OldToolsVersion>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|Itanium' ">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>bin\Itanium\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>Itanium</PlatformTarget>
-    <CodeAnalysisRuleAssemblies>D:\Program\Microsoft Visual Studio 9.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleAssemblies>
-    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
-    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-    <ErrorReport>prompt</ErrorReport>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Itanium' ">
-    <OutputPath>bin\Itanium\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <Optimize>true</Optimize>
-    <DebugType>pdbonly</DebugType>
-    <PlatformTarget>Itanium</PlatformTarget>
-    <CodeAnalysisRuleAssemblies>D:\Program\Microsoft Visual Studio 9.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleAssemblies>
-    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
-    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
-    <ErrorReport>prompt</ErrorReport>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug-MemCheck|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>bin\Debug-MemCheck\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <CodeAnalysisRuleAssemblies>D:\Program\Microsoft Visual Studio 9.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleAssemblies>
-    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
-    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-    <ErrorReport>prompt</ErrorReport>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug-MemCheck|Itanium' ">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>bin\Itanium\Debug-MemCheck\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>Itanium</PlatformTarget>
-    <CodeAnalysisRuleAssemblies>D:\Program\Microsoft Visual Studio 9.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleAssemblies>
-    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
-    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-    <ErrorReport>prompt</ErrorReport>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="XAutobuild.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="XGetopt.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="AutoBuild.h" />
-    <Content Include="hans.ico" />
-  </ItemGroup>
-  <ItemGroup>
-    <Folder Include="Properties\" />
-  </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-  <PropertyGroup>
-    <PostBuildEvent>XAutobuild -f "$(ProjectDir)\" -v</PostBuildEvent>
-    <PreBuildEvent>
-    </PreBuildEvent>
-  </PropertyGroup>
-</Project>
Index: gs/0.3.1/helpers/XAutoBuild/XAutobuild.rc
===================================================================
--- tags/0.3.1/helpers/XAutoBuild/XAutobuild.rc	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,112 +1,0 @@
-//Microsoft Developer Studio generated resource script.
-//
-#include "Autobuild.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE DISCARDABLE 
-BEGIN
-    "Autobuild.h\0"
-END
-
-2 TEXTINCLUDE DISCARDABLE 
-BEGIN
-    "#include ""afxres.h""\r\n"
-    "\0"
-END
-
-3 TEXTINCLUDE DISCARDABLE 
-BEGIN
-    "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
-    "#ifdef _WIN32\r\n"
-    "LANGUAGE 9, 1\r\n"
-    "#pragma code_page(1252)\r\n"
-    "#endif //_WIN32\r\n"
-    "#endif\r\n"
-    "\0"
-END
-
-#endif    // APSTUDIO_INVOKED
-
-#ifndef _MAC
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION FILEVER
- PRODUCTVERSION PRODUCTVER
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
-    BLOCK "StringFileInfo"
-    BEGIN
-        BLOCK "040904B0"
-        BEGIN
-            VALUE "E-mail", "hdietrich@gmail.com\0"
-            VALUE "Article", "www.codeproject.com\0"
-            VALUE "FileDescription", "XAutobuild utility\0"
-            VALUE "FileVersion", STRFILEVER
-            VALUE "LegalCopyright", "Copyright © 2007 Hans Dietrich\0"
-            VALUE "OriginalFilename", "XAutobuild.exe\0"
-            VALUE "ProductName", "XAutobuild\0"
-            VALUE "ProductVersion", STRPRODUCTVER
-        END
-    END
-    BLOCK "VarFileInfo"
-    BEGIN
-        VALUE "Translation", 0x409, 1200
-    END
-END
-
-#endif    // !_MAC
-
-#endif    // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE 9, 1
-#pragma code_page(1252)
-#endif //_WIN32
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-#endif    // not APSTUDIO_INVOKED
-
Index: gs/0.3.1/helpers/XAutoBuild/XAutobuild.sln
===================================================================
--- tags/0.3.1/helpers/XAutoBuild/XAutobuild.sln	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,20 +1,0 @@
-﻿
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XAutobuild", "XAutobuild.csproj", "{0E2B21D9-F432-4127-8E92-7716B1072510}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{0E2B21D9-F432-4127-8E92-7716B1072510}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
Index: gs/0.3.1/helpers/XAutoBuild/XGetopt.cs
===================================================================
--- tags/0.3.1/helpers/XAutoBuild/XGetopt.cs	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,234 +1,0 @@
-// XGetopt.cs  Version 1.0
-//
-// Author:  Hans Dietrich
-//        hdietrich@gmail.com
-//
-// Description:
-//     The Getopt() method parses command line arguments. It is modeled
-//     after the Unix function getopt().  Its parameters argc and argv are
-//     the argument count and array as passed into the application on program 
-//     invocation. Getopt returns the next option letter in argv that 
-//     matches a letter in optstring.
-//
-//     optstring is a string of allowable option letters;  if a letter is 
-//     followed by a colon, the option is expected to have an argument that
-//     may or may not be separated from it by white space.  optarg contains
-//     the option argument on return from Getopt (use the Optarg property).
-//
-//     Option letters may be combined, e.g., "-ab" is equivalent to "-a -b".  
-//     Option letters are case sensitive.
-//
-//     Getopt places in the internal variable optind the argv index of the
-//     next argument to be processed.  optind is initialized to 0 before the 
-//     first call to Getopt.  Use the Optind property to query the optind 
-//     value.
-//
-//     When all options have been processed (i.e., up to the first non-option
-//     argument), Getopt returns '\0', optarg will contain the argument, 
-//     and optind will be set to the argv index of the argument.  If there 
-//     are no non-option arguments, optarg will be Empty.
-//
-//     The special option "--" may be used to delimit the end of the options;
-//     '\0' will be returned, and "--" (and everything after it) will be 
-//     skipped.
-//
-// Return Value:
-//     For option letters contained in the string optstring, Getopt will
-//     return the option letter.  Getopt returns a question mark ('?') when
-//     it encounters an option letter not included in optstring. '\0' is 
-//     returned when processing is finished.
-//
-// Limitations:
-//     1)  Long options are not supported.
-//     2)  The GNU double-colon extension is not supported.
-//     3)  The environment variable POSIXLY_CORRECT is not supported.
-//     4)  The + syntax is not supported.
-//     5)  The automatic permutation of arguments is not supported.
-//     6)  This implementation of Getopt() returns '\0' if an error is
-//         encountered, instead of -1 as the latest standard requires.
-//     7)  This implementation of Getopt() returns a char instead of an int.
-//
-// Example:
-//     static int Main(string[] args)
-//     {
-//         int argc = args.Length;
-//         char c;
-//         XGetopt go = new XGetopt();
-//         while ((c = go.Getopt(argc, args, "aBn:")) != '\0')
-//         {
-//             switch (c)
-//             {
-//                 case 'a':
-//                     Console.WriteLine("option -a");
-//                     break;
-//
-//                 case 'B':
-//                     Console.WriteLine("option -B");
-//                     break;
-//
-//                 case 'n': 
-//                     Console.WriteLine("option -n with arg '{0}'", go.Optarg);
-//                     break;
-//
-//                 case '?':
-//                     Console.WriteLine("illegal option or missing arg");
-//                     return 1;
-//             }
-//         }
-//
-//         if (go.Optarg != string.Empty)
-//             Console.WriteLine("non-option arg '{0}'", go.Optarg);
-//
-//         ...
-//
-//         return 0;
-//     }
-//
-// History:
-//     Version 1.0 - 2007 June 5
-//     - Initial public release
-//
-// License:
-//     This software is released into the public domain.  You are free to use
-//     it in any way you like, except that you may not sell this source code.
-//
-//     This software is provided "as is" with no expressed or implied warranty.
-//     I accept no liability for any damage or loss of business that this 
-//     software may cause.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-//#define XGETOPT_VERBOSE
-
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace XGetoptCS
-{
-	public class XGetopt
-	{
-		#region Class data
-
-		private int optind;
-		private string nextarg;
-		private string optarg;
-		
-		#endregion
-
-		#region Class properties
-
-		public string Optarg
-		{
-			get
-			{
-				return optarg;
-			}
-		}
-
-		public int Optind
-		{
-			get
-			{
-				return optind;
-			}
-		}
-
-		#endregion
-
-		#region Class public methods
-
-		public XGetopt()
-		{
-			Init();
-		}
-
-		public void Init()
-		{
-			optind = 0;
-			optarg = string.Empty;
-			nextarg = string.Empty;
-		}
-
-		public char Getopt(int argc, string[] argv, string optstring)
-		{
-#if XGETOPT_VERBOSE
-			Console.WriteLine("Getopt: argc = {0}", argc);
-#endif
-
-			optarg = string.Empty;
-
-			if (argc < 0)
-				return '?';
-
-#if XGETOPT_VERBOSE
-			if (optind < argc)
-				Console.WriteLine("Getopt: argv[{0}] = {1}", optind, argv[optind]);
-#endif
-
-			if (optind == 0)
-				nextarg = string.Empty;
-
-			if (nextarg.Length == 0)
-			{
-				if (optind >= argc || argv[optind][0] != '-' || argv[optind].Length < 2)
-				{
-					// no more options
-					optarg = string.Empty;
-					if (optind < argc)
-						optarg = argv[optind];	// return leftover arg
-					return '\0';
-				}
-
-				if (argv[optind] == "--")
-				{
-					// 'end of options' flag
-					optind++;
-					optarg = string.Empty;
-					if (optind < argc)
-						optarg = argv[optind];
-					return '\0';
-				}
-
-				nextarg = string.Empty;
-				if (optind < argc)
-				{
-					nextarg = argv[optind];
-					nextarg = nextarg.Substring(1);		// skip past -
-				}
-				optind++;
-			}
-
-			char c = nextarg[0];				// get option char
-			nextarg = nextarg.Substring(1);		// skip past option char
-			int index = optstring.IndexOf(c);	// check if this is valid option char
-
-			if (index == -1 || c == ':')
-				return '?';
-
-			index++;
-			if ((index < optstring.Length) && (optstring[index] == ':'))
-			{
-				// option takes an arg
-				if (nextarg.Length > 0)
-				{
-					optarg = nextarg;
-					nextarg = string.Empty;
-				}
-				else if (optind < argc)
-				{
-					optarg = argv[optind];
-					optind++;
-				}
-				else
-				{
-					return '?';
-				}
-			}
-
-			return c;
-		}
-
-		#endregion
-	}
-}
Index: gs/0.3.1/helpers/perl/postbuild.pl
===================================================================
--- tags/0.3.1/helpers/perl/postbuild.pl	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,14 +1,0 @@
-use strict;
-use POSIX;
-use File::Copy;
-use File::Basename;
-
-if ($#ARGV != 0) {
-  die "Incorrect syntax, usage: $ARGV[0] <file> ($#ARGV)"
-}
-
-my $file = $ARGV[0];
-my ($name,$path,$suffix) = fileparse($file,"\.zip");
-my $datestamp = strftime("%Y%m%d-%H%M",localtime) ;
-move $file,$path."\\".$name."-".$datestamp.$suffix
-  or die "Cannot copy $file $!\n" ;
Index: gs/0.3.1/include/CheckMemory.h
===================================================================
--- tags/0.3.1/include/CheckMemory.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,126 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-typedef BOOL (WINAPI *PFGlobalMemoryStatusEx)(LPMEMORYSTATUSEX lpBuffer);
-typedef BOOL (WINAPI *PFGlobalMemoryStatus)(LPMEMORYSTATUS lpBuffer);
-
-namespace CheckMemMethod
-{
-	const int None		= 0x0;
-	const int Extended	= 0x1;
-	const int Normal	= 0x2;
-} 
-
-class CheckMemoryException {
-private:
-	std::wstring name_;
-	std::wstring msg_;
-public:
-	CheckMemoryException(std::wstring name,std::wstring msg) : name_(name), msg_(msg) {};
-
-	std::wstring getError() {
-		return _T("Service: ") + name_ + _T(" caused: ") + msg_;
-	}
-};
-
-class CheckMemory {
-private:
-	typedef struct {
-		unsigned long long total;
-		unsigned long long avail;
-	} memType;
-public:
-	typedef struct {
-		unsigned long dwMemoryLoad;  
-		memType phys;
-		memType pageFile;
-		memType virtualMem;
-		double availExtendedVirtual;
-	} memData;
-
-public:
-	CheckMemory() : FEGlobalMemoryStatusEx(NULL), FEGlobalMemoryStatus(NULL), method_(CheckMemMethod::None)
-	{
-		hKernel32 = ::LoadLibrary(_TEXT("Kernel32"));
-		if (hKernel32)  
-		{
-			FEGlobalMemoryStatusEx = (PFGlobalMemoryStatusEx)::GetProcAddress(hKernel32, "GlobalMemoryStatusEx");
-			FEGlobalMemoryStatus = (PFGlobalMemoryStatus)::GetProcAddress(hKernel32, "GlobalMemoryStatus");
-		}
-		int method = getAvailableMethods();
-		if ((method&CheckMemMethod::Extended)==CheckMemMethod::Extended)
-			method_ = CheckMemMethod::Extended;
-		else
-			method_ = method;
-	}
-	virtual ~CheckMemory() {
-		if (hKernel32) FreeLibrary(hKernel32);
-	}
-
-	int getAvailableMethods() {
-		int ret = CheckMemMethod::None;
-		if (FEGlobalMemoryStatusEx)
-			ret |= CheckMemMethod::Extended;
-		if (FEGlobalMemoryStatus)
-			ret |= CheckMemMethod::Normal;
-		return ret;
-	}
-	int getSuggestedMethod();
-	int setMethod(int method) {
-		if ((getAvailableMethods()&method) != 0)
-			method_ = method;
-		return method_;
-	}
-
-	memData getMemoryStatus() {
-		memData ret;
-		if (method_ == CheckMemMethod::Extended) {
-			MEMORYSTATUSEX buffer;
-			buffer.dwLength = sizeof(buffer);
-			if (!FEGlobalMemoryStatusEx(&buffer))
-				throw CheckMemoryException(_T("CheckMemory"), _T("GlobalMemoryStatusEx failed: ") + error::lookup::last_error());
-			ret.phys.total = buffer.ullTotalPhys;
-			ret.phys.avail = buffer.ullAvailPhys;
-			ret.virtualMem.total = buffer.ullTotalVirtual;
-			ret.virtualMem.avail = buffer.ullAvailVirtual;
-			ret.pageFile.total = buffer.ullTotalPageFile;
-			ret.pageFile.avail = buffer.ullAvailPageFile;
-		} else if (method_ == CheckMemMethod::Normal) {
-			MEMORYSTATUS buffer;
-			buffer.dwLength = sizeof(buffer);
-			if (!FEGlobalMemoryStatus(&buffer))
-				throw CheckMemoryException(_T("CheckMemory"), _T("GlobalMemoryStatus failed: ") + error::lookup::last_error());
-			ret.phys.total = buffer.dwTotalPhys;
-			ret.phys.avail = buffer.dwAvailPhys;
-			ret.virtualMem.total = buffer.dwTotalVirtual;
-			ret.virtualMem.avail = buffer.dwAvailVirtual;
-			ret.pageFile.total = buffer.dwTotalPageFile;
-			ret.pageFile.avail = buffer.dwAvailPageFile;
-		}
-		return ret;
-	}
-private:
-	int method_;
-	HMODULE hKernel32;
-	PFGlobalMemoryStatusEx	FEGlobalMemoryStatusEx;
-	PFGlobalMemoryStatus	FEGlobalMemoryStatus;
-};
Index: gs/0.3.1/include/EnumNtSrv.cpp
===================================================================
--- tags/0.3.1/include/EnumNtSrv.cpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,244 +1,0 @@
-/*#############################################################################
-# ENUMNTSRV.CPP
-#
-# SCA Software International S.A.
-# http://www.scasoftware.com
-# scaadmin@scasoftware.com
-#
-# Copyright (c) 1999 SCA Software International S.A.
-#
-# Date: 05.12.1999.
-# Author: Zoran M.Todorovic
-#
-# This software is provided "AS IS", without a warranty of any kind.
-# You are free to use/modify this code but leave this header intact.
-#
-#############################################################################*/
-
-#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
-#include <windows.h>
-#include <WinSvc.h>
-#include "EnumNtSrv.h"
-
-#ifdef _DEBUG
-//#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-#define ASSERT(x)
-
-//=============================================================================
-// class TNtServiceInfo
-//
-//=============================================================================
-
-TNtServiceInfo::TNtServiceInfo()
-{
-	m_strServiceName.clear();
-	m_strDisplayName.clear();
-	m_strBinaryPath.clear();
-	m_dwServiceType = 0;
-	m_dwStartType = 0;
-	m_dwErrorControl = 0;
-	m_dwCurrentState = 0;
-}
-
-TNtServiceInfo::TNtServiceInfo(const TNtServiceInfo& source)
-{
-	*this = source;
-}
-
-TNtServiceInfo::~TNtServiceInfo()
-{
-}
-
-TNtServiceInfo& TNtServiceInfo::operator=(const TNtServiceInfo& source)
-{
-	m_strServiceName = source.m_strServiceName;
-	m_strDisplayName = source.m_strDisplayName;
-	m_strBinaryPath = source.m_strBinaryPath;
-	m_dwServiceType = source.m_dwServiceType;
-	m_dwStartType = source.m_dwStartType;
-	m_dwErrorControl = source.m_dwErrorControl;
-	m_dwCurrentState = source.m_dwCurrentState;
-	return *this;
-}
-
-// Return a service type as a string
-std::wstring TNtServiceInfo::GetServiceType(void)
-{
-	std::wstring str = _T("UNKNOWN");
-	if (m_dwServiceType & SERVICE_WIN32) {
-		if (m_dwServiceType & SERVICE_WIN32_OWN_PROCESS)
-			str = _T("WIN32_OWN_PROCESS");
-		else if (m_dwServiceType & SERVICE_WIN32_SHARE_PROCESS)
-			str = _T("WIN32_SHARE_PROCESS");
-		if (m_dwServiceType & SERVICE_INTERACTIVE_PROCESS)
-			str += _T(" (INTERACTIVE_PROCESS)");
-	}
-	switch (m_dwServiceType) {
-	case SERVICE_KERNEL_DRIVER: 
-		str = _T("KERNEL_DRIVER"); 
-		break;
-	case SERVICE_FILE_SYSTEM_DRIVER: 
-		str = _T("FILE_SYSTEM_DRIVER"); 
-		break;
-	};
-	return str;
-}
-
-// Return a service start type as a string
-std::wstring TNtServiceInfo::GetStartType(void)
-{
-	TCHAR *types[] = {
-		_T("BOOT_START"),		// 0
-			_T("SYSTEM_START"), // 1
-			_T("AUTO_START"),	// 2
-			_T("DEMAND_START"), // 3
-			_T("DISABLED")		// 4
-	};
-	return std::wstring(types[m_dwStartType]);
-}
-
-// Return this service error control as a string
-std::wstring TNtServiceInfo::GetErrorControl(void)
-{
-	ASSERT(m_dwErrorControl < 4);
-	TCHAR *types[] = {
-		_T("ERROR_IGNORE"),		// 0
-			_T("ERROR_NORMAL"), // 1
-			_T("ERROR_SEVERE"), // 2
-			_T("ERROR_CRITICAL")// 3
-	};
-	return std::wstring(types[m_dwErrorControl]);
-}
-
-// Return this service current state as a string
-std::wstring TNtServiceInfo::GetCurrentState(void)
-{
-	ASSERT(m_dwCurrentState < 8);
-	TCHAR *types[] = {
-		_T("UNKNOWN"),
-			_T("STOPPED"),			// 1
-			_T("START_PENDING"),	// 2
-			_T("STOP_PENDING"),		// 3
-			_T("RUNNING"),			// 4
-			_T("CONTINUE_PENDING"), // 5
-			_T("PAUSE_PENDING"),	// 6
-			_T("PAUSED")			// 7
-	};
-	return std::wstring(types[m_dwCurrentState]);
-}
-
-// Enumerate services on this machine and return a pointer to an array of objects.
-// Caller is responsible to delete this pointer using delete [] ...
-// dwType = bit OR of SERVICE_WIN32, SERVICE_DRIVER
-// dwState = bit OR of SERVICE_ACTIVE, SERVICE_INACTIVE
-TNtServiceInfo *TNtServiceInfo::EnumServices(DWORD dwType, DWORD dwState, DWORD *pdwCount)
-{
-	ASSERT(pdwCount != NULL);
-	// Maybe check if dwType and dwState have at least one constant specified
-	*pdwCount = 0;
-	TNtServiceInfo *info = NULL;
-	SC_HANDLE scman = ::OpenSCManager(NULL,NULL,SC_MANAGER_ENUMERATE_SERVICE);
-	if (scman) {
-		ENUM_SERVICE_STATUS service, *lpservice;
-		BOOL rc;
-		DWORD bytesNeeded,servicesReturned,resumeHandle = 0;
-		rc = ::EnumServicesStatus(scman,dwType,dwState,&service,sizeof(service),
-			&bytesNeeded,&servicesReturned,&resumeHandle);
-		if ((rc == FALSE) && (::GetLastError() == ERROR_MORE_DATA)) {
-			DWORD bytes = bytesNeeded + sizeof(ENUM_SERVICE_STATUS);
-			lpservice = new ENUM_SERVICE_STATUS [bytes];
-			::EnumServicesStatus(scman,dwType,dwState,lpservice,bytes,
-				&bytesNeeded,&servicesReturned,&resumeHandle);
-			*pdwCount = servicesReturned;    // Not a chance that 0 services is returned
-			info = new TNtServiceInfo [servicesReturned];
-			TCHAR Buffer[1024];				// Should be enough for service info
-			QUERY_SERVICE_CONFIG *lpqch = (QUERY_SERVICE_CONFIG*)Buffer;
-			for (DWORD ndx = 0; ndx < servicesReturned; ndx++) {
-				info[ndx].m_strServiceName = lpservice[ndx].lpServiceName;
-				info[ndx].m_strDisplayName = lpservice[ndx].lpDisplayName;
-				info[ndx].m_dwServiceType = lpservice[ndx].ServiceStatus.dwServiceType;
-				info[ndx].m_dwCurrentState = lpservice[ndx].ServiceStatus.dwCurrentState;
-				SC_HANDLE sh = ::OpenService(scman,lpservice[ndx].lpServiceName,SERVICE_QUERY_CONFIG);
-				if (::QueryServiceConfig(sh,lpqch,sizeof(Buffer),&bytesNeeded)) {
-					info[ndx].m_strBinaryPath = lpqch->lpBinaryPathName;
-					info[ndx].m_dwStartType = lpqch->dwStartType;
-					info[ndx].m_dwErrorControl = lpqch->dwErrorControl;
-				}
-				::CloseServiceHandle(sh);
-			}
-			delete [] lpservice;
-		}
-		::CloseServiceHandle(scman);
-	}
-	return info;
-}
-
-#define SC_BUF_LEN 4096
-TNtServiceInfo TNtServiceInfo::GetService(std::wstring name)
-{
-	TNtServiceInfo info;
-	info.m_strServiceName = name;
-	SC_HANDLE scman = ::OpenSCManager(NULL,NULL,SC_MANAGER_ENUMERATE_SERVICE);
-	if (!scman) {
-		throw NTServiceException(name, _T("Could not open ServiceControl manager"), GetLastError());
-	}
-	SC_HANDLE sh = ::OpenService(scman,name.c_str(),SERVICE_QUERY_STATUS);
-	if (!sh) {
-		DWORD bufLen = SC_BUF_LEN;
-		TCHAR *buf = new TCHAR[bufLen+1];
-		if (GetServiceKeyName(scman, name.c_str(), buf, &bufLen) == 0) {
-			::CloseServiceHandle(scman);
-			throw NTServiceException(name, _T("GetServiceKeyName: Could not translate service name"), GetLastError());
-		}
-		/*
-		Why does this not work? (a bug in the API? says it should return the correct size?)
-		if (bufLen >= SC_BUF_LEN) {
-			::CloseServiceHandle(scman);
-			throw NTServiceException(name, "Service name to long to handle", GetLastError());
-		}
-		buf[bufLen] = 0;
-		*/
-		sh = ::OpenService(scman,buf,SERVICE_QUERY_STATUS);
-		if (sh == NULL) {
-			::CloseServiceHandle(scman);
-			throw NTServiceException(name, _T("OpenService: Could not open Service"), GetLastError());
-		}
-	}
-	SERVICE_STATUS state;
-	if (::QueryServiceStatus(sh, &state)) {
-		info.m_dwCurrentState = state.dwCurrentState;
-		info.m_dwServiceType = state.dwServiceType;
-	} else {
-		::CloseServiceHandle(sh);
-		::CloseServiceHandle(scman);
-		throw NTServiceException(name, _T("QueryServiceStatus: Could not query service status"), GetLastError());
-	}
-	// TODO: Get more info here 
-	::CloseServiceHandle(sh);
-	::CloseServiceHandle(scman);
-	return info;
-}
-
-
-// Enumerate services on this machine and return an STL list of service objects 
-// dwType = bit OR of SERVICE_WIN32, SERVICE_DRIVER
-// dwState = bit OR of SERVICE_ACTIVE, SERVICE_INACTIVE
-void TNtServiceInfo::EnumServices(DWORD dwType, DWORD dwState, TNtServiceInfoList *pList)
-{
-	ASSERT(pList != NULL);
-	TNtServiceInfo *pSrvList = NULL;
-	DWORD dwCount = 0;
-	pSrvList = TNtServiceInfo::EnumServices(dwType, dwState, &dwCount);
-	for (DWORD dwIndex = 0; dwIndex < dwCount; dwIndex ++) {
-		pList->insert(pList->end(), pSrvList[dwIndex]);
-	}
-	delete [] pSrvList;
-}
-
-/*#############################################################################
-# End of file ENUMNTSRV.CPP
-#############################################################################*/
Index: gs/0.3.1/include/EnumNtSrv.h
===================================================================
--- tags/0.3.1/include/EnumNtSrv.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,81 +1,0 @@
-/*#############################################################################
-# ENUMNTSRV.H
-#
-# SCA Software International S.A.
-# http://www.scasoftware.com
-# scaadmin@scasoftware.com
-#
-# Copyright (c) 1999 SCA Software International S.A.
-#
-# Date: 05.12.1999.
-# Author: Zoran M.Todorovic
-#
-# This software is provided "AS IS", without a warranty of any kind.
-# You are free to use/modify this code but leave this header intact.
-#
-#############################################################################*/
-
-#ifndef __ENUMNTSRV_H__
-#define __ENUMNTSRV_H__
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#include <list>
-#include <string>
-#include <strEx.h>
-
-class TNtServiceInfo;
-
-typedef std::list<TNtServiceInfo> TNtServiceInfoList;
-
-//=============================================================================
-// class TNtServiceInfo
-//
-//=============================================================================
-
-class NTServiceException {
-private:
-	std::wstring name_;
-	std::wstring msg_;
-	unsigned int error_;
-public:
-	NTServiceException(std::wstring name,std::wstring msg,unsigned int error) : name_(name), error_(error), msg_(msg) {};
-
-	std::wstring getError() {
-		return _T("Service: ") + name_ + _T(" caused: ") + msg_ + _T("(") + strEx::itos(error_) + _T(")");
-	}
-};
-
-class TNtServiceInfo {
-public:
-	std::wstring m_strServiceName;
-	std::wstring m_strDisplayName;
-	std::wstring m_strBinaryPath;
-	DWORD m_dwServiceType;
-	DWORD m_dwStartType;
-	DWORD m_dwErrorControl;
-	DWORD m_dwCurrentState;
-
-public:
-	TNtServiceInfo();
-	TNtServiceInfo(const TNtServiceInfo& source);
-	TNtServiceInfo& operator=(const TNtServiceInfo& source);
-	virtual ~TNtServiceInfo();
-
-	std::wstring GetServiceType(void);
-	std::wstring GetStartType(void);
-	std::wstring GetErrorControl(void);
-	std::wstring GetCurrentState(void);
-
-	static TNtServiceInfo *EnumServices(DWORD dwType, DWORD dwState, DWORD *pdwCount);
-	static void EnumServices(DWORD dwType, DWORD dwState, TNtServiceInfoList *pList);
-	static TNtServiceInfo GetService(std::wstring);
-};
-
-#endif
-
-/*#############################################################################
-# End of file ENUMNTSRV.H
-#############################################################################*/
Index: gs/0.3.1/include/EnumProcess.cpp
===================================================================
--- tags/0.3.1/include/EnumProcess.cpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,355 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
-#include <windows.h>
-#include <tchar.h>
-#include <iostream>
-
-#include "EnumProcess.h"
-
-//////////////////////////////////////////////////////////////////////
-// Construction/Destruction
-//////////////////////////////////////////////////////////////////////
-
-
-CEnumProcess::CEnumProcess() : m_pProcesses(NULL), m_pModules(NULL), m_pCurrentP(NULL), m_pCurrentM(NULL), lpString(NULL), PSAPI(NULL)
-{
-	lpString = new TCHAR[MAX_FILENAME+1];
-	m_hProcessSnap = INVALID_HANDLE_VALUE;
-	m_hModuleSnap = INVALID_HANDLE_VALUE;
-
-	PSAPI = ::LoadLibrary(_TEXT("PSAPI"));
-	if (PSAPI)  
-	{
-		// Setup variables
-		m_MAX_COUNT = 256;
-		m_cProcesses = 0;
-		m_cModules   = 0;
-
-		// Find PSAPI functions
-		FEnumProcesses = (PFEnumProcesses)::GetProcAddress(PSAPI, "EnumProcesses");
-		FEnumProcessModules = (PFEnumProcessModules)::GetProcAddress(PSAPI, "EnumProcessModules");
-#ifdef UNICODE
-		FGetModuleFileNameEx = (PFGetModuleFileNameEx)::GetProcAddress(PSAPI, "GetModuleFileNameExW");
-#else
-		FGetModuleFileNameEx = (PFGetModuleFileNameEx)::GetProcAddress(PSAPI, "GetModuleFileNameExA");
-#endif
-	}
-
-	TOOLHELP = ::LoadLibrary(_TEXT("Kernel32"));
-	if (TOOLHELP)  
-	{
-		// Setup variables
-		m_pe.dwSize = sizeof(m_pe);
-		m_me.dwSize = sizeof(m_me);
-		// Find ToolHelp functions
-#ifdef UNICODE
-		FCreateToolhelp32Snapshot = (PFCreateToolhelp32Snapshot)::GetProcAddress(TOOLHELP, "CreateToolhelp32Snapshot");
-		FProcess32First = (PFProcess32First)::GetProcAddress(TOOLHELP, "Process32FirstW");
-		FProcess32Next = (PFProcess32Next)::GetProcAddress(TOOLHELP, "Process32NextW");
-		FModule32First = (PFModule32First)::GetProcAddress(TOOLHELP, "Module32FirstW");
-		FModule32Next = (PFModule32Next)::GetProcAddress(TOOLHELP, "Module32NextW");
-#else
-		FCreateToolhelp32Snapshot = (PFCreateToolhelp32Snapshot)::GetProcAddress(TOOLHELP, "CreateToolhelp32SnapshotA");
-		FProcess32First = (PFProcess32First)::GetProcAddress(TOOLHELP, "Process32FirstA");
-		FProcess32Next = (PFProcess32Next)::GetProcAddress(TOOLHELP, "Process32NextA");
-		FModule32First = (PFModule32First)::GetProcAddress(TOOLHELP, "Module32FirstA");
-		FModule32Next = (PFModule32Next)::GetProcAddress(TOOLHELP, "Module32NextA");
-#endif
-	}
-
-	// Find the preferred method of enumeration
-	m_method = ENUM_METHOD::NONE;
-	int method = GetAvailableMethods();
-	if (method == (method|ENUM_METHOD::PSAPI))    m_method = ENUM_METHOD::PSAPI;
-	if (method == (method|ENUM_METHOD::TOOLHELP)) m_method = ENUM_METHOD::TOOLHELP;
-	if (method == (method|ENUM_METHOD::PROC16))   m_method += ENUM_METHOD::PROC16;
-
-}
-
-CEnumProcess::~CEnumProcess()
-{
-	delete [] lpString;
-	if (m_pProcesses) {delete[] m_pProcesses;}
-	if (m_pModules)   {delete[] m_pModules;}
-	if (PSAPI) FreeLibrary(PSAPI);
-	if (TOOLHELP) FreeLibrary(TOOLHELP);
-	if (INVALID_HANDLE_VALUE != m_hProcessSnap) ::CloseHandle(m_hProcessSnap);
-	if (INVALID_HANDLE_VALUE != m_hModuleSnap)  ::CloseHandle(m_hModuleSnap);
-}
-
-
-
-int CEnumProcess::GetAvailableMethods()
-{
-	int res = 0;
-	// Does all psapi functions exist?
-	if (PSAPI&&FEnumProcesses&&FEnumProcessModules&&FGetModuleFileNameEx) 
-		res += ENUM_METHOD::PSAPI;
-	// How about Toolhelp?
-	if (TOOLHELP&&FCreateToolhelp32Snapshot&&FProcess32Next&&FProcess32Next&&FModule32First&&FModule32Next) 
-		res += ENUM_METHOD::TOOLHELP;
-
-	return res;
-}
-
-int CEnumProcess::SetMethod(int method)
-{
-	int avail = GetAvailableMethods();
-
-	if (method != ENUM_METHOD::PROC16 && avail == (method|avail)) 
-		m_method = method;
-
-	return m_method;
-}
-
-int CEnumProcess::GetSuggestedMethod()
-{
-	return m_method;
-}
-// Retrieves the first process in the enumeration. Should obviously be called before
-// GetProcessNext
-////////////////////////////////////////////////////////////////////////////////////
-BOOL CEnumProcess::GetProcessFirst(CEnumProcess::CProcessEntry *pEntry)
-{
-	if (ENUM_METHOD::NONE == m_method) return FALSE; 
-
-	if ((ENUM_METHOD::TOOLHELP|m_method) == m_method)
-		// Use ToolHelp functions
-		// ----------------------
-	{
-		m_hProcessSnap = FCreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
-		if (INVALID_HANDLE_VALUE == m_hProcessSnap) return FALSE;
-		if (!FProcess32First(m_hProcessSnap, &m_pe)) return FALSE;
-		pEntry->dwPID = m_pe.th32ProcessID;
-		pEntry->sFilename, m_pe.szExeFile;
-	}
-	else
-		// Use PSAPI functions
-		// ----------------------
-	{
-		if (m_pProcesses) {delete[] m_pProcesses;}
-		m_pProcesses = new DWORD[m_MAX_COUNT];
-		m_pCurrentP = m_pProcesses;
-		DWORD cbNeeded = 0;
-		BOOL OK = FEnumProcesses(m_pProcesses, m_MAX_COUNT*sizeof(DWORD), &cbNeeded);
-
-		// We might need more memory here..
-		if (cbNeeded >= m_MAX_COUNT*sizeof(DWORD)) 
-		{
-			m_MAX_COUNT += 256;
-			return GetProcessFirst(pEntry); // Try again.
-		}
-
-		if (!OK) return FALSE;
-		m_cProcesses = cbNeeded/sizeof(DWORD); 
-		return FillPStructPSAPI(*m_pProcesses, pEntry);
-	}
-
-	return TRUE;
-}
-
-// Returns the following process
-////////////////////////////////////////////////////////////////
-BOOL CEnumProcess::GetProcessNext(CEnumProcess::CProcessEntry *pEntry)
-{
-	if (ENUM_METHOD::NONE == m_method) return FALSE; 
-	pEntry->hTask16 = 0;
-
-
-	// Use ToolHelp functions
-	// ----------------------
-	if ((ENUM_METHOD::TOOLHELP|m_method) == m_method)
-	{
-		if (!FProcess32Next(m_hProcessSnap, &m_pe)) return FALSE;
-		pEntry->dwPID = m_pe.th32ProcessID;
-		pEntry->sFilename = m_pe.szExeFile;
-	}
-	else
-		// Use PSAPI functions
-		// ----------------------
-	{
-		if (--m_cProcesses <= 0) return FALSE;
-		FillPStructPSAPI(*++m_pCurrentP, pEntry);
-	}
-
-	return TRUE;
-}
-
-
-BOOL CEnumProcess::GetModuleFirst(DWORD dwPID, CEnumProcess::CModuleEntry *pEntry)
-{
-	if (ENUM_METHOD::NONE == m_method) return FALSE; 
-	// Use ToolHelp functions
-	// ----------------------
-	if ((ENUM_METHOD::TOOLHELP|m_method) == m_method)
-	{
-		if (INVALID_HANDLE_VALUE != m_hModuleSnap)  ::CloseHandle(m_hModuleSnap);
-		m_hModuleSnap = FCreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPID);
-
-		if(!FModule32First(m_hModuleSnap, &m_me)) return FALSE;
-
-		pEntry->pLoadBase = m_me.modBaseAddr;
-		pEntry->sFilename = m_me.szExePath;
-		pEntry->pPreferredBase = GetModulePreferredBase(dwPID, m_me.modBaseAddr);
-		return TRUE;
-	}
-	else
-		// Use PSAPI functions
-		// ----------------------
-	{
-		if (m_pModules) {delete[] m_pModules;}
-		m_pModules = new HMODULE[m_MAX_COUNT];
-		m_pCurrentM = m_pModules;
-		DWORD cbNeeded = 0;
-		HANDLE hProc = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, dwPID);
-		if (hProc)
-		{
-			BOOL OK = FEnumProcessModules(hProc, m_pModules, m_MAX_COUNT*sizeof(HMODULE), &cbNeeded);
-			CloseHandle(hProc);
-
-			// We might need more memory here..
-			if (cbNeeded >= m_MAX_COUNT*sizeof(HMODULE)) 
-			{
-				m_MAX_COUNT += 256;
-				return GetModuleFirst(dwPID, pEntry); // Try again.
-			}
-
-			if (!OK) return FALSE;
-
-			m_cModules = cbNeeded/sizeof(HMODULE); 
-			return FillMStructPSAPI(dwPID, *m_pCurrentM, pEntry);
-		}
-		return FALSE;
-	}
-}
-
-
-BOOL CEnumProcess::GetModuleNext(DWORD dwPID, CEnumProcess::CModuleEntry *pEntry)
-{
-	if (ENUM_METHOD::NONE == m_method) return FALSE; 
-
-	// Use ToolHelp functions
-	// ----------------------
-	if ((ENUM_METHOD::TOOLHELP|m_method) == m_method)
-	{
-		if(!FModule32Next(m_hModuleSnap, &m_me)) return FALSE;
-
-		pEntry->pLoadBase = m_me.modBaseAddr;
-		pEntry->sFilename = m_me.szExePath;
-		pEntry->pPreferredBase = GetModulePreferredBase(dwPID, m_me.modBaseAddr);
-		return TRUE;
-	}
-	else
-		// Use PSAPI functions
-		// ----------------------
-	{
-		if (--m_cModules <= 0) return FALSE;
-		return FillMStructPSAPI(dwPID, *++m_pCurrentM, pEntry);
-	}
-
-}
-
-
-
-BOOL CEnumProcess::FillPStructPSAPI(DWORD dwPID, CEnumProcess::CProcessEntry* pEntry)
-{
-	pEntry->dwPID = dwPID;
-
-	// Open process to get filename
-	HANDLE hProc = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, dwPID);
-	if (hProc)
-	{
-		HMODULE hMod;
-		DWORD size;
-		// Get the first module (the process itself)
-		if( FEnumProcessModules(hProc, &hMod, sizeof(hMod), &size) )
-		{
-			//Get filename
-
-			if( !FGetModuleFileNameEx( hProc, hMod, lpString, MAX_FILENAME) ) { 
-				pEntry->sFilename = _T("N/A (error)");
-			} else {
-				std::wstring path = lpString;
-				std::wstring::size_type pos = path.find_last_of(_T("\\"));
-				if (pos != std::wstring::npos) {
-					path = path.substr(++pos);
-				}
-				pEntry->sFilename = path;
-			}
-		}
-		CloseHandle(hProc);
-	}
-	else
-		pEntry->sFilename = _T("N/A (security restriction)");
-
-	return TRUE;
-}
-
-
-BOOL CEnumProcess::FillMStructPSAPI(DWORD dwPID, HMODULE mMod, CEnumProcess::CModuleEntry *pEntry)
-{
-	HANDLE hProc = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, dwPID);
-	if (hProc)
-	{
-		if( !FGetModuleFileNameEx( hProc, mMod, lpString, MAX_FILENAME) )
-		{
-			pEntry->sFilename = _T("N/A (error)");
-		} else {
-			pEntry->sFilename = lpString;
-		}
-		pEntry->pLoadBase = (PVOID) mMod;
-		pEntry->pPreferredBase = GetModulePreferredBase(dwPID, (PVOID)mMod);
-		CloseHandle(hProc);
-		return TRUE;
-	}
-	return FALSE;
-}
-
-
-
-PVOID CEnumProcess::GetModulePreferredBase(DWORD dwPID, PVOID pModBase)
-{
-	if (ENUM_METHOD::NONE == m_method) return NULL; 
-	HANDLE hProc = OpenProcess(PROCESS_VM_READ, FALSE, dwPID);
-	if (hProc)
-	{
-		IMAGE_DOS_HEADER idh;
-		IMAGE_NT_HEADERS inh;
-		//Read DOS header
-		ReadProcessMemory(hProc, pModBase, &idh, sizeof(idh), NULL);
-
-		if (IMAGE_DOS_SIGNATURE == idh.e_magic) // DOS header OK?
-			// Read NT headers at offset e_lfanew 
-			ReadProcessMemory(hProc, (PBYTE)pModBase + idh.e_lfanew, &inh, sizeof(inh), NULL);
-
-		CloseHandle(hProc); 
-
-		if (IMAGE_NT_SIGNATURE == inh.Signature) //NT signature OK?
-			// Get the preferred base...
-			return (PVOID) inh.OptionalHeader.ImageBase; 
-
-	}
-
-	return NULL; //didn't find anything useful..
-}
-
-
Index: gs/0.3.1/include/EnumProcess.h
===================================================================
--- tags/0.3.1/include/EnumProcess.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,142 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <psapi.h>
-#include <tlhelp32.h>
-#include <string>
-
-
-namespace ENUM_METHOD 
-{
-	const int NONE    = 0x0;
-	const int PSAPI   = 0x1;
-	const int TOOLHELP= 0x2;
-	const int PROC16  = 0x4;
-} 
-
-const int MAX_FILENAME = 256;
-
-#ifdef UNICODE
-// Functions loaded from PSAPI
-typedef BOOL (WINAPI *PFEnumProcesses)(DWORD * lpidProcess, DWORD cb, DWORD * cbNeeded);
-typedef BOOL (WINAPI *PFEnumProcessModules)(HANDLE hProcess, HMODULE * lphModule, DWORD cb, LPDWORD lpcbNeeded);
-typedef DWORD (WINAPI *PFGetModuleFileNameEx)(HANDLE hProcess, HMODULE hModule, LPTSTR lpFilename, DWORD nSize);
-
-//Functions loaded from Kernel32
-typedef HANDLE (WINAPI *PFCreateToolhelp32Snapshot)(DWORD dwFlags, DWORD th32ProcessID);
-typedef BOOL (WINAPI *PFProcess32First)(HANDLE hSnapshot, LPPROCESSENTRY32W lppe);
-typedef BOOL (WINAPI *PFProcess32Next)(HANDLE hSnapshot, LPPROCESSENTRY32W lppe);
-typedef BOOL (WINAPI *PFModule32First)(HANDLE hSnapshot, LPMODULEENTRY32W lpme);
-typedef BOOL (WINAPI *PFModule32Next)(HANDLE hSnapshot, LPMODULEENTRY32W lpme);
-#else
-// Functions loaded from PSAPI
-typedef BOOL (WINAPI *PFEnumProcesses)(DWORD * lpidProcess, DWORD cb, DWORD * cbNeeded);
-typedef BOOL (WINAPI *PFEnumProcessModules)(HANDLE hProcess, HMODULE * lphModule, DWORD cb, LPDWORD lpcbNeeded);
-typedef DWORD (WINAPI *PFGetModuleFileNameEx)(HANDLE hProcess, HMODULE hModule, LPTSTR lpFilename, DWORD nSize);
-
-//Functions loaded from Kernel32
-typedef HANDLE (WINAPI *PFCreateToolhelp32Snapshot)(DWORD dwFlags, DWORD th32ProcessID);
-typedef BOOL (WINAPI *PFProcess32First)(HANDLE hSnapshot, LPPROCESSENTRY32 lppe);
-typedef BOOL (WINAPI *PFProcess32Next)(HANDLE hSnapshot, LPPROCESSENTRY32 lppe);
-typedef BOOL (WINAPI *PFModule32First)(HANDLE hSnapshot, LPMODULEENTRY32 lpme);
-typedef BOOL (WINAPI *PFModule32Next)(HANDLE hSnapshot, LPMODULEENTRY32 lpme);
-#endif
-
-class CEnumProcess  
-{
-public:
-
-	struct CProcessEntry
-	{
-		std::wstring sFilename;
-		DWORD  dwPID;
-		WORD   hTask16;
-		// Constructors/Destructors
-		CProcessEntry() : dwPID(0), hTask16(0) {}
-		CProcessEntry(CProcessEntry &e) : dwPID(e.dwPID), hTask16(e.hTask16), sFilename(e.sFilename) {}
-		virtual ~CProcessEntry() {}
-	};
-
-	struct CModuleEntry
-	{
-		std::wstring sFilename;
-		PVOID pLoadBase;
-		PVOID pPreferredBase;
-		// Constructors/Destructors
-		CModuleEntry() : pLoadBase(NULL), pPreferredBase(NULL) {}
-		CModuleEntry(CModuleEntry &e) : pLoadBase(e.pLoadBase), pPreferredBase(e.pPreferredBase), sFilename(e.sFilename) {}
-		virtual ~CModuleEntry() {}
-	};
-
-	CEnumProcess();
-	virtual ~CEnumProcess();
-
-	BOOL GetModuleNext(DWORD dwPID, CModuleEntry* pEntry);
-	BOOL GetModuleFirst(DWORD dwPID, CModuleEntry* pEntry);
-	BOOL GetProcessNext(CProcessEntry *pEntry);    
-	BOOL GetProcessFirst(CProcessEntry* pEntry);
-
-	int GetAvailableMethods();
-	int GetSuggestedMethod();
-	int SetMethod(int method);
-
-
-
-protected:
-
-	PVOID GetModulePreferredBase(DWORD dwPID, PVOID pModBase);
-	// General members
-	int m_method;
-
-	// PSAPI related members
-	HMODULE PSAPI;   //Handle to the module
-	int m_MAX_COUNT; 
-	DWORD* m_pProcesses, *m_pCurrentP; // Process identifiers
-	long m_cProcesses, m_cModules;     // Number of Processes/Modules found
-	HMODULE* m_pModules, *m_pCurrentM; // Handles to Modules 
-	// PSAPI related functions
-	PFEnumProcesses       FEnumProcesses;           // Pointer to EnumProcess
-	PFEnumProcessModules  FEnumProcessModules; // Pointer to EnumProcessModules
-	PFGetModuleFileNameEx FGetModuleFileNameEx;// Pointer to GetModuleFileNameEx
-	BOOL FillPStructPSAPI(DWORD pid, CProcessEntry* pEntry);
-	BOOL FillMStructPSAPI(DWORD dwPID, HMODULE mMod, CModuleEntry* pEntry);
-
-	// ToolHelp related members
-	HANDLE m_hProcessSnap, m_hModuleSnap;
-	HMODULE TOOLHELP;   //Handle to the module (Kernel32)
-#ifdef UNICODE
-	PROCESSENTRY32W m_pe;
-	MODULEENTRY32W  m_me;
-#else
-	PROCESSENTRY32 m_pe;
-	MODULEENTRY32  m_me;
-#endif
-	// ToolHelp related functions
-	PFCreateToolhelp32Snapshot FCreateToolhelp32Snapshot;
-	PFProcess32First FProcess32First;
-	PFProcess32Next  FProcess32Next;
-	PFModule32First  FModule32First;
-	PFModule32Next   FModule32Next;   
-	LPTSTR lpString;
-
-};
-
Index: gs/0.3.1/include/INISettings.h
===================================================================
--- tags/0.3.1/include/INISettings.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,290 +1,0 @@
-#pragma once
-
-#include <Singleton.h>
-#include <string>
-#include <map>
-#include <TSettings.h>
-#include <config.h>
-#include <iostream>
-#include <fstream>
-
-#define BUFF_LEN 4096
-
-
-class INIFile {
-private:
-	std::wstring file_;
-public:
-	typedef std::list<std::wstring> sectionList;
-
-public:
-	INIFile(std::wstring file) : file_(file) {}
-
-	std::wstring getFile() const {
-		return file_;
-	}
-	/**
-	 * Retrieves a list of section
-	 * @access public 
-	 * @returns INIFile::sectionList
-	 * @qualifier
-	 * @param unsigned int bufferLength
-	 */
-	sectionList getSections(unsigned int bufferLength = BUFF_LEN) {
-		sectionList ret;
-		TCHAR* buffer = new TCHAR[bufferLength+1];
-		unsigned int count = ::GetPrivateProfileSectionNames(buffer, BUFF_LEN, file_.c_str());
-		if (count == bufferLength-2) {
-			delete [] buffer;
-			return getSections(bufferLength*10);
-		}
-		unsigned int last = 0;
-		for (unsigned int i=0;i<count;i++) {
-			if (buffer[i] == '\0') {
-				std::wstring s = &buffer[last];
-				ret.push_back(s);
-				last = i+1;
-			}
-		}
-		delete [] buffer;
-		return ret;
-	}
-
-	/**
-	* Get all keys from a section as a list<string>
-	* @param section The section to return all keys from
-	* @return A list with all keys from the section
-	*/
-	sectionList getSection(std::wstring section, unsigned int bufferLength = BUFF_LEN) {
-		sectionList ret;
-		TCHAR* buffer = new TCHAR[bufferLength+1];
-		unsigned int count = GetPrivateProfileSection(section.c_str(), buffer, bufferLength, file_.c_str());
-		if (count == bufferLength-2) {
-			delete [] buffer;
-			return getSection(section, bufferLength*10);
-		}
-		unsigned int last = 0;
-		for (unsigned int i=0;i<count;i++) {
-			if (buffer[i] == '\0') {
-				std::wstring s = &buffer[last];
-				std::size_t p = s.find('=');
-				if (p == std::wstring::npos)
-					ret.push_back(s);
-				else
-					ret.push_back(s.substr(0,p));
-				last = i+1;
-			}
-		}
-		delete [] buffer;
-		return ret;
-	}
-	/**
-	* Get a string from the settings file
-	* @param section Section to read from 
-	* @param key Key to retrieve
-	* @param defaultValue Default value to return if key is not found
-	* @return The value or defaultValue if the key is not found
-	*/
-	std::wstring getString(std::wstring section, std::wstring key, std::wstring defaultValue = _T("")) const {
-		TCHAR* buffer = new TCHAR[1024];
-		GetPrivateProfileString(section.c_str(), key.c_str(), defaultValue.c_str(), buffer, 1023, file_.c_str());
-		std::wstring ret = buffer;
-		delete [] buffer;
-		return ret;
-	}
-
-	void setString(std::wstring section, std::wstring key, std::wstring value) {
-		//		if (value.size() > 0)
-		//WritePrivateProfileString(section.c_str(), key.c_str(), NULL, file_.c_str());
-		WritePrivateProfileString(section.c_str(), key.c_str(), value.c_str(), file_.c_str());
-		//		else
-		//			WritePrivateProfileString(section.c_str(), key.c_str(), NULL, file_.c_str());
-	}
-
-	/**
-	* Get an integer from the settings file
-	* @param section Section to read from 
-	* @param key Key to retrieve
-	* @param defaultValue Default value to return if key is not found
-	* @return The value or defaultValue if the key is not found
-	*/
-	int getInt(std::wstring section, std::wstring key, int defaultValue = 0) {
-		return GetPrivateProfileInt(section.c_str(), key.c_str(), defaultValue, file_.c_str());
-	}
-	void setInt(std::wstring section, std::wstring key, int value) {
-		WritePrivateProfileString(section.c_str(), key.c_str(), strEx::itos(value).c_str(), file_.c_str());
-	}
-};
-
-class INIFileBundle {
-	std::list<INIFile*> files_;
-	INIFile *coreFile_;
-	std::wstring basepath_;
-public:
-	INIFileBundle(std::wstring basepath, std::wstring coreFile) : coreFile_(NULL), basepath_(basepath) {
-		importFile(basepath_, coreFile, true);
-	}
-
-	void importFile(std::wstring basepath, const std::wstring fname, bool corefile = false) {
-		std::wstring filename = basepath + fname;
-		INIFile *tmp = new INIFile(filename);
-		if (corefile)
-			coreFile_ = tmp;
-		files_.push_front(tmp);
-		INIFile::sectionList lst = tmp->getSection(_T("includes"));
-		for(INIFile::sectionList::const_iterator cit = lst.begin(); cit != lst.end(); ++cit) {
-			if (!hasFile(*cit))
-				importFile(basepath, *cit);
-		}
-	}
-	bool hasFile(const std::wstring file) const {
-		for (std::list<INIFile*>::const_iterator cit = files_.begin(); cit != files_.end(); ++cit) {
-			if (file == (*cit)->getFile())
-				return true;
-		}
-		return false;
-	}
-
-
-	/**
-	* Retrieves a list of section
-	* @access public 
-	* @returns INIFile::sectionList
-	* @qualifier
-	* @param unsigned int bufferLength
-	*/
-	INIFile::sectionList getSections(unsigned int bufferLength = BUFF_LEN) {
-		INIFile::sectionList ret;
-		for (std::list<INIFile*>::const_iterator cit = files_.begin(); cit != files_.end(); ++cit) {
-			INIFile::sectionList tmp = (*cit)->getSections(bufferLength);
-			ret.insert(ret.begin(), tmp.begin(), tmp.end());
-		}
-		return ret;
-	}
-
-	/**
-	* Get all keys from a section as a list<string>
-	* @param section The section to return all keys from
-	* @return A list with all keys from the section
-	*/
-	INIFile::sectionList getSection(std::wstring section, unsigned int bufferLength = BUFF_LEN) {
-		INIFile::sectionList ret;
-		for (std::list<INIFile*>::const_iterator cit = files_.begin(); cit != files_.end(); ++cit) {
-			INIFile::sectionList tmp = (*cit)->getSection(section, bufferLength);
-			ret.insert(ret.begin(), tmp.begin(), tmp.end());
-		}
-		return ret;
-	}
-	/**
-	* Get a string from the settings file
-	* @param section Section to read from 
-	* @param key Key to retrieve
-	* @param defaultValue Default value to return if key is not found
-	* @return The value or defaultValue if the key is not found
-	*/
-	std::wstring getString(std::wstring section, std::wstring key, std::wstring defaultValue = _T("")) const {
-		for (std::list<INIFile*>::const_iterator cit = files_.begin(); cit != files_.end(); ++cit) {
-			std::wstring s = (*cit)->getString(section, key, defaultValue);
-			if (s != defaultValue)
-				return s;
-		}
-		return defaultValue;
-	}
-
-	void setString(std::wstring section, std::wstring key, std::wstring value) {
-		if (coreFile_ != NULL)
-			coreFile_->setString(section, key, value);
-	}
-
-	/**
-	* Get an integer from the settings file
-	* @param section Section to read from 
-	* @param key Key to retrieve
-	* @param defaultValue Default value to return if key is not found
-	* @return The value or defaultValue if the key is not found
-	*/
-	int getInt(std::wstring section, std::wstring key, int defaultValue = 0) {
-		for (std::list<INIFile*>::const_iterator cit = files_.begin(); cit != files_.end(); ++cit) {
-			int s = (*cit)->getInt(section, key, defaultValue);
-			if (s != defaultValue)
-				return s;
-		}
-		return defaultValue;
-	}
-	void setInt(std::wstring section, std::wstring key, int value) {
-		if (coreFile_ != NULL)
-			coreFile_->setInt(section, key, value);
-	}
-};
-
-class INISettings : public TSettings
-{
-private:
-//	typedef std::map<std::wstring,std::wstring> saveKeyList;
-//	typedef std::map<std::wstring,saveKeyList> saveSectionList;
-	INIFileBundle settingsBundle;
-	std::wstring basepath_;
-public:
-	INISettings(std::wstring basepath, std::wstring file) : settingsBundle(basepath, file)
-	{
-	}
-
-	virtual ~INISettings(void)
-	{
-	}
-	std::wstring getActiveType() {
-		return _T("INI-file");
-	}
-	int getActiveTypeID() {
-		return INISettings::getType();
-	}
-	static int getType() {
-		return 1;
-	}
-
-	static bool hasSettings(std::wstring basepath, std::wstring file) {
-		INIFile ini(basepath + _T("\\") + file);
-		return ini.getInt(MAIN_SECTION_TITLE, MAIN_USEFILE, MAIN_USEFILE_DEFAULT) == 1;
-	}
-
-	sectionList getSections(unsigned int bufferLength = BUFF_LEN) {
-		return settingsBundle.getSections(bufferLength);
-	}
-
-	/**
-	* Get all keys from a section as a list<string>
-	* @param section The section to return all keys from
-	* @return A list with all keys from the section
-	*/
-	sectionList getSection(std::wstring section, unsigned int bufferLength = BUFF_LEN) {
-		return settingsBundle.getSection(section, bufferLength);
-	}
-	/**
-	* Get a string from the settings file
-	* @param section Section to read from 
-	* @param key Key to retrieve
-	* @param defaultValue Default value to return if key is not found
-	* @return The value or defaultValue if the key is not found
-	*/
-	std::wstring getString(std::wstring section, std::wstring key, std::wstring defaultValue = _T("")) const {
-		return settingsBundle.getString(section, key, defaultValue);
-	}
-
-	void setString(std::wstring section, std::wstring key, std::wstring value) {
-		return settingsBundle.setString(section, key, value);
-	}
-
-	/**
-	* Get an integer from the settings file
-	* @param section Section to read from 
-	* @param key Key to retrieve
-	* @param defaultValue Default value to return if key is not found
-	* @return The value or defaultValue if the key is not found
-	*/
-	int getInt(std::wstring section, std::wstring key, int defaultValue = 0) {
-		return settingsBundle.getInt(section, key, defaultValue);
-	}
-	void setInt(std::wstring section, std::wstring key, int value) {
-		return settingsBundle.setInt(section, key, value);
-	}
-};
Index: gs/0.3.1/include/Mutex.h
===================================================================
--- tags/0.3.1/include/Mutex.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,253 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include "Singleton.h"
-#include "strEx.h"
-#include <windows.h>
-#include <iostream>
-
-/**
- * @ingroup NSClient++
- * A simple class to wrap the W32 API mutex object.
- *
- * @version 1.0
- * first version
- *
- * @date 02-14-2005
- *
- * @author mickem
- *
- * @par license
- * This code is absolutely free to use and modify. The code is provided "as is" with
- * no expressed or implied warranty. The author accepts no liability if it causes
- * any damage to your computer, causes your pet to fall ill, increases baldness
- * or makes your car start emitting strange noises when you start it up.
- * This code has no bugs, just undocumented features!
- * 
- * @todo 
- *
- * @bug 
- *
- */
-class MutexHandler {
-private:
-	HANDLE hMutex;
-public:
-	/**
-	 * Default c-tor.
-	 * Creates an unnamed mutex.
-	 */
-	MutexHandler() : hMutex(NULL) {
-		hMutex = CreateMutex(NULL, FALSE, NULL);
-		if (hMutex == NULL && GetLastError() == ERROR_ALREADY_EXISTS )
-			hMutex = OpenMutex(MUTEX_ALL_ACCESS, FALSE, NULL);
-		if (hMutex == NULL) {
-			std::wcout << _T("Error in mutex creation: ") << GetLastError()	<< std::endl;
-		}
-	}
-	/**
-	 * Default d-tor.
-	 * Destroys releases the mutex handle.
-	 */
-	virtual ~MutexHandler() {
-		if (hMutex)
-			CloseHandle(hMutex);
-		hMutex = NULL;
-	}
-	/**
-	 * HANDLe cast operator to retrieve the handle from the enclosed mutex object.
-	 * @return a handle to the mutex object.
-	 */
-	operator HANDLE () const {
-		return hMutex;
-	}
-};
-
-/**
- * @ingroup NSClient++
- * A simple mutex-lock class that makes mutex management simple.
- * By using the c-tor/d-tor to lock and release the mutex a block only needs to "contain" this object to be "safe".
- *<pre>
- * {
- *   MutexLock mutex(mutexHandler);
- *   if (!mutex.hasMutex()) {
- *     // Do stuff thread safe...
- *   }
- * }
- *</pre>
- *
- * @version 1.0
- * first version
- *
- * @date 02-14-2005
- *
- * @author mickem
- *
- * @par license
- * This code is absolutely free to use and modify. The code is provided "as is" with
- * no expressed or implied warranty. The author accepts no liability if it causes
- * any damage to your computer, causes your pet to fall ill, increases baldness
- * or makes your car start emitting strange noises when you start it up.
- * This code has no bugs, just undocumented features!
- * 
- */
-class MutexLock {
-private:
-	bool bHasMutex;		// Status: true if we have a mutex lock
-	HANDLE hMutex_;		// Handle to the mutex object.
-	DWORD dwWaitResult;	// Result from the mutex operations
-public:
-	/**
-	 * Default c-tor.
-	 * Waits for the mutex object.
-	 * @param hMutex The mutex to use
-	 * @timeout The timeout before abandoning wait
-	 */
-	MutexLock(HANDLE hMutex, DWORD timeout = 5000L) : bHasMutex(false), hMutex_(hMutex) {
-		if (hMutex_ == NULL) {
-			std::wcout << _T("Error in mutex lock: ") << std::endl;
-			bHasMutex = false;
-			return;
-		}
-		dwWaitResult = WaitForSingleObject(hMutex_, timeout);
-		switch (dwWaitResult) {
-			// The thread got mutex ownership.
-        case WAIT_OBJECT_0:
-			bHasMutex = true;
-			break;
-        case WAIT_TIMEOUT: 
-			bHasMutex = false;
-			break;
-        case WAIT_ABANDONED: 
-			bHasMutex = false;
-			break;
-		}
-	}
-	/**
-	 * An attempt to simplify the has mutex thingy (don't know if it works, haven't tried it since I wrote this class a few years ago :)
-	 * @return true if we have a mutex lock.
-	 */
-	operator bool () const {
-		return bHasMutex;
-	}
-	/**
-	 * Check if we actually got the mutex (might have timed out)
-	 * @return 
-	 */
-	bool hasMutex() const {
-		return bHasMutex;
-	}
-	/**
-	 * Default d-tor.
-	 * Release the mutex
-	 */
-	virtual ~MutexLock() {
-		if (bHasMutex)
-	        ReleaseMutex(hMutex_);
-		bHasMutex = false;
-	}
-	/**
-	 * Get the result of the wait operation.
-	 * @return Result of the wait operation
-	 */
-	DWORD getWaitResult() const {
-		return dwWaitResult;
-	}
-};
-
-class ManualMutexLock {
-private:
-	bool bHasMutex;		// Status: true if we have a mutex lock
-	HANDLE hMutex_;		// Handle to the mutex object.
-	DWORD dwWaitResult;	// Result from the mutex operations
-public:
-	/**
-	* Default c-tor.
-	* Waits for the mutex object.
-	* @param hMutex The mutex to use
-	* @timeout The timeout before abandoning wait
-	*/
-	ManualMutexLock(HANDLE hMutex) : bHasMutex(false), hMutex_(hMutex) {}
-	
-	/**
-	* Waits for the mutex object.
-	* @timeout The timeout before abandoning wait
-	*/
-	void lock(DWORD timeout = 5000L) {
-		if (hMutex_ == NULL) {
-			std::wcout << _T("Error in mutex lock: ") << std::endl;
-			bHasMutex = false;
-			return;
-		}
-		dwWaitResult = WaitForSingleObject(hMutex_, timeout);
-		switch (dwWaitResult) {
-			// The thread got mutex ownership.
-		case WAIT_OBJECT_0:
-			bHasMutex = true;
-			break;
-		case WAIT_TIMEOUT: 
-			bHasMutex = false;
-			break;
-		case WAIT_ABANDONED: 
-			bHasMutex = false;
-			break;
-		}
-	}
-	/**
-	* An attempt to simplify the has mutex thingy (don't know if it works, haven't tried it since I wrote this class a few years ago :)
-	* @return true if we have a mutex lock.
-	*/
-	operator bool () const {
-		return bHasMutex;
-	}
-	/**
-	* Check if we actually got the mutex (might have timed out)
-	* @return 
-	*/
-	bool hasMutex() const {
-		return bHasMutex;
-	}
-	/**
-	* Default d-tor.
-	* Release the mutex
-	*/
-	virtual ~ManualMutexLock() {
-		if (bHasMutex)
-			ReleaseMutex(hMutex_);
-		bHasMutex = false;
-	}
-	/**
-	* Release the mutex
-	*/
-	void release() {
-		if (bHasMutex)
-			ReleaseMutex(hMutex_);
-		bHasMutex = false;
-	}
-	/**
-	* Get the result of the wait operation.
-	* @return Result of the wait operation
-	*/
-	DWORD getWaitResult() const {
-		return dwWaitResult;
-	}
-};
Index: gs/0.3.1/include/MutexRW.h
===================================================================
--- tags/0.3.1/include/MutexRW.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,209 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <iostream>
-#include <assert.h>
-
-//#define TRACE(x, y) 
-//#define VERIFY(x) x
-
-class MutexRW
-{
-protected:
-	HANDLE		m_semReaders;
-	HANDLE		m_semWriters;
-	int			m_nReaders;
-public:
-	MutexRW() 
-		: m_semReaders(NULL),
-		m_semWriters(NULL),
-		m_nReaders(0)
-	{
-		// initialize the Readers & Writers variables
-		m_semReaders	= ::CreateSemaphore(NULL, 1, 1, NULL);
-		m_semWriters	= ::CreateSemaphore(NULL, 1, 1, NULL);
-		m_nReaders		= 0;
-
-		if (m_semReaders == NULL || m_semWriters == NULL)
-		{
-			LPVOID lpMsgBuf;
-			FormatMessage( 
-				FORMAT_MESSAGE_ALLOCATE_BUFFER | 
-				FORMAT_MESSAGE_FROM_SYSTEM | 
-				FORMAT_MESSAGE_IGNORE_INSERTS,
-				NULL,
-				GetLastError(),
-				MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
-				(LPTSTR) &lpMsgBuf,
-				0,
-				NULL 
-				);
-			std::wcout << "***** ERROR: CreateSemaphore: %s\n" << (LPCTSTR)lpMsgBuf;
-			//			  TRACE( "***** ERROR: CreateSemaphore: %s\n", (LPCTSTR)lpMsgBuf );
-			LocalFree( lpMsgBuf );			
-		}
-	};
-
-	virtual ~MutexRW()
-	{
-		if (m_semWriters)
-			::CloseHandle(m_semWriters);
-
-		m_semWriters = NULL;
-		if (m_semReaders)
-			::CloseHandle(m_semReaders);
-		m_semReaders = NULL;
-	}
-
-	inline bool Lock_DataRead(DWORD dwMilliseconds = INFINITE) {
-		DWORD dwEvent = WAIT_TIMEOUT;
-
-		// P( semReaders )
-		dwEvent = ::WaitForSingleObject( m_semReaders, dwMilliseconds );
-		if (dwEvent != WAIT_OBJECT_0)
-			return false;
-		//		  assert(dwEvent == WAIT_OBJECT_0);
-
-		m_nReaders++;
-
-		if (m_nReaders == 1)
-		{
-			// P( semWriters )
-			dwEvent = ::WaitForSingleObject( m_semWriters, dwMilliseconds );
-			if (dwEvent != WAIT_OBJECT_0) {
-				::ReleaseSemaphore( m_semReaders, 1, NULL );
-				return false;
-			}
-			//assert(dwEvent == WAIT_OBJECT_0);
-		}
-		// V( semReaders )
-		::ReleaseSemaphore( m_semReaders, 1, NULL );
-		return true;
-	};
-
-	inline bool Unlock_DataRead() {
-		DWORD dwEvent = WAIT_TIMEOUT;
-		// P( semReaders )
-		dwEvent = ::WaitForSingleObject( m_semReaders, INFINITE );
-		assert(dwEvent == WAIT_OBJECT_0);
-
-		m_nReaders--;
-
-		if (m_nReaders == 0)
-		{
-			// V( semWriters )
-			::ReleaseSemaphore(m_semWriters, 1, NULL);
-		}
-		// V( semReaders )
-		::ReleaseSemaphore( m_semReaders, 1, NULL );
-		return true;
-	};
-
-	inline bool Lock_DataWrite(DWORD dwMilliseconds = INFINITE){
-		DWORD dwEvent = WAIT_TIMEOUT;
-
-		// P( semWriters )
-		dwEvent = ::WaitForSingleObject( m_semWriters, dwMilliseconds );
-		if (dwEvent != WAIT_OBJECT_0)
-			return false;
-		//assert(dwEvent == WAIT_OBJECT_0);
-		return true;
-	}
-
-	inline void Unlock_DataWrite(){
-		// V( semWriters )
-		::ReleaseSemaphore(m_semWriters, 1, NULL);
-	};
-
-};
-
-class ReadLock
-{
-protected:
-	MutexRW*	m_pMutexRW;
-	bool		m_bIsLocked;
-public:
-	ReadLock(MutexRW* pMutexRW, const bool bInitialLock = false, DWORD dwMilliseconds = INFINITE)
-		:  m_pMutexRW(pMutexRW), m_bIsLocked(false)
-	{
-		assert(m_pMutexRW);
-		if (bInitialLock){
-			m_bIsLocked = m_pMutexRW->Lock_DataRead(dwMilliseconds);
-		}
-	};
-
-	inline const bool& IsLocked() const{
-		return m_bIsLocked;
-	};
-
-	inline void Lock(DWORD dwMilliseconds = INFINITE){
-		assert(m_bIsLocked == false);
-		m_bIsLocked = m_pMutexRW->Lock_DataRead(dwMilliseconds);
-	};
-
-	inline void Unlock(){
-		assert(m_bIsLocked);
-		m_pMutexRW->Unlock_DataRead();
-		m_bIsLocked = false;
-	};
-	virtual ~ReadLock(){
-		if (m_bIsLocked){
-			m_pMutexRW->Unlock_DataRead();
-		}
-	};
-};
-
-class WriteLock
-{
-protected:
-	MutexRW*	m_pMutexRW;
-	bool		m_bIsLocked;
-public:
-	WriteLock(MutexRW* pMutexRW, const bool bInitialLock = false, DWORD dwMilliseconds = INFINITE) 
-		:  m_pMutexRW(pMutexRW), m_bIsLocked(false)
-	{
-		assert(m_pMutexRW);
-		if (bInitialLock){
-			m_bIsLocked = m_pMutexRW->Lock_DataWrite(dwMilliseconds);
-		}
-	};
-
-	inline const bool& IsLocked() const{
-		return m_bIsLocked;
-	};
-
-	inline void Lock(DWORD dwMilliseconds = INFINITE){
-		assert(m_bIsLocked == false);
-		m_bIsLocked = m_pMutexRW->Lock_DataWrite(dwMilliseconds);
-	};
-
-	inline void Unlock(){
-		assert(m_bIsLocked);
-		m_pMutexRW->Unlock_DataWrite();
-		m_bIsLocked = false;
-	};
-	virtual ~WriteLock(){
-		if (m_bIsLocked){
-			m_pMutexRW->Unlock_DataWrite();
-		}
-	};
-};
Index: gs/0.3.1/include/NSCAPI.h
===================================================================
--- tags/0.3.1/include/NSCAPI.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,77 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-namespace NSCAPI {
-
-#ifdef DEBUG
-	typedef enum {
-		returnCRIT = 2,
-		returnOK = 0,
-		returnWARN = 1,
-		returnUNKNOWN = 3,
-		returnInvalidBufferLen = -2,
-		returnIgnored = -1
-	} nagiosReturn;
-	typedef enum {
-		istrue = 1, 
-		isfalse = 0
-	} boolReturn;
-	typedef enum {
-		isSuccess = 1, 
-		hasFailed = 0,
-		isInvalidBufferLen = -2
-	} errorReturn;
-#else
-	const int returnOK = 0;
-	const int returnWARN = 1;
-	const int returnCRIT = 2;
-	const int returnUNKNOWN = 3;
-	const int returnInvalidBufferLen = -2;
-	const int returnIgnored = -1;
-	const int istrue = 1; 
-	const int isfalse = 0;
-	const int isSuccess = 1; 
-	const int hasFailed = 0;
-	const int isInvalidBufferLen = -2;
-
-
-	typedef int nagiosReturn;
-	typedef int boolReturn;
-	typedef int errorReturn;
-#endif
-
-	const int xor = 1;
-
-	// Settings types
-	const int settings_default = 0;
-	const int settings_registry = 1;
-	const int settings_inifile = 2;
-
-	// Various message Types
-	const int log = 0;				// Log message
-	const int error = -1;			// Error (non critical)
-	const int critical = -10;		// Critical error
-	const int warning = 1;			// Warning
-	const int debug = 666;			// Debug message
-
-	typedef int messageTypes;		// Message type
-};
Index: gs/0.3.1/include/NSCHelper.cpp
===================================================================
--- tags/0.3.1/include/NSCHelper.cpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,704 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-
-#include <NSCHelper.h>
-#include <assert.h>
-#include <msvc_wrappers.h>
-#include <config.h>
-#include <strEx.h>
-
-#ifdef DEBUG
-/**
-* Wrap a return string.
-* This function copies a string to a char buffer making sure the buffer has the correct length.
-*
-* @param *buffer Buffer to copy the string to.
-* @param bufLen Length of the buffer
-* @param str Th string to copy
-* @return NSCAPI::success unless the buffer is to short then it will be NSCAPI::invalidBufferLen
-*/
-NSCAPI::nagiosReturn NSCHelper::wrapReturnString(char *buffer, unsigned int bufLen, std::wstring str, NSCAPI::nagiosReturn defaultReturnCode /* = NSCAPI::success */) {
-	if (str.length() >= bufLen)
-		return NSCAPI::returnInvalidBufferLen;
-	strncpy(buffer, str.c_str(), bufLen);
-	return defaultReturnCode;
-}
-/**
-* Wrap a return string.
-* This function copies a string to a char buffer making sure the buffer has the correct length.
-*
-* @param *buffer Buffer to copy the string to.
-* @param bufLen Length of the buffer
-* @param str Th string to copy
-* @return NSCAPI::success unless the buffer is to short then it will be NSCAPI::invalidBufferLen
-*/
-NSCAPI::errorReturn NSCHelper::wrapReturnString(char *buffer, unsigned int bufLen, std::wstring str, NSCAPI::errorReturn defaultReturnCode /* = NSCAPI::success */) {
-	if (str.length() >= bufLen)
-		return NSCAPI::isInvalidBufferLen;
-	strncpy(buffer, str.c_str(), bufLen);
-	return defaultReturnCode;
-}
-#else
-/**
-* Wrap a return string.
-* This function copies a string to a char buffer making sure the buffer has the correct length.
-*
-* @param *buffer Buffer to copy the string to.
-* @param bufLen Length of the buffer
-* @param str Th string to copy
-* @param defaultReturnCode The default return code
-* @return NSCAPI::success unless the buffer is to short then it will be NSCAPI::invalidBufferLen
-*/
-int NSCHelper::wrapReturnString(TCHAR *buffer, unsigned int bufLen, std::wstring str, int defaultReturnCode ) {
-	// @todo deprecate this
-	if (str.length() >= bufLen) {
-		std::wstring sstr = str.substr(0, min(10, str.length()));
-		NSC_DEBUG_MSG_STD(_T("String (") + strEx::itos(str.length()) + _T(") to long to fit inside buffer(") + strEx::itos(bufLen) + _T(") : ") + sstr);
-		return NSCAPI::isInvalidBufferLen;
-	}
-	wcsncpy_s(buffer, bufLen, str.c_str(), bufLen);
-	return defaultReturnCode;
-}
-#endif
-
-
-/**
- * Translate a message type into a human readable string.
- *
- * @param msgType The message type
- * @return A string representing the message type
- */
-std::wstring NSCHelper::translateMessageType(NSCAPI::messageTypes msgType) {
-	switch (msgType) {
-		case NSCAPI::error:
-			return _T("error");
-		case NSCAPI::critical:
-			return _T("critical");
-		case NSCAPI::warning:
-			return _T("warning");
-		case NSCAPI::log:
-			return _T("message");
-		case NSCAPI::debug:
-			return _T("debug");
-	}
-	return _T("unknown");
-}
-/**
- * Translate a return code into the corresponding string
- * @param returnCode 
- * @return 
- */
-std::wstring NSCHelper::translateReturn(NSCAPI::nagiosReturn returnCode) {
-	if (returnCode == NSCAPI::returnOK)
-		return _T("OK");
-	else if (returnCode == NSCAPI::returnCRIT)
-		return _T("CRITICAL");
-	else if (returnCode == NSCAPI::returnWARN)
-		return _T("WARNING");
-	else if (returnCode == NSCAPI::returnUNKNOWN)
-		return _T("WARNING");
-	else
-		return _T("BAD_CODE");
-}
-
-
-
-namespace NSCModuleHelper {
-	lpNSAPIGetBasePath fNSAPIGetBasePath = NULL;
-	lpNSAPIGetApplicationName fNSAPIGetApplicationName = NULL;
-	lpNSAPIGetApplicationVersionStr fNSAPIGetApplicationVersionStr = NULL;
-	lpNSAPIGetSettingsSection fNSAPIGetSettingsSection = NULL;
-	lpNSAPIReleaseSettingsSectionBuffer fNSAPIReleaseSettingsSectionBuffer = NULL;
-	lpNSAPIGetSettingsString fNSAPIGetSettingsString = NULL;
-	lpNSAPIGetSettingsInt fNSAPIGetSettingsInt = NULL;
-	lpNSAPIMessage fNSAPIMessage = NULL;
-	lpNSAPIStopServer fNSAPIStopServer = NULL;
-	lpNSAPIInject fNSAPIInject = NULL;
-	lpNSAPICheckLogMessages fNSAPICheckLogMessages = NULL;
-	lpNSAPIEncrypt fNSAPIEncrypt = NULL;
-	lpNSAPIDecrypt fNSAPIDecrypt = NULL;
-	lpNSAPISetSettingsString fNSAPISetSettingsString = NULL;
-	lpNSAPISetSettingsInt fNSAPISetSettingsInt = NULL;
-	lpNSAPIWriteSettings fNSAPIWriteSettings = NULL;
-	lpNSAPIReadSettings fNSAPIReadSettings = NULL;
-	lpNSAPIRehash fNSAPIRehash = NULL;
-	lpNSAPIDescribeCommand fNSAPIDescribeCommand= NULL;
-	lpNSAPIGetAllCommandNames fNSAPIGetAllCommandNames= NULL;
-	lpNSAPIReleaseAllCommandNamessBuffer fNSAPIReleaseAllCommandNamessBuffer= NULL;
-	lpNSAPIRegisterCommand fNSAPIRegisterCommand= NULL;
-	unsigned int buffer_length;
-
-}
-
-//////////////////////////////////////////////////////////////////////////
-// Callbacks into the core
-//////////////////////////////////////////////////////////////////////////
-
-/**
- * Callback to send a message through to the core
- *
- * @param msgType Message type (debug, warning, etc.)
- * @param file File where message was generated (__FILE__)
- * @param line Line where message was generated (__LINE__)
- * @param message Message in human readable format
- * @throws NSCMHExcpetion When core pointer set is unavailable.
- */
-void NSCModuleHelper::Message(int msgType, std::wstring file, int line, std::wstring message) {
-	if (fNSAPIMessage) {
-		if ((msgType == NSCAPI::debug) && (!logDebug()))
-			return;
-		/*
-		std::wstring::size_type pos = file.find_last_of("\\");
-		if (pos != std::wstring::npos)
-			file = file.substr(pos);
-			*/
-		return fNSAPIMessage(msgType, file.c_str(), line, message.c_str());
-	}
-	else
-		std::wcout << _T("NSCore not loaded...") << std::endl << message << std::endl;
-}
-/**
- * Inject a request command in the core (this will then be sent to the plug-in stack for processing)
- * @param command Command to inject (password should not be included.
- * @return The result (if any) of the command.
- * @throws NSCMHExcpetion When core pointer set is unavailable or an unknown inject error occurs.
- */
-
-/**
- * Inject a request command in the core (this will then be sent to the plug-in stack for processing)
- * @param command Command to inject
- * @param argLen The length of the argument buffer
- * @param **argument The argument buffer
- * @param *returnMessageBuffer Buffer to hold the returned message
- * @param returnMessageBufferLen Length of returnMessageBuffer
- * @param *returnPerfBuffer Buffer to hold the returned performance data
- * @param returnPerfBufferLen returnPerfBuffer
- * @return The returned status of the command
- */
-NSCAPI::nagiosReturn NSCModuleHelper::InjectCommandRAW(const TCHAR* command, const unsigned int argLen, TCHAR **argument, TCHAR *returnMessageBuffer, unsigned int returnMessageBufferLen, TCHAR *returnPerfBuffer, unsigned int returnPerfBufferLen) 
-{
-	if (!fNSAPIInject)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	return fNSAPIInject(command, argLen, argument, returnMessageBuffer, returnMessageBufferLen, returnPerfBuffer, returnPerfBufferLen);
-}
-/**
- * Inject a request command in the core (this will then be sent to the plug-in stack for processing)
- * @param command Command to inject (password should not be included.
- * @param argLen The length of the argument buffer
- * @param **argument The argument buffer
- * @param message The return message buffer
- * @param perf The return performance data buffer
- * @return The return of the command
- */
-NSCAPI::nagiosReturn NSCModuleHelper::InjectCommand(const TCHAR* command, const unsigned int argLen, TCHAR **argument, std::wstring & message, std::wstring & perf) 
-{
-	if (!fNSAPIInject)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	unsigned int buf_len = getBufferLength();
-	TCHAR *msgBuffer = new TCHAR[buf_len+1];
-	TCHAR *perfBuffer = new TCHAR[buf_len+1];
-	msgBuffer[0] = 0;
-	perfBuffer[0] = 0;
-	NSCAPI::nagiosReturn retC = InjectCommandRAW(command, argLen, argument, msgBuffer, buf_len, perfBuffer, buf_len);
-	switch (retC) {
-		case NSCAPI::returnIgnored:
-			NSC_LOG_MESSAGE_STD(_T("No handler for command '") + command + _T("'."));
-			break;
-		case NSCAPI::returnInvalidBufferLen:
-			NSC_LOG_ERROR(_T("Inject buffer to small, increase the value of: string_length."));
-			break;
-		case NSCAPI::returnOK:
-		case NSCAPI::returnCRIT:
-		case NSCAPI::returnWARN:
-		case NSCAPI::returnUNKNOWN:
-			message = msgBuffer;
-			perf = perfBuffer;
-			break;
-		default:
-			throw NSCMHExcpetion(_T("Unknown inject error."));
-	}
-	delete [] msgBuffer;
-	delete [] perfBuffer;
-	return retC;
-}
-/**
- * A wrapper around the InjetCommand that is simpler to use.
- * Parses a string by splitting and makes the array and also manages return buffers and such.
- * @param command The command to execute
- * @param buffer The buffer to split
- * @param splitChar The char to use as splitter
- * @param message The return message buffer
- * @param perf The return performance data buffer
- * @return The result of the command
- */
-NSCAPI::nagiosReturn NSCModuleHelper::InjectSplitAndCommand(const TCHAR* command, TCHAR* buffer, TCHAR splitChar, std::wstring & message, std::wstring & perf)
-{
-	if (!fNSAPIInject)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	unsigned int argLen = 0;
-	TCHAR ** aBuffer;
-	if (buffer)
-		aBuffer= arrayBuffer::split2arrayBuffer(buffer, splitChar, argLen);
-	else
-		aBuffer= arrayBuffer::createEmptyArrayBuffer(argLen);
-	NSCAPI::nagiosReturn ret = InjectCommand(command, argLen, aBuffer, message, perf);
-	arrayBuffer::destroyArrayBuffer(aBuffer, argLen);
-	return ret;
-}
-/**
- * A wrapper around the InjetCommand that is simpler to use.
- * @param command The command to execute
- * @param buffer The buffer to split
- * @param splitChar The char to use as splitter
- * @param message The return message buffer
- * @param perf The return performance data buffer
- * @return The result of the command
- */
-NSCAPI::nagiosReturn NSCModuleHelper::InjectSplitAndCommand(const std::wstring command, const std::wstring buffer, TCHAR splitChar, std::wstring & message, std::wstring & perf, bool escape)
-{
-	if (!fNSAPIInject)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	unsigned int argLen = 0;
-	TCHAR ** aBuffer;
-	if (buffer.empty())
-		aBuffer= arrayBuffer::createEmptyArrayBuffer(argLen);
-	else
-		aBuffer= arrayBuffer::split2arrayBuffer(buffer, splitChar, argLen, escape);
-	NSCAPI::nagiosReturn ret = InjectCommand(command.c_str(), argLen, aBuffer, message, perf);
-	arrayBuffer::destroyArrayBuffer(aBuffer, argLen);
-	return ret;
-}
-/**
- * Ask the core to shutdown (only works when run as a service, o/w does nothing ?
- * @todo Check if this might cause damage if not run as a service.
- */
-void NSCModuleHelper::StopService(void) {
-	if (fNSAPIStopServer)
-		fNSAPIStopServer();
-}
-/**
- * Retrieve a string from the settings subsystem (INI-file)
- * Might possibly be located in the registry in the future.
- *
- * @param section Section key (generally module specific, make sure this is "unique")
- * @param key The key to retrieve 
- * @param defaultValue A default value (if no value is set in the settings file)
- * @return the current value or defaultValue if no value is set.
- * @throws NSCMHExcpetion When core pointer set is unavailable or an error occurs.
- */
-std::wstring NSCModuleHelper::getSettingsString(std::wstring section, std::wstring key, std::wstring defaultValue) {
-	if (!fNSAPIGetSettingsString)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	unsigned int buf_len = getBufferLength();
-	TCHAR *buffer = new TCHAR[buf_len+1];
-	if (fNSAPIGetSettingsString(section.c_str(), key.c_str(), defaultValue.c_str(), buffer, buf_len) != NSCAPI::isSuccess) {
-		delete [] buffer;
-		throw NSCMHExcpetion(_T("Settings could not be retrieved."));
-	}
-	std::wstring ret = buffer;
-	delete [] buffer;
-	return ret;
-}
-/**
- * Get a section of settings strings
- * @param section The section to retrieve
- * @return The keys in the section
- */
-std::list<std::wstring> NSCModuleHelper::getSettingsSection(std::wstring section) {
-	if (!fNSAPIGetSettingsSection)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	arrayBuffer::arrayBuffer aBuffer = NULL;
-	unsigned int argLen = 0;
-	if (fNSAPIGetSettingsSection(section.c_str(), &aBuffer, &argLen) != NSCAPI::isSuccess) {
-		throw NSCMHExcpetion(_T("Settings could not be retrieved."));
-	}
-	std::list<std::wstring> ret = arrayBuffer::arrayBuffer2list(argLen, aBuffer);
-	if (fNSAPIReleaseSettingsSectionBuffer(&aBuffer, &argLen) != NSCAPI::isSuccess) {
-		throw NSCMHExcpetion(_T("Settings could not be destroyed."));
-	}
-	assert(aBuffer == NULL);
-	return ret;
-}
-/**
- * Retrieve an int from the settings subsystem (INI-file)
- * Might possibly be located in the registry in the future.
- *
- * @param section Section key (generally module specific, make sure this is "unique")
- * @param key The key to retrieve 
- * @param defaultValue A default value (if no value is set in the settings file)
- * @return the current value or defaultValue if no value is set.
- * @throws NSCMHExcpetion When core pointer set is unavailable.
- */
-int NSCModuleHelper::getSettingsInt(std::wstring section, std::wstring key, int defaultValue) {
-	if (!fNSAPIGetSettingsInt)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	return fNSAPIGetSettingsInt(section.c_str(), key.c_str(), defaultValue);
-}
-/**
- * Returns the biggest of the two states
- * STATE_UNKNOWN < STATE_OK < STATE_WARNING < STATE_CRITICAL
- * @param a 
- * @param b 
- * @return 
- */
-NSCAPI::nagiosReturn NSCHelper::maxState(NSCAPI::nagiosReturn a, NSCAPI::nagiosReturn b)
-{
-	if (a == NSCAPI::returnCRIT || b == NSCAPI::returnCRIT)
-		return NSCAPI::returnCRIT;
-	else if (a == NSCAPI::returnWARN || b == NSCAPI::returnWARN)
-		return NSCAPI::returnWARN;
-	else if (a == NSCAPI::returnOK || b == NSCAPI::returnOK)
-		return NSCAPI::returnOK;
-	else if (a == NSCAPI::returnUNKNOWN || b == NSCAPI::returnUNKNOWN)
-		return NSCAPI::returnUNKNOWN;
-	return NSCAPI::returnUNKNOWN;
-}
-/**
- * Retrieve the application name (in human readable format) from the core.
- * @return A string representing the application name.
- * @throws NSCMHExcpetion When core pointer set is unavailable or an unexpected error occurs.
- */
-std::wstring NSCModuleHelper::getApplicationName() {
-	if (!fNSAPIGetApplicationName)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	unsigned int buf_len = getBufferLength();
-	TCHAR *buffer = new TCHAR[buf_len+1];
-	if (fNSAPIGetApplicationName(buffer, buf_len) != NSCAPI::isSuccess) {
-		delete [] buffer;
-		throw NSCMHExcpetion(_T("Application name could not be retrieved"));
-	}
-	std::wstring ret = buffer;
-	delete [] buffer;
-	return ret;
-}
-/**
- * Retrieve the directory root of the application from the core.
- * @return A string representing the base path.
- * @throws NSCMHExcpetion When core pointer set is unavailable or an unexpected error occurs.
- */
-std::wstring NSCModuleHelper::getBasePath() {
-	if (!fNSAPIGetBasePath)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	unsigned int buf_len = getBufferLength();
-	TCHAR *buffer = new TCHAR[buf_len+1];
-	if (fNSAPIGetBasePath(buffer, buf_len) != NSCAPI::isSuccess) {
-		delete [] buffer;
-		throw NSCMHExcpetion(_T("Base path could not be retrieved"));
-	}
-	std::wstring ret = buffer;
-	delete [] buffer;
-	return ret;
-}
-
-unsigned int NSCModuleHelper::getBufferLength() {
-	static unsigned int len = 0;
-	if (len == 0) {
-		len = getSettingsInt(MAIN_SECTION_TITLE, MAIN_STRING_LENGTH, MAIN_STRING_LENGTH_DEFAULT);
-	}
-	return len;
-}
-
-
-bool NSCModuleHelper::logDebug() {
-	typedef enum status {unknown, debug, nodebug };
-	static status d = unknown;
-	if (d == unknown) {
-		if (checkLogMessages(debug)== NSCAPI::istrue)
-			d = debug;
-		else
-			d = nodebug;
-	}
-	return (d == debug);
-}
-
-std::wstring NSCModuleHelper::Encrypt(std::wstring str, unsigned int algorithm) {
-	if (!fNSAPIEncrypt)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	unsigned int len = 0;
-	// @todo investigate potential problems with static_cast<unsigned int>
-	fNSAPIEncrypt(algorithm, str.c_str(), static_cast<unsigned int>(str.size()), NULL, &len);
-	len+=2;
-	TCHAR *buf = new TCHAR[len+1];
-	NSCAPI::errorReturn ret = fNSAPIEncrypt(algorithm, str.c_str(), static_cast<unsigned int>(str.size()), buf, &len);
-	if (ret == NSCAPI::isSuccess) {
-		std::wstring ret = buf;
-		delete [] buf;
-		return ret;
-	}
-	return _T("");
-}
-std::wstring NSCModuleHelper::Decrypt(std::wstring str, unsigned int algorithm) {
-	if (!fNSAPIDecrypt)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	unsigned int len = 0;
-	// @todo investigate potential problems with: static_cast<unsigned int>(str.size())
-	fNSAPIDecrypt(algorithm, str.c_str(), static_cast<unsigned int>(str.size()), NULL, &len);
-	len+=2;
-	TCHAR *buf = new TCHAR[len+1];
-	NSCAPI::errorReturn ret = fNSAPIDecrypt(algorithm, str.c_str(), static_cast<unsigned int>(str.size()), buf, &len);
-	if (ret == NSCAPI::isSuccess) {
-		std::wstring ret = buf;
-		delete [] buf;
-		return ret;
-	}
-	return _T("");
-}
-NSCAPI::errorReturn NSCModuleHelper::SetSettingsString(std::wstring section, std::wstring key, std::wstring value) {
-	if (!fNSAPISetSettingsString)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	return fNSAPISetSettingsString(section.c_str(), key.c_str(), value.c_str());
-}
-NSCAPI::errorReturn NSCModuleHelper::SetSettingsInt(std::wstring section, std::wstring key, int value) {
-	if (!fNSAPISetSettingsInt)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	return fNSAPISetSettingsInt(section.c_str(), key.c_str(), value);
-}
-NSCAPI::errorReturn NSCModuleHelper::WriteSettings(int type) {
-	if (!fNSAPIWriteSettings)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	return fNSAPIWriteSettings(type);
-}
-NSCAPI::errorReturn NSCModuleHelper::ReadSettings(int type) {
-	if (!fNSAPIReadSettings)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	return fNSAPIReadSettings(type);
-}
-NSCAPI::errorReturn NSCModuleHelper::Rehash(int flag) {
-	if (!fNSAPIRehash)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	return fNSAPIRehash(flag);
-}
-
-std::list<std::wstring> NSCModuleHelper::getAllCommandNames() {
-	if (!fNSAPIGetAllCommandNames || !fNSAPIReleaseAllCommandNamessBuffer )
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	arrayBuffer::arrayBuffer aBuffer = NULL;
-	unsigned int argLen = 0;
-	if (fNSAPIGetAllCommandNames(&aBuffer, &argLen) != NSCAPI::isSuccess) {
-		throw NSCMHExcpetion(_T("Commands could not be retrieved."));
-	}
-	std::list<std::wstring> ret = arrayBuffer::arrayBuffer2list(argLen, aBuffer);
-	if (fNSAPIReleaseAllCommandNamessBuffer(&aBuffer, &argLen) != NSCAPI::isSuccess) {
-		throw NSCMHExcpetion(_T("Commands could not be destroyed."));
-	}
-	assert(aBuffer == NULL);
-	return ret;
-}
-std::wstring NSCModuleHelper::describeCommand(std::wstring command) {
-	if (!fNSAPIDescribeCommand)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	unsigned int buf_len = getBufferLength();
-	TCHAR *buffer = new TCHAR[buf_len+1];
-	if (fNSAPIDescribeCommand(command.c_str(), buffer, buf_len) != NSCAPI::isSuccess) {
-		delete [] buffer;
-		throw NSCMHExcpetion(_T("Base path could not be retrieved"));
-	}
-	std::wstring ret = buffer;
-	delete [] buffer;
-	return ret;
-}
-void NSCModuleHelper::registerCommand(std::wstring command, std::wstring description) {
-	if (!fNSAPIRegisterCommand)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	fNSAPIRegisterCommand(command.c_str(), description.c_str());
-}
-
-
-bool NSCModuleHelper::checkLogMessages(int type) {
-	if (!fNSAPICheckLogMessages)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	return fNSAPICheckLogMessages(type) == NSCAPI::istrue;
-}
-/**
- * Retrieve the application version as a string (in human readable format) from the core.
- * @return A string representing the application version.
- * @throws NSCMHExcpetion When core pointer set is unavailable.
- */
-std::wstring NSCModuleHelper::getApplicationVersionString() {
-	if (!fNSAPIGetApplicationVersionStr)
-		throw NSCMHExcpetion(_T("NSCore has not been initiated..."));
-	unsigned int buf_len = getBufferLength();
-	TCHAR *buffer = new TCHAR[buf_len+1];
-	if (fNSAPIGetApplicationVersionStr(buffer, buf_len) != NSCAPI::isSuccess) {
-		delete [] buffer;
-		return _T("");
-	}
-	std::wstring ret = buffer;
-	delete [] buffer;
-	return ret;
-}
-
-namespace NSCModuleWrapper {
-	HINSTANCE hModule_ = NULL;
-}
-/**
- * Used to help store the module handle (and possibly other things in the future)
- * @param hModule cf. DllMain
- * @param ul_reason_for_call cf. DllMain
- * @return TRUE
- */
-BOOL NSCModuleWrapper::wrapDllMain(HANDLE hModule, DWORD ul_reason_for_call)
-{
-	switch (ul_reason_for_call)
-	{
-	case DLL_PROCESS_ATTACH:
-	case DLL_THREAD_ATTACH:
-		hModule_ = (HINSTANCE)hModule;
-		break;
-	case DLL_THREAD_DETACH:
-	case DLL_PROCESS_DETACH:
-		break;
-	}
-	return TRUE;
-}
-/**
- * Retrieve the module handle from the DllMain call.
- * @return Module handle of this DLL
- */
-HINSTANCE NSCModuleWrapper::getModule() {
-	return hModule_;
-}
-
-/**
- * Wrapper function around the ModuleHelperInit call.
- * This wrapper retrieves all pointers and stores them for future use.
- * @param f A function pointer to a function that can be used to load function from the core.
- * @return NSCAPI::success or NSCAPI::failure
- */
-int NSCModuleWrapper::wrapModuleHelperInit(NSCModuleHelper::lpNSAPILoader f) {
-	NSCModuleHelper::fNSAPIGetApplicationName = (NSCModuleHelper::lpNSAPIGetApplicationName)f(_T("NSAPIGetApplicationName"));
-	NSCModuleHelper::fNSAPIGetApplicationVersionStr = (NSCModuleHelper::lpNSAPIGetApplicationVersionStr)f(_T("NSAPIGetApplicationVersionStr"));
-	NSCModuleHelper::fNSAPIGetSettingsInt = (NSCModuleHelper::lpNSAPIGetSettingsInt)f(_T("NSAPIGetSettingsInt"));
-	NSCModuleHelper::fNSAPIGetSettingsString = (NSCModuleHelper::lpNSAPIGetSettingsString)f(_T("NSAPIGetSettingsString"));
-	NSCModuleHelper::fNSAPIGetSettingsSection = (NSCModuleHelper::lpNSAPIGetSettingsSection)f(_T("NSAPIGetSettingsSection"));
-	NSCModuleHelper::fNSAPIReleaseSettingsSectionBuffer = (NSCModuleHelper::lpNSAPIReleaseSettingsSectionBuffer)f(_T("NSAPIReleaseSettingsSectionBuffer"));
-	NSCModuleHelper::fNSAPIMessage = (NSCModuleHelper::lpNSAPIMessage)f(_T("NSAPIMessage"));
-	NSCModuleHelper::fNSAPIStopServer = (NSCModuleHelper::lpNSAPIStopServer)f(_T("NSAPIStopServer"));
-	NSCModuleHelper::fNSAPIInject = (NSCModuleHelper::lpNSAPIInject)f(_T("NSAPIInject"));
-	NSCModuleHelper::fNSAPIGetBasePath = (NSCModuleHelper::lpNSAPIGetBasePath)f(_T("NSAPIGetBasePath"));
-	NSCModuleHelper::fNSAPICheckLogMessages = (NSCModuleHelper::lpNSAPICheckLogMessages)f(_T("NSAPICheckLogMessages"));
-	NSCModuleHelper::fNSAPIDecrypt = (NSCModuleHelper::lpNSAPIDecrypt)f(_T("NSAPIDecrypt"));
-	NSCModuleHelper::fNSAPIEncrypt = (NSCModuleHelper::lpNSAPIEncrypt)f(_T("NSAPIEncrypt"));
-	NSCModuleHelper::fNSAPISetSettingsString = (NSCModuleHelper::lpNSAPISetSettingsString)f(_T("NSAPISetSettingsString"));
-	NSCModuleHelper::fNSAPISetSettingsInt = (NSCModuleHelper::lpNSAPISetSettingsInt)f(_T("NSAPISetSettingsInt"));
-	NSCModuleHelper::fNSAPIWriteSettings = (NSCModuleHelper::lpNSAPIWriteSettings)f(_T("NSAPIWriteSettings"));
-	NSCModuleHelper::fNSAPIReadSettings = (NSCModuleHelper::lpNSAPIReadSettings)f(_T("NSAPIReadSettings"));
-	NSCModuleHelper::fNSAPIRehash = (NSCModuleHelper::lpNSAPIRehash)f(_T("NSAPIRehash"));
-
-	NSCModuleHelper::fNSAPIDescribeCommand = (NSCModuleHelper::lpNSAPIDescribeCommand)f(_T("NSAPIDescribeCommand"));
-	NSCModuleHelper::fNSAPIGetAllCommandNames = (NSCModuleHelper::lpNSAPIGetAllCommandNames)f(_T("NSAPIGetAllCommandNames"));
-	NSCModuleHelper::fNSAPIReleaseAllCommandNamessBuffer = (NSCModuleHelper::lpNSAPIReleaseAllCommandNamessBuffer)f(_T("NSAPIReleaseAllCommandNamessBuffer"));
-	NSCModuleHelper::fNSAPIRegisterCommand = (NSCModuleHelper::lpNSAPIRegisterCommand)f(_T("NSAPIRegisterCommand"));
-
-	return NSCAPI::isSuccess;
-}
-/**
-* Wrap the GetModuleName function call
-* @param buf Buffer to store the module name
-* @param bufLen Length of buffer
-* @param str String to store inside the buffer
-* @	 copy status
-*/
-NSCAPI::errorReturn NSCModuleWrapper::wrapGetModuleName(TCHAR* buf, unsigned int bufLen, std::wstring str) {
-	return NSCHelper::wrapReturnString(buf, bufLen, str, NSCAPI::isSuccess);
-}
-
-NSCAPI::errorReturn NSCModuleWrapper::wrapGetConfigurationMeta(TCHAR* buf, unsigned int bufLen, std::wstring str) {
-	return NSCHelper::wrapReturnString(buf, bufLen, str, NSCAPI::isSuccess);
-}
-/**
- * Wrap the GetModuleVersion function call
- * @param *major Major version number
- * @param *minor Minor version number
- * @param *revision Revision
- * @param version version as a module_version
- * @return NSCAPI::success
- */
-NSCAPI::errorReturn NSCModuleWrapper::wrapGetModuleVersion(int *major, int *minor, int *revision, module_version version) {
-	*major = version.major;
-	*minor = version.minor;
-	*revision = version.revision;
-	return NSCAPI::isSuccess;
-}
-/**
- * Wrap the HasCommandHandler function call
- * @param has true if this module has a command handler
- * @return NSCAPI::istrue or NSCAPI::isfalse
- */
-NSCAPI::boolReturn NSCModuleWrapper::wrapHasCommandHandler(bool has) {
-	if (has)
-		return NSCAPI::istrue;
-	return NSCAPI::isfalse;
-}
-/**
- * Wrap the HasMessageHandler function call
- * @param has true if this module has a message handler
- * @return NSCAPI::istrue or NSCAPI::isfalse
- */
-NSCAPI::boolReturn NSCModuleWrapper::wrapHasMessageHandler(bool has) {
-	if (has)
-		return NSCAPI::istrue;
-	return NSCAPI::isfalse;
-}
-/**
- * Wrap the HandleCommand call
- * @param retResult The returned result
- * @param retMessage The returned message
- * @param retPerformance The returned performance data
- * @param *returnBufferMessage The return message buffer
- * @param returnBufferMessageLen The return message buffer length
- * @param *returnBufferPerf The return perfomance data buffer
- * @param returnBufferPerfLen The return perfomance data buffer length
- * @return the return code
- */
-NSCAPI::nagiosReturn NSCModuleWrapper::wrapHandleCommand(NSCAPI::nagiosReturn retResult, const std::wstring retMessage, const std::wstring retPerformance, TCHAR *returnBufferMessage, unsigned int returnBufferMessageLen, TCHAR *returnBufferPerf, unsigned int returnBufferPerfLen) {
-	if (retMessage.empty())
-		return NSCAPI::returnIgnored;
-	NSCAPI::nagiosReturn ret = NSCHelper::wrapReturnString(returnBufferMessage, returnBufferMessageLen, retMessage, retResult);
-	if (!NSCHelper::isMyNagiosReturn(ret)) {
-		NSC_LOG_ERROR(_T("A module returned an invalid return code"));
-	}
-	return NSCHelper::wrapReturnString(returnBufferPerf, returnBufferPerfLen, retPerformance, ret);
-}
-
-/**
- * Wrap the NSLoadModule call
- * @param success true if module load was successfully
- * @return NSCAPI::success or NSCAPI::failed
- */
-int NSCModuleWrapper::wrapLoadModule(bool success) {
-	if (success)
-		return NSCAPI::isSuccess;
-	return NSCAPI::hasFailed;
-}
-/**
- * Wrap the NSUnloadModule call
- * @param success true if module load was successfully
- * @return NSCAPI::success or NSCAPI::failed
- */
-int NSCModuleWrapper::wrapUnloadModule(bool success) {
-	if (success)
-		return NSCAPI::isSuccess;
-	return NSCAPI::hasFailed;
-}
-
-
-
Index: gs/0.3.1/include/NSCHelper.h
===================================================================
--- tags/0.3.1/include/NSCHelper.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,382 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <string>
-#include <list>
-#include <NSCAPI.h>
-#include <iostream>
-#include <charEx.h>
-#include <arrayBuffer.h>
-#include <windows.h>
-
-
-namespace NSCHelper
-{
-#ifdef DEBUG
-	NSCAPI::nagiosReturn wrapReturnString(TCHAR *buffer, unsigned int bufLen, std::wstring str, NSCAPI::nagiosReturn defaultReturnCode);
-	NSCAPI::errorReturn wrapReturnString(TCHAR *buffer, unsigned int bufLen, std::wstring str, NSCAPI::errorReturn defaultReturnCode);
-#else
-	int wrapReturnString(TCHAR *buffer, unsigned int bufLen, std::wstring str, int defaultReturnCode);
-#endif
-	std::wstring translateMessageType(NSCAPI::messageTypes msgType);
-	std::wstring translateReturn(NSCAPI::nagiosReturn returnCode);
-	NSCAPI::nagiosReturn maxState(NSCAPI::nagiosReturn a, NSCAPI::nagiosReturn b);
-
-	inline bool isNagiosReturnCode(NSCAPI::nagiosReturn code) {
-		if ( (code == NSCAPI::returnOK) || (code == NSCAPI::returnWARN) || (code == NSCAPI::returnCRIT) || (code == NSCAPI::returnUNKNOWN) )
-			return true;
-		return false;
-	}
-	inline bool isMyNagiosReturn(NSCAPI::nagiosReturn code) {
-		return code == NSCAPI::returnCRIT || code == NSCAPI::returnOK || code == NSCAPI::returnWARN || code == NSCAPI::returnUNKNOWN 
-			|| code == NSCAPI::returnInvalidBufferLen || code == NSCAPI::returnIgnored;
-	}
-
-#ifdef DEBUG
-	inline NSCAPI::nagiosReturn int2nagios(int code) {
-		if (code == 0)
-			return NSCAPI::returnOK;
-		if (code == 1)
-			return NSCAPI::returnWARN;
-		if (code == 2)
-			return NSCAPI::returnCRIT;
-		if (code == 4)
-			return NSCAPI::returnUNKNOWN;
-		throw "@fixme bad code";
-	}
-	inline int nagios2int(NSCAPI::nagiosReturn code) {
-		if (code == NSCAPI::returnOK)
-			return 0;
-		if (code == NSCAPI::returnWARN)
-			return 1;
-		if (code == NSCAPI::returnCRIT)
-			return 2;
-		if (code == NSCAPI::returnUNKNOWN)
-			return 4;
-		throw "@fixme bad code";
-	}
-#else
-	inline NSCAPI::nagiosReturn int2nagios(int code) {
-		return code;
-	}
-	inline int nagios2int(NSCAPI::nagiosReturn code) {
-		return code;
-	}
-#endif
-	inline void escalteReturnCodeToCRIT(NSCAPI::nagiosReturn &currentReturnCode) {
-		currentReturnCode = NSCAPI::returnCRIT;
-	}
-	inline void escalteReturnCodeToWARN(NSCAPI::nagiosReturn &currentReturnCode) {
-		if (currentReturnCode != NSCAPI::returnCRIT)
-			currentReturnCode = NSCAPI::returnWARN;
-	}
-};
-
-namespace NSCModuleHelper
-{
-	class NSCMHExcpetion {
-	public:
-		std::wstring msg_;
-		NSCMHExcpetion(std::wstring msg) : msg_(msg) {}
-	};
-	// Types for the Callbacks into the main program
-	typedef NSCAPI::errorReturn (*lpNSAPIGetBasePath)(TCHAR*,unsigned int);
-	typedef NSCAPI::errorReturn (*lpNSAPIGetApplicationName)(TCHAR*,unsigned int);
-	typedef NSCAPI::errorReturn (*lpNSAPIGetApplicationVersionStr)(TCHAR*,unsigned int);
-	typedef NSCAPI::errorReturn (*lpNSAPIGetSettingsString)(const TCHAR*,const TCHAR*,const TCHAR*,TCHAR*,unsigned int);
-	typedef NSCAPI::errorReturn (*lpNSAPIGetSettingsInt)(const TCHAR*, const TCHAR*, int);
-	typedef NSCAPI::errorReturn (*lpNSAPIGetSettingsSection)(const TCHAR*, arrayBuffer::arrayBuffer*, unsigned int *);
-	typedef NSCAPI::errorReturn (*lpNSAPIReleaseSettingsSectionBuffer)(arrayBuffer::arrayBuffer*, unsigned int *);
-	typedef void (*lpNSAPIMessage)(int, const TCHAR*, const int, const TCHAR*);
-	typedef NSCAPI::errorReturn (*lpNSAPIStopServer)(void);
-	typedef NSCAPI::nagiosReturn (*lpNSAPIInject)(const TCHAR*, const unsigned int, TCHAR **, TCHAR *, unsigned int, TCHAR *, unsigned int);
-	typedef void* (*lpNSAPILoader)(TCHAR*);
-	typedef NSCAPI::boolReturn (*lpNSAPICheckLogMessages)(int);
-	typedef NSCAPI::errorReturn (*lpNSAPIEncrypt)(unsigned int, const TCHAR*, unsigned int, TCHAR*, unsigned int *);
-	typedef NSCAPI::errorReturn (*lpNSAPIDecrypt)(unsigned int, const TCHAR*, unsigned int, TCHAR*, unsigned int *);
-	typedef NSCAPI::errorReturn (*lpNSAPISetSettingsString)(const TCHAR*, const TCHAR*, const TCHAR*);
-	typedef NSCAPI::errorReturn (*lpNSAPISetSettingsInt)(const TCHAR*, const TCHAR*, int);
-	typedef NSCAPI::errorReturn (*lpNSAPIWriteSettings)(int);
-	typedef NSCAPI::errorReturn (*lpNSAPIReadSettings)(int);
-	typedef NSCAPI::errorReturn (*lpNSAPIRehash)(int);
-	typedef NSCAPI::errorReturn (*lpNSAPIDescribeCommand)(const TCHAR*,TCHAR*,unsigned int);
-	typedef NSCAPI::errorReturn (*lpNSAPIGetAllCommandNames)(arrayBuffer::arrayBuffer*, unsigned int *);
-	typedef NSCAPI::errorReturn (*lpNSAPIReleaseAllCommandNamessBuffer)(arrayBuffer::arrayBuffer*, unsigned int *);
-	typedef NSCAPI::errorReturn (*lpNSAPIRegisterCommand)(const TCHAR*,const TCHAR*);
-
-	// Helper functions for calling into the core
-	std::wstring getApplicationName(void);
-	std::wstring getApplicationVersionString(void);
-	std::list<std::wstring> getSettingsSection(std::wstring section);
-	std::wstring getSettingsString(std::wstring section, std::wstring key, std::wstring defaultValue);
-	int getSettingsInt(std::wstring section, std::wstring key, int defaultValue);
-	void Message(int msgType, std::wstring file, int line, std::wstring message);
-	NSCAPI::nagiosReturn InjectCommandRAW(const TCHAR* command, const unsigned int argLen, TCHAR **argument, TCHAR *returnMessageBuffer, unsigned int returnMessageBufferLen, TCHAR *returnPerfBuffer, unsigned int returnPerfBufferLen);
-	NSCAPI::nagiosReturn InjectCommand(const TCHAR* command, const unsigned int argLen, TCHAR **argument, std::wstring & message, std::wstring & perf);
-	NSCAPI::nagiosReturn InjectSplitAndCommand(const TCHAR* command, TCHAR* buffer, TCHAR splitChar, std::wstring & message, std::wstring & perf);
-	NSCAPI::nagiosReturn InjectSplitAndCommand(const std::wstring command, const std::wstring buffer, TCHAR splitChar, std::wstring & message, std::wstring & perf, bool escape = false);
-	void StopService(void);
-	std::wstring getBasePath();
-	bool logDebug();
-	bool checkLogMessages(int type);
-	std::wstring Encrypt(std::wstring str, unsigned int algorithm = NSCAPI::xor);
-	std::wstring Decrypt(std::wstring str, unsigned int algorithm = NSCAPI::xor);
-	NSCAPI::errorReturn SetSettingsString(std::wstring section, std::wstring key, std::wstring value);
-	NSCAPI::errorReturn SetSettingsInt(std::wstring section, std::wstring key, int value);
-	NSCAPI::errorReturn WriteSettings(int type);
-	NSCAPI::errorReturn ReadSettings(int type);
-	NSCAPI::errorReturn Rehash(int flag);
-	std::list<std::wstring> getAllCommandNames();
-	std::wstring describeCommand(std::wstring command);
-	void registerCommand(std::wstring command, std::wstring description);
-	unsigned int getBufferLength();
-};
-
-namespace NSCModuleWrapper {
-	struct module_version {
-		int major;
-		int minor;
-		int revision;
-	};
-
-	BOOL wrapDllMain(HANDLE hModule, DWORD ul_reason_for_call);
-	HINSTANCE getModule();
-
-	int wrapModuleHelperInit(NSCModuleHelper::lpNSAPILoader f);;
-	NSCAPI::errorReturn wrapGetModuleName(TCHAR* buf, unsigned int buflen, std::wstring str);
-	NSCAPI::errorReturn wrapGetConfigurationMeta(TCHAR* buf, unsigned int buflen, std::wstring str);
-	int wrapLoadModule(bool success);
-	NSCAPI::errorReturn wrapGetModuleVersion(int *major, int *minor, int *revision, module_version version);
-	NSCAPI::boolReturn wrapHasCommandHandler(bool has);
-	NSCAPI::boolReturn wrapHasMessageHandler(bool has);
-	int wrapUnloadModule(bool success);
-	NSCAPI::nagiosReturn wrapHandleCommand(NSCAPI::nagiosReturn retResult, const std::wstring retMessage, const std::wstring retPerformance, TCHAR *returnBufferMessage, unsigned int returnBufferMessageLen, TCHAR *returnBufferPerf, unsigned int returnBufferPerfLen);
-}
-
-//////////////////////////////////////////////////////////////////////////
-// Module wrappers (definitions)
-#define NSC_WRAPPERS_MAIN() \
-	extern "C" int NSModuleHelperInit(NSCModuleHelper::lpNSAPILoader f); \
-	extern int NSLoadModule(); \
-	extern int NSGetModuleName(TCHAR* buf, int buflen); \
-	extern int NSGetModuleDescription(TCHAR* buf, int buflen); \
-	extern int NSGetModuleVersion(int *major, int *minor, int *revision); \
-	extern NSCAPI::boolReturn NSHasCommandHandler(); \
-	extern NSCAPI::boolReturn NSHasMessageHandler(); \
-	extern void NSHandleMessage(int msgType, TCHAR* file, int line, TCHAR* message); \
-	extern NSCAPI::nagiosReturn NSHandleCommand(const TCHAR* IN_cmd, const unsigned int IN_argsLen, TCHAR **IN_args, \
-		TCHAR *OUT_retBufMessage, unsigned int IN_retBufMessageLen, TCHAR *OUT_retBufPerf, unsigned int IN_retBufPerfLen); \
-	extern int NSUnloadModule(); \
-	extern int NSGetConfigurationMeta(int IN_retBufLen, TCHAR *OUT_retBuf)
-
-#define NSC_WRAPPERS_CLI() \
-	extern int NSCommandLineExec(const TCHAR*,const unsigned int,TCHAR**)
-
-
-
-#define NSC_LOG_ERROR_STD(msg) NSC_LOG_ERROR(((std::wstring)msg).c_str())
-#define NSC_LOG_ERROR(msg) \
-	NSCModuleHelper::Message(NSCAPI::error, _T(__FILE__), __LINE__, msg)
-
-#define NSC_LOG_CRITICAL_STD(msg) NSC_LOG_CRITICAL(((std::wstring)msg).c_str())
-#define NSC_LOG_CRITICAL(msg) \
-	NSCModuleHelper::Message(NSCAPI::critical, _T(__FILE__), __LINE__, msg)
-
-#define NSC_LOG_MESSAGE_STD(msg) NSC_LOG_MESSAGE(((std::wstring)msg).c_str())
-#define NSC_LOG_MESSAGE(msg) \
-	NSCModuleHelper::Message(NSCAPI::log, _T(__FILE__), __LINE__, msg)
-
-//#define NSC_DEBUG_MSG_STD(msg) NSC_DEBUG_MSG(((std::wstring)msg).c_str())
-#define NSC_DEBUG_MSG_STD(msg) NSC_DEBUG_MSG((std::wstring)msg)
-#define NSC_DEBUG_MSG(msg) \
-	NSCModuleHelper::Message(NSCAPI::debug, _T(__FILE__), __LINE__, msg)
-
-/*
-#define NSC_DEBUG_MSG_STD(msg)
-#define NSC_DEBUG_MSG(msg)
-*/
-//////////////////////////////////////////////////////////////////////////
-// Message wrappers below this point
-
-#define NSC_WRAPPERS_MAIN_DEF(toObject) \
-	extern int NSModuleHelperInit(NSCModuleHelper::lpNSAPILoader f) { \
-		try { \
-			return NSCModuleWrapper::wrapModuleHelperInit(f); \
-		} catch (...) { \
-			NSC_LOG_CRITICAL(_T("Unknown exception in: wrapModuleHelperInit(...)")); \
-			return NSCAPI::hasFailed; \
-		} \
-	} \
-	extern int NSLoadModule() { \
-		try { \
-			return NSCModuleWrapper::wrapLoadModule(toObject.loadModule()); \
-		} catch (...) { \
-			NSC_LOG_CRITICAL(_T("Unknown exception in: wrapLoadModule(...)")); \
-			return NSCAPI::hasFailed; \
-		} \
-	} \
-	extern int NSGetModuleName(TCHAR* buf, int buflen) { \
-		try { \
-			return NSCModuleWrapper::wrapGetModuleName(buf, buflen, toObject.getModuleName()); \
-		} catch (...) { \
-			NSC_LOG_CRITICAL(_T("Unknown exception in: wrapGetModuleName(...)")); \
-			return NSCAPI::hasFailed; \
-		} \
-	} \
-	extern int NSGetModuleDescription(TCHAR* buf, int buflen) { \
-		try { \
-			return NSCModuleWrapper::wrapGetModuleName(buf, buflen, toObject.getModuleDescription()); \
-		} catch (...) { \
-			NSC_LOG_CRITICAL(_T("Unknown exception in: wrapGetModuleName(...)")); \
-			return NSCAPI::hasFailed; \
-		} \
-	} \
-	extern int NSGetModuleVersion(int *major, int *minor, int *revision) { \
-		try { \
-			return NSCModuleWrapper::wrapGetModuleVersion(major, minor, revision, toObject.getModuleVersion()); \
-		} catch (...) { \
-			NSC_LOG_CRITICAL(_T("Unknown exception in: wrapGetModuleVersion(...)")); \
-			return NSCAPI::hasFailed; \
-		} \
-	} \
-	extern int NSUnloadModule() { \
-		try { \
-			return NSCModuleWrapper::wrapUnloadModule(toObject.unloadModule()); \
-		} catch (...) { \
-			NSC_LOG_CRITICAL(_T("Unknown exception in: wrapGetModuleVersion(...)")); \
-			return NSCAPI::hasFailed; \
-		} \
-	}
-#define NSC_WRAPPERS_HANDLE_MSG_DEF(toObject) \
-	extern void NSHandleMessage(int msgType, TCHAR* file, int line, TCHAR* message) { \
-		try { \
-			toObject.handleMessage(msgType, file, line, message); \
-		} catch (...) { \
-			NSC_LOG_CRITICAL(_T("Unknown exception in: handleMessage(...)")); \
-		} \
-	} \
-	extern NSCAPI::boolReturn NSHasMessageHandler() { \
-		try { \
-			return NSCModuleWrapper::wrapHasMessageHandler(toObject.hasMessageHandler()); \
-		} catch (...) { \
-			NSC_LOG_CRITICAL(_T("Unknown exception in: wrapHasMessageHandler(...)")); \
-			return NSCAPI::isfalse; \
-		} \
-	}
-#define NSC_WRAPPERS_IGNORE_MSG_DEF() \
-	extern void NSHandleMessage(int msgType, TCHAR* file, int line, TCHAR* message) {} \
-	extern NSCAPI::boolReturn NSHasMessageHandler() { return NSCAPI::isfalse; }
-#define NSC_WRAPPERS_HANDLE_CMD_DEF(toObject) \
-	extern NSCAPI::nagiosReturn NSHandleCommand(const TCHAR* IN_cmd, const unsigned int IN_argsLen, TCHAR **IN_args, \
-									TCHAR *OUT_retBufMessage, unsigned int IN_retBufMessageLen, TCHAR *OUT_retBufPerf, unsigned int IN_retBufPerfLen) \
-	{ \
-		try { \
-			std::wstring message, perf; \
-			NSCAPI::nagiosReturn retCode = toObject.handleCommand(IN_cmd, IN_argsLen, IN_args, message, perf); \
-			return NSCModuleWrapper::wrapHandleCommand(retCode, message, perf, OUT_retBufMessage, IN_retBufMessageLen, OUT_retBufPerf, IN_retBufPerfLen); \
-		} catch (...) { \
-			NSC_LOG_CRITICAL(_T("Unknown exception in: wrapHandleCommand(...)")); \
-			return NSCAPI::returnIgnored; \
-		} \
-	} \
-	extern NSCAPI::boolReturn NSHasCommandHandler() { \
-		try { \
-			return NSCModuleWrapper::wrapHasCommandHandler(toObject.hasCommandHandler()); \
-		} catch (...) { \
-			NSC_LOG_CRITICAL(_T("Unknown exception in: wrapHasCommandHandler(...)")); \
-			return NSCAPI::isfalse; \
-		} \
-	}
-#define NSC_WRAPPERS_IGNORE_CMD_DEF() \
-	extern NSCAPI::nagiosReturn NSHandleCommand(const TCHAR* IN_cmd, const unsigned int IN_argsLen, TCHAR **IN_args, \
-									TCHAR *OUT_retBufMessage, unsigned int IN_retBufMessageLen, TCHAR *OUT_retBufPerf, unsigned int IN_retBufPerfLen) { \
-		return NSCAPI::returnIgnored; \
-	} \
-	extern NSCAPI::boolReturn NSHasCommandHandler() { return NSCAPI::isfalse; }
-
-
-#define NSC_WRAPPERS_HANDLE_CONFIGURATION(toObject) \
-	extern int NSGetConfigurationMeta(int IN_retBufLen, TCHAR *OUT_retBuf) \
-	{ \
-		try { \
-			return NSCModuleWrapper::wrapGetConfigurationMeta(OUT_retBuf, IN_retBufLen, toObject.getConfigurationMeta()); \
-		} catch (...) { \
-			NSC_LOG_CRITICAL(_T("Unknown exception in: wrapGetConfigurationMeta(...)")); \
-			return NSCAPI::hasFailed; \
-		} \
-	}
-
-#define NSC_WRAPPERS_CLI_DEF(toObject) \
-	extern int NSCommandLineExec(const TCHAR* command,const unsigned int argLen,TCHAR** args) { \
-		try { \
-			return toObject.commandLineExec(command, argLen, args); \
-		} catch (...) { \
-			NSC_LOG_CRITICAL(_T("Unknown exception in: commandLineExec(...)")); \
-			return NSCAPI::hasFailed; \
-		} \
-	} \
-
-//////////////////////////////////////////////////////////////////////////
-#define MODULE_SETTINGS_START(class, name, description) \
-	std::wstring class::getConfigurationMeta() { \
-	return (std::wstring)_T("<module name=\"") + name + _T("\" description=\"") + description + _T("\">") \
-	_T("<pages>")
-
-
-#define ADVANCED_PAGE(title) \
-	_T("<page title=\"") title _T("\" advanced=\"true\">") \
-	_T("<items>")
-
-#define PAGE(title) \
-	_T("<page title=\"") title _T("\">") \
-	_T("<items>")
-
-#define ITEM_EDIT_TEXT(caption, description) \
-	_T("<item type=\"text\" caption=\"") caption _T("\" description=\"") description _T("\"><options>")
-
-#define ITEM_EDIT_OPTIONAL_LIST(caption, description) \
-	_T("<item type=\"optional_list\" caption=\"") caption _T("\" description=\"") description _T("\"><options>")
-
-#define ITEM_CHECK_BOOL(caption, description) \
-	_T("<item type=\"bool\" caption=\"") caption _T("\" description=\"") description _T("\"><options>")
-
-#define ITEM_MAP_TO(type) \
-	_T("</options><mapper type=\"") type _T("\">") \
-	_T("<options>")
-
-#define OPTION(key, value) \
-	_T("<option key=\"") key _T("\" value=\"") value _T("\"/>")
-
-#define ITEM_END() \
-	_T("</options>") \
-	_T("</mapper>") \
-	_T("</item>")
-
-#define PAGE_END() \
-	_T("</items>") \
-	_T("</page>")
-
-#define MODULE_SETTINGS_END() \
-			_T("</pages>") \
-		_T("</module>"); \
-	}
-
Index: gs/0.3.1/include/NTService.h
===================================================================
--- tags/0.3.1/include/NTService.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,204 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <string>
-
-
-/**
- * @ingroup NSClient++
- * Helper class to implement a NT service
- *
- * @version 1.0
- * first version
- *
- * @date 02-13-2005
- *
- * @author mickem
- *
- * @par license
- * This code is absolutely free to use and modify. The code is provided "as is" with
- * no expressed or implied warranty. The author accepts no liability if it causes
- * any damage to your computer, causes your pet to fall ill, increases baldness
- * or makes your car start emitting strange noises when you start it up.
- * This code has no bugs, just undocumented features!
- * 
- * @todo 
- *
- * @bug 
- *
- */
-template <class TBase>
-class NTService : public TBase
-{
-private:
-	HANDLE  hServerStopEvent;
-	SERVICE_STATUS          ssStatus;
-	SERVICE_STATUS_HANDLE   sshStatusHandle;
-	DWORD                   dwErr;
-	SERVICE_TABLE_ENTRY *dispatchTable;
-public:
-	NTService() : dispatchTable(NULL), hServerStopEvent(NULL), dwErr(0) {
-		// TODO This ought to be made dynamic somehow...
-		dispatchTable = new SERVICE_TABLE_ENTRY[2];
-		dispatchTable[0].lpServiceName = SZSERVICENAME;
-		dispatchTable[0].lpServiceProc = (LPSERVICE_MAIN_FUNCTION)TBase::service_main_dispatch;
-		dispatchTable[1].lpServiceName = NULL;
-		dispatchTable[1].lpServiceProc = NULL;
-	}
-	virtual ~NTService() {
-		delete [] dispatchTable;
-	}
-
-	boolean StartServiceCtrlDispatcher() {
-		BOOL ret = ::StartServiceCtrlDispatcher(dispatchTable);
-		if (ret == ERROR_FAILED_SERVICE_CONTROLLER_CONNECT) {
-			std::wcout << "We are running in console mode, terminating..." << std::endl;
-			return false;
-		}
-		return ret != 0;
-	}
-
-	void service_main(DWORD dwArgc, LPTSTR *lpszArgv)
-	{
-		// register our service control handler:
-		sshStatusHandle = RegisterServiceCtrlHandler( SZSERVICENAME, TBase::service_ctrl_dispatch);
-
-		// SERVICE_STATUS members that don't change in example
-		ssStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
-		ssStatus.dwServiceSpecificExitCode = 0;
-
-		// report the status to the service control manager.
-		if (!ReportStatusToSCMgr(SERVICE_START_PENDING,NO_ERROR,3000)) {
-			if (sshStatusHandle)
-				ReportStatusToSCMgr(SERVICE_STOPPED,dwErr,0);
-		}
-
-		ServiceStart( dwArgc, lpszArgv );
-
-		// try to report the stopped status to the service control manager.
-		if (sshStatusHandle)
-			ReportStatusToSCMgr(SERVICE_STOPPED,dwErr,0);
-	}
-
-
-	void service_ctrl(DWORD dwCtrlCode) {
-		switch(dwCtrlCode) 
-		{
-		case SERVICE_CONTROL_STOP:
-			ReportStatusToSCMgr(SERVICE_STOP_PENDING, NO_ERROR, 0);
-			ServiceStop();
-			return;
-
-		case SERVICE_CONTROL_INTERROGATE:
-			break;
-
-		default:
-			break;
-
-		}
-		ReportStatusToSCMgr(ssStatus.dwCurrentState, NO_ERROR, 0);
-	}
-
-
-
-	/**
-	* Sets the current status of the service and reports it to the Service Control Manager
-	*
-	* @param dwCurrentState 
-	* @param dwWin32ExitCode 
-	* @param dwWaitHint 
-	* @return 
-	*
-	* @author mickem
-	*
-	* @date 03-13-2004
-	*
-	*/
-	BOOL ReportStatusToSCMgr(DWORD dwCurrentState, DWORD dwWin32ExitCode, DWORD dwWaitHint) {
-		static DWORD dwCheckPoint = 1;
-		BOOL fResult = TRUE;
-
-		if (dwCurrentState == SERVICE_START_PENDING)
-			ssStatus.dwControlsAccepted = 0;
-		else
-			ssStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP;
-
-		ssStatus.dwCurrentState = dwCurrentState;
-		ssStatus.dwWin32ExitCode = dwWin32ExitCode;
-		ssStatus.dwWaitHint = dwWaitHint;
-
-		if ( (dwCurrentState == SERVICE_RUNNING ) || (dwCurrentState == SERVICE_STOPPED) )
-			ssStatus.dwCheckPoint = 0;
-		else
-			ssStatus.dwCheckPoint = dwCheckPoint++;
-
-		// Report the status of the service to the service control manager.
-		fResult = SetServiceStatus( sshStatusHandle, &ssStatus);
-
-		return fResult;
-	}
-
-	/**
-	* Actual code of the service that does the work.
-	*
-	* @param dwArgc 
-	* @param *lpszArgv 
-	*
-	* @author mickem
-	*
-	* @date 03-13-2004
-	*
-	*/
-	void ServiceStart(DWORD dwArgc, LPTSTR *lpszArgv) {
-		hServerStopEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
-		if (!ReportStatusToSCMgr(SERVICE_RUNNING,NO_ERROR,0)) {
-			if (hServerStopEvent)
-				CloseHandle(hServerStopEvent);
-			return;
-		}
-
-		TBase::InitiateService();
-
-		WaitForSingleObject( hServerStopEvent,INFINITE );
-
-		TBase::TerminateService();
-
-		if (hServerStopEvent)
-			CloseHandle(hServerStopEvent);
-	}
-
-
-
-	/**
-	* Stops the service
-	*
-	*
-	* @author mickem
-	*
-	* @date 03-13-2004
-	*
-	*/
-	void ServiceStop() {
-		if ( hServerStopEvent )
-			SetEvent(hServerStopEvent);
-	}
-};
Index: gs/0.3.1/include/PDHCollectors.h
===================================================================
--- tags/0.3.1/include/PDHCollectors.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,322 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <PDHCounter.h>
-#include <Mutex.h>
-namespace PDHCollectors {
-	const int format_large = 0x00000400;
-	const int format_long = 0x00000100;
-	const int format_double = 0x00000200;
-
-	class PDHException {
-		std::wstring error_;
-	public:
-		PDHException(std::wstring error) : error_(error) {}
-		std::wstring getError() const { return error_; }
-
-	};
-	class TPDHCounterMutex {
-	public:
-		virtual void lock() = 0;
-		virtual bool hasLock(bool silent = true) = 0;
-		virtual void release() = 0;
-	};
-
-	class PDHCounterNoMutex : public TPDHCounterMutex {
-	public:
-		void lock() {}
-		bool hasLock(bool silent = true) {
-			return true;
-		}
-		void release() {}
-	};
-	class PDHCounterNormalMutex : public TPDHCounterMutex {
-		MutexHandler mutex_;
-		ManualMutexLock lock_;
-	public:
-		PDHCounterNormalMutex() : lock_(mutex_) {}
-		void lock() {
-			lock_.lock();
-		}
-		bool hasLock(bool silent = true) {
-			if (!silent && !lock_.hasMutex()) {
-				std::wcout << _T("We never got the mutex... sorry...") << std::endl;
-			}
-			return lock_.hasMutex();
-		}
-		void release() {
-			lock_.release();
-		}
-	};
-	class PDHCounterMutexHandler {
-	private:
-		TPDHCounterMutex *mutex_;	// Handle to the mutex object.
-	public:
-		/**
-		* Default c-tor.
-		* Waits for the mutex object.
-		* @param mutex The mutex to use
-		* @timeout The timeout before abandoning wait
-		*/
-		PDHCounterMutexHandler(TPDHCounterMutex *mutex) : mutex_(mutex) {
-			if (mutex == NULL) {
-				std::wcout << _T("Error in mutex lock: ") << std::endl;
-				mutex = NULL;
-				return;
-			}
-			mutex->lock();
-		}
-		/**
-		* An attempt to simplify the has mutex thingy (don't know if it works, haven't tried it since I wrote this class a few years ago :)
-		* @return true if we have a mutex lock.
-		*/
-		operator bool () const {
-			return mutex_!=NULL&&mutex_->hasLock();
-		}
-		/**
-		* Check if we actually got the mutex (might have timed out)
-		* @return 
-		*/
-		bool hasLock(bool silent = true) const {
-			return mutex_!=NULL&&mutex_->hasLock(silent);
-		}
-		/**
-		* Default d-tor.
-		* Release the mutex
-		*/
-		virtual ~PDHCounterMutexHandler() {
-			mutex_->release();
-		}
-	};
-
-	template <class TType, int TCollectionFormat, class TMutextHandler = PDHCounterNoMutex>
-	class StaticPDHCounterListener {};
-
-	template <class TType, class TMutextHandler>
-	class StaticPDHCounterListener<TType, format_double, TMutextHandler> : public PDH::PDHCounterListener {
-		TType value_;
-		TMutextHandler mutex_;
-	public:
-		StaticPDHCounterListener() : value_(0) {}
-		virtual void collect(const PDH::PDHCounter &counter) {
-			PDHCounterMutexHandler mutex(&mutex_);
-			if (!mutex.hasLock())
-				return;
-			value_ = counter.getDoubleValue();
-		}
-		void attach(const PDH::PDHCounter &counter){}
-		void detach(const PDH::PDHCounter &counter){}
-		TType getValue() {
-			PDHCounterMutexHandler mutex(&mutex_);
-			if (!mutex.hasLock())
-				return -1;
-			return value_;
-		}
-		DWORD getFormat() const {
-			return format_double;
-		}
-	};
-
-	template <class TType, class TMutextHandler>
-	class StaticPDHCounterListener<TType, format_long, TMutextHandler> : public PDH::PDHCounterListener {
-		TType value_;
-		TMutextHandler mutex_;
-	public:
-		StaticPDHCounterListener() : value_(0) {}
-		virtual void collect(const PDH::PDHCounter &counter) {
-			PDHCounterMutexHandler mutex(&mutex_);
-			if (!mutex.hasLock())
-				return;
-			value_ = counter.getIntValue();
-		}
-		void attach(const PDH::PDHCounter &counter){}
-		void detach(const PDH::PDHCounter &counter){}
-		TType getValue() {
-			PDHCounterMutexHandler mutex(&mutex_);
-			if (!mutex.hasLock())
-				return -1;
-			return value_;
-		}
-		DWORD getFormat() const {
-			return format_long;
-		}
-	};
-
-	template <class TType, class TMutextHandler>
-	class StaticPDHCounterListener<TType, format_large, TMutextHandler> : public PDH::PDHCounterListener {
-		TMutextHandler mutex_;
-		TType value_;
-	public:
-		StaticPDHCounterListener() : value_(0) {}
-		virtual void collect(const PDH::PDHCounter &counter) {
-			PDHCounterMutexHandler mutex(&mutex_);
-			if (!mutex.hasLock())
-				return;
-			value_ = counter.getInt64Value();
-		}
-		void attach(const PDH::PDHCounter &counter){}
-		void detach(const PDH::PDHCounter &counter){}
-		TType getValue() {
-			PDHCounterMutexHandler mutex(&mutex_);
-			if (!mutex.hasLock())
-				return -1;
-			return value_;
-		}
-		DWORD getFormat() const {
-			return format_large;
-		}
-	};
-
-
-	template <class TType, class TMutextHandler>
-	class RoundINTPDHBufferListenerImpl : public PDH::PDHCounterListener {
-		TMutextHandler mutex_;
-		unsigned int length;
-		TType *buffer;
-		unsigned int current;
-	public:
-		RoundINTPDHBufferListenerImpl() : buffer(NULL), length(0), current(0) {}
-		RoundINTPDHBufferListenerImpl(int length_) : length(length_), current(0) {
-			PDHCounterMutexHandler mutex(mutex_);
-			if (!mutex.hasLock())
-				return;
-			buffer = new int[length];
-			for (unsigned int i=0; i<length;i++)
-				buffer[i] = 0;
-		}
-		virtual ~RoundINTPDHBufferListenerImpl() {
-			PDHCounterMutexHandler mutex(&mutex_);
-			if (!mutex.hasLock())
-				return;
-			delete [] buffer;
-		}
-
-		/**
-		* Resize the buffer to a new length
-		*
-		* @todo Make this copy the old buffer if there is one.
-		*
-		* @param newLength The new length
-		*/
-		void resize(int newLength) {
-			PDHCounterMutexHandler mutex(&mutex_);
-			if (!mutex.hasLock())
-				return;
-			delete [] buffer;
-
-			current = 0;
-			length = newLength;
-
-			buffer = new TType[length];
-			for (unsigned int i=0; i<length;i++)
-				buffer[i] = 0;
-
-		}
-
-		virtual void collect(const PDH::PDHCounter &counter) = 0;
-
-		void attach(const PDH::PDHCounter &counter){}
-		void detach(const PDH::PDHCounter &counter){}
-		void pushValue(TType value) {
-			PDHCounterMutexHandler mutex(&mutex_);
-			if (!mutex.hasLock())
-				return;
-			if (buffer == NULL)
-				return;
-			if (current >= length)
-				return;
-			buffer[current++] = value;
-			if (current >= length)
-				current = 0;
-		}
-		double getAvrage(unsigned int backItems) {
-			PDHCounterMutexHandler mutex(&mutex_);
-			if (!mutex.hasLock(true))
-				throw PDHException(_T("Failed to get mutex :("));
-			if ((backItems == 0) || (backItems >= length))
-				return -1;
-			double ret = 0;
-			if (current >= backItems) {
-				// Handle "whole" list.
-				for (unsigned int i=current-backItems; i<current;i++)
-					ret += buffer[i];
-			} else {
-				// Handle split list.
-				for (unsigned int i=0; i<current;i++)
-					ret += buffer[i];
-				for (unsigned int i=length-backItems+current; i<length;i++)
-					ret += buffer[i];
-			}
-			return (ret/backItems);
-		}
-		inline unsigned int getLength() const {
-			return length;
-		}
-	};
-
-
-	template <class TType, DWORD TCollectionFormat, class TMutextHandler = PDHCounterNoMutex>
-	class RoundINTPDHBufferListener : public RoundINTPDHBufferListenerImpl<TType, TMutextHandler> {
-	};
-
-	template <class TType, class TMutextHandler>
-	class RoundINTPDHBufferListener<TType, format_double, TMutextHandler> : public RoundINTPDHBufferListenerImpl<TType, TMutextHandler> {
-	public:
-		RoundINTPDHBufferListener() {}
-		RoundINTPDHBufferListener(int length) : RoundINTPDHBufferListenerImpl(length) {}
-
-		virtual void collect(const PDH::PDHCounter &counter) {
-			pushValue(counter.getDoubleValue());
-		}
-		virtual DWORD getFormat() const {
-			return format_double;
-		}
-	};
-
-	template <class TType, class TMutextHandler>
-	class RoundINTPDHBufferListener<TType, format_long, TMutextHandler> : public RoundINTPDHBufferListenerImpl<TType, TMutextHandler> {
-	public:
-		RoundINTPDHBufferListener() {}
-		RoundINTPDHBufferListener(int length) : RoundINTPDHBufferListenerImpl(length) {}
-
-		virtual void collect(const PDH::PDHCounter &counter) {
-			pushValue(counter.getIntValue());
-		}
-		virtual DWORD getFormat() const {
-			return format_long;
-		}
-	};
-
-	template <class TType, class TMutextHandler>
-	class RoundINTPDHBufferListener<TType, format_large, TMutextHandler> : public RoundINTPDHBufferListenerImpl<TType, TMutextHandler> {
-	public:
-		RoundINTPDHBufferListener() {}
-		RoundINTPDHBufferListener(int length) : RoundINTPDHBufferListenerImpl(length) {}
-
-		virtual void collect(const PDH::PDHCounter &counter) {
-			pushValue(counter.getInt64Value());
-		}
-		virtual DWORD getFormat() const {
-			return format_large;
-		}
-	};
-}
Index: gs/0.3.1/include/PDHCounter.cpp
===================================================================
--- tags/0.3.1/include/PDHCounter.cpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,25 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#include "stdafx.h"
-#include "pdhcounter.h"
-
-PDH::PDHResolver::fpPdhLookupPerfNameByIndex PDH::PDHResolver::pPdhLookupPerfNameByIndex = NULL;
-HMODULE PDH::PDHResolver::PDH_ = NULL;
Index: gs/0.3.1/include/PDHCounter.h
===================================================================
--- tags/0.3.1/include/PDHCounter.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,461 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <list>
-#include <pdh.h>
-#include <pdhmsg.h>
-#include <assert.h>
-#include <sstream>
-
-namespace PDH {
-
-
-
-	class PDHException {
-	private:
-		std::wstring str_;
-		std::wstring name_;
-		PDH_STATUS pdhStatus_;
-	public:
-		PDHException(std::wstring name, std::wstring str, PDH_STATUS pdhStatus = 0) : name_(name), str_(str), pdhStatus_(pdhStatus) {}
-		PDHException(std::wstring str, PDH_STATUS pdhStatus) : str_(str), pdhStatus_(pdhStatus) {}
-		PDHException(std::wstring str) : str_(str), pdhStatus_(0) {}
-		std::wstring getError() const {
-			std::wstring ret;
-			if (!name_.empty())
-				ret += name_ + _T(": ");
-			ret += str_;
-			if (pdhStatus_ != 0) {
-				ret += _T(": ") + error::format::from_module(_T("PDH.DLL"), pdhStatus_);
-			}
-			return ret;
-		}
-	};
-
-	class PDHResolver {
-	public:
-		//typedef PDH_FUNCTION (*fpPdhLookupPerfNameByIndex)(IN LPCWSTR szMachineName,IN DWORD dwNameIndex,IN LPWSTR szNameBuffer,IN LPDWORD pcchNameBufferSize);
-		typedef PDH_STATUS (WINAPI *fpPdhLookupPerfNameByIndex)(LPCWSTR,DWORD,LPWSTR,LPDWORD);
-		static fpPdhLookupPerfNameByIndex pPdhLookupPerfNameByIndex;
-		static HMODULE PDH_;
-	private:
-		static void lookup_function() {
-			if (pPdhLookupPerfNameByIndex != NULL)
-				return;
-			PDH_ = ::LoadLibrary(_TEXT("PDH"));
-			
-			if (PDH_ == NULL) {
-				throw PDHException(_T("LoadLibrary for PDH failed: ")+ error::lookup::last_error());
-			}
-#ifdef UNICODE
-			//*(FARPROC *)&pPdhLookupPerfNameByIndex
-			pPdhLookupPerfNameByIndex = (fpPdhLookupPerfNameByIndex)::GetProcAddress(PDH_, "PdhLookupPerfNameByIndexW");
-#else
-			pPdhLookupPerfNameByIndex = (fpPdhLookupPerfNameByIndex)::GetProcAddress(PDH_, "PdhLookupPerfNameByIndexA");
-#endif
-			if (pPdhLookupPerfNameByIndex == NULL) {
-				throw PDHException(_T("Failed to find function: PdhLookupPerfNameByIndex!")+ error::lookup::last_error());
-			}
-		}
-	public:
-		static PDH_STATUS PdhLookupPerfNameByIndex(LPCTSTR szMachineName,DWORD dwNameIndex,LPTSTR szNameBuffer,LPDWORD pcchNameBufferSize) {
-			PDHResolver::lookup_function();
-			if (pPdhLookupPerfNameByIndex == NULL)
-				throw PDHException(_T("Failed to initalize PdhLookupPerfNameByIndex :("));
-			return pPdhLookupPerfNameByIndex(szMachineName,dwNameIndex,szNameBuffer,pcchNameBufferSize);
-		}
-#define PDH_INDEX_BUF_LEN 2048
-		static std::wstring PdhLookupPerfNameByIndex(LPCTSTR szMachineName, DWORD dwNameIndex) {
-			TCHAR *buffer = new TCHAR[PDH_INDEX_BUF_LEN+1];
-			DWORD bufLen = PDH_INDEX_BUF_LEN;
-			PDH_STATUS status = PDHResolver::PdhLookupPerfNameByIndex(szMachineName,dwNameIndex,buffer,&bufLen);
-			if (status != ERROR_SUCCESS) {
-				delete [] buffer;
-				throw PDHException(_T("RESOLVER"), _T("PdhLookupPerfNameByIndex: Could not find index: ") + strEx::itos(dwNameIndex), status);
-			}
-			std::wstring ret = buffer;
-			delete [] buffer;
-			return ret;
-		}
-	};
-
-	class PDHCounter;
-	class PDHCounterListener {
-	public:
-		virtual void collect(const PDHCounter &counter) = 0;
-		virtual void attach(const PDHCounter &counter) = 0;
-		virtual void detach(const PDHCounter &counter) = 0;
-		virtual DWORD getFormat() const = 0;
-	};
-
-	class PDHCounterInfo {
-	public:
-		DWORD   dwType;
-		DWORD   CVersion;
-		DWORD   CStatus;
-		LONG    lScale;
-		LONG    lDefaultScale;
-		DWORD_PTR   dwUserData;
-		DWORD_PTR   dwQueryUserData;
-		std::wstring  szFullPath;
-
-		std::wstring   szMachineName;
-		std::wstring   szObjectName;
-		std::wstring   szInstanceName;
-		std::wstring   szParentInstance;
-		DWORD    dwInstanceIndex;
-		std::wstring   szCounterName;
-
-		std::wstring  szExplainText;
-
-		PDHCounterInfo(BYTE *lpBuffer, DWORD dwBufferSize, BOOL explainText) {
-			PDH_COUNTER_INFO *info = (PDH_COUNTER_INFO*)lpBuffer;
-			dwType = info->dwType;
-			CVersion = info->CVersion;
-			CStatus = info->CStatus;
-			lScale = info->lScale;
-			lDefaultScale = info->lDefaultScale;
-			dwUserData = info->dwUserData;
-			dwQueryUserData = info->dwQueryUserData;
-			szFullPath = info->szFullPath;
-			if (info->szMachineName)
-				szMachineName = info->szMachineName;
-			if (info->szObjectName)
-				szObjectName = info->szObjectName;
-			if (info->szInstanceName)
-				szInstanceName = info->szInstanceName;
-			if (info->szParentInstance)
-				szParentInstance = info->szParentInstance;
-			dwInstanceIndex = info->dwInstanceIndex;
-			if (info->szCounterName)
-				szCounterName = info->szCounterName;
-			if (explainText) {
-				if (info->szExplainText)
-					szExplainText = info->szExplainText;
-			}
-		}
-	};
-
-	class PDHCounter
-	{
-	private:
-		HCOUNTER hCounter_;
-		std::wstring name_;
-		PDH_FMT_COUNTERVALUE data_;
-		PDHCounterListener *listener_;
-
-	public:
-
-		PDHCounter(std::wstring name, PDHCounterListener *listener) : name_(name), listener_(listener), hCounter_(NULL){}
-		PDHCounter(std::wstring name) : name_(name), listener_(NULL), hCounter_(NULL){}
-		virtual ~PDHCounter(void) {
-			if (hCounter_ != NULL)
-				remove();
-		}
-
-		void setListener(PDHCounterListener *listener) {
-			listener_ = listener;
-		}
-
-		PDHCounterInfo getCounterInfo(BOOL bExplainText = FALSE) {
-			assert(hCounter_ != NULL);
-			PDH_STATUS status;
-			BYTE *lpBuffer = new BYTE[1025];
-			DWORD bufSize = 1024;
-			if ((status = PdhGetCounterInfo(hCounter_, bExplainText, &bufSize, (PDH_COUNTER_INFO*)lpBuffer)) != ERROR_SUCCESS) {
-				throw PDHException(name_, _T("getCounterInfo failed (no query)"), status);
-			}
-			return PDHCounterInfo(lpBuffer, bufSize, TRUE);
-		}
-		const HCOUNTER getCounter() const {
-			return hCounter_;
-		}
-		const std::wstring getName() const {
-			return name_;
-		}
-		void addToQuery(HQUERY hQuery) {
-			PDH_STATUS status;
-			if (hQuery == NULL)
-				throw PDHException(name_, _T("addToQuery failed (no query)."));
-			if (hCounter_ != NULL)
-				throw PDHException(name_, _T("addToQuery failed (already opened)."));
-			if (listener_)
-				listener_->attach(*this);
-			LPCWSTR name = name_.c_str();
-			if ((status = PdhAddCounter(hQuery, name, 0, &hCounter_)) != ERROR_SUCCESS) {
-				hCounter_ = NULL;
-				throw PDHException(name_, _T("PdhAddCounter failed"), status);
-			}
-			assert(hCounter_ != NULL);
-		}
-		void remove() {
-			if (hCounter_ == NULL)
-				return;
-			PDH_STATUS status;
-			if (listener_)
-				listener_->detach(*this);
-			if ((status = PdhRemoveCounter(hCounter_)) != ERROR_SUCCESS)
-				throw PDHException(name_, _T("PdhRemoveCounter failed"), status);
-			hCounter_ = NULL;
-		}
-		void collect() {
-			if (hCounter_ == NULL)
-				return;
-			PDH_STATUS status;
-			if (!listener_)
-				return;
-			if ((status = PdhGetFormattedCounterValue(hCounter_, listener_->getFormat(), NULL, &data_)) != ERROR_SUCCESS) {
-				throw PDHException(name_, _T("PdhGetFormattedCounterValue failed"), status);
-			}
-			listener_->collect(*this);
-		}
-		double getDoubleValue() const {
-			return data_.doubleValue;
-		}
-		__int64 getInt64Value() const {
-			return data_.largeValue;
-		}
-		long getIntValue() const {
-			return data_.longValue;
-		}
-		std::wstring getStringValue() const {
-			return data_.WideStringValue;
-		}
-	};
-
-	class PDHQuery 
-	{
-	private:
-		typedef std::list<PDHCounter*> CounterList;
-		CounterList counters_;
-		HQUERY hQuery_;
-	public:
-		PDHQuery() : hQuery_(NULL) {
-		}
-		virtual ~PDHQuery(void) {
-			removeAllCounters();
-		}
-
-		PDHCounter* addCounter(std::wstring name, PDHCounterListener *listener) {
-			PDHCounter *counter = new PDHCounter(name, listener);
-			counters_.push_back(counter);
-			return counter;
-		}
-		std::wstring lookupIndex(DWORD index) {
-			return PDHResolver::PdhLookupPerfNameByIndex(NULL, index);
-		}
-		PDHCounter* addCounter(std::wstring name) {
-			PDHCounter *counter = new PDHCounter(name);
-			counters_.push_back(counter);
-			return counter;
-		}
-		void removeAllCounters() {
-			if (hQuery_)
-				close();
-			for (CounterList::iterator it = counters_.begin(); it != counters_.end(); it++) {
-				delete (*it);
-			}
-			counters_.clear();
-		}
-
-		void open() {
-			assert(hQuery_ == NULL);
-			PDH_STATUS status;
-			if( (status = PdhOpenQuery( NULL, 0, &hQuery_ )) != ERROR_SUCCESS)
-				throw PDHException(_T("PdhOpenQuery failed"), status);
-			for (CounterList::iterator it = counters_.begin(); it != counters_.end(); it++) {
-				(*it)->addToQuery(getQueryHandle());
-			}
-		}
-
-		void close() {
-			assert(hQuery_ != NULL);
-			PDH_STATUS status;
-			for (CounterList::iterator it = counters_.begin(); it != counters_.end(); it++) {
-				(*it)->remove();
-			}
-			if( (status = PdhCloseQuery(hQuery_)) != ERROR_SUCCESS)
-				throw PDHException(_T("PdhCloseQuery failed"), status);
-			hQuery_ = NULL;
-			for (CounterList::iterator it = counters_.begin(); it != counters_.end(); it++) {
-				delete (*it);
-			}
-			counters_.clear();
-		}
-
-		void gatherData() {
-			PDH_STATUS status;
-			if ((status = PdhCollectQueryData(hQuery_)) != ERROR_SUCCESS)
-				throw PDHException(_T("PdhCollectQueryData failed: "), status);
-			for (CounterList::iterator it = counters_.begin(); it != counters_.end(); it++) {
-				(*it)->collect();
-			}
-		}
-		void collect() {
-			PDH_STATUS status;
-			if ((status = PdhCollectQueryData(hQuery_)) != ERROR_SUCCESS)
-				throw PDHException(_T("PdhCollectQueryData failed: "), status);
-		}
-
-		HQUERY getQueryHandle() const {
-			return hQuery_;
-		}
-	};
-
-	class Enumerations {
-	public:
-
-		struct Counter {
-			std::wstring name;
-		};
-		typedef std::list<Counter> Counters;
-		struct Instance {
-			std::wstring name;
-		};
-		typedef std::list<Instance> Instances;
-		struct Object {
-			std::wstring name;
-			Instances instances;
-			Counters counters;
-		};
-
-		typedef std::list<Object> Objects;
-		static Objects EnumObjects(DWORD dwDetailLevel = PERF_DETAIL_WIZARD) {
-			Objects ret;
-
-			DWORD dwObjectBufLen = 0;
-			TCHAR* szObjectBuffer = NULL;
-			PDH_STATUS status = PdhEnumObjects(NULL, NULL, szObjectBuffer, &dwObjectBufLen, dwDetailLevel, FALSE);
-			if (status != PDH_MORE_DATA)
-				throw PDHException(_T("PdhEnumObjects failed when trying to retrieve size of object buffer"), status);
-
-			szObjectBuffer = new TCHAR[dwObjectBufLen+1024];
-			status = PdhEnumObjects(NULL, NULL, szObjectBuffer, &dwObjectBufLen, dwDetailLevel, FALSE);
-			if (status != ERROR_SUCCESS)
-				throw PDHException(_T("PdhEnumObjects failed when trying to retrieve object buffer"), status);
-
-			TCHAR *cp=szObjectBuffer;
-			while(*cp != '\0') {
-				Object o;
-				o.name = cp;
-				ret.push_back(o);
-				cp += lstrlen(cp)+1;
-			}
-			delete [] szObjectBuffer;
-
-			for (Objects::iterator it = ret.begin(); it != ret.end(); ++it) {
-				DWORD dwCounterBufLen = 0;
-				TCHAR* szCounterBuffer = NULL;
-				DWORD dwInstanceBufLen = 0;
-				TCHAR* szInstanceBuffer = NULL;
-				status = PdhEnumObjectItems(NULL, NULL, (*it).name.c_str(), szCounterBuffer, &dwCounterBufLen, szInstanceBuffer, &dwInstanceBufLen, dwDetailLevel, 0);
-				if (status == PDH_MORE_DATA) {
-					szCounterBuffer = new TCHAR[dwCounterBufLen+1024];
-					szInstanceBuffer = new TCHAR[dwInstanceBufLen+1024];
-					status = PdhEnumObjectItems(NULL, NULL, (*it).name.c_str(), szCounterBuffer, &dwCounterBufLen, szInstanceBuffer, &dwInstanceBufLen, dwDetailLevel, 0);
-					if (status != ERROR_SUCCESS)
-						throw PDHException(_T("PdhEnumObjectItems failed when trying to retrieve buffer for ") + (*it).name, status);
-
-					if (dwCounterBufLen > 0) {
-						cp=szCounterBuffer;
-						while(*cp != '\0') {
-							Counter o;
-							o.name = cp;
-							(*it).counters.push_back(o);
-							cp += lstrlen(cp)+1;
-						}
-					}
-					if (dwInstanceBufLen > 0) {
-						cp=szInstanceBuffer;
-						while(*cp != '\0') {
-							Instance o;
-							o.name = cp;
-							(*it).instances.push_back(o);
-							cp += lstrlen(cp)+1;
-						}
-					}
-					delete [] szCounterBuffer;
-					delete [] szInstanceBuffer;
-					//throw PDHException("PdhEnumObjectItems failed when trying to retrieve size for " + (*it).name, status);
-				}
-			}
-			return ret;
-		}
-		/*
-		static str_lst EnumObjectItems(std::wstring object) {
-			str_lst ret;
-			DWORD bufLen = 4096;
-			DWORD bufLen2 = 0;
-			LPTSTR buf = new char[bufLen+1];
-			PDH_STATUS status = PdhEnumObjectItems(NULL, NULL, object.c_str(), buf, &bufLen, NULL, &bufLen2, PERF_DETAIL_WIZARD, 0);
-			if (status == ERROR_SUCCESS) {
-				char *cp=buf;
-				while(*cp != '\0') {
-					ret.push_back(std::wstring(cp));
-					cp += lstrlen(cp)+1;
-				}
-			}
-			return ret;
-		}
-		static str_lst EnumObjectInstances(std::wstring object) {
-			str_lst ret;
-			DWORD bufLen = 4096;
-			DWORD bufLen2 = 0;
-			LPTSTR buf = new char[bufLen+1];
-			PDH_STATUS status = PdhEnumObjectItems(NULL, NULL, object.c_str(), NULL, &bufLen2, buf, &bufLen, PERF_DETAIL_WIZARD, 0);
-			if (status == ERROR_SUCCESS) {
-				char *cp=buf;
-				while(*cp != '\0') {
-					ret.push_back(std::wstring(cp));
-					cp += lstrlen(cp)+1;
-				}
-			}
-			return ret;
-		}
-		*/
-		static bool validate(std::wstring counter, std::wstring &error) {
-			PDH_STATUS status = PdhValidatePath(counter.c_str());
-			switch (status) {
-				case ERROR_SUCCESS:
-					return true;
-				case PDH_CSTATUS_NO_INSTANCE:
-					error = _T("The specified instance of the performance object was not found.");
-					break;
-				case PDH_CSTATUS_NO_COUNTER:
-					error = _T("The specified counter was not found in the performance object.");
-					break;
-				case PDH_CSTATUS_NO_MACHINE:
-					error = _T("The specified computer could not be found or connected to.");
-					break;
-				case PDH_CSTATUS_BAD_COUNTERNAME:
-					error = _T("The counter path string could not be parsed.");
-					break;
-				case PDH_MEMORY_ALLOCATION_FAILURE:
-					error = _T("The function is unable to allocate a required temporary buffer.");
-					break;
-			}
-			return false;
-		}
-	};
-
-
-}
Index: gs/0.3.1/include/REGSettings.h
===================================================================
--- tags/0.3.1/include/REGSettings.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,217 +1,0 @@
-#pragma once
-
-#include <string>
-#include <windows.h>
-#include <TSettings.h>
-#include <msvc_wrappers.h>
-#include <error.hpp>
-#define BUFF_LEN 4096
-
-
-#include <iostream>
-class REGSettings : public TSettings
-{
-public:
-	typedef std::list<std::wstring> sectionList;
-	REGSettings(void)
-	{
-	}
-
-	virtual ~REGSettings(void)
-	{
-	}
-
-	static bool hasSettings() {
-		return getInt_(NS_HKEY_ROOT, NS_REG_ROOT _T("\\") MAIN_SECTION_TITLE, MAIN_USEREG, 0) == 1;
-	}
-
-	std::wstring getActiveType() {
-		return _T("registry");
-	}
-
-	sectionList getSections(unsigned int bufferLength = BUFF_LEN) {
-		return getSubKeys_(NS_HKEY_ROOT, NS_REG_ROOT);
-	}
-
-	/**
-	* Get all keys from a section as a list<string>
-	* @param section The section to return all keys from
-	* @return A list with all keys from the section
-	*/
-	sectionList getSection(std::wstring section, unsigned int bufferLength = BUFF_LEN) {
-		return getValues_(NS_HKEY_ROOT, std::wstring((std::wstring)NS_REG_ROOT + _T("\\") + section).c_str());
-	}
-	/**
-	* Get a string from the settings file
-	* @param section Section to read from 
-	* @param key Key to retrieve
-	* @param defaultValue Default value to return if key is not found
-	* @return The value or defaultValue if the key is not found
-	*/
-	std::wstring getString(std::wstring section, std::wstring key, std::wstring defaultValue = _T("")) const {
-		return getString_(NS_HKEY_ROOT, std::wstring((std::wstring)NS_REG_ROOT + _T("\\") + section).c_str(), key.c_str(), defaultValue);
-	}
-
-	void setString(std::wstring section, std::wstring key, std::wstring value) {
-		setString_(NS_HKEY_ROOT, std::wstring((std::wstring)NS_REG_ROOT + _T("\\") + section).c_str(), key.c_str(), value.c_str());
-	}
-
-	/**
-	* Get an integer from the settings file
-	* @param section Section to read from 
-	* @param key Key to retrieve
-	* @param defaultValue Default value to return if key is not found
-	* @return The value or defaultValue if the key is not found
-	*/
-	int getInt(std::wstring section, std::wstring key, int defaultValue = 0) {
-		return getInt_(NS_HKEY_ROOT, std::wstring((std::wstring)NS_REG_ROOT + _T("\\") + section).c_str(), key.c_str(), defaultValue);
-	}
-	void setInt(std::wstring section, std::wstring key, int value) {
-		setInt_(NS_HKEY_ROOT, std::wstring((std::wstring)NS_REG_ROOT + _T("\\") + section).c_str(), key.c_str(), value);
-	}
-
-	static bool setString_(HKEY hKey, LPCTSTR lpszPath, LPCTSTR lpszKey, LPCTSTR value) {
-		HKEY hTemp;
-		if (RegCreateKeyEx(hKey, lpszPath, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hTemp, NULL) != ERROR_SUCCESS) {
-			return false;
-		}
-		DWORD cbData = static_cast<DWORD>(wcslen(value));
-		TCHAR *bData = new TCHAR[cbData+2];
-		wcsncpy_s(bData, cbData+1, value, cbData);
-		BOOL bRet = RegSetValueEx(hTemp, lpszKey, NULL, REG_SZ, reinterpret_cast<BYTE*>(bData), cbData);
-		RegCloseKey(hTemp);
-		delete [] bData;
-		return  (bRet == ERROR_SUCCESS);
-	}
-
-	int getActiveTypeID() {
-		return REGSettings::getType();
-	}
-	static int getType() {
-		return 2;
-	}
-
-	static bool setInt_(HKEY hKey, LPCTSTR lpszPath, LPCTSTR lpszKey, DWORD value) {
-		HKEY hTemp;
-		if (RegCreateKeyEx(hKey, lpszPath, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hTemp, NULL) != ERROR_SUCCESS) {
-			return false;
-		}
-		BOOL bRet = RegSetValueEx(hTemp, lpszKey, NULL, REG_DWORD, reinterpret_cast<const BYTE*>(&value), sizeof(DWORD));
-		RegCloseKey(hTemp);
-		return  (bRet == ERROR_SUCCESS);
-	}
-
-	static std::wstring getString_(HKEY hKey, LPCTSTR lpszPath, LPCTSTR lpszKey, std::wstring def) {
-		std::wstring ret = def;
-		HKEY hTemp;
-		if (RegOpenKeyEx(hKey, lpszPath, 0, KEY_QUERY_VALUE, &hTemp) != ERROR_SUCCESS) {
-			return def;
-		}
-		DWORD type;
-		const DWORD data_length = 2048;
-		DWORD cbData = data_length;
-		BYTE *bData = new BYTE[cbData];
-		LONG lRet = RegQueryValueEx(hTemp, lpszKey, NULL, &type, bData, &cbData);
-		if (lRet == ERROR_SUCCESS) {
-			if (type == REG_SZ) {
-				if (cbData == 0)
-					return _T("");
-				else if (cbData < data_length-1) {
-					bData[cbData] = 0;
-					const TCHAR *ptr = reinterpret_cast<TCHAR*>(bData);
-					ret = ptr;
-				} else {
-					std::wcout << _T("getString_::Buffersize to small: ") << lpszPath << "." << lpszKey << ": " << type << std::endl;
-				}
-			} else if (type == REG_DWORD) {
-				DWORD dw = *(reinterpret_cast<DWORD*>(bData));
-				ret = strEx::itos(dw);
-			} else {
-				std::wcout << _T("getString_::Unsupported type: ") << lpszPath << "." << lpszKey << ": " << type << std::endl;
-			}
-		} else if (lRet == ERROR_FILE_NOT_FOUND) {
-			return def;
-		} else {
-			std::wcout << _T("getString_::Error: ") << lpszPath << _T(".") << lpszKey << _T(": ") << error::format::from_system(lRet) << std::endl;
-		}
-		RegCloseKey(hTemp);
-		delete [] bData;
-		return ret;
-	}
-	static DWORD getInt_(HKEY hKey, LPCTSTR lpszPath, LPCTSTR lpszKey, DWORD def) {
-		DWORD ret = def;
-		LONG bRet;
-		HKEY hTemp;
-		if ((bRet = RegOpenKeyEx(hKey, lpszPath, 0, KEY_READ, &hTemp)) != ERROR_SUCCESS) {
-			return def;
-		}
-		DWORD type;
-		DWORD cbData = sizeof(DWORD);
-		BYTE *bData = new BYTE[cbData+1];
-		bRet = RegQueryValueEx(hTemp, lpszKey, NULL, &type, bData, &cbData);
-		if (type != REG_DWORD) {
-			bRet = -1;
-		}
-		RegCloseKey(hTemp);
-		if (bRet == ERROR_SUCCESS) {
-			ret = static_cast<DWORD>(*bData);
-		}
-		delete [] bData;
-		return ret;
-	}
-	static sectionList getValues_(HKEY hKey, LPCTSTR lpszPath) {
-		sectionList ret;
-		LONG bRet;
-		HKEY hTemp;
-		if ((bRet = RegOpenKeyEx(hKey, lpszPath, 0, KEY_READ, &hTemp)) != ERROR_SUCCESS) {
-			return ret;
-		}
-		DWORD cValues=0;
-		DWORD cMaxValLen=0;
-		// Get the class name and the value count. 
-		bRet = RegQueryInfoKey(hTemp,NULL,NULL,NULL,NULL,NULL,NULL,&cValues,&cMaxValLen,NULL,NULL,NULL);
-		cMaxValLen++;
-		if ((bRet == ERROR_SUCCESS)&&(cValues>0)) {
-			TCHAR *lpValueName = new TCHAR[cMaxValLen+1];
-			for (unsigned int i=0; i<cValues; i++) {
-				DWORD len = cMaxValLen;
-				bRet = RegEnumValue(hTemp, i, lpValueName, &len, NULL, NULL, NULL, NULL);
-				if (bRet == ERROR_SUCCESS) {
-					ret.push_back(std::wstring(lpValueName));
-				} else {
-					std::wcout << _T("getValues_::Error: ") << bRet << ": " << lpszPath << _T("[") << i << _T("]") << std::endl;
-
-				}
-			}
-			delete [] lpValueName;
-		}
-		return ret;
-	}
-	static sectionList getSubKeys_(HKEY hKey, LPCTSTR lpszPath) {
-		sectionList ret;
-		LONG bRet;
-		HKEY hTemp;
-		if ((bRet = RegOpenKeyEx(hKey, lpszPath, 0, KEY_READ, &hTemp)) != ERROR_SUCCESS) {
-			return ret;
-		}
-		DWORD    cSubKeys=0;
-		DWORD    cMaxKeyLen;
-		// Get the class name and the value count. 
-		bRet = RegQueryInfoKey(hTemp,NULL,NULL,NULL,&cSubKeys,&cMaxKeyLen,NULL,NULL,NULL,NULL,NULL,NULL);
-		cMaxKeyLen++;
-		if ((bRet == ERROR_SUCCESS)&&(cSubKeys>0)) {
-			TCHAR *lpValueName = new TCHAR[cMaxKeyLen+1];
-			for (unsigned int i=0; i<cSubKeys; i++) {
-				DWORD len = cMaxKeyLen;
-				bRet = RegEnumKey(hTemp, i, lpValueName, len);
-				if (bRet == ERROR_SUCCESS) {
-					ret.push_back(std::wstring(lpValueName));
-				} else {
-					std::wcout << _T("getSubKeys_::Error: ") << bRet << _T(": ") << lpszPath << _T("[") << i << _T("]") << std::endl;
-				}
-			}
-			delete [] lpValueName;
-		}
-		return ret;
-	}
-};
Index: gs/0.3.1/include/SSLSocket.cpp
===================================================================
--- tags/0.3.1/include/SSLSocket.cpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,190 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-//#include "stdafx.h"
-#include <SSLSocket.h>
-
-
-void* simpleSSL::Crypto::malloc(int num)
-{
-	return OPENSSL_malloc(num);
-}
-void simpleSSL::Crypto::free(void *addr)
-{
-	return OPENSSL_free(addr);
-}
-int simpleSSL::Crypto::getNumberOfLocks() {
-	return CRYPTO_num_locks();
-}
-
-void simpleSSL::Crypto::setLockingCallback(void (*locking_function)(int mode,int type, const char *file,int line)) {
-	CRYPTO_set_locking_callback(locking_function);
-}
-void simpleSSL::Crypto::setIDCallback(unsigned long (*id_function)(void)) {
-	CRYPTO_set_id_callback(id_function);
-}
-
-void simpleSSL::SSL_init() {
-	SSL_load_error_strings();
-	SSL_library_init();
-}
-void simpleSSL::SSL_deinit() {
-	/*
-	SSL_library_init, leaks memory but apparently OPEN-SSL is crap, so there is not much to do AFAIK! :)
-	EVP_cleanup(); 
-	CRYPTO_cleanup_all_ex_data();
-	ERR_remove_state(0);
-	*/
-	ERR_free_strings();
-}
-
-void simpleSSL::count_socket(bool add) {
-	static int count = 0;
-	if (add) {
-		count++;
-		std::wcout << "+++SSSL::Socket" << count << std::endl;
-	} else {
-		count--;
-		std::wcout << "---SSSL::Socket" << count << std::endl;
-	}
-}
-
-
-bool simpleSSL::sSSL::readAll(simpleSocket::DataBuffer &buffer, unsigned int tmpBufferLength /* = 1024*/, int maxLength /*= -1*/) {
-	char *tmpBuffer = new char[tmpBufferLength+1];
-	if (!ssl_)
-		create();
-	int n= SSL_read(ssl_,tmpBuffer,tmpBufferLength);
-	if (n > 0) {
-		buffer.append(tmpBuffer, n);
-	}
-	delete [] tmpBuffer;
-	if (n <= 0) {
-		int rc = getError(n);
-		if ((rc == SSL_ERROR_WANT_READ) || (rc == SSL_ERROR_WANT_WRITE))
-			return true;
-		throw simpleSocket::SocketException(_T("Could not read from socket: ") + strEx::itos(rc));
-	}
-	return n>0;
-}
-
-bool simpleSSL::sSSL::sendAll(const char * buffer, unsigned int len) {
-	if (!ssl_)
-		create();
-	int n = SSL_write(ssl_, buffer, len);
-	if (n <= 0) {
-		int rc = getError(n);
-		if ((rc == SSL_ERROR_WANT_READ) || (rc == SSL_ERROR_WANT_WRITE))
-			return true;
-		throw simpleSocket::SocketException(_T("Could not write to socket: ") + strEx::itos(rc));
-	}
-	return false;
-}
-
-bool simpleSSL::Listener::accept(tSocket &client) {
-	client.setContext(context);
-	return simpleSocket::Socket::accept(client);
-}
-
-
-
-static HANDLE *lock_cs = NULL;
-
-
-void locking_function(int mode, int n, const char *file, int line)
-{
-	if (mode & CRYPTO_LOCK) {
-		WaitForSingleObject(lock_cs[n], INFINITE);
-	}
-	else {
-		ReleaseMutex(lock_cs[n]);
-	}
-}
-
-void setupDH(simpleSSL::DH &dh) {
-	unsigned char dh512_p[] = {
-		0xCF, 0xFF, 0x65, 0xC2, 0xC8, 0xB4, 0xD2, 0x68, 0x8C, 0xC1, 0x80, 0xB1,
-			0x7B, 0xD6, 0xE8, 0xB3, 0x62, 0x59, 0x62, 0xED, 0xA7, 0x45, 0x6A, 0xF8,
-			0xE9, 0xD8, 0xBE, 0x3F, 0x38, 0x42, 0x5F, 0xB2, 0xA5, 0x36, 0x03, 0xD3,
-			0x06, 0x27, 0x81, 0xC8, 0x9B, 0x88, 0x50, 0x3B, 0x82, 0x3D, 0x31, 0x45,
-			0x2C, 0xB4, 0xC5, 0xA5, 0xBE, 0x6A, 0xE3, 0x2E, 0xA6, 0x86, 0xFD, 0x6A,
-			0x7E, 0x1E, 0x6A, 0x73,
-	};
-	unsigned char dh512_g[] = { 0x02, };
-
-	dh.bin2bn_p(dh512_p, sizeof(dh512_p));
-	dh.bin2bn_g(dh512_g, sizeof(dh512_g));
-}
-
-int simpleSSL::Socket::connect_() {
-	Context context;
-	context.createSSLv23Client();
-	context.setCipherList();
-	/*
-	simpleSSL::DH dh;
-	dh.create();
-	setupDH(dh);
-	context.setTmpDH(dh.getDH());
-	dh.free();
-	*/
-	if (tBase::connect_() == SOCKET_ERROR) {
-		throw simpleSocket::SocketException(_T("Failed to connect to host: ") + inet_ntoa(to_.sin_addr.s_addr), WSAGetLastError());
-	}
-	ssl.setContext(context);
-	ssl.set_fd(socket_);
-	ssl.connect();
-	return 0;
-}
-
-
-void simpleSSL::Listener::StartListener(std::wstring host, int port, unsigned int listenQue) {
-	simpleSSL::SSL_init();
-	context.createSSLv23Server();
-	context.setCipherList();
-	simpleSSL::DH dh;
-	dh.create();
-	setupDH(dh);
-	context.setTmpDH(dh.getDH());
-	dh.free();
-	if (!lock_cs) {
-		lock_cs_count = simpleSSL::Crypto::getNumberOfLocks();
-		lock_cs = reinterpret_cast<HANDLE*>(simpleSSL::Crypto::malloc(lock_cs_count * sizeof(HANDLE)));
-		if (!lock_cs)
-			throw simpleSocket::SocketException(_T("Could not create SSL handles."));
-		for (int i = 0; i < lock_cs_count; i++) {
-			lock_cs[i] = CreateMutex(NULL, FALSE, NULL);
-		}
-		simpleSSL::Crypto::setLockingCallback(locking_function);
-	}
-	tBase::StartListener(host, port, listenQue);
-}
-void simpleSSL::Listener::StopListener() {
-	tBase::StopListener();
-
-	context.destroy();
-	if (lock_cs) {
-		simpleSSL::Crypto::setLockingCallback(NULL);
-
-		for (int i = 0; i < lock_cs_count; i++)
-			CloseHandle(lock_cs[i]);
-		simpleSSL::Crypto::free(lock_cs);
-	}
-	simpleSSL::SSL_deinit();
-}
Index: gs/0.3.1/include/SSLSocket.h
===================================================================
--- tags/0.3.1/include/SSLSocket.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,387 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <Socket.h>
-#include <openssl/ssl.h>
-#include <openssl/err.h>
-#include <strEx.h>
-
-namespace simpleSSL {
-	void count_socket(bool add);
-
-	class SSLException {
-	private:
-		std::wstring error_;
-	public:
-		SSLException(std::wstring s) : error_(s) {
-		}
-
-		SSLException(std::wstring s, int err) : error_(s){
-			error_ += strEx::itos(err);
-		}
-		
-		SSLException(std::wstring s, int err1, int err2) : error_(s){
-			error_ += _T("[") + strEx::itos(err1) + _T("] ");
-			error_ += strEx::itos(err2);
-		}
-		
-		std::wstring getMessage() {
-			return error_;
-		}
-	};
-
-	class DH {
-	private:
-		::DH *internalDH;
-	public:
-		DH() : internalDH(NULL) {
-		}
-		~DH() {
-			if (internalDH)
-				DH_free(internalDH);
-			internalDH = NULL;
-		}
-		inline void free() {
-			if (internalDH)
-				DH_free(internalDH);
-			internalDH = NULL;
-		}
-
-		inline void create() {
-			if (!internalDH)
-				internalDH = DH_new();
-			if (!internalDH)
-				throw SSLException(_T("DH_new failed."));
-		}
-
-		inline void bin2bn_p(const unsigned char *s,int len) {
-			if (!internalDH)
-				throw SSLException(_T("DH_new failed."));
-
-			if (internalDH->p)
-				throw SSLException(_T("internalDH->p already exists."));
-			internalDH->p = BN_bin2bn(s, len, NULL);
-			if (!internalDH->p)
-				throw SSLException(_T("internalDH->p failed."));
-		}
-		inline void bin2bn_g(const unsigned char *s,int len) {
-			if (!internalDH)
-				throw SSLException(_T("DH_new failed."));
-
-			if (internalDH->g)
-				throw SSLException(_T("internalDH->g already exists."));
-			internalDH->g = BN_bin2bn(s, len, NULL);
-			if (!internalDH->g)
-				throw SSLException(_T("internalDH->g failed."));
-		}
-		inline ::DH* getDH() {
-			return internalDH;
-		}
-	};
-
-	class Context {
-		SSL_CTX *ctx_;
-	public:
-		Context() : ctx_(NULL){
-		}
-		// @todo Need to make this RAII! (smart pointers ?)
-		Context(Context &other) {
-			ctx_ = other.ctx_;
-		}
-		~Context() {
-		}
-
-		void destroy() {
-			if (ctx_ != NULL)
-				throw SSLException(_T("Error: SSL Context already initalized."));
-			SSL_CTX_free(ctx_);
-			ctx_ = NULL;
-		}
-		void createSSLv23Server() {
-			if (ctx_ != NULL)
-				throw SSLException(_T("Error: SSL Context already initalized."));
-			ctx_ = SSL_CTX_new(SSLv23_server_method());
-			if (ctx_ == NULL) {
-				throw SSLException(_T("Error: could not create SSL context."));
-			}
-		}
-		void createSSLv23Client() {
-			if (ctx_ != NULL)
-				throw SSLException(_T("Error: SSL Context already initalized."));
-			ctx_ = SSL_CTX_new(SSLv23_client_method());
-			if (ctx_ == NULL)
-				throw SSLException(_T("Error: could not create SSL context."));
-			SSL_CTX_set_options(ctx_,SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3);
-		}
-		void setCipherList(std::string s = "ADH") {
-			if (ctx_ == NULL)
-				throw SSLException(_T("Error: SSL Context already initalized."));
-			SSL_CTX_set_cipher_list(ctx_, s.c_str());
-		}
-		void setTmpDH(::DH* dh) {
-			assert(ctx_);
-			assert(dh);
-			SSL_CTX_set_tmp_dh(ctx_, dh);
-		}
-		SSL* newSSL() {
-			return SSL_new(ctx_);
-		}
-
-
-	};
-
-	class sSSL {
-	private:
-		::SSL *ssl_;
-		simpleSSL::Context context_;
-
-	public:
-		sSSL() : ssl_(NULL) {
-		}
-		sSSL(sSSL &other) : ssl_(NULL) {
-			ssl_ = other.ssl_;
-			other.ssl_ = NULL;
-			context_ = other.context_;
-		}
-		~sSSL() {
-			free();
-		}
-		void free() {
-			if (ssl_ == NULL)
-				return;
-			SSL_free(ssl_);
-			ssl_ = NULL;
-		}
-		void clear() {
-			if (!ssl_)
-				create();
-			int rc = SSL_clear(ssl_);
-			if (rc == 0)
-				throw SSLException(_T("Error: SSL_clear - failed: "), rc, getError(rc));
-		}
-		void create() {
-			if (ssl_ != NULL) 
-				throw SSLException(_T("Error: Could not create SSL connection structure, SSL is already inatialized."));
-			ssl_ = context_.newSSL();
-			if (ssl_ == NULL) 
-				throw SSLException(_T("Error: Could not create SSL connection structure."));
-		}
-		int getError(int errorCode) {
-			if (!ssl_)
-				create();
-			return SSL_get_error(ssl_, errorCode);
-		}
-		void accept() {
-			if (!ssl_)
-				create();
-			/**/
-			int rc = 0;
-			int i = 0;
-			while ((rc = SSL_accept(ssl_)) != 1) {
-				if (++i >= 100) {
-					throw SSLException(_T("SSL: Could not complete SSL handshake."));
-				}
-				int rc2 = getError(rc);
-				if ((rc2 == SSL_ERROR_WANT_READ) || (rc2 == SSL_ERROR_WANT_WRITE)) {
-					Sleep(100);
-					continue;
-				} else {
-					throw SSLException(_T("Error: Could not complete SSL handshake : "), rc, rc2);
-				}
-			}
-			/**/
-		}
-		void connect() {
-			if (!ssl_)
-				create();
-			int rc = 0;
-			int i = 0;
-			while ((rc = SSL_connect(ssl_)) != 1) {
-				if (++i >= 100) {
-					throw SSLException(_T("SSL: Could not complete SSL handshake."));
-				}
-				int rc2 = getError(rc);
-				if ((rc2 == SSL_ERROR_WANT_READ) || (rc2 == SSL_ERROR_WANT_WRITE)) {
-					Sleep(100);
-					continue;
-				} else {
-					throw SSLException(_T("Error: Could not complete SSL handshake : "), rc, rc2);
-				}
-			}
-			/**/
-		}
-		void shutdown() {
-			if (ssl_ == NULL)
-				return;
-			int i = 0;
-			int rc = 0;
-			SSL_shutdown(ssl_);
-			// @bug This will break but I don't know how to fix it...
-//			SSL_shutdown(ssl_); @bug this leaks memory!
-			/*
-			while ((rc = SSL_shutdown(ssl_)) != 1) {
-				if (++i >= 100) {
-					throw SSLException("SSL: Could not complete SSL shutdown.");
-				}
-				int rc2 = getError(rc);
-				if ((rc2 == SSL_ERROR_WANT_READ) || (rc2 == SSL_ERROR_WANT_WRITE)) {
-					Sleep(100);
-					continue;
-				} else {
-					throw SSLException("Error: Could not complete SSL shutdown : ", rc, rc2);
-				}
-			}
-			*/
-		}
-		int set_fd(int fd) {
-			if (!ssl_)
-				create();
-			return SSL_set_fd(ssl_, fd);
-		}
-		void setContext(Context context) {
-			context_ = context;
-		}
-		bool readAll (simpleSocket::DataBuffer &buffer, unsigned int tmpBufferLength = 1024, int maxLength = -1);
-		bool sendAll(const char * buffer, unsigned int len);
-		void send(const char * buf, unsigned int len);
-	};
-
-	class Socket : public simpleSocket::Socket {
-	private:
-		typedef simpleSocket::Socket tBase;
-		simpleSSL::sSSL ssl;
-	public:
-		Socket() {
-		}
-		Socket(Socket &other) : tBase(other), ssl(other.ssl) {
-		}
-		Socket(bool create) : tBase(create) {
-		}
-		virtual ~Socket() {
-			ssl.shutdown();
-			ssl.free();
-		}
-		void attach(SOCKET s) {
-			assert(s);
-			try {
-				tBase::attach(s);
-				tBase::setNonBlock();
-				int rc = ssl.set_fd(static_cast<int>(socket_));
-				if (rc != 1)
-					throw simpleSocket::SocketException(_T("Error: Could not do SSL_set_fd: ") + strEx::itos(rc) + _T(":")  + strEx::itos(rc));
-				ssl.accept();
-			} catch (simpleSSL::SSLException e) {
-				throw simpleSocket::SocketException(e.getMessage());
-			}
-		}
-		virtual bool readAll (simpleSocket::DataBuffer &buffer, unsigned int tmpBufferLength = 1024, int maxLength = -1) {
-			try {
-				return ssl.readAll(buffer, tmpBufferLength, maxLength);
-			} catch (simpleSSL::SSLException e) {
-				throw simpleSocket::SocketException(e.getMessage());
-			} catch (...) {
-				throw simpleSocket::SocketException(_T("Unhandeled socket exception"));
-			}
-		}
-		virtual bool sendAll(const char * buffer, unsigned int len) {
-			try {
-				return ssl.sendAll(buffer, len);
-			} catch (simpleSSL::SSLException e) {
-				throw simpleSocket::SocketException(e.getMessage());
-			} catch (...) {
-				throw simpleSocket::SocketException(_T("Unhandeled socket exception"));
-			}
-		}
-		/*
-
-		virtual int send(const char * buf, unsigned int len, int flags = 0) {
-			try {
-				ssl.send(buf, len);
-			} catch (simpleSSL::SSLException e) {
-				throw simpleSocket::SocketException(e.getMessage());
-			}
-			return 0;
-		}
-		*/
-		virtual void close() {
-			ssl.shutdown();
-			ssl.free();
-			/* @todo
-			try {
-				ssl.shutdown();
-			} catch (simpleSSL::SSLException e) {
-				throw simpleSocket::SocketException(e.getMessage());
-			}
-			*/
-			tBase::close();
-		}
-		virtual int connect(std::wstring host, u_short port) {
-			return tBase::connect(host, port);
-		}
-
-		virtual int connect_();
-		void setContext(Context c) {
-			ssl.setContext(c);
-		}
-
-
-	};
-
-
-	class Listener : public simpleSocket::Listener<simpleSSL::Socket> {
-	private:
-		typedef simpleSSL::Socket tSocket;
-		typedef simpleSocket::Listener<tSocket> tBase;
-	public:
-		Context context;
-		int lock_cs_count;
-	public:
-
-		virtual bool accept(tBase::tBase &client);
-
-		void setContext(Context c) {
-			context = c;
-		}
-		virtual void StartListener(std::wstring host, int port, unsigned int listenQue);
-		virtual void StopListener();
-	};
-
-
-
-	namespace Crypto {
-		void* malloc(int num);
-		void free(void* addr);
-		int getNumberOfLocks();
-		void setIDCallback(unsigned long (*id_function)(void));
-		void setLockingCallback(void (*locking_function)(int mode,int type, const char *file,int line));
-
-
-	};
-
-
-	void SSL_init();
-	void SSL_deinit();
-
-}
-
-
-
Index: gs/0.3.1/include/ServiceCmd.cpp
===================================================================
--- tags/0.3.1/include/ServiceCmd.cpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,346 +1,0 @@
-//////////////////////////////////////////////////////////////////////////
-// Service Helpers.
-// 
-// Functions to stop/start/install and uninstall a service.
-//
-// Copyright (c) 2004 MySolutions NORDIC (http://www.medin.nu)
-//
-// Date: 2004-03-13
-// Author: Michael Medin (mickem@medin.nu)
-//
-// This software is provided "AS IS", without a warranty of any kind.
-// You are free to use/modify this code but leave this header intact.
-//
-//////////////////////////////////////////////////////////////////////////
-
-#include <windows.h>
-#include <tchar.h>
-#include "ServiceCmd.h"
-#include <strEx.h>
-#include <tchar.h>
-#include <iostream>
-#include <msvc_wrappers.h>
-
-namespace serviceControll {
-	/**
-	 * Installs the service
-	 *
-	 * @param szName 
-	 * @param szDisplayName 
-	 * @param szDependencies 
-	 *
-	 * @author mickem
-	 *
-	 * @date 03-13-2004
-	 *
-	 */
-	void Install(LPCTSTR szName, LPCTSTR szDisplayName, LPCTSTR szDependencies, DWORD dwServiceType) {
-		SC_HANDLE   schService;
-		SC_HANDLE   schSCManager;
-		TCHAR szPath[512];
-
-		if ( GetModuleFileName( NULL, szPath, 512 ) == 0 )
-			throw SCException(_T("Could not get module"));
-
-		schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
-		if (!schSCManager)
-			throw SCException(_T("OpenSCManager failed."));
-		schService = CreateService(
-			schSCManager,               // SCManager database
-			szName,						// name of service
-			szDisplayName,				// name to display
-			SERVICE_ALL_ACCESS,         // desired access
-			dwServiceType,				// service type
-			SERVICE_AUTO_START,			// start type
-			SERVICE_ERROR_NORMAL,       // error control type
-			szPath,                     // service's binary
-			NULL,                       // no load ordering group
-			NULL,                       // no tag identifier
-			szDependencies,			    // dependencies
-			NULL,                       // LocalSystem account
-			NULL);                      // no password
-
-		if (!schService) {
-			DWORD err = GetLastError();
-			CloseServiceHandle(schSCManager);
-			if (err==ERROR_SERVICE_EXISTS) {
-				throw SCException(_T("Service already installed!"));
-			}
-			throw SCException(_T("Unable to install service."), err);
-		}
-		CloseServiceHandle(schService);
-		CloseServiceHandle(schSCManager);
-	}
-
-	void ModifyServiceType(LPCTSTR szName, DWORD dwServiceType) {
-		SC_HANDLE   schService;
-		SC_HANDLE   schSCManager;
-		TCHAR szPath[512];
-
-		if ( GetModuleFileName( NULL, szPath, 512 ) == 0 )
-			throw SCException(_T("Could not get module"));
-
-		schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
-		if (!schSCManager)
-			throw SCException(_T("OpenSCManager failed."));
-		schService = OpenService(schSCManager, szName, SERVICE_ALL_ACCESS);
-		if (!schService) {
-			DWORD err = GetLastError();
-			CloseServiceHandle(schSCManager);
-			throw SCException(_T("Unable to open service."), err);
-		}
-		BOOL result = ChangeServiceConfig(schService, dwServiceType, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE , NULL, NULL, NULL, 
-			NULL, NULL, NULL, NULL);
-		CloseServiceHandle(schService);
-		CloseServiceHandle(schSCManager);
-		if (result != TRUE)
-			throw SCException(_T("Could not query service information"));
-	}
-
-	DWORD GetServiceType(LPCTSTR szName) {
-		LPQUERY_SERVICE_CONFIG lpqscBuf = (LPQUERY_SERVICE_CONFIG) LocalAlloc(LPTR, 4096); 
-		if (lpqscBuf == NULL) {
-			throw SCException(_T("Could not allocate memory"));
-		}
-		SC_HANDLE schService;
-		SC_HANDLE schSCManager;
-		TCHAR szPath[512];
-
-		if ( GetModuleFileName( NULL, szPath, 512 ) == 0 )
-			throw SCException(_T("Could not get module"));
-
-		schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
-		if (!schSCManager)
-			throw SCException(_T("OpenSCManager failed."));
-		schService = OpenService(schSCManager, szName, SERVICE_ALL_ACCESS);
-		if (!schService) {
-			DWORD err = GetLastError();
-			CloseServiceHandle(schSCManager);
-			throw SCException(_T("Unable to open service."), err);
-		}
-
-
-		DWORD dwBytesNeeded = 0;
-		BOOL success = QueryServiceConfig(schService, lpqscBuf,  4096, &dwBytesNeeded);
-		CloseServiceHandle(schService);
-		CloseServiceHandle(schSCManager);
-		if (success != TRUE)
-			throw SCException(_T("Could not query service information"));
-		DWORD ret = lpqscBuf->dwServiceType;
-		LocalFree(lpqscBuf);
-		return ret;
-	}
-
-	/**
-	 * Stars the service.
-	 *
-	 * @param name The name of the service to start 
-	 *
-	 * @author mickem
-	 *
-	 * @date 03-13-2004
-	 *
-	 */
-	void Start(std::wstring name) {
-		SC_HANDLE   schService;
-		SC_HANDLE   schSCManager;
-		SERVICE_STATUS ssStatus;
-
-		schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS );
-		if (!schSCManager) 
-			throw SCException(_T("OpenSCManager failed."));
-		schService = OpenService(schSCManager, name.c_str(), SERVICE_ALL_ACCESS);
-		if (schService) {
-			// try to stop the service
-			if ( StartService(schService,0,NULL) ) {
-				std::wcout << _T("Starting ") << name;
-				Sleep( 1000 );
-				while( QueryServiceStatus( schService, &ssStatus ) ) {
-					if ( ssStatus.dwCurrentState == SERVICE_START_PENDING ) {
-						std::wcout << _T(".");
-						Sleep( 1000 );
-					} else
-						break;
-				}
-				if ( ssStatus.dwCurrentState != SERVICE_RUNNING ) {
-					CloseServiceHandle(schService);
-					CloseServiceHandle(schSCManager);
-					throw SCException(_T("Service failed to start."));
-				}
-			}
-			CloseServiceHandle(schService);
-		} else {
-			CloseServiceHandle(schSCManager);
-			throw SCException(_T("OpenService failed."));
-		}
-		CloseServiceHandle(schSCManager);
-	}
-
-
-	bool isStarted(std::wstring name) {
-		SC_HANDLE   schService;
-		SC_HANDLE   schSCManager;
-		SERVICE_STATUS ssStatus;
-		bool ret = false;
-
-		schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS );
-		if (!schSCManager) 
-			throw SCException(_T("OpenSCManager failed."));
-		schService = OpenService(schSCManager, name.c_str(), SERVICE_ALL_ACCESS);
-		if (schService) {
-			if ( QueryServiceStatus( schService, &ssStatus ) ) {
-				if ( ssStatus.dwCurrentState == SERVICE_RUNNING ) {
-					ret = true;
-				} else if ( ssStatus.dwCurrentState == SERVICE_START_PENDING ) {
-					ret = true;
-				}
-			}
-			CloseServiceHandle(schService);
-		} else {
-			CloseServiceHandle(schSCManager);
-			throw SCException(_T("OpenService failed."));
-		}
-		CloseServiceHandle(schSCManager);
-		return ret;
-	}
-
-	/**
-	 * Stops and removes the service
-	 *
-	 * @param name The name of the service to uninstall 
-	 *
-	 * @author mickem
-	 *
-	 * @date 03-13-2004
-	 *
-	 */
-	void Uninstall(std::wstring name) {
-		SC_HANDLE   schService;
-		SC_HANDLE   schSCManager;
-		Stop(name);
-
-		schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
-		if (!schSCManager)
-			throw SCException(_T("OpenSCManager failed."));
-		schService = OpenService(schSCManager, name.c_str(), SERVICE_ALL_ACCESS);
-		if (schService) {
-			if(!DeleteService(schService)) {
-				CloseServiceHandle(schService);
-				CloseServiceHandle(schSCManager);
-				throw SCException(_T("DeleteService failed."));
-			}
-			CloseServiceHandle(schService);
-		} else {
-			CloseServiceHandle(schSCManager);
-			throw SCException(_T("OpenService failed."));
-		}
-		CloseServiceHandle(schSCManager);
-	}
-
-	/**
-	 * Stops the service
-	 *
-	 * @param name The name of the serive to stop 
-	 *
-	 * @author MickeM
-	 *
-	 * @date 03-13-2004
-	 *
-	 */
-	void Stop(std::wstring name) {
-		SC_HANDLE   schService;
-		SC_HANDLE   schSCManager;
-		SERVICE_STATUS ssStatus;
-
-		schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
-		if (!schSCManager)
-			throw SCException(_T("OpenSCManager failed."));
-		schService = OpenService(schSCManager, name.c_str(), SERVICE_ALL_ACCESS);
-		if (schService) {
-			// try to stop the service
-			if ( ControlService( schService, SERVICE_CONTROL_STOP, &ssStatus ) ) {
-				std::wcout << _T("Stopping service.");
-				Sleep( 1000 );
-				while( QueryServiceStatus( schService, &ssStatus ) ) {
-					if ( ssStatus.dwCurrentState == SERVICE_STOP_PENDING ) {
-						std::wcout << _T(".");
-						Sleep( 1000 );
-					} else
-						break;
-				}
-				std::wcout << std::endl;
-				if ( ssStatus.dwCurrentState != SERVICE_STOPPED ) {
-					CloseServiceHandle(schService);
-					CloseServiceHandle(schSCManager);
-					throw SCException(_T("Service failed to stop."));
-				}
-			}
-			CloseServiceHandle(schService);
-		} else {
-			CloseServiceHandle(schSCManager);
-			throw SCException(_T("OpenService failed."));
-		}
-		CloseServiceHandle(schSCManager);
-	}
-
-	void StopNoWait(std::wstring name) {
-		SC_HANDLE   schService;
-		SC_HANDLE   schSCManager;
-		SERVICE_STATUS ssStatus;
-
-		schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
-		if (!schSCManager)
-			throw SCException(_T("OpenSCManager failed."));
-		schService = OpenService(schSCManager, name.c_str(), SERVICE_ALL_ACCESS);
-		if (schService) {
-			// try to stop the service
-			ControlService( schService, SERVICE_CONTROL_STOP, &ssStatus );
-			CloseServiceHandle(schService);
-		} else {
-			CloseServiceHandle(schSCManager);
-			throw SCException(_T("OpenService failed."));
-		}
-		CloseServiceHandle(schSCManager);
-	}
-
-
-	typedef BOOL (WINAPI*PFChangeServiceConfig2)(SC_HANDLE hService,DWORD dwInfoLevel,LPVOID lpInfo);
-
-	void SetDescription(std::wstring name, std::wstring desc) {
-		PFChangeServiceConfig2 FChangeServiceConfig2;
-		HMODULE ADVAPI= ::LoadLibrary(_T("Advapi32"));
-		if (!ADVAPI) {
-			throw SCException(_T("Couldn't set extended service info (ignore this on NT4)."));
-		}
-#ifdef UNICODE
-		FChangeServiceConfig2 = (PFChangeServiceConfig2)::GetProcAddress(ADVAPI, "ChangeServiceConfig2W");
-#else
-		FChangeServiceConfig2 = (PFChangeServiceConfig2)::GetProcAddress(ADVAPI, _TEXT("ChangeServiceConfig2A"));
-#endif
-		if (!FChangeServiceConfig2) {
-			FreeLibrary(ADVAPI);
-			throw SCException(_T("Couldn't set extended service info (ignore this on NT4)."));
-		}
-		SERVICE_DESCRIPTION descr;
-		SC_HANDLE schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
-		if (!schSCManager)
-			throw SCException(_T("OpenSCManager failed."));
-		SC_HANDLE schService = OpenService(schSCManager, name.c_str(), SERVICE_ALL_ACCESS);
-		if (!schService) {
-			FreeLibrary(ADVAPI);
-			CloseServiceHandle(schSCManager);
-			throw SCException(_T("OpenService failed."));
-		}
-
-		TCHAR* d = new TCHAR[desc.length()+2];
-		wcsncpy_s(d, desc.length()+2, desc.c_str(), desc.length());
-		descr.lpDescription = d;
-		BOOL bResult = FChangeServiceConfig2(schService, SERVICE_CONFIG_DESCRIPTION, &descr);
-		delete [] d;
-		FreeLibrary(ADVAPI);
-		CloseServiceHandle(schService);
-		CloseServiceHandle(schSCManager);
-		if (!bResult)
-			throw SCException(_T("ChangeServiceConfig2 failed."));
-	}
-}
Index: gs/0.3.1/include/ServiceCmd.h
===================================================================
--- tags/0.3.1/include/ServiceCmd.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,47 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <sstream>
-
-namespace serviceControll {
-	class SCException {
-	public:
-		std::wstring error_;
-		SCException(std::wstring error) : error_(error) {
-		}
-		SCException(std::wstring error, int code) : error_(error) {
-			std::wstringstream ss;
-			ss << ": ";
-			ss << code;
-			error += ss.str();
-		}
-	};
-	void Install(LPCTSTR,LPCTSTR,LPCTSTR,DWORD=SERVICE_WIN32_OWN_PROCESS);
-	void ModifyServiceType(LPCTSTR szName, DWORD dwServiceType);
-	void Uninstall(std::wstring);
-	void Start(std::wstring);
-	bool isStarted(std::wstring);
-	void Stop(std::wstring);
-	void StopNoWait(std::wstring);
-	void SetDescription(std::wstring,std::wstring);
-	DWORD GetServiceType(LPCTSTR szName);
-}
Index: gs/0.3.1/include/Settings.h
===================================================================
--- tags/0.3.1/include/Settings.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,296 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <Singleton.h>
-#include <string>
-#include <map>
-#include <INISettings.h>
-#include <REGSettings.h>
-#define BUFF_LEN 4096
-
-class SettingsException {
-private:
-	std::wstring err;
-public:
-	SettingsException(std::wstring str) : err(str) {}
-	std::wstring getMessage() {
-		return err;
-	}
-
-};
-
-class SettingsT
-{
-private:
-	typedef struct {
-		typedef enum { sType, iType} typeEnum;
-		typeEnum type;
-		std::wstring sVal;
-		int iVal;
-	} valueStruct;
-	typedef std::map<std::wstring,valueStruct> saveKeyList;
-	typedef std::map<std::wstring,saveKeyList> saveSectionList;
-	saveSectionList data_;
-	std::wstring file_;
-	std::wstring basepath_;
-	bool bHasInternalData;
-	TSettings *settingsManager;
-
-public:
-	typedef std::list<std::wstring> sectionList;
-	SettingsT(void) : bHasInternalData(false), settingsManager(NULL)
-	{
-	}
-
-	virtual ~SettingsT(void)
-	{
-		if (settingsManager)
-			delete settingsManager;
-	}
-	std::wstring getActiveType() {
-		if (!settingsManager)
-			return _T("");
-		return settingsManager->getActiveType();
-	}
-
-	/**
-	 * Set the file to read from
-	 * @param file A INI-file to use as settings repository
-	 */
-	void setFile(std::wstring basepath, std::wstring file, bool forceini = false) {
-		file_ = file;
-		basepath_ = basepath;
-		if (forceini) {
-			if (settingsManager)
-				delete settingsManager;
-			settingsManager = new INISettings(basepath, file);
-			return;
-		}
-		if (REGSettings::hasSettings()) {
-			if (settingsManager)
-				delete settingsManager;
-			settingsManager = new REGSettings();
-		} else if (INISettings::hasSettings(basepath, file)) {
-			if (settingsManager)
-				delete settingsManager;
-			settingsManager = new INISettings(basepath, file);
-		} else {
-			throw SettingsException(_T("No settings method specified, cannot start"));
-		}
-	}
-
-#define UNLIKELY_VALUE_1 -1234
-#define UNLIKELY_VALUE_2 -4321
-	void read(int type = -1) {
-		bool bNew = false;
-		TSettings *sM = settingsManager;
-		if (settingsManager == NULL)
-			throw SettingsException(_T("No settings method specified, cannot start"));
-		if ((type != -1)&&(type != settingsManager->getActiveTypeID())) {
-			if (type == REGSettings::getType()) {
-				sM = new REGSettings();
-				bNew = true;
-			} else if (type == INISettings::getType()) {
-				sM = new INISettings(basepath_, file_);
-				bNew = true;
-			} else {
-				throw SettingsException(_T("Invalid settings subsystem specified"));
-			}
-		}
-		if (sM == NULL) {
-			throw SettingsException(_T("Invalid settings subsystem specified"));
-		}
-		sectionList sections = sM->getSections();
-		for (sectionList::const_iterator it=sections.begin();it!=sections.end();++it) {
-			sectionList section = sM->getSection(*it);
-			for (sectionList::const_iterator it2=section.begin();it2!=section.end();++it2) {
-				std::wstring s = sM->getString((*it), (*it2));
-				int i = strEx::stoi(s);
-				std::wstring s2 = strEx::itos(i);
-				std::wcout << _T("importing: ") << (*it) << "/" << (*it2) << "=" << s << std::endl;
-				if (s == s2) {
-					setInt((*it), (*it2), i);
-				} else {
-					setString((*it), (*it2), s);
-				}
-
-/*
-				std::wcout << "  Key: " << (*it2) << std::endl;
-				int i = sM->getInt((*it), (*it2), UNLIKELY_VALUE_1);
-				std::wcout << "Int vaöl: " << i << std::endl;
-				if (i == UNLIKELY_VALUE_1) {
-					if (sM->getInt((*it), (*it2), UNLIKELY_VALUE_2)==UNLIKELY_VALUE_2) {
-						std::wcout << "Writing: " << (*it) << " - " << (*it2) << " - " << sM->getString((*it), (*it2)) << std::endl;
-						setString((*it), (*it2), sM->getString((*it), (*it2)));
-					} else
-						setInt((*it), (*it2), i);
-				} else if (i == 0) {
-					std::wstring s = sM->getString((*it), (*it2));
-					std::wcout << "Size: " << s.size() << " |" << s << "| " << std::endl;
-					if (s.size() == 0)
-						setString((*it), (*it2), s);
-					else
-						setInt((*it), (*it2), i);
-				} else
-					setInt((*it), (*it2), i);
-					*/
-			}
-		}
-		if (bNew) {
-			delete sM;
-		}
-	}
-	void write(int type = -1) {
-		bool bNew = false;
-		TSettings *sM = settingsManager;
-		if (settingsManager == NULL)
-			throw SettingsException(_T("No settings method specified, cannot start"));
-		if ((type != -1)&&(type != settingsManager->getActiveTypeID())) {
-			if (type == REGSettings::getType()) {
-				sM = new REGSettings();
-				bNew = true;
-			} else if (type == INISettings::getType()) {
-				sM = new INISettings(basepath_, file_);
-				bNew = true;
-			} else {
-				throw SettingsException(_T("Invalid settings subsystem specified"));
-			}
-		}
-		if (sM == NULL) {
-			throw SettingsException(_T("Invalid settings subsystem specified"));
-		}
-		if (bHasInternalData) {
-			for (saveSectionList::const_iterator it=data_.begin();it!=data_.end();++it) {
-				for (saveKeyList::const_iterator kit = it->second.begin(); kit != it->second.end(); ++kit) {
-					if (kit->second.type == valueStruct::sType)
-						sM->setString(it->first, kit->first, kit->second.sVal);
-					else
-						sM->setInt(it->first, kit->first, kit->second.iVal);
-				}
-			}
-		}
-		if (bNew) {
-			delete sM;
-		}
-	}
-
-	sectionList getSections(unsigned int bufferLength = BUFF_LEN) {
-		if (!settingsManager)
-			throw SettingsException(_T("No settings manager found have you configured."));
-		sectionList ret;
-		ret = settingsManager->getSections();
-		if (bHasInternalData) {
-			for (saveSectionList::const_iterator kit = data_.begin(); kit != data_.end(); ++kit) {
-				ret.push_back(kit->first);
-			}
-		}
-		ret.sort();
-		ret.unique();
-		return ret;
-	}
-
-	/**
-	 * Get all keys from a section as a list<string>
-	 * @param section The section to return all keys from
-	 * @return A list with all keys from the section
-	 */
-	sectionList getSection(std::wstring section, unsigned int bufferLength = BUFF_LEN) {
-		if (!settingsManager)
-			throw SettingsException(_T("No settings manager found have you configured."));
-		sectionList ret;
-		ret = settingsManager->getSection(section);
-		if (bHasInternalData) {
-			saveSectionList::const_iterator it = data_.find(section);
-			if (it != data_.end()) {
-				for (saveKeyList::const_iterator kit = it->second.begin(); kit != it->second.end(); ++kit) {
-					ret.push_back(kit->first);
-				}
-			}
-		}
-		ret.sort();
-		ret.unique();
-		return ret;
-	}
-	/**
-	 * Get a string from the settings file
-	 * @param section Section to read from 
-	 * @param key Key to retrieve
-	 * @param defaultValue Default value to return if key is not found
-	 * @return The value or defaultValue if the key is not found
-	 */
-	std::wstring getString(std::wstring section, std::wstring key, std::wstring defaultValue = _T("")) const {
-		if (!settingsManager)
-			throw SettingsException(_T("No settings manager found have you configured."));
-		if (bHasInternalData) {
-			saveSectionList::const_iterator it = data_.find(section);
-			if (it != data_.end()) {
-				saveKeyList::const_iterator kit = it->second.find(key);
-				if (kit != it->second.end()) {
-					if (kit->second.type == valueStruct::sType)
-						return kit->second.sVal;
-					else
-						return strEx::itos(kit->second.iVal);
-				}
-			}
-		}
-		std::wstring ret = settingsManager->getString(section, key, defaultValue);
-		return ret;
-	}
-
-	void setString(std::wstring section, std::wstring key, std::wstring value) {
-		bHasInternalData = true;
-		(data_[section])[key].sVal = value;
-		(data_[section])[key].type = valueStruct::sType;
-	}
-
-	/**
-	 * Get an integer from the settings file
-	 * @param section Section to read from 
-	 * @param key Key to retrieve
-	 * @param defaultValue Default value to return if key is not found
-	 * @return The value or defaultValue if the key is not found
-	 */
-	int getInt(std::wstring section, std::wstring key, int defaultValue = 0) {
-		if (!settingsManager)
-			throw SettingsException(_T("No settings manager found have you configured."));
-		if (bHasInternalData) {
-			saveSectionList::const_iterator it = data_.find(section);
-			if (it != data_.end()) {
-				saveKeyList::const_iterator kit = it->second.find(key);
-				if (kit != it->second.end()) {
-					if (kit->second.type == valueStruct::sType)
-						return strEx::stoi(kit->second.sVal);
-					else
-						return kit->second.iVal;
-				}
-			}
-		}
-		return settingsManager->getInt(section, key, defaultValue);
-	}
-	void setInt(std::wstring section, std::wstring key, int value) {
-		bHasInternalData = true;
-		(data_[section])[key].iVal = value;
-		(data_[section])[key].type = valueStruct::iType;
-	}
-};
-
-typedef Singleton<SettingsT> Settings;		// Implement the settings manager as a singleton
Index: gs/0.3.1/include/Singleton.h
===================================================================
--- tags/0.3.1/include/Singleton.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-template <class T> 
-class Singleton {
-private:
-	static T* pObject;
-protected:
-	Singleton() {}
-	virtual ~Singleton() {}
-
-public:
-	static T* getInstance() {
-		if (!pObject)
-			pObject = new T();
-		return pObject;
-	}
-	static void destroyInstance() {
-		delete pObject;
-		pObject = NULL;
-	}
-};
-
-template <class T> 
-T* Singleton<T>::pObject = NULL;
-
Index: gs/0.3.1/include/Socket.cpp
===================================================================
--- tags/0.3.1/include/Socket.cpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,98 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-
-#include <Socket.h>
-#include <NSCHelper.h>
-
-/**
- * Print an error message 
- * @param error 
- */
-void simpleSocket::Socket::printError(std::wstring FILE, int LINE, std::wstring error) {
-	NSCModuleHelper::Message(NSCAPI::error, FILE, LINE, error);
-}
-
-
-/**
- * Read all data on the socket
- * @param buffer 
- * @param tmpBufferLength Length of temporary buffer to use (generally larger then expected data)
- */
-bool simpleSocket::Socket::readAll(DataBuffer& buffer, unsigned int tmpBufferLength /* = 1024*/, int maxLength /* = -1 */) {
-	// @todo this could be optimized a bit if we want to
-	// If only one buffer is needed we could "reuse" the buffer instead of copying it.
-	char *tmpBuffer = new char[tmpBufferLength+1];
-	int n=recv(socket_,tmpBuffer,tmpBufferLength,0);
-	//std::wcout << _T("read: ") << n << std::endl;
-	while ((n!=SOCKET_ERROR )&&(n!=0)) {
-		if (n == tmpBufferLength) {
-			// We filled the buffer (There is more to get)
-			buffer.append(tmpBuffer, n);
-			if ((maxLength!=-1)&&(n >= maxLength))
-				break;
-			n=recv(socket_,tmpBuffer,tmpBufferLength,0);
-		} else {
-			// Buffer not full, we got it "all"
-			buffer.append(tmpBuffer, n);
-			break;
-
-		}
-	}
-	delete [] tmpBuffer;
-	if (n == SOCKET_ERROR) {
-		int ret = ::WSAGetLastError();
-		if (ret == WSAEWOULDBLOCK)
-			return true;
-		throw SocketException(_T("recv returned SOCKET_ERROR: "), ret);
-	}
-	return n>0;
-}
-
-bool simpleSocket::Socket::sendAll(const char * buffer, unsigned int len) {
-	int n = send(buffer, len, 0);
-	if (n == SOCKET_ERROR) {
-		int ret = ::WSAGetLastError();
-		if (ret == WSAEWOULDBLOCK)
-			return false;
-		throw SocketException(_T("recv returned SOCKET_ERROR: "), ret);
-	}
-	return false;
-}
-
-/**
- * Startup WSA
- * @param wVersionRequested Version to use
- * @return stuff
- */
-WSADATA simpleSocket::WSAStartup(WORD wVersionRequested /* = 0x202 */) {
-	WSADATA wsaData;
-	int wsaret=::WSAStartup(wVersionRequested,&wsaData);
-	if(wsaret != 0)
-		throw SocketException(_T("WSAStartup failed: ") + strEx::itos(wsaret));
-	return wsaData;
-}
-/**
- * Cleanup (Shutdown) WSA
- */
-void simpleSocket::WSACleanup() {
-	if (::WSACleanup() != 0)
-		throw SocketException(_T("WSACleanup failed: "), ::WSAGetLastError());
-}
Index: gs/0.3.1/include/Socket.h
===================================================================
--- tags/0.3.1/include/Socket.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,771 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-#define VC_EXTRALEAN		// Exclude rarely-used stuff from Windows headers
-//#include <windows.h>
-#include <WinSock2.h>
-#include <Thread.h>
-#include <Mutex.h>
-#include <error.hpp>
-#include <NSCHelper.h>
-
-
-namespace simpleSocket {
-	class SocketException {
-	private:
-		std::wstring error_;
-	public:
-		SocketException(std::wstring error) : error_(error) {}
-		SocketException(std::wstring error, unsigned int errorCode) : error_(error) {
-			error_ += error::format::from_system(errorCode);
-		}
-		std::wstring getMessage() const {
-			return error_;
-		}
-
-	};
-	class DataBuffer {
-	private:
-		char *buffer_;
-		unsigned int length_;
-	public:
-		DataBuffer() : buffer_(NULL), length_(0){
-		}
-		DataBuffer(const DataBuffer &other) {
-			buffer_ = new char[other.getLength()+2];
-			memcpy(buffer_, other.getBuffer(), other.getLength()+1);
-			length_ = other.getLength();
-		}
-		DataBuffer(const char* buffer, unsigned int length) {
-			buffer_ = new char[length+2];
-			memcpy(buffer_, buffer, length+1);
-			length_ = length;
-		}
-		DataBuffer(const unsigned char* buffer, unsigned int length) {
-			buffer_ = new char[length+2];
-			memcpy(buffer_, buffer, length+1);
-			length_ = length;
-		}
-		virtual ~DataBuffer() {
-			delete [] buffer_;
-			length_ = 0;
-			buffer_ = NULL;
-		}
-		void append(const char* buffer, const unsigned int length) {
-			char *tBuf = new char[length_+length+2];
-			memcpy(tBuf, buffer_, length_);
-			memcpy(&tBuf[length_], buffer, length);
-			delete [] buffer_;
-			buffer_ = tBuf;
-			length_ += length;
-			buffer_[length_] = 0;
-		}
-		/**
-		 * returns a const reference to the internal buffer
-		 * Use with care!
-		 *
-		 * @access public 
-		 * @returns const char *
-		 * @qualifier const
-		 */
-		const char * getBuffer() const {
-			return buffer_;
-		}
-		unsigned int getLength() const {
-			return length_;
-		}
-		/**
-		 * Eats a specified number of bytes from the beginning of the buffer
-		 * @access public 
-		 * @returns void
-		 * @qualifier
-		 * @param const unsigned int length the amount of bytes to eat
-		 */
-		void nibble(const unsigned int length) {
-			if (length > length_)
-				return;
-			unsigned int newLen = length_-length;
-			char *tBuf = new char[newLen+2];
-			memcpy(tBuf, &buffer_[length], newLen+1);
-			char *oldBuf = buffer_;
-			buffer_ = tBuf;
-			length_ = newLen;
-			delete [] oldBuf;
-		}
-
-		DataBuffer unshift(const unsigned int length) {
-			DataBuffer ret;
-			if (length > length_)
-				return ret;
-			ret.copyFrom(buffer_, length);
-			unsigned int newLen = length_-length;
-			char *tBuf = new char[newLen+2];
-			memcpy(tBuf, &buffer_[length], newLen+1);
-			char *oldBuf = buffer_;
-			buffer_ = tBuf;
-			length_ = newLen;
-			delete [] oldBuf;
-			return ret;
-		}
-		const unsigned long long find(char c) {
-			if (buffer_ == NULL)
-				return -1;
-			if (length_ == 0)
-				return -1;
-			const char *pos = strchr(buffer_, c);
-			if (pos == NULL)
-				return -1;
-			return pos-buffer_;
-		}
-		void copyFrom(const char* buffer, const unsigned int length) {
-			delete [] buffer_;
-			buffer_ = new char[length+2];
-			memcpy(buffer_, buffer, length);
-			length_ = length;
-			buffer_[length_] = 0;
-		}
-		std::string toString() {
-			return strEx::format_buffer(buffer_, length_);
-		}
-	};
-
-	class Socket {
-	protected:
-		SOCKET socket_;
-		sockaddr_in from_;
-		sockaddr_in to_;
-		fd_set read_, write_, excp_;
-
-	public:
-		Socket() : socket_(NULL) {
-			FD_ZERO(&read_);
-			FD_ZERO(&write_);
-			FD_ZERO(&excp_);
-		}
-		Socket(SOCKET socket) : socket_(socket) {
-			FD_ZERO(&read_);
-			FD_ZERO(&write_);
-			FD_ZERO(&excp_);
-		}
-		Socket(int type, int protocol) : socket_(NULL) {
-			socket_ = ::socket(AF_INET, type, protocol);
-			FD_ZERO(&read_);
-			FD_ZERO(&write_);
-			FD_ZERO(&excp_);
-		}
-		Socket(bool create) : socket_(NULL) {
-			if (create)
-				socket_ = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
-			FD_ZERO(&read_);
-			FD_ZERO(&write_);
-			FD_ZERO(&excp_);
-		}
-
-		Socket(Socket &other) {
-			socket_ = other.socket_;
-			from_ = other.from_;
-			other.socket_ = NULL;
-			read_ = other.read_;
-			write_ = other.write_;
-			excp_ = other.excp_;
-		}
-		virtual ~Socket() {
-			if (socket_)
-				closesocket(socket_);
-			socket_ = NULL;
-		}
-		virtual SOCKET detach() {
-			SOCKET s = socket_;
-			socket_ = NULL;
-			return s;
-		}
-		virtual void attach(SOCKET s) {
-			assert(socket_ == NULL);
-			socket_ = s;
-		}
-		virtual void shutdown(int how = SD_BOTH) {
-			if (socket_)
-				::shutdown(socket_, how);
-		}
-		virtual int connect(std::wstring host, u_short port) {
-			if (socket_) {
-				to_.sin_family = AF_INET;
-				to_.sin_port = htons(port);
-				to_.sin_addr.s_addr = inet_addr(host);
-				return connect_();
-			}
-			return SOCKET_ERROR;
-		}
-		virtual int connect_() {
-			return ::connect(socket_, (SOCKADDR*) &to_, sizeof(to_));
-		}
-
-		virtual void close() {
-			if (socket_)
-				closesocket(socket_);
-			socket_ = NULL;
-		}
-		virtual void setNonBlock() {
-			unsigned long NoBlock = 1;
-			FD_SET(socket_, &read_);
-			FD_SET(socket_, &write_);
-			FD_SET(socket_, &excp_);
-			this->ioctlsocket(FIONBIO, &NoBlock);
-		}
-		virtual bool canRead(long timeout = -1) {
-			timeval timeout_;
-			timeout_.tv_sec = timeout;
-			FD_SET(socket_, &read_);
-			FD_SET(socket_, &write_);
-			FD_SET(socket_, &excp_);
-			if (timeout == -1)
-				::select(NULL, &read_, &write_, &excp_, NULL);
-			else
-				::select(NULL, &read_, &write_, &excp_, &timeout_);
-			if (FD_ISSET(socket_, &read_))
-				return true;
-			return false;
-		}
-		virtual bool canWrite(long timeout = -1) {
-			timeval timeout_;
-			timeout_.tv_sec = timeout;
-			FD_SET(socket_, &read_);
-			FD_SET(socket_, &write_);
-			FD_SET(socket_, &excp_);
-			if (timeout == -1)
-				::select(NULL, &read_, &write_, &excp_, NULL);
-			else
-				::select(NULL, &read_, &write_, &excp_, &timeout_);
-			if (FD_ISSET(socket_, &write_))
-				return true;
-			return false;
-		}
-
-		static unsigned long inet_addr(std::wstring addr) {
-			return ::inet_addr(strEx::wstring_to_string(addr).c_str());
-		}
-		static std::wstring inet_ntoa(unsigned long addr) {
-			struct in_addr a;
-			a.S_un.S_addr = addr;
-			return strEx::string_to_wstring(::inet_ntoa(a));
-		}
-		static std::wstring getHostByName(std::wstring ip) {
-			hostent* remoteHost;
-			remoteHost = gethostbyname(strEx::wstring_to_string(ip).c_str());
-			if (remoteHost == NULL)
-				throw SocketException(_T("gethostbyname failed for ") + ip + _T(": "), ::WSAGetLastError());
-			// @todo investigate it this is "correct" and dont use before!
-			return strEx::string_to_wstring(::inet_ntoa(*reinterpret_cast<in_addr*>(remoteHost->h_addr)));
-		}
-		static struct in_addr getHostByNameAsIN(std::wstring ip) {
-			hostent* remoteHost;
-			remoteHost = gethostbyname(strEx::wstring_to_string(ip).c_str());
-			if (remoteHost == NULL)
-				throw SocketException(_T("gethostbyname failed for ") + ip + _T(": "), ::WSAGetLastError());
-			if (remoteHost->h_addrtype != AF_INET) {
-				throw SocketException(_T("gethostbyname failed for ") + ip + _T(": "), ::WSAGetLastError());
-			}
-			struct in_addr ret;
-			ret.S_un.S_addr = (reinterpret_cast<in_addr*>(remoteHost->h_addr_list[0]))->S_un.S_addr;
-			return ret;
-		}
-		static std::wstring getHostByAddr(std::wstring ip) {
-			hostent* remoteHost;
-			remoteHost = gethostbyaddr(strEx::wstring_to_string(ip).c_str(), static_cast<int>(ip.length()), AF_INET);
-			if (remoteHost == NULL)
-				throw SocketException(_T("gethostbyaddr failed for ") + ip + _T(": "), ::WSAGetLastError());
-			return strEx::string_to_wstring(remoteHost->h_name);
-		}
-		static struct in_addr getHostByAddrAsIN(std::wstring ip) {
-			hostent* remoteHost;
-			unsigned int addr = ::inet_addr(strEx::wstring_to_string(ip).c_str());
-			std::cerr << "addr: " << addr << std::endl;
-			remoteHost = ::gethostbyaddr(reinterpret_cast<char*>(&addr), 4, AF_INET);
-			if (remoteHost == NULL)
-				throw SocketException(_T("gethostbyaddr failed for ") + ip + _T(": "), ::WSAGetLastError());
-			if (remoteHost->h_addrtype != AF_INET)
-				throw SocketException(_T("gethostbyname returned the wrong type ") + ip + _T(": "), ::WSAGetLastError());
-			struct in_addr ret;
-			ret.S_un.S_addr = (reinterpret_cast<in_addr*>(remoteHost->h_addr_list[0]))->S_un.S_addr;
-			return ret;
-		}
-		virtual bool readAll(DataBuffer &buffer, unsigned int tmpBufferLength = 1024, int maxLength = -1);
-		virtual bool sendAll(const char * buffer, unsigned int len);
-
-		int inline sendAll(DataBuffer &buffer) {
-			return sendAll(buffer.getBuffer(), buffer.getLength());
-		}
-
-		virtual int send(const char * buf, unsigned int len, int flags = 0) {
-			assert(socket_);
-			return ::send(socket_, buf, len, flags);
-		}
-		int inline send(DataBuffer &buffer, int flags = 0) {
-			return send(buffer.getBuffer(), buffer.getLength(), flags);
-		}
-
-		virtual void socket(int af, int type, int protocol ) {
-			socket_ = ::socket(af, type, protocol);
-			assert(socket_ != INVALID_SOCKET);
-		}
-		virtual void bind() {
-			assert(socket_);
-			int fromlen=sizeof(from_);
-			if (::bind(socket_, (sockaddr*)&from_, fromlen) == SOCKET_ERROR)
-				throw SocketException(_T("bind failed: "), ::WSAGetLastError());
-		}
-		virtual void listen(int backlog = SOMAXCONN) {
-			assert(socket_);
-			if (::listen(socket_, backlog) == SOCKET_ERROR)
-				throw SocketException(_T("listen failed: "), ::WSAGetLastError());
-		}
-		virtual bool accept(Socket &client) {
-			int fromlen=sizeof(client.from_);
-			SOCKET s = ::accept(socket_, (sockaddr*)&client.from_, &fromlen);
-			if(s == INVALID_SOCKET) {
-				int err = ::WSAGetLastError();
-				if (err == WSAEWOULDBLOCK)
-					return false;
-				throw SocketException(_T("accept failed: "), ::WSAGetLastError());
-			}
-			client.attach(s);
-			return true;
-		}
-		virtual void setAddr(short family, u_long addr, u_short port) {
-			from_.sin_family=family;
-			from_.sin_addr.s_addr=addr;
-			from_.sin_port=port;
-		}
-		virtual void ioctlsocket(long cmd, u_long *argp) {
-			assert(socket_);
-			if (::ioctlsocket(socket_, cmd, argp) == SOCKET_ERROR)
-				throw SocketException(_T("ioctlsocket failed: "), ::WSAGetLastError());
-		}
-		virtual std::wstring getAddrString() {
-			return strEx::string_to_wstring(::inet_ntoa(from_.sin_addr));
-		}
-		virtual struct in_addr getAddr() {
-			return from_.sin_addr;
-		}
-		virtual void printError(std::wstring file, int line, std::wstring error);
-	};
-
-	class ListenerHandler {
-	public:
-		virtual void onAccept(Socket *client) = 0;
-		virtual void onClose() = 0;
-	};
-
-
-	/**
-	* @ingroup NSClient++
-	* Socket responder class.
-	* This is a background thread that listens to the socket and executes incoming commands.
-	*
-	* @version 1.0
-	* first version
-	*
-	* @date 02-12-2005
-	*
-	* @author mickem
-	*
-	* @par license
-	* This code is absolutely free to use and modify. The code is provided "as is" with
-	* no expressed or implied warranty. The author accepts no liability if it causes
-	* any damage to your computer, causes your pet to fall ill, increases baldness
-	* or makes your car start emitting strange noises when you start it up.
-	* This code has no bugs, just undocumented features!
-	* 
-	* @todo This is not very well written and should probably be reworked.
-	*
-	* @bug 
-	*
-	*/
-	template <class TListenerType = simpleSocket::Socket, class TSocketType = TListenerType>
-	class Listener : public TListenerType {
-	public:
-		typedef TListenerType tListener;
-		typedef TSocketType tSocket;
-	private:
-		struct simpleResponderBundle {
-			bool terminated;
-			HANDLE hThread;
-			unsigned dwThreadID;
-		};
-		typedef std::list<simpleResponderBundle> socketResponses;
-		typedef TListenerType tBase;
-		class ListenerThread;
-		typedef Thread<ListenerThread> listenThreadManager;
-
-		u_short bindPort_;
-		u_long bindAddres_;
-		unsigned int listenQue_;
-		listenThreadManager threadManager_;
-		socketResponses responderList_;
-		MutexHandler responderMutex_;
-
-	public:
-		class ListenerThread {
-		private:
-			typedef TListenerType tParentBase;
-			typedef TSocketType tSocket;
-
-			HANDLE hStopEvent_;
-		public:
-			ListenerThread() : hStopEvent_(NULL) {}
-			DWORD threadProc(LPVOID lpParameter);
-			bool hasThread() const {
-				return hStopEvent_ != NULL;
-			}
-			void exitThread(void) {
-				assert(hStopEvent_ != NULL);
-				if (!SetEvent(hStopEvent_))
-					throw SocketException(_T("SetEvent failed."));
-			}
-		};
-	private:
-		ListenerHandler *pHandler_;
-
-	public:
-		Listener() : pHandler_(NULL), bindPort_(0), bindAddres_(INADDR_ANY), listenQue_(0), threadManager_(_T("listenThreadManager")) {};
-		virtual ~Listener() {
-			if (responderList_.size() > 0) {
-				MutexLock lock(responderMutex_);
-				if (!lock.hasMutex()) {
-					printError(_T(__FILE__), __LINE__, _T("Failed to get responder mutex (cannot terminate socket threads)."));
-				} else {
-					for (socketResponses::iterator it = responderList_.begin(); it != responderList_.end(); ++it) {
-						if (WaitForSingleObject( (*it).hThread, 1000) == WAIT_OBJECT_0) {
-						} else {
-							if (!TerminateThread((*it).hThread, -1)) {
-								printError(_T(__FILE__), __LINE__, _T("We failed to terminate check thread."));
-							} else {
-								if (WaitForSingleObject( (*it).hThread, 5000) == WAIT_OBJECT_0) {
-									CloseHandle((*it).hThread);
-								} else {
-									printError(_T(__FILE__), __LINE__, _T("We failed to terminate check thread (wait timed out)."));
-								}
-							}
-						}
-					}
-					responderList_.clear();
-				}
-			}
-		};
-/*
-		virtual void StartListener(int port) {
-			bindPort_ = port;
-			threadManager_.createThread(this);
-		}
-		*/
-		bool hasListener() {
-			try {
-				if (threadManager_.hasActiveThread()) {
-					const ListenerThread *t = threadManager_.getThreadConst();
-					if (t!=NULL)
-						return t->hasThread();
-				}
-			} catch (ThreadException e) {
-				printError(_T(__FILE__), __LINE__, _T("Could not access listener thread!"));
-				return false;
-			}
-			return false;
-		}
-		virtual void StartListener(std::wstring host, int port, int queLength) {
-			bindPort_ = port;
-			if (!host.empty())
-				bindAddres_ = TListenerType::inet_addr(host);
-			if (bindAddres_ == INADDR_NONE)
-				bindAddres_ = INADDR_ANY;
-			listenQue_ = queLength;
-			threadManager_.createThread(this);
-		}
-		virtual void StopListener() {
-			try {
-				if (threadManager_.hasActiveThread())
-					if (!threadManager_.exitThread()) {
-						tBase::close();
-						throw SocketException(_T("Could not terminate thread."));
-					}
-			} catch (ThreadException e) {
-				tBase::close();
-				throw SocketException(_T("Could not terminate thread (got exception in thread)."));
-			}
-			tBase::close();
-		}
-		void setHandler(ListenerHandler* pHandler) {
-			pHandler_ = pHandler;
-		}
-		void removeHandler(ListenerHandler* pHandler) {
-			if (pHandler != pHandler_)
-				throw SocketException(_T("Not a registered handler!"));
-			pHandler_ = NULL;
-		}
-		static unsigned __stdcall socketResponceProc(void* lpParameter);
-		struct srp_data {
-			Listener *pCore;
-			tSocket *client;
-		};
-		void addResponder(tSocket *client) {
-			MutexLock lock(responderMutex_);
-			if (!lock.hasMutex()) {
-				printError(_T(__FILE__), __LINE__, _T("Failed to get responder mutex."));
-				return;
-			}
-			for (socketResponses::iterator it = responderList_.begin(); it != responderList_.end();) {
-				if ( (*it).terminated) {
-					if (WaitForSingleObject( (*it).hThread, 500) == WAIT_OBJECT_0) {
-						CloseHandle((*it).hThread);
-						responderList_.erase(it++);
-					}
-				} else
-					++it;
-			}
-			simpleResponderBundle data;
-			srp_data *lpData = new srp_data;
-			lpData->pCore = this;
-			lpData->client = client;
-
-			data.hThread = reinterpret_cast<HANDLE>(::_beginthreadex( NULL, 0, &socketResponceProc, lpData, 0, &data.dwThreadID));
-			data.terminated = false;
-			responderList_.push_back(data);
-		}
-		bool removeResponder(DWORD dwThreadID) {
-			MutexLock lock(responderMutex_);
-			if (!lock.hasMutex()) {
-				printError(_T(__FILE__), __LINE__, _T("Failed to get responder mutex when trying to free thread."));
-				return false;
-			}
-			for (socketResponses::iterator it = responderList_.begin(); it != responderList_.end(); ++it) {
-				if ( (*it).dwThreadID == dwThreadID) {
-					(*it).terminated = true;
-					return true;
-				}
-			}
-			printError(_T(__FILE__), __LINE__, _T("Failed to remove socket-responder."));
-			return false;
-		}
-
-
-	private:
-		void onAccept(tSocket *client) {
-			if (pHandler_)
-				pHandler_->onAccept(client);
-		}
-		void onClose() {
-			if (pHandler_)
-				pHandler_->onClose();
-		}
-		virtual bool accept(tSocket &client) {
-			return tBase::accept(client);
-		}
-	};
-
-	WSADATA WSAStartup(WORD wVersionRequested = 0x202);
-	void WSACleanup();
-
-}
-
-template <class TListenerType, class TSocketType>
-unsigned simpleSocket::Listener<TListenerType, TSocketType>::socketResponceProc(void* lpParameter)
-{
-	// @todo make sure this terminates after X seconds!
-
-	srp_data *data = reinterpret_cast<srp_data*>(lpParameter);
-	Listener *pCore = data->pCore;
-	tSocket *client = data->client;
-	delete data;
-	try {
-		pCore->onAccept(client);
-	} catch (SocketException e) {
-		pCore->printError(_T(__FILE__), __LINE__, e.getMessage() + _T(" killing socket..."));
-	}
-	client->close();
-	delete client;
-	if (!pCore->removeResponder(GetCurrentThreadId())) {
-		pCore->printError(_T(__FILE__), __LINE__, _T("Could not remove thread: ") + strEx::itos(GetCurrentThreadId()));
-	}
-	_endthreadex(0);
-	return 0;
-}
-
-
-template <class TListenerType, class TSocketType>
-DWORD simpleSocket::Listener<TListenerType, TSocketType>::ListenerThread::threadProc(LPVOID lpParameter)
-{
-	Listener *core = reinterpret_cast<Listener*>(lpParameter);
-
-	hStopEvent_ = CreateEvent(NULL, TRUE, FALSE, NULL);
-	if (!hStopEvent_) {
-		core->printError(_T(__FILE__), __LINE__, _T("Create StopEvent failed: ") + error::lookup::last_error());
-		return 0;
-	}
-
-	bool socketOk = false;
-	try {
-		core->socket(AF_INET,SOCK_STREAM,0);
-		core->setAddr(AF_INET, core->bindAddres_, htons(core->bindPort_));
-		core->bind();
-		NSC_DEBUG_MSG_STD(_T("Bound to: ") + TListenerType::inet_ntoa(core->bindAddres_) + _T(":") + strEx::itos(core->bindPort_));
-		if (core->listenQue_ != 0)
-			core->listen(core->listenQue_);
-		else
-			core->listen();
-		core->setNonBlock();
-		socketOk = true;
-	} catch (SocketException e) {
-		core->printError(_T(__FILE__), __LINE__, e.getMessage());
-	} catch (...) {
-		core->printError(_T(__FILE__), __LINE__, _T("Unhandeled exception in the socket thread..."));
-	}
-	if (socketOk) {
-		try {
-			//NSC_DEBUG_MSG_STD("Socket ready...");
-			while (!(WaitForSingleObject(hStopEvent_, 100) == WAIT_OBJECT_0)) {
-				try {
-					tSocket client;
-					if (core->accept(client)) {
-						core->addResponder(new tSocket(client));
-					}
-				} catch (SocketException e) {
-					core->printError(_T(__FILE__), __LINE__, e.getMessage() + _T(", attempting to resume..."));
-				}
-			}
-		} catch (SocketException e) {
-			core->printError(_T(__FILE__), __LINE__, e.getMessage());
-		} catch (...) {
-			core->printError(_T(__FILE__), __LINE__, _T("Unhandeled exception in the socket thread..."));
-		}
-	} else {
-		core->printError(_T(__FILE__), __LINE__, _T("Socket did not start properly, we will now do nothing..."));
-		WaitForSingleObject(hStopEvent_, INFINITE);
-	}
-	NSC_DEBUG_MSG_STD(_T("Socket listener is preparing to shutdown..."));
-	core->shutdown(SD_BOTH);
-	core->close();
-	core->onClose();
-	HANDLE hTmp = hStopEvent_;
-	hStopEvent_ = NULL;
-	if (!CloseHandle(hTmp)) {
-		core->printError(_T(__FILE__), __LINE__, _T("CloseHandle StopEvent failed: ") + error::lookup::last_error());
-	}
-	return 0;
-}
-
-
-
-namespace socketHelpers {
-	class allowedHosts {
-		struct host_record {
-			host_record() : mask(0) {}
-			host_record(std::wstring r) : mask(0), record(r) {}
-			std::wstring record;
-			std::wstring host;
-			u_long in_addr;
-			unsigned long mask;
-		};
-	public:
-		typedef std::list<host_record> host_list; 
-	private:
-		host_list allowedHosts_;
-		bool cachedAddresses_;
-	public:
-		allowedHosts() : cachedAddresses_(true) {}
-
-		unsigned int lookupMask(std::wstring mask) {
-			unsigned int masklen = 32;
-			if (!mask.empty()) {
-				std::wstring::size_type pos = mask.find_first_of(_T("0123456789"));
-				if (pos != std::wstring::npos) {
-					masklen = strEx::stoi(mask.substr(pos));
-				}
-			}
-			if (masklen > 32)
-				masklen = 32;
-			return (~((unsigned int)0))>>(32-masklen);
-		}
-		void lookupList() {
-			for (host_list::iterator it = allowedHosts_.begin();it!=allowedHosts_.end();++it) {
-				std::wstring record = (*it).record;
-				if (record.length() > 0) {
-					try {
-						std::wstring::size_type pos = record.find('/');
-						if (pos == std::wstring::npos) {
-							(*it).host = record;
-							(*it).mask = lookupMask(_T(""));
-						} else {
-							(*it).host = record.substr(0, pos);
-							(*it).mask = lookupMask(record.substr(pos));
-						}
-						if (isalpha((*it).host[0]))
-							(*it).in_addr = simpleSocket::Socket::getHostByNameAsIN((*it).host).S_un.S_addr;
-						else
-							(*it).in_addr = ::inet_addr(strEx::wstring_to_string((*it).host).c_str()); // simpleSocket::Socket::getHostByAddrAsIN((*it).host);
-						/*
-						std::cerr << "Added: " 
-							+ simpleSocket::Socket::inet_ntoa((*it).in_addr)
-							+ " with mask "
-							+ simpleSocket::Socket::inet_ntoa((*it).mask)
-							+ " from "
-							+ (*it).record <<
-							std::endl;
-							*/
-					} catch (simpleSocket::SocketException e) {
-						std::wcerr << _T("Filed to lookup host: ") << e.getMessage() << std::endl;
-					}
-				}
-			}
-		}
-
-		void setAllowedHosts(const std::list<std::wstring> list, bool cachedAddresses) {
-			for (std::list<std::wstring>::const_iterator it = list.begin(); it != list.end(); ++it) {
-				allowedHosts_.push_back(host_record(*it));
-			}
-			cachedAddresses_ = cachedAddresses;
-//			if ((!allowedHosts.empty()) && (allowedHosts.front() == "") )
-//				allowedHosts.pop_front();
-			//allowedHosts_ = allowedHosts;
-			lookupList();
-		}
-		bool matchHost(host_record allowed, struct in_addr remote) {
-			/*
-			if ((allowed.in_addr&allowed.mask)==(remote.S_un.S_addr&allowed.mask)) {
-				std::cerr << "Matched: " << simpleSocket::Socket::inet_ntoa(allowed.in_addr)  << " with " << 
-					simpleSocket::Socket::inet_ntoa(remote.S_un.S_addr) << std::endl;
-			}
-			*/
-			return ((allowed.in_addr&allowed.mask)==(remote.S_un.S_addr&allowed.mask));
-		}
-		bool inAllowedHosts(struct in_addr remote) {
-			if (allowedHosts_.empty())
-				return true;
-			host_list::const_iterator cit;
-			if (!cachedAddresses_) {
-				lookupList();
-			}
-			for (cit = allowedHosts_.begin();cit!=allowedHosts_.end();++cit) {
-				if (matchHost((*cit), remote))
-					return true;
-			}
-			return false;
-		}
-	};
-}
Index: gs/0.3.1/include/TSettings.h
===================================================================
--- tags/0.3.1/include/TSettings.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,26 +1,0 @@
-#pragma once
-
-#include <string>
-#include <windows.h>
-#define BUFF_LEN 4096
-
-class TSettings
-{
-public:
-	typedef std::list<std::wstring> sectionList;
-	TSettings(void)
-	{
-	}
-
-	virtual ~TSettings(void)
-	{
-	}
-	virtual std::wstring getActiveType() = 0;
-	virtual sectionList getSections(unsigned int bufferLength = BUFF_LEN) = 0;
-	virtual sectionList getSection(std::wstring section, unsigned int bufferLength = BUFF_LEN) = 0;
-	virtual std::wstring getString(std::wstring section, std::wstring key, std::wstring defaultValue = _T("")) const = 0;
-	virtual void setString(std::wstring section, std::wstring key, std::wstring value) = 0;
-	virtual int getInt(std::wstring section, std::wstring key, int defaultValue = 0) = 0;
-	virtual void setInt(std::wstring section, std::wstring key, int value) = 0;
-	virtual int getActiveTypeID() = 0;
-};
Index: gs/0.3.1/include/arrayBuffer.cpp
===================================================================
--- tags/0.3.1/include/arrayBuffer.cpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,350 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#include <arrayBuffer.h>
-#include <msvc_wrappers.h>
-
-/**
- * Make a list out of a array of char arrays (arguments type)
- * @param argLen Length of argument array
- * @param *argument[] Argument array
- * @return Argument wrapped as a list
- */
-arrayBuffer::arrayList arrayBuffer::arrayBuffer2list(const unsigned int argLen, TCHAR *argument[]) {
-	arrayList ret;
-	int i=0;
-	for (unsigned int i=0;i<argLen;i++) {
-		std::wstring s = argument[i];
-		ret.push_back(s);
-	}
-	return ret;
-}
-/**
-* Create an arrayBuffer from a list.
-* This is the reverse of arrayBuffer2list.
-* <b>Notice</b> it is up to the caller to free the memory allocated in the returned buffer.
-*
-* @param lst A list to convert.
-* @param &argLen Write the length to this argument.
-* @return A pointer that is managed by the caller.
-*/
-arrayBuffer::arrayBuffer arrayBuffer::list2arrayBuffer(const arrayList lst, unsigned int &argLen) {
-	argLen = static_cast<unsigned int>(lst.size());
-	arrayBuffer::arrayBuffer arrayBuffer = new arrayBuffer::arrayBufferItem[argLen];
-	arrayList::const_iterator it = lst.begin();
-	int i;
-	for (i=0;it!=lst.end();++it,i++) {
-		std::wstring::size_type alen = (*it).size();
-		arrayBuffer[i] = new TCHAR[alen+2];
-		wcsncpy_s(arrayBuffer[i], alen+2, (*it).c_str(), alen+1);
-	}
-	assert(i == argLen);
-	return arrayBuffer;
-}
-/**
-* Creates an empty arrayBuffer (only used to allow consistency)
-* @param &argLen [OUT] The length (items) of the arrayBuffer
-* @return The arrayBuffer
-*/
-arrayBuffer::arrayBuffer arrayBuffer::createEmptyArrayBuffer(unsigned int &argLen) {
-	argLen = 0;
-	arrayBuffer::arrayBuffer arrayBuffer = new arrayBuffer::arrayBufferItem[0];
-	return arrayBuffer;
-}
-/**
-* Creates an arrayBuffer with N-elements
-* @param &argLen [IN OUT] The length (items) of the arrayBuffer
-* @return The arrayBuffer
-*/
-arrayBuffer::arrayBuffer arrayBuffer::createArrayBuffer(unsigned int &argLen) {
-	arrayBuffer::arrayBuffer arrayBuffer = new arrayBuffer::arrayBufferItem[argLen];
-	for (unsigned int i=0;i<argLen;i++) {
-		arrayBuffer[i] = NULL;
-	}
-	return arrayBuffer;
-}
-/**
-* Joins an arrayBuffer back into a string
-* @param **argument The ArrayBuffer
-* @param argLen The length of the ArrayBuffer
-* @param join The char to use as separators when joining
-* @return The joined arrayBuffer
-*/
-std::wstring arrayBuffer::arrayBuffer2string(arrayBuffer::arrayBuffer argument, const unsigned int argLen, std::wstring join) {
-	std::wstring ret;
-	for (unsigned int i=0;i<argLen;i++) {
-		if (argument[i] != NULL) {
-			ret += argument[i];
-			if (i != argLen-1)
-				ret += join;
-		}
-	}
-	return ret;
-}
-/**
-* Split a string into elements as a newly created arrayBuffer
-* @param buffer The CharArray to split along
-* @param splitChar The char to use as splitter
-* @param &argLen [OUT] The length of the Array
-* @return The arrayBuffer
-*/
-arrayBuffer::arrayBuffer arrayBuffer::split2arrayBuffer(const TCHAR* buffer, TCHAR splitChar, unsigned int &argLen) {
-	assert(buffer);
-	argLen = 0;
-	const TCHAR *p = buffer;
-	if (!p[0]) {
-		return createEmptyArrayBuffer(argLen);
-	}
-	while (*p) {
-		if (*p == splitChar)
-			argLen++;
-		p++;
-	}
-	argLen++;
-	TCHAR **arrayBuffer = new TCHAR*[argLen];
-	p = buffer;
-	for (unsigned int i=0;i<argLen;i++) {
-		const TCHAR *q = wcschr(p, (i<argLen-1)?splitChar:0);
-		unsigned int len = static_cast<int>(q-p);
-		arrayBuffer[i] = new TCHAR[len+1];
-		wcsncpy_s(arrayBuffer[i], len+1, p, len);
-		arrayBuffer[i][len] = 0;
-		p = ++q;
-	}
-	return arrayBuffer;
-}
-
-
-void arrayBuffer::set(arrayBuffer arrayBuffer, const unsigned int argLen, const unsigned int position, std::wstring argument) {
-	if (position >= argLen)
-		assert(false);
-	delete [] arrayBuffer[position];
-	size_t len = argument.length();
-	arrayBuffer[position] = new TCHAR[len+2];
-	wcsncpy_s(arrayBuffer[position], len+1, argument.c_str(), len);
-	arrayBuffer[position][len] = 0;
-}
-
-/**
- * Split a string into elements as a newly created arrayBuffer
- * @param inBuf The CharArray to split along
- * @param splitChar The char to use as splitter
- * @param &argLen [OUT] The length of the Array
- * @param escape [IN] Set to true to try to escape ":s ie. //token1 "token2 with space" token3//
- * @return The arrayBuffer
- */
-arrayBuffer::arrayBuffer arrayBuffer::split2arrayBuffer(const std::wstring inBuf, TCHAR splitChar, unsigned int &argLen, bool escape) {
-	if (inBuf.empty())
-		return createEmptyArrayBuffer(argLen);
-
-	std::wstring::size_type p1 = 0;
-	std::wstring::size_type p2 = 0;
-	std::list<std::wstring> token_list;
-	while (p1 != std::wstring::npos && p2 != std::wstring::npos) {
-		if (escape && inBuf[p1] == '\"') {
-			p2 = inBuf.find('\"', p1+1);
-			if (p2 != std::wstring::npos)
-				p2 = inBuf.find(splitChar, p2);
-		} else {
-			p2 = inBuf.find(splitChar, p1);
-		}
-		if (p2 == std::wstring::npos)
-			p2 = inBuf.size();
-		// p1 = start of "this token"
-		// p2 = end of "this token" (next split char)
-		//std::wcout << _T("found token: ") << p1 << _T(":") << p2;
-
-		assert(p2>p1);
-		std::wstring token = inBuf.substr(p1,p2-p1);
-		if (escape && token[0] == '\"')
-			token = token.substr(1);
-		if (escape && token[token.size()-1] == '\"')
-			token = token.substr(0, token.size()-1);
-
-		//std::wcout << _T(" -- ") << token << std::endl;
-
-		token_list.push_back(token);
-		if (p2 < inBuf.size())
-			p2++;
-		if (p2 == inBuf.size())
-			p2 = std::wstring::npos;
-		p1 = p2;
-	}
-	arrayBuffer::arrayBuffer arrayBuffer = new arrayBuffer::arrayBufferItem[token_list.size()];
-	argLen=0;
-	for (std::list<std::wstring>::const_iterator cit=token_list.begin();cit!=token_list.end();++cit) {
-		size_t len = (*cit).size();
-		TCHAR* token = new TCHAR[len+1];
-		wcsncpy_s(token, len+1, (*cit).c_str(), len);
-		arrayBuffer[argLen++] = token;
-	}
-	token_list.clear();
-	return arrayBuffer;
-/*
-
-		unsigned int len = static_cast<unsigned int>(p-l);
-		arrayBuffer[i] = new TCHAR[len+1];
-		wcsncpy_s(arrayBuffer[i], len+1, inBuf.substr(l,p).c_str(), len);
-		arrayBuffer[i][len] = 0;
-		if (p == std::wstring::npos)
-			break;
-		l = ++p;
-		if (escape && l < inBuf.size() && inBuf[l] == '\"') {
-			p = inBuf.find('\"', l+1);
-			if (p != std::wstring::npos)
-				p = inBuf.find(splitChar, p);
-		} else if (p < inBuf.size()) {
-			p = inBuf.find(splitChar, p);
-		} else {
-			p = std::wstring::npos;
-		}
-		*/
-//	}
-
-/*
-
-	argLen = 1;
-	std::wstring::size_type p = inBuf.find(splitChar);
-	while (p != std::wstring::npos) {
-		argLen++;
-		p = inBuf.find(splitChar, p+1);
-	}
-	arrayBuffer::arrayBuffer arrayBuffer = new arrayBuffer::arrayBufferItem[argLen];
-	if (escape && inBuf[0] == '\"') {
-		p = inBuf.find('\"');
-		if (p != std::wstring::npos)
-			p = inBuf.find(splitChar, p);
-	} else {
-		p = inBuf.find(splitChar);
-	}
-	std::wstring::size_type l = 0;
-	for (unsigned int i=0;i<argLen;i++) {
-		if (p == std::wstring::npos)
-			p = inBuf.size();
-		//		TCHAR *q = strchr(p, (i<argLen-1)?splitChar:0);
-		assert(p>l);
-		unsigned int len = static_cast<unsigned int>(p-l);
-		arrayBuffer[i] = new TCHAR[len+1];
-		wcsncpy_s(arrayBuffer[i], len+1, inBuf.substr(l,p).c_str(), len);
-		arrayBuffer[i][len] = 0;
-		if (p == std::wstring::npos)
-			break;
-		l = ++p;
-		if (escape && l < inBuf.size() && inBuf[l] == '\"') {
-			p = inBuf.find('\"', l+1);
-			if (p != std::wstring::npos)
-				p = inBuf.find(splitChar, p);
-		} else if (p < inBuf.size()) {
-			p = inBuf.find(splitChar, p);
-		} else {
-			p = std::wstring::npos;
-		}
-	}
-	*/
-	//return arrayBuffer;
-}
-
-/**
-* Destroy an arrayBuffer.
-* The buffer should have been created with list2arrayBuffer.
-*
-* @param **argument 
-* @param argLen 
-*/
-void arrayBuffer::destroyArrayBuffer(arrayBuffer::arrayBuffer argument, const unsigned int argLen) {
-	for (unsigned int i=0;i<argLen;i++) {
-		delete [] argument[i];
-	}
-	delete [] argument;
-}
-
-
-
-#ifdef _DEBUG
-/**
- * Test function for createEmptyArrayBuffer
- */
-void arrayBuffer::test_createEmptyArrayBuffer() {
-	std::wcout << "arrayBuffer::test_createEmptyArrayBuffer() : ";
-	unsigned int argLen;
-	TCHAR ** c = createEmptyArrayBuffer(argLen);
-	if ((c) && (argLen == 0))
-		std::wcout << "Succeeded" << std::endl;
-	else
-		std::wcout << "Failed" << std::endl;
-	destroyArrayBuffer(c, argLen);
-}
-/**
- * Test function for split2arrayBuffer
- * @param buffer 
- * @param splitter 
- * @param OUT_argLen 
- */
-void arrayBuffer::test_split2arrayBuffer_str(std::wstring buffer, TCHAR splitter, int OUT_argLen) {
-	std::wcout << _T("arrayBuffer::test_split2arrayBuffer(") << buffer << _T(", ...) : ");
-	unsigned int argLen = 0;
-	TCHAR ** c = split2arrayBuffer(buffer, splitter, argLen);
-	if ((c) && (argLen == OUT_argLen))
-		std::wcout << _T("Succeeded") << std::endl;
-	else
-		std::wcout << _T("Failed |") << argLen << _T("=") << OUT_argLen << _T("]") << std::endl;
-	destroyArrayBuffer(c, argLen);
-}
-/**
- * Test function for split2arrayBuffer
- * @param buffer 
- * @param splitter 
- * @param OUT_argLen 
- */
-void arrayBuffer::test_split2arrayBuffer_char(TCHAR* buffer, TCHAR splitter, int OUT_argLen) {
-	std::wcout << _T("arrayBuffer::test_split2arrayBuffer(") << buffer << _T(", ...) : ");
-	unsigned int argLen = 0;
-	TCHAR ** c = split2arrayBuffer(buffer, splitter, argLen);
-	if ((c) && (argLen == OUT_argLen))
-		std::wcout << _T("Succeeded") << std::endl;
-	else
-		std::wcout << _T("Failed |") << argLen << _T("=") << OUT_argLen << _T("]") << std::endl;
-	destroyArrayBuffer(c, argLen);
-}
-
-/**
- * Test function for ArrayBuffer
- */
-void arrayBuffer::run_testArrayBuffer() {
-	test_createEmptyArrayBuffer();
-	test_split2arrayBuffer_str(_T(""), '&', 0);
-	test_split2arrayBuffer_str(_T("foo"), '&', 1);
-	test_split2arrayBuffer_str(_T("&"), '&', 2);
-	test_split2arrayBuffer_str(_T("foo&"), '&', 2);
-	test_split2arrayBuffer_str(_T("&foo&"), '&', 3);
-	test_split2arrayBuffer_str(_T("foo&bar"), '&', 2);
-	test_split2arrayBuffer_str(_T("foo&bar&test"), '&', 3);
-	test_split2arrayBuffer_str(_T("foo&&&"), '&', 4);
-
-	test_split2arrayBuffer_char(_T(""), '&', 0);
-	test_split2arrayBuffer_char(_T("foo"), '&', 1);
-	test_split2arrayBuffer_char(_T("&"), '&', 2);
-	test_split2arrayBuffer_char(_T("foo&"), '&', 2);
-	test_split2arrayBuffer_char(_T("&foo&"), '&', 3);
-	test_split2arrayBuffer_char(_T("foo&bar"), '&', 2);
-	test_split2arrayBuffer_char(_T("foo&bar&test"), '&', 3);
-	test_split2arrayBuffer_char(_T("foo&&&"), '&', 4);
-}
-#endif
Index: gs/0.3.1/include/arrayBuffer.h
===================================================================
--- tags/0.3.1/include/arrayBuffer.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,81 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <tchar.h>
-#include <string>
-#include <list>
-#include <assert.h>
-#include <iostream>
-/**
- * @ingroup NSClient++
- *
- * A simple namespace (wrapper) to wrap functions to manipulate an array buffer.
- *
- * @version 1.0
- * first version
- *
- * @date 05-14-2005
- *
- * @author mickem
- *
- * @par license
- * This code is absolutely free to use and modify. The code is provided "as is" with
- * no expressed or implied warranty. The author accepts no liability if it causes
- * any damage to your computer, causes your pet to fall ill, increases baldness
- * or makes your car start emitting strange noises when you start it up.
- * This code has no bugs, just undocumented features!
- * 
- * @todo 
- *
- * @bug 
- *
- */
-namespace arrayBuffer {
-	typedef TCHAR* arrayBufferItem;
-	typedef arrayBufferItem* arrayBuffer;
-	typedef std::list<std::wstring> arrayList;
-	void set(arrayBuffer arrayBuffer, const unsigned int argLen, const unsigned int position, std::wstring argument);
-	arrayList arrayBuffer2list(const unsigned int argLen, TCHAR **argument);
-	arrayBuffer list2arrayBuffer(const arrayList lst, unsigned int &argLen);
-	arrayBuffer split2arrayBuffer(const TCHAR* buffer, TCHAR splitChar, unsigned int &argLen);
-	arrayBuffer split2arrayBuffer(const std::wstring inBuf, TCHAR splitChar, unsigned int &argLen, bool escape = false);
-	std::wstring arrayBuffer2string(TCHAR **argument, const unsigned int argLen, std::wstring join);
-	arrayBuffer createEmptyArrayBuffer(unsigned int &argLen);
-	arrayBuffer createArrayBuffer(unsigned int &argLen);
-	void destroyArrayBuffer(arrayBuffer argument, const unsigned int argLen);
-	inline arrayBuffer copy(const arrayBuffer &other, const unsigned int argLen) {
-		arrayBufferItem* ret = new arrayBufferItem[argLen];
-		for (unsigned int i=0; i<argLen; i++) {
-			size_t s = wcslen(other[i]);
-			ret[i] = new TCHAR[s+2];
-			wcsncpy_s(ret[i], s+2, other[i], s);
-		}
-		return ret;
-	}
-
-#ifdef _DEBUG
-	void test_createEmptyArrayBuffer();
-	void test_split2arrayBuffer_str(std::wstring buffer, TCHAR splitter, int OUT_argLen);
-	void test_split2arrayBuffer_char(TCHAR* buffer, TCHAR splitter, int OUT_argLen);
-	void run_testArrayBuffer();
-#endif
-}
Index: gs/0.3.1/include/b64/b64.c
===================================================================
--- tags/0.3.1/include/b64/b64.c	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,396 +1,0 @@
-/* /////////////////////////////////////////////////////////////////////////////
- * File:        b64.c
- *
- * Purpose:     Implementation file for the b64 library
- *
- * Created:     18th October 2004
- * Updated:     15th February 2005
- *
- * Home:        http://synesis.com.au/software/
- *
- * Copyright 2004-2005, Matthew Wilson and Synesis Software
- * 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.
- * - Neither the name(s) of Matthew Wilson and Synesis Software nor the names of
- *   any contributors may be used to endorse or promote products derived from
- *   this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
- *
- * ////////////////////////////////////////////////////////////////////////// */
-
-
-/** \file b64.c Implementation file for the b64 library
- */
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Version information
- */
-
-#ifndef B64_DOCUMENTATION_SKIP_SECTION
-# define B64_VER_C_B64_MAJOR    1
-# define B64_VER_C_B64_MINOR    0
-# define B64_VER_C_B64_REVISION 8
-# define B64_VER_C_B64_EDIT     10
-#endif /* !B64_DOCUMENTATION_SKIP_SECTION */
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Includes
- */
-
-#include <b64/b64.h>
-
-#include <assert.h>
-#include <string.h>
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Constants and definitions
- */
-
-#ifndef B64_DOCUMENTATION_SKIP_SECTION
-# define NUM_PLAIN_DATA_BYTES        (3)
-# define NUM_ENCODED_DATA_BYTES      (4)
-#endif /* !B64_DOCUMENTATION_SKIP_SECTION */
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Warnings
- */
-
-#if defined(_MSC_VER) && \
-    _MSC_VER < 1000
-# pragma warning(disable : 4705)
-#endif /* _MSC_VER < 1000 */
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Data
- */
-
-static const char           b64_chars[] =   "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-static const signed char    b64_indexes[]   =   
-{
-    /* 0 - 31 / 0x00 - 0x1f */
-        -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
-    /* 32 - 63 / 0x20 - 0x3f */
-    ,   -1, -1, -1, -1, -1, -1, -1, -1  
-    ,   -1, -1, -1, 62, -1, -1, -1, 63  /* ... , '+', ... '/' */
-    ,   52, 53, 54, 55, 56, 57, 58, 59  /* '0' - '7' */
-    ,   60, 61, -1, -1, -1, -1, -1, -1  /* '8', '9', ... */
-    /* 64 - 95 / 0x40 - 0x5f */
-    ,   -1, 0,  1,  2,  3,  4,  5,  6   /* ..., 'A' - 'G' */
-    ,   7,  8,  9,  10, 11, 12, 13, 14  /* 'H' - 'O' */
-    ,   15, 16, 17, 18, 19, 20, 21, 22  /* 'P' - 'W' */
-    ,   23, 24, 25, -1, -1, -1, -1, -1  /* 'X', 'Y', 'Z', ... */
-    /* 96 - 127 / 0x60 - 0x7f */
-    ,   -1, 26, 27, 28, 29, 30, 31, 32  /* ..., 'a' - 'g' */
-    ,   33, 34, 35, 36, 37, 38, 39, 40  /* 'h' - 'o' */
-    ,   41, 42, 43, 44, 45, 46, 47, 48  /* 'p' - 'w' */
-    ,   49, 50, 51, -1, -1, -1, -1, -1  /* 'x', 'y', 'z', ... */
-
-    ,   -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  
-};
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Helper functions
- */
-
-/** This function reads in 3 bytes at a time, and translates them into 4
- * characters.
- */
-static size_t b64_encode_(unsigned char const *src, size_t srcSize, char *const dest, size_t destLen)
-{
-    size_t  total   =   ((srcSize + (NUM_PLAIN_DATA_BYTES - 1)) / NUM_PLAIN_DATA_BYTES) * NUM_ENCODED_DATA_BYTES;
-
-    if(NULL == dest)
-    {
-        return total;
-    }
-    else if(destLen < total)
-    {
-        return 0;
-    }
-    else
-    {
-        char    *p  =   dest;
-
-        for(; NUM_PLAIN_DATA_BYTES <= srcSize; srcSize -= NUM_PLAIN_DATA_BYTES)
-        {
-            char    characters[NUM_ENCODED_DATA_BYTES];
-
-            characters[0] = (char)((src[0] & 0xfc) >> 2);
-            characters[1] = (char)(((src[0] & 0x03) << 4) + ((src[1] & 0xf0) >> 4));
-            characters[2] = (char)(((src[1] & 0x0f) << 2) + ((src[2] & 0xc0) >> 6));
-            characters[3] = (char)(src[2] & 0x3f);
-
-#ifndef __WATCOMC__
-            assert(characters[0] >= 0 && characters[0] < 64);
-            assert(characters[1] >= 0 && characters[1] < 64);
-            assert(characters[2] >= 0 && characters[2] < 64);
-            assert(characters[3] >= 0 && characters[3] < 64);
-#endif /* __WATCOMC__ */
-
-            src += NUM_PLAIN_DATA_BYTES;
-            *p++ = b64_chars[(unsigned char)characters[0]];
-            assert(NULL != strchr(b64_chars, *(p-1)));
-            *p++ = b64_chars[(unsigned char)characters[1]];
-            assert(NULL != strchr(b64_chars, *(p-1)));
-            *p++ = b64_chars[(unsigned char)characters[2]];
-            assert(NULL != strchr(b64_chars, *(p-1)));
-            *p++ = b64_chars[(unsigned char)characters[3]];
-            assert(NULL != strchr(b64_chars, *(p-1)));
-        }
-
-        if(0 != srcSize)
-        {
-            /* Deal with the overspill, by boosting it up to three bytes (using 0s)
-             * and then appending '=' for any missing characters.
-             *
-             * This is done into a temporary buffer, so we can call ourselves and
-             * have the output continue to be written direct to the destination.
-             */
-
-            unsigned char   dummy[NUM_PLAIN_DATA_BYTES];
-            size_t          i;
-
-            for(i = 0; i < srcSize; ++i)
-            {
-                dummy[i] = *src++;
-            }
-
-            for(; i < NUM_PLAIN_DATA_BYTES; ++i)
-            {
-                dummy[i] = '\0';
-            }
-
-            b64_encode_(&dummy[0], NUM_PLAIN_DATA_BYTES, p, NUM_ENCODED_DATA_BYTES);
-
-            for(p += 1 + srcSize; srcSize++ < NUM_PLAIN_DATA_BYTES; )
-            {
-                *p++ = '=';
-            }
-        }
-
-        return total;
-    }
-}
-
-/** This function reads in a character string in 4-character chunks, and writes 
- * out the converted form in 3-byte chunks to the destination.
- */
-static size_t b64_decode_(char const *src, size_t srcLen, unsigned char *dest, size_t destSize)
-{
-    size_t  total           =   0;
-    size_t  wholeChunks     =   (srcLen / NUM_ENCODED_DATA_BYTES);
-    size_t  remainderBytes  =   (srcLen % NUM_ENCODED_DATA_BYTES);
-
-    /* The total is the sum of the size for the wholeChunks, along with the
-     * size of the remainder.
-     *
-     * The remainder is either stipulated as a whole chunk (4 chars) if the
-     * src is not specified, or it is the precise number required
-     */
-
-    if( 0 == wholeChunks ||
-        0 != remainderBytes)
-    {
-        return 0;
-    }
-    else
-    {
-        assert(wholeChunks > 0);
-
-        /* 1. Whole chunks */
-        total += wholeChunks * NUM_PLAIN_DATA_BYTES;
-
-        /* 2. Remainder */
-        if(NULL != src)
-        {
-            char const  *const  lastChunk   =   src + srcLen;
-            char const          *p          =   lastChunk - NUM_ENCODED_DATA_BYTES;
-
-            for(; p != lastChunk; ++p)
-            {
-                if( '=' == *p ||
-                    '\0' == *p)
-                {
-                    total -= (size_t)(lastChunk - p);
-
-                    break;
-                }
-            }
-        }
-    }
-
-    if(NULL == dest)
-    {
-        return total;
-    }
-    else if(destSize < total)
-    {
-        return 0;
-    }
-    else
-    {
-        /* Three things we need to account for:
-         *
-         * 1. invalid length
-         * 2. trailing '=' characters
-         * 3. invalid characters
-         */
-
-        size_t  i;
-        char    dummy[NUM_ENCODED_DATA_BYTES];
-
-        destSize = total;
-
-        for(; NUM_ENCODED_DATA_BYTES < srcLen; srcLen -= NUM_ENCODED_DATA_BYTES)
-        {
-            unsigned char   bytes[NUM_PLAIN_DATA_BYTES];
-            signed char     indexes[NUM_ENCODED_DATA_BYTES];
-
-            indexes[0] = b64_indexes[(unsigned char)src[0]];
-            indexes[1] = b64_indexes[(unsigned char)src[1]];
-            indexes[2] = b64_indexes[(unsigned char)src[2]];
-            indexes[3] = b64_indexes[(unsigned char)src[3]];
-
-            if( indexes[0] < 0 ||
-                indexes[1] < 0 ||
-                indexes[2] < 0 ||
-                indexes[3] < 0)
-            {
-                return 0;
-            }
-
-            bytes[0] = (unsigned char)((indexes[0] << 2) + ((indexes[1] & 0x30) >> 4));
-            bytes[1] = (unsigned char)(((indexes[1] & 0xf) << 4) + ((indexes[2] & 0x3c) >> 2));
-            bytes[2] = (unsigned char)(((indexes[2] & 0x3) << 6) + indexes[3]);
-
-#if 0
-            printf("0x%02x, 0x%02x, 0x%02x, 0x%02x\t=>\t", src[0], src[1], src[2], src[3]);
-            printf("0x%02x, 0x%02x, 0x%02x, 0x%02x\t=>\t", indexes[0], indexes[1], indexes[2], indexes[3]);
-            printf("\"%c%c%c\"\n", bytes[0], bytes[1], bytes[2]);
-#endif /* 0 */
-
-            assert(NUM_PLAIN_DATA_BYTES <= destSize);
-
-            src += NUM_ENCODED_DATA_BYTES;
-            *dest++ = bytes[0];
-            *dest++ = bytes[1];
-            *dest++ = bytes[2];
-            destSize -= NUM_PLAIN_DATA_BYTES;
-        }
-
-        assert(NUM_ENCODED_DATA_BYTES == srcLen);
-
-        /* Replace all '=' with '\0' */
-
-        if( (i = 0, '=' == (dummy[i] = src[i])) ||
-            (++i, '=' == (dummy[i] = src[i])) ||
-            (++i, '=' == (dummy[i] = src[i])) ||
-            (++i, '=' == (dummy[i] = src[i])))
-        {
-            for(; i < NUM_ENCODED_DATA_BYTES; ++i)
-            {
-                dummy[i] = 0;
-            }
-
-            src = &dummy[0];
-        }
-
-        /* Handle the terminating case */
-        {
-            unsigned char   bytes[NUM_PLAIN_DATA_BYTES];
-            signed char     indexes[NUM_ENCODED_DATA_BYTES];
-            size_t          j;
-
-            for(j = 0; j < NUM_ENCODED_DATA_BYTES; ++j)
-            {
-                if(0 == src[j])
-                {
-                    indexes[j] = 0;
-                }
-                else if((indexes[j] = b64_indexes[(unsigned char)src[j]]) < 0)
-                {
-                    return 0;
-                }
-            }
-
-            bytes[0] = (unsigned char)((indexes[0] << 2) + ((indexes[1] & 0x30) >> 4));
-            bytes[1] = (unsigned char)(((indexes[1] & 0xf) << 4) + ((indexes[2] & 0x3c) >> 2));
-            bytes[2] = (unsigned char)(((indexes[2] & 0x3) << 6) + indexes[3]);
-
-#ifdef _DEBUG
-            src += NUM_ENCODED_DATA_BYTES;
-
-            ((void)src);
-#endif /* _DEBUG */
-
-            assert(destSize <= NUM_PLAIN_DATA_BYTES);
-
-            for(j = 0; 0 < destSize--; ++j)
-            {
-                assert(j < NUM_PLAIN_DATA_BYTES);
-
-                *dest++ = bytes[j];
-            }
-        }
-
-        return total;
-    }
-}
-
-/* /////////////////////////////////////////////////////////////////////////////
- * API functions
- */
-
-size_t b64_encode(void const *src, size_t srcSize, char *dest, size_t destLen)
-{
-    return b64_encode_((unsigned char const*)src, srcSize, dest, destLen);
-}
-
-size_t b64_decode(char const *src, size_t srcLen, void *dest, size_t destSize)
-{
-    return b64_decode_(src, srcLen, (unsigned char*)dest, destSize);
-}
-
-
-/* ////////////////////////////////////////////////////////////////////////// */
Index: gs/0.3.1/include/b64/b64.h
===================================================================
--- tags/0.3.1/include/b64/b64.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,261 +1,0 @@
-/* /////////////////////////////////////////////////////////////////////////////
- * File:        b64/b64.h
- *
- * Purpose:     Header file for the b64 library
- *
- * Created:     18th October 2004
- * Updated:     19th February 2005
- *
- * Home:        http://synesis.com.au/software/
- *
- * Copyright 2004-2005, Matthew Wilson and Synesis Software
- * 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.
- * - Neither the name(s) of Matthew Wilson and Synesis Software nor the names of
- *   any contributors may be used to endorse or promote products derived from
- *   this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
- *
- * ////////////////////////////////////////////////////////////////////////// */
-
-
-/** \file b64/b64.h Header file for the b64 library
- */
-
-#ifndef B64_INCL_B64_H_B64
-#define B64_INCL_B64_H_B64
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Version information
- */
-
-#ifndef B64_DOCUMENTATION_SKIP_SECTION
-# define B64_VER_B64_H_B64_MAJOR    1
-# define B64_VER_B64_H_B64_MINOR    0
-# define B64_VER_B64_H_B64_REVISION 4
-# define B64_VER_B64_H_B64_EDIT     9
-#endif /* !B64_DOCUMENTATION_SKIP_SECTION */
-
-/** \def B64_VER_MAJOR
- * The major version number of b64
- */
-
-/** \def B64_VER_MINOR
- * The minor version number of b64
- */
-
-/** \def B64_VER_REVISION
- * The revision version number of b64
- */
-
-/** \def B64_VER
- * The current composite version number of b64
- */
-
-#define B64_VER_MAJOR       1
-#define B64_VER_MINOR       0
-#define B64_VER_REVISION    2
-
-#ifndef B64_DOCUMENTATION_SKIP_SECTION
-# define B64_VER_1_0_1      0x01000100
-# define B64_VER_1_0_2      0x01000200
-
-# define B64_VER             B64_VER_1_0_2
-#else /* ? B64_DOCUMENTATION_SKIP_SECTION */
-# define B64_VER            0x01000200
-#endif /* !B64_DOCUMENTATION_SKIP_SECTION */
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Includes
- */
-
-#include <stddef.h>
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Namespace
- */
-
-#ifdef __cplusplus
-namespace b64 {
-#endif /* __cplusplus */
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Functions
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/** \brief Encodes a block of binary data into base64
- *
- * \param src Pointer to the block to be encoded. May not be NULL, except when
- * \c dest is NULL, in which case it is ignored.
- * \param srcSize Length of block to be encoded
- * \param dest Pointer to the buffer into which the result is to be written. May 
- * be NULL, in which case the function returns the required length
- * \param destLen Length of the buffer into which the result is to be written. Must
- * be at least as large as that indicated by the return value from 
- * \c b64_encode()(NULL, srcSize, NULL, 0).
- *
- * \return 0 if the size of the buffer was insufficient, or the length of the 
- * converted buffer was longer than \c destLen
- *
- * \note The function returns the required length if \c dest is NULL
- *
- * \note Threading: The function is fully re-entrant.
- */
-size_t b64_encode(void const *src, size_t srcSize, char *dest, size_t destLen);
-
-/** \brief Decodes a sequence of base64 into a block of binary data
- *
- * \param src Pointer to the base64 block to be decoded. May not be NULL, except when
- * \c dest is NULL, in which case it is ignored. If \c dest is NULL, and \c src is
- * <b>not</b> NULL, then the returned value is calculated exactly, otherwise a value
- * is returned that is guaranteed to be large enough to hold the decoded block.
- * 
- * \param srcLen Length of block to be encoded. Must be an integral of 4, the base64
- * encoding quantum, otherwise the base64 block is assumed to be invalid
- * \param dest Pointer to the buffer into which the result is to be written. May 
- * be NULL, in which case the function returns the required length
- * \param destSize Length of the buffer into which the result is to be written. Must
- * be at least as large as that indicated by the return value from 
- * \c b64_decode(src, srcSize, NULL, 0).
- *
- * \return 0 if the size of the buffer was insufficient, or the length of the 
- * converted buffer was longer than \c destSize
- *
- * \note Threading: The function is fully re-entrant.
- */
-size_t b64_decode(char const *src, size_t srcLen, void *dest, size_t destSize);
-//std::wstring b64_decode(std::wstring);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* __cplusplus */
-
-/** \example C.c
- * This is an example of how to use the b64_encode() and b64_decode() functions.
- */
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Namespace
- */
-
-#ifdef __cplusplus
-} /* namespace b64 */
-#endif /* __cplusplus */
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Documentation
- */
-
-/** \mainpage What is b64?
- *
- * \section section_introduction Introduction
- *
- * b64 is a very small and simple library that provides Base-64 encoding and
- * decoding, according to <a href = "http://rfc.net/rfc1113.html">RFC-1113</a>,
- * in C and C++.
- *
- * \section section_license License
- *
- * b64 is released under the <a href = "http://www.opensource.org/licenses/bsd-license.html">BSD</a>
- * license, which basically means its free for any use, but you can't claim it's yours.
- *
- * \section section_c_api C-API
- *
- * The library is implemented in C, and provides a simple C-API, consisting of
- * the functions b64_encode() and b64_decode().
- *
- * b64_encode() encodes a binary block into a block of printable characters,
- * as follows:
- *
-\htmlonly
-<pre>
-  int     ints[]  =   { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
-  size_t  cch     =   b64_encode(&ints[0], sizeof(ints), NULL, 0);  &#x2f;&#x2a; Ask for length required &#x2a;&#x2f;
-  char    *enc    =   (char*)malloc(cch);                           &#x2f;&#x2a; No error checking here ... &#x2a;&#x2f;
-
-  b64_encode(&ints[0], sizeof(ints), enc, cch);
-
-  printf("Converted: %.*s\n", cch, enc);
-</pre>
-\endhtmlonly
- *
- * b64_decode() decodes a block of printable characters into a binary block,
- * as follows:
- *
-\htmlonly
-<pre>
-  size_t  cb      =   b64_decode(enc, cch, NULL, 0);                &#x2f;&#x2a; Ask for size required &#x2a;&#x2f;
-  int     *dec    =   (int*)alloca(cb);                             &#x2f;&#x2a; No error checking here ... &#x2a;&#x2f;
-
-  b64_decode(enc, cch, dec, cb);
-
-  assert(0 == memcmp(&ints[0], &dec[0], sizeof(ints)));
-</pre>
-\endhtmlonly
- *
- * \section section_cpp_api C++ mapping
- *
- * The C++ mapping is a thin wrapper over the C-API, providing for simplified
- * client-code via manipulation of instances of the b64::cpp::string_t and
- * b64::cpp::blob_t types.
- *
- * The b64::cpp::encode() and b64::cpp::decode() functions correspond to the
- * b64::b64_encode() and b64::b64_decode() ones from the C-API. They are used
- * as follows:
-\htmlonly
-<pre>
-  int                 ints[]  =   { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
-  b64::cpp::string_t  enc =   b64::cpp::encode(&ints[0], sizeof(ints));
-
-  std::wcout << enc << endl;
-
-  b64::cpp::blob_t    dec =   b64::cpp::decode(enc);
-
-  assert(0 == memcmp(&ints[0], &dec[0], sizeof(ints)));
-</pre>
-\endhtmlonly
- *
- * There are three overloads of the b64::b64_encode() and b64::b64_decode()
- * functions, to provide for encoding from:
- * \li a pointer (<tt>void const*</tt>) and a length
- * \li an array; note that this is only supported for compilers that support
- * discrimination between arrays and pointers
- * \li a \c blob_t instance
- *
- * and from decoding from:
- * \li a C-string (<tt>char const*</tt>) and a length
- * \li a \c string_t instance
- * \li any type for which string <a href = "http://www.cuj.com/documents/s=8681/cuj0308wilson/">Access Shims</a> 
- * \c c_str_ptr() and \c c_str_len() have been defined; this includes many types within the 
- * <a href = "http://stlsoft.org/">STLSoft</a> libraries
- *
- */
-
-/* ////////////////////////////////////////////////////////////////////////// */
-
-#endif /* B64_INCL_B64_H_B64 */
-
-/* ////////////////////////////////////////////////////////////////////////// */
Index: gs/0.3.1/include/b64/b64.hpp
===================================================================
--- tags/0.3.1/include/b64/b64.hpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,328 +1,0 @@
-/* /////////////////////////////////////////////////////////////////////////////
- * File:        b64/cpp/b64.hpp
- *
- * Purpose:     Header file for the b64 C++ mapping
- *
- * Created:     18th October 2004
- * Updated:     16th February 2005
- *
- * Home:        http://synesis.com.au/software/
- *
- * Copyright 2004-2005, Matthew Wilson and Synesis Software
- * 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.
- * - Neither the name(s) of Matthew Wilson and Synesis Software nor the names of
- *   any contributors may be used to endorse or promote products derived from
- *   this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
- *
- * ////////////////////////////////////////////////////////////////////////// */
-
-
-/** \file b64/cpp/b64.hpp Header file for the b64 C++ mapping
- */
-
-#ifndef B64_INCL_B64_CPP_HPP_B64
-#define B64_INCL_B64_CPP_HPP_B64
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Version information
- */
-
-#ifndef B64_DOCUMENTATION_SKIP_SECTION
-# define B64_VER_B64_CPP_HPP_B64_MAJOR      1
-# define B64_VER_B64_CPP_HPP_B64_MINOR      1
-# define B64_VER_B64_CPP_HPP_B64_REVISION   3
-# define B64_VER_B64_CPP_HPP_B64_EDIT       8
-#endif /* !B64_DOCUMENTATION_SKIP_SECTION */
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Includes
- */
-
-#include <b64/b64.h>
-
-#include <stlsoft.h>
-
-#if defined(B64_USE_CUSTOM_STRING)
-# include B64_CUSTOM_STRING_INCLUDE
-#else /* B64_USE_CUSTOM_STRING */
-# include <string>
-#endif /* !B64_USE_CUSTOM_STRING */
-
-#if defined(B64_USE_CUSTOM_VECTOR)
-# include B64_CUSTOM_VECTOR_INCLUDE
-#else /* B64_USE_CUSTOM_VECTOR */
-# include <vector>
-#endif /* !B64_USE_CUSTOM_VECTOR */
-
-#if !defined(B64_STRING_TYPE_IS_CONTIGUOUS)
-# include <stlsoft_auto_buffer.h>
-# include <stlsoft_new_allocator.h>
-#endif /* !B64_STRING_TYPE_IS_CONTIGUOUS */
-
-#include <stlsoft_string_access.h>
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Namespace
- */
-
-namespace b64
-{
-
-namespace cpp
-{
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Typedefs
- */
-
-/** The string type for the b64::cpp namespace
- *
- * \note This defaults to <tt>::std::string</tt>. It is possible to override this, using
- * preprocessor symbol definitions. To do this, you must define
- * the symbol \c B64_USE_CUSTOM_STRING to instruct the compiler that the <b>b64</b>
- * library is to use a custom string type. In that case you <b>must also</b>
- * define the \c B64_CUSTOM_STRING_INCLUDE and \c B64_CUSTOM_STRING_TYPE and symbols.
- *
- * \c B64_CUSTOM_STRING_INCLUDE specifies the \c <> or \c "" surrounded include file name, e.g.
- *
- * <tt>&nbsp;&nbsp;\#define B64_CUSTOM_STRING_INCLUDE <stlsoft/simple_string.hpp></tt>
- *
- * \c B64_CUSTOM_STRING_TYPE specifies the string type, e.g.
- *
- * <tt>&nbsp;&nbsp;\#define B64_CUSTOM_STRING_TYPE&nbsp;&nbsp;&nbsp;&nbsp;::stlsoft::basic_simple_string<char></tt>
- */
-#if defined(B64_USE_CUSTOM_STRING)
-typedef B64_CUSTOM_STRING_TYPE          string_t;
-#else /* B64_USE_CUSTOM_STRING */
-typedef std::string                     string_t;
-#endif /* !B64_USE_CUSTOM_STRING */
-
-/** The blob type for the b64::cpp namespace 
- *
- * \note This defaults to <tt>::std::vector<::stlsoft::byte_t></tt>. It is possible to
- * override this, using
- * preprocessor symbol definitions. To do this, you must define
- * the symbol \c B64_USE_CUSTOM_VECTOR to instruct the compiler that the <b>b64</b>
- * library is to use a custom string type. In that case you <b>must also</b>
- * define the \c B64_CUSTOM_VECTOR_INCLUDE and \c B64_CUSTOM_BLOB_TYPE and symbols.
- *
- * \c B64_CUSTOM_VECTOR_INCLUDE specifies the \c <> or \c "" surrounded include file name, e.g.
- *
- * <tt>&nbsp;&nbsp;\#define B64_CUSTOM_VECTOR_INCLUDE <stlsoft/pod_vector.hpp></tt>
- *
- * \c B64_CUSTOM_BLOB_TYPE specifies the string type, e.g.
- *
- * <tt>&nbsp;&nbsp;\#define B64_CUSTOM_BLOB_TYPE&nbsp;&nbsp;&nbsp;&nbsp;::stlsoft::pod_vector<unsigned char></tt>
- */
-#if defined(B64_USE_CUSTOM_VECTOR)
-typedef B64_CUSTOM_BLOB_TYPE            blob_t;
-#else /* B64_USE_CUSTOM_VECTOR */
-# ifndef B64_DOCUMENTATION_SKIP_SECTION
-typedef ::stlsoft::byte_t               byte_t_;
-typedef std::vector<byte_t_>            blob_t;
-# else /* !B64_DOCUMENTATION_SKIP_SECTION */
-typedef std::vector<::stlsoft::byte_t>	blob_t;
-# endif /* !B64_DOCUMENTATION_SKIP_SECTION */
-#endif /* !B64_USE_CUSTOM_VECTOR */
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Functions
- */
-
-/** \brief Encodes the given block of memory into base-64.
- *
- * This function takes a pointer to a memory block to be encoded, and a number of
- * bytes to be encoded, and carries out a base-64 encoding on it, returning the
- * results in an instance of the string type \link #string_t string_t \endlink. See the 
- * \ref section_cpp_api "example" from the main page
- *
- * \param src Pointer to the block to be encoded
- * \param srcSize Number of bytes in the block to be encoded
- *
- * \return The string form of the block
- *
- * \note There is no error return. If insufficient memory can be allocated, an
- * instance of \c std::bad_alloc will be thrown
- *
- * \note Threading: The function is fully re-entrant, assuming that the heap for the
- * system is re-entrant.
- *
- * \note Exceptions: Provides the strong guarantee, assuming that the constructor for
- * the string type (\c string_t) does so.
- */
-inline string_t encode(void const *src, size_t srcSize)
-{
-    size_t      n   =   ::b64::b64_encode(src, srcSize, NULL, 0);
-
-#ifdef B64_STRING_TYPE_IS_CONTIGUOUS
-    string_t    s(n, '~'); // ~ is used for an invalid / eyecatcher
-
-    ::b64::b64_encode(src, srcSize, &s[0], s.length());
-#else /* ? B64_STRING_TYPE_IS_CONTIGUOUS */
-
-    typedef ::stlsoft::auto_buffer<char, ::stlsoft::new_allocator<char>, 256>   buffer_t;
-
-    buffer_t    buffer(n);
-
-    ::b64::b64_encode(src, srcSize, &buffer[0], buffer.size());
-
-    string_t    s(&buffer[0], buffer.size());
-#endif /* B64_STRING_TYPE_IS_CONTIGUOUS */
-
-    return s;
-}
-
-#ifdef __STLSOFT_CF_STATIC_ARRAY_SIZE_DETERMINATION_SUPPORT
-/** \brief Encodes the given array into base-64
- *
- * \param ar The array whose contents are to be encoded
- *
- * \return The string form of the block
- *
- * \note This function is only defined for compilers that are able to discriminate
- * between pointers and arrays. See Chapter 14 of <a href = "http://imperfectcplusplus.com/">Imperfect C++</a>
- * for details about this facility, and consult your <a href = "http://stlsoft.org/">STLSoft</a> header files
- * to find out to which compilers this applies.
- *
- * \note There is no error return. If insufficient memory can be allocated, an
- * instance of \c std::bad_alloc will be thrown
- *
- * \note Threading: The function is fully re-entrant, assuming that the heap for the
- * system is re-entrant.
- *
- * \note Exceptions: Provides the strong guarantee, assuming that the constructor for
- * the string type (\c string_t) does so.
- */
-template <typename T, size_t N>
-inline string_t encode(T (&ar)[N])
-{
-    return encode(&ar[0], sizeof(T) * N);
-}
-#endif /* __STLSOFT_CF_STATIC_ARRAY_SIZE_DETERMINATION_SUPPORT */
-
-/** \brief Encodes the given blob into base-64
- *
- * \param blob The blob whose contents are to be encoded
- *
- * \return The string form of the block
- *
- * \note There is no error return. If insufficient memory can be allocated, an
- * instance of \c std::bad_alloc will be thrown
- *
- * \note Threading: The function is fully re-entrant, assuming that the heap for the
- * system is re-entrant.
- *
- * \note Exceptions: Provides the strong guarantee, assuming that the constructor for
- * the string type (\c string_t) does so.
- */
-inline string_t encode(blob_t const &blob)
-{
-    return encode(&blob[0], blob.size());
-}
-
-
-/** \brief Decodes the given base-64 block into binary
- *
- * \param src Pointer to the block to be decoded
- * \param srcLen Number of characters in the block to be decoded
- *
- * \return The binary form of the block, as a \c blob_t
- *
- * \note There is no error return. If insufficient memory can be allocated, an
- * instance of \c std::bad_alloc will be thrown
- *
- * \note Threading: The function is fully re-entrant, assuming that the heap for the
- * system is re-entrant.
- *
- * \note Exceptions: Provides the strong guarantee, assuming that the constructor for
- * the string type (\c string_t) does so.
- */
-inline blob_t decode(char const *src, size_t srcLen)
-{
-    size_t  n   =   ::b64::b64_decode(src, srcLen, NULL, 0);
-    blob_t  v(n);
-
-    ::b64::b64_decode(src, srcLen, &v[0], v.size());
-
-    return v;
-}
-
-/** \brief Decodes the given string from base-64 into binary
- *
- * \param str The string whose contents are to be decoded
- *
- * \return The binary form of the block, as a \c blob_t
- *
- * \note There is no error return. If insufficient memory can be allocated, an
- * instance of \c std::bad_alloc will be thrown
- *
- * \note Threading: The function is fully re-entrant, assuming that the heap for the
- * system is re-entrant.
- *
- * \note Exceptions: Provides the strong guarantee, assuming that the constructor for
- * the string type (\c string_t) does so.
- */
-template <class S>
-inline blob_t decode(S const &str)
-{
-    return decode(stlsoft_ns_qual(c_str_ptr)(str), stlsoft_ns_qual(c_str_size)(str));
-}
-
-/** \brief Decodes the given string from base-64 into binary
- *
- * \param str The string whose contents are to be decoded
- *
- * \return The binary form of the block, as a \c blob_t
- *
- * \note There is no error return. If insufficient memory can be allocated, an
- * instance of \c std::bad_alloc will be thrown
- *
- * \note Threading: The function is fully re-entrant, assuming that the heap for the
- * system is re-entrant.
- *
- * \note Exceptions: Provides the strong guarantee, assuming that the constructor for
- * the string type (\c string_t) does so.
- */
-inline blob_t decode(string_t const &str)
-{
-    return decode(stlsoft_ns_qual(c_str_ptr)(str), stlsoft_ns_qual(c_str_size)(str));
-}
-
-/** \example Cpp.cpp
- * This is an example of how to use the b64::encode() and b64::decode() functions.
- */
-
-/* /////////////////////////////////////////////////////////////////////////////
- * Namespace
- */
-
-} /* namespace cpp */
-
-} /* namespace b64 */
-
-/* ////////////////////////////////////////////////////////////////////////// */
-
-#endif /* B64_INCL_B64_CPP_HPP_B64 */
-
-/* ////////////////////////////////////////////////////////////////////////// */
Index: gs/0.3.1/include/charEx.h
===================================================================
--- tags/0.3.1/include/charEx.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,130 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-#include <assert.h>
-#include <windows.h>
-#include <tchar.h>
-
-namespace charEx {
-	/**
-	 * Function to split a char buffer into a list<string>
-	 * @param buffer A char buffer to iterate over.
-	 * @param split The char to split by
-	 * @return a list with strings
-	 */
-	inline std::list<std::wstring> split(const TCHAR* buffer, TCHAR split) {
-		std::list<std::wstring> ret;
-		const TCHAR *start = buffer;
-		for (const TCHAR *p = buffer;*p!='\0';p++) {
-			if (*p==split) {
-				std::wstring str(start, p-start);
-				ret.push_back(str);
-				start = p+1;
-			}
-		}
-		ret.push_back(std::wstring(start));
-		return ret;
-	}
-
-
-	inline char* tchar_to_char( const wchar_t* pStr, int len, int &nChars) {
-		assert(pStr != NULL);
-		assert(len >= 0 || len == -1);
-
-		// figure out how many narrow characters we are going to get 
-		nChars = WideCharToMultiByte(CP_ACP, 0, pStr, len, NULL, 0, NULL, NULL);
-		if (len == -1)
-			--nChars;
-		if (nChars==0) {
-			char *ret = new char[1];
-			ret[0] = 0;
-			return ret;
-		}
-
-		// convert the wide string to a narrow string
-		char *ret = new char[nChars+1];
-		WideCharToMultiByte(CP_ACP, 0, pStr, len, ret, nChars, NULL, NULL);
-		return ret;
-	}
-
-	inline wchar_t* char_to_tchar(const char* pStr, int len, int &nChars) {
-		assert( pStr != NULL);
-		assert( len >= 0 || len == -1);
-
-		// figure out how many wide characters we are going to get
-		nChars = MultiByteToWideChar( CP_ACP , 0 , pStr , len , NULL , 0 );
-		if (len == -1)
-			--nChars;
-		if (nChars == 0) {
-			TCHAR *ret = new TCHAR[1];
-			ret[0] = 0;
-			return ret;
-		}
-
-		// convert the narrow string to a wide string 
-		TCHAR *ret = new TCHAR[nChars+1];
-		MultiByteToWideChar(CP_ACP, 0 ,pStr ,len, const_cast<wchar_t*>(ret), nChars);
-		return ret;
-	}
-
-
-
-	typedef std::pair<std::wstring,TCHAR*> token;
-	inline token getToken(TCHAR *buffer, TCHAR split) {
-		assert(buffer != NULL);
-		TCHAR *p = wcschr(buffer, split);
-		if (!p)
-			return token(buffer, NULL);
-		if (!p[1])
-			return token(std::wstring(buffer, p-buffer), NULL);
-		p++;
-		return token(std::wstring(buffer, p-buffer-1), p);
-	}
-#ifdef _DEBUG
-	inline void test_getToken(TCHAR* in1, TCHAR in2, std::wstring out1, TCHAR * out2) {
-		token t = getToken(in1, in2);
-		std::wcout << _T("charEx::test_getToken(") << in1 << _T(", ") << in2 << _T(") : ");
-		if (t.first == out1)  {
-			if ((t.second == NULL) && (out2 == NULL))
-				std::wcout << _T("Succeeded") << std::endl;
-			else if (t.second == NULL)
-				std::wcout << _T("Failed [NULL=") << out2 << _T("]") << std::endl;
-			else if (out2 == NULL)
-				std::wcout << _T("Failed [") << t.second << _T("=NULL]") << std::endl;
-			else if (wcscmp(t.second, out2) == 0)
-				std::wcout << _T("Succeeded") << std::endl;
-			else
-				std::wcout << _T("Failed") << std::endl;
-		} else
-			std::wcout << _T("Failed [") << out1 << _T("=") << t.first << _T("]") << std::endl;
-	}
-	inline void run_test_getToken() {
-		test_getToken(_T(""), '&', _T(""), NULL);
-		test_getToken(_T("&"), '&', _T(""), NULL);
-		test_getToken(_T("&&"), '&', _T(""), _T("&"));
-		test_getToken(_T("foo"), '&', _T("foo"), NULL);
-		test_getToken(_T("foo&"), '&', _T("foo"), NULL);
-		test_getToken(_T("foo&bar"), '&', _T("foo"), _T("bar"));
-		test_getToken(_T("foo&bar&test"), '&', _T("foo"), _T("bar&test"));
-	}
-#endif
-
-};
Index: gs/0.3.1/include/checkHelpers.hpp
===================================================================
--- tags/0.3.1/include/checkHelpers.hpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,753 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <string>
-#include <strEx.h>
-
-#define MAKE_PERFDATA(alias, value, unit, warn, crit) _T("'") + alias + _T("'=") + value + unit + _T(";") + warn + _T(";") + crit + _T("; ")
-
-namespace checkHolders {
-
-
-	typedef enum { warning, critical} ResultType;
-	typedef enum { above = 1, below = -1, same = 0 } checkResultType;
-
-
-
-	static std::wstring formatAbove(std::wstring str, ResultType what) {
-		if (what == warning)
-			return str + _T(" > warning");
-		else if (what == critical)
-			return str + _T(" > critical");
-		return str + _T(" > unknown");
-	}
-
-	static std::wstring formatBelow(std::wstring str, ResultType what) {
-		if (what == warning)
-			return str + _T(" < warning");
-		else if (what == critical)
-			return str + _T(" < critical");
-		return str + _T(" < unknown");
-	}
-	std::wstring formatState(std::wstring str, ResultType what) {
-		if (what == warning)
-			return str + _T(" (warning)");
-		else if (what == critical)
-			return str + _T(" (critical)");
-		return str + _T(" (unknown)");
-	}
-	std::wstring formatNotFound(std::wstring str, ResultType what) {
-		if (what == warning)
-			return str + _T("not found (warning)");
-		else if (what == critical)
-			return str + _T("not found (critical)");
-		return str + _T("not found (unknown)");
-	}
-
-	typedef enum {showLong, showShort, showProblems, showUnknown} showType;
-	template <class TContents>
-	struct CheckConatiner {
-		typedef CheckConatiner<TContents> TThisType;
-		TContents warn;
-		TContents crit;
-		std::wstring data;
-		std::wstring alias;
-
-		showType show;
-		bool perfData;
-
-
-		CheckConatiner() : show(showUnknown), perfData(true)
-		{}
-		CheckConatiner(std::wstring data_, TContents warn_, TContents crit_) 
-			: data(data_), warn(warn_), crit(crit_), show(showUnknown) 
-		{}
-		CheckConatiner(std::wstring name_, std::wstring alias_, TContents warn_, TContents crit_) 
-			: data(data_), alias(alias_), warn(warn_), crit(crit_), show(showUnknown) 
-		{}
-		CheckConatiner(const TThisType &other) 
-			: data(other.data), alias(other.alias), warn(other.warn), crit(other.crit), show(other.show) 
-		{}
-		std::wstring getAlias() {
-			if (alias.empty())
-				return data;
-			return alias;
-		}
-		void setDefault(TThisType def) {
-			if (!warn.hasBounds())
-				warn = def.warn;
-			if (!crit.hasBounds())
-				crit = def.crit;
-			if (show == showUnknown)
-				show = def.show;
-		}
-		bool showAll() {
-			return show != showProblems;
-		}
-		std::wstring gatherPerfData(typename TContents::TValueType &value) {
-			return crit.gatherPerfData(getAlias(), value, warn, crit);
-		}
-		void runCheck(typename TContents::TValueType &value, NSCAPI::nagiosReturn &returnCode, std::wstring &message, std::wstring &perf) {
-			std::wstring tstr;
-			if (crit.check(value, getAlias(), tstr, critical)) {
-				NSCHelper::escalteReturnCodeToCRIT(returnCode);
-			} else if (warn.check(value, getAlias(), tstr, warning)) {
-				NSCHelper::escalteReturnCodeToWARN(returnCode);
-			}else if (show == showLong) {
-				tstr = getAlias() + _T(": ") + TContents::toStringLong(value);
-			}else if (show == showShort) {
-				tstr = getAlias() + _T(": ") + TContents::toStringShort(value);
-			}
-			if (perfData)
-				perf += gatherPerfData(value);
-			if (!message.empty() && !tstr.empty())
-				message += _T(", ");
-			if (!tstr.empty())
-				message += tstr;
-		}
-	};
-
-	typedef unsigned __int64 disk_size_type;
-	template <typename TType = disk_size_type>
-	class disk_size_handler {
-	public:
-		static std::wstring print(TType value) {
-			return strEx::itos_as_BKMG(value);
-		}
-		static std::wstring get_perf_unit(TType value) {
-			return strEx::find_proper_unit_BKMG(value);
-		}
-		static std::wstring print_perf(TType value, std::wstring unit) {
-			return strEx::format_BKMG(value, unit);
-		}
-		static TType parse(std::wstring s) {
-			return strEx::stoi64_as_BKMG(s);
-		}
-		static TType parse_percent(std::wstring s) {
-			return strEx::stoi64(s);
-		}
-		static std::wstring print_percent(TType value) {
-			return strEx::itos(value) + _T("%");
-		}
-		static std::wstring print_unformated(TType value) {
-			return strEx::itos(value);
-		}
-
-		static std::wstring key_total() {
-			return _T("Total: ");
-		}
-		static std::wstring key_lower() {
-			return _T("Used: ");
-		}
-		static std::wstring key_upper() {
-			return _T("Free: ");
-		}
-		static std::wstring key_prefix() {
-			return _T("");
-		}
-		static std::wstring key_postfix() {
-			return _T("");
-		}
-
-	};
-
-	typedef unsigned __int64 time_type;
-	template <typename TType = time_type>
-	class time_handler {
-	public:
-		static TType parse(std::wstring s) {
-			return strEx::stoi64_as_time(s);
-		}
-		static TType parse_percent(std::wstring s) {
-			return strEx::stoi(s);
-		}
-		static std::wstring print(TType value) {
-			return strEx::itos_as_time(value);
-		}
-		static std::wstring print_percent(TType value) {
-			return strEx::itos(value) + _T("%");
-		}
-		static std::wstring print_unformated(TType value) {
-			return strEx::itos(value);
-		}
-		static std::wstring get_perf_unit(TType value) {
-			return _T("");
-		}
-		static std::wstring print_perf(TType value, std::wstring unit) {
-			return strEx::itos(value);
-		}
-		static std::wstring key_prefix() {
-			return _T("");
-		}
-		static std::wstring key_postfix() {
-			return _T("");
-		}
-
-	};
-
-
-	class int_handler {
-	public:
-		static int parse(std::wstring s) {
-			return strEx::stoi(s);
-		}
-		static int parse_percent(std::wstring s) {
-			return strEx::stoi(s);
-		}
-		static std::wstring print(int value) {
-			return strEx::itos(value);
-		}
-		static std::wstring get_perf_unit(int value) {
-			return _T("");
-		}
-		static std::wstring print_perf(int value, std::wstring unit) {
-			return strEx::itos(value);
-		}
-		static std::wstring print_unformated(int value) {
-			return strEx::itos(value);
-		}
-		static std::wstring print_percent(int value) {
-			return strEx::itos(value) + _T("%");
-		}
-		static std::wstring key_prefix() {
-			return _T("");
-		}
-		static std::wstring key_postfix() {
-			return _T("");
-		}
-	};
-	class int64_handler {
-	public:
-		static __int64 parse(std::wstring s) {
-			return strEx::stoi64(s);
-		}
-		static __int64 parse_percent(std::wstring s) {
-			return strEx::stoi(s);
-		}
-		static std::wstring print(__int64 value) {
-			return strEx::itos(value);
-		}
-		static std::wstring get_perf_unit(__int64 value) {
-			return _T("");
-		}
-		static std::wstring print_perf(__int64 value, std::wstring unit) {
-			return strEx::itos(value);
-		}
-		static std::wstring print_unformated(__int64 value) {
-			return strEx::itos(value);
-		}
-		static std::wstring print_percent(__int64 value) {
-			return strEx::itos(value) + _T("%");
-		}
-		static std::wstring key_prefix() {
-			return _T("");
-		}
-		static std::wstring key_postfix() {
-			return _T("");
-		}
-	};
-	class double_handler {
-	public:
-		static double parse(std::wstring s) {
-			return strEx::stod(s);
-		}
-		static double parse_percent(std::wstring s) {
-			return strEx::stod(s);
-		}
-		static std::wstring get_perf_unit(double value) {
-			return _T("");
-		}
-		static std::wstring print_perf(double value, std::wstring unit) {
-			return strEx::itos(value);
-		}
-		static std::wstring print(double value) {
-			return strEx::itos(value);
-		}
-		static std::wstring print_unformated(double value) {
-			return strEx::itos(value);
-		}
-		static std::wstring print_percent(double value) {
-			return strEx::itos(value) + _T("%");
-		}
-		static std::wstring key_prefix() {
-			return _T("");
-		}
-		static std::wstring key_postfix() {
-			return _T("");
-		}
-	};
-
-	typedef unsigned long state_type;
-	const int state_none	= 0x00;
-	const int state_started = 0x01;
-	const int state_stopped = 0x02;
-
-	class state_handler {
-	public:
-		static state_type parse(std::wstring s) {
-			state_type ret = state_none;
-			strEx::splitList lst = strEx::splitEx(s, _T(","));
-			for (strEx::splitList::const_iterator it = lst.begin(); it != lst.end(); ++it) {
-				if (*it == _T("started"))
-					ret |= state_started;
-				else if (*it == _T("stopped"))
-					ret |= state_stopped;
-				else if (*it == _T("ignored"))
-					ret |= state_none;
-			}
-			return ret;
-		}
-		static std::wstring print(state_type value) {
-			if (value == state_started)
-				return _T("started");
-			else if (value == state_stopped)
-				return _T("stopped");
-			else if (value == state_none)
-				return _T("none");
-			return _T("unknown");
-		}
-		static std::wstring print_unformated(state_type value) {
-			return strEx::itos(value);
-		}
-	};
-
-
-	template <typename TType = int, class THandler = int_handler >
-	class NumericBounds {
-	public:
-
-		bool bHasBounds_;
-		TType value_;
-		typedef typename TType TValueType;
-		typedef THandler TFormatType;
-
-		NumericBounds() : bHasBounds_(false), value_(0) {};
-
-		NumericBounds(const NumericBounds & other) {
-			bHasBounds_ = other.bHasBounds_;
-			value_ = other.value_;
-		}
-
-		checkResultType check(TType value) const {
-			if (value == value_)
-				return same;
-			else if (value > value_)
-				return above;
-			return below;
-		}
-
-		static std::wstring toStringLong(TType value) {
-			return THandler::key_prefix() + THandler::print(value) + THandler::key_postfix();
-		}
-		static std::wstring toStringShort(TType value) {
-			return THandler::print(value);
-		}
-		inline bool hasBounds() const {
-			return bHasBounds_;
-		}
-
-		const NumericBounds & operator=(std::wstring value) {
-			set(value);
-			return *this;
-		}
-
-		TType getPerfBound(TType value) {
-			return value_;
-		}
-		static std::wstring gatherPerfData(std::wstring alias, TType &value, TType warn, TType crit) {
-			std::wstring unit = THandler::get_perf_unit(min(warn, min(crit, value)));
-			return MAKE_PERFDATA(alias, THandler::print_perf(value, unit), unit, THandler::print_perf(warn, unit), THandler::print_perf(crit, unit));
-		}
-
-	private:
-		void set(std::wstring s) {
-			value_ = THandler::parse(s);
-			bHasBounds_ = true;
-		}
-	};
-
-
-	template <typename TTypeValue, typename TTypeTotal = TTypeValue>
-	struct PercentageValueType {
-		typedef TTypeValue TValueType;
-		TTypeValue value;
-		TTypeTotal total;
-
-		TTypeValue getUpperPercentage() {
-			return 100-(value*100/total);
-		}
-		TTypeValue getLowerPercentage() {
-			return (value*100)/total;
-		}
-	};
-
-	template <typename TType = int, class THandler = int_handler >
-	class NumericPercentageBounds {
-	public:
-		typedef enum {
-			none = 0,
-			percentage_upper = 1,
-			percentage_lower = 2,
-			value_upper = 3,
-			value_lower = 4,
-		} checkTypes;
-
-		class InternalValue {
-			NumericPercentageBounds *pParent_;
-			bool isUpper_;
-		public:
-
-			InternalValue(bool isUpper) : pParent_(NULL), isUpper_(isUpper) {}
-			void setParent(NumericPercentageBounds *pParent) {
-				pParent_ = pParent;
-			}
-			const InternalValue & operator=(std::wstring value) {
-				std::wstring::size_type p = value.find_first_of('%');
-				if (p != std::wstring::npos) {
-					if (isUpper_)
-						pParent_->setPercentageUpper(value);
-					else
-						pParent_->setPercentageLower(value);
-				} else {
-					if (isUpper_)
-						pParent_->setUpper(value);
-					else
-						pParent_->setLower(value);
-				}
-				return *this;
-			}
-
-		};
-
-		checkTypes type_;
-		typename TType::TValueType value_;
-		typedef typename TType TValueType;
-		typedef THandler TFormatType;
-		typedef NumericPercentageBounds<TType, THandler> TMyType;
-		InternalValue upper;
-		InternalValue lower;
-
-		NumericPercentageBounds() : type_(none), upper(true), lower(false) {
-			upper.setParent(this);
-			lower.setParent(this);
-		}
-
-		NumericPercentageBounds(const NumericPercentageBounds &other) {
-			type_ = other.type_;
-			value_ = other.value_;
-		}
-		checkResultType check(TType value) const {
-			if (type_ == percentage_lower) {
-				if (value.getLowerPercentage() == value_)
-					return same;
-				else if (value.getLowerPercentage() > value_)
-					return above;
-			} else if (type_ == percentage_upper) {
-				if (value.getUpperPercentage() == value_)
-					return same;
-				else if (value.getUpperPercentage() > value_)
-					return above;
-			} else if (type_ == value_lower) {
-				if (value.value == value_)
-					return same;
-				else if (value.value > value_)
-					return above;
-			} else if (type_ == value_upper) {
-				if ((value.total-value.value) == value_)
-					return same;
-				else if ((value.total-value.value) > value_)
-					return above;
-			} else {
-				std::cout << _T("Damn...: ") << type_ << std::endl;
-				throw _T("Damn...");
-			}
-			return below;
-		}
-		static std::wstring toStringShort(TType value) {
-			return THandler::print(value.value);
-
-		}
-		static std::wstring toStringLong(TType value) {
-			return 
-				THandler::key_total() + THandler::print(value.total) + 
-				_T(" - ") + THandler::key_lower() + THandler::print(value.value) + 
-				_T(" (") + THandler::print_percent(value.getLowerPercentage()) + _T(")") +
-				_T(" - ") + THandler::key_upper() + THandler::print(value.total-value.value) + 
-				_T(" (") + THandler::print_percent(value.getUpperPercentage()) + _T(")");
-		}
-		inline bool hasBounds() const {
-			return type_ != none;
-		}
-		typename TType::TValueType getPerfBound(TType value) {
-			return value_;
-		}
-		std::wstring gatherPerfData(std::wstring alias, TType &value, typename TType::TValueType warn, typename TType::TValueType crit) {
-			if (type_ == percentage_upper) {
-				return 
-					MAKE_PERFDATA(alias, THandler::print_unformated(value.getUpperPercentage()), _T("%"), 
-					THandler::print_unformated(warn), THandler::print_unformated(crit));
-			} else if (type_ == percentage_lower) {
-					return 
-						MAKE_PERFDATA(alias, THandler::print_unformated(value.getLowerPercentage()), _T("%"), 
-						THandler::print_unformated(warn), THandler::print_unformated(crit));
-			} else {
-				std::wstring unit = THandler::get_perf_unit(min(warn, min(crit, value.value)));
-				return 
-					MAKE_PERFDATA(alias, THandler::print_perf(value.value, unit), unit, 
-					THandler::print_perf(warn, unit), THandler::print_perf(crit, unit));
-			}
-		}
-	private:
-		void setUpper(std::wstring s) {
-			value_ = THandler::parse(s);
-			type_ = value_upper;
-		}
-		void setLower(std::wstring s) {
-			value_ = THandler::parse(s);
-			type_ = value_lower;
-		}
-		void setPercentageUpper(std::wstring s) {
-			value_ = THandler::parse_percent(s);
-			type_ = percentage_upper;
-		}
-		void setPercentageLower(std::wstring s) {
-			value_ = THandler::parse_percent(s);
-			type_ = percentage_lower;
-		}
-	};
-
-	template <typename TType = state_type, class THandler = state_handler >
-	class StateBounds {
-	public:
-		TType value_;
-		typedef typename TType TValueType;
-		typedef THandler TFormatType;
-		typedef StateBounds<TType, THandler> TMyType;
-
-		StateBounds() : value_(state_none) {}
-		StateBounds(const StateBounds &other) : value_(other.value_) {}
-
-		bool check(TType value) const {
-			return (value & value_) != 0;
-		}
-		static std::wstring toStringLong(TType value) {
-			return THandler::print(value);
-		}
-		static std::wstring toStringShort(TType value) {
-			return THandler::print(value);
-		}
-		inline bool hasBounds() const {
-			return value_ != state_none;
-		}
-		TType getPerfBound(TType value) {
-			return value_;
-		}
-		std::wstring gatherPerfData(std::wstring alias, TType &value, TType warn, TType crit) {
-			return "";
-		}
-		const StateBounds & operator=(std::wstring value) {
-			set(value);
-			return *this;
-		}
-	private:
-		void set(std::wstring s) {
-			value_ = THandler::parse(s);
-		}
-	};
-
-	template <typename TMaxMinType = int, typename TStateType = state_type>
-	struct MaxMinStateValueType {
-		TMaxMinType count;
-		TStateType state;
-	};
-
-
-	template <class TValueType = MaxMinStateValueType, class TNumericHolder = NumericBounds<int, int_handler>, class TStateHolder = StateBounds<state_type, state_handler> >
-	class MaxMinStateBounds {
-	public:
-		TNumericHolder max;
-		TNumericHolder min;
-		TStateHolder state;
-		typedef MaxMinStateBounds<TValueType, TNumericHolder, TStateHolder > TMyType;
-
-		typedef typename TValueType TValueType;
-
-		MaxMinStateBounds() {}
-		MaxMinStateBounds(const MaxMinStateBounds &other) {
-			state = other.state;
-			max = other.max;
-			min = other.min;
-		}
-		bool hasBounds() {
-			return state.hasBounds() ||  max.hasBounds() || min.hasBounds();
-		}
-
-		static std::wstring toStringLong(typename TValueType &value) {
-			return TNumericHolder::toStringLong(value.count) + _T(", ") + TStateHolder::toStringLong(value.state);
-		}
-		static std::wstring toStringShort(typename TValueType &value) {
-			return TNumericHolder::toStringShort(value.count);
-		}
-/*
-		void formatString(std::wstring &message, typename TValueType &value) {
-			if (state.hasBounds())
-				message = state.toString(value.state);
-			else if (max.hasBounds())
-				message = max.toString(value.count);
-			else if (min.hasBounds())
-				message = max.toString(value.count);
-		}
-		*/
-		std::wstring gatherPerfData(std::wstring alias, typename TValueType &value, TMyType &warn, TMyType &crit) {
-			if (state.hasBounds()) {
-				// @todo
-			} else if (max.hasBounds()) {
-				return max.gatherPerfData(alias, value.count, warn.max.getPerfBound(value.count), crit.max.getPerfBound(value.count));
-			} else if (min.hasBounds()) {
-				return min.gatherPerfData(alias, value.count, warn.min.getPerfBound(value.count), crit.min.getPerfBound(value.count));
-			}
-			return _T("");
-		}
-		bool check(typename TValueType &value, std::wstring lable, std::wstring &message, ResultType type) {
-			if ((state.hasBounds())&&(!state.check(value.state))) {
-				message = lable + _T(": ") + formatState(TStateHolder::toStringShort(value.state), type);
-				return true;
-			} else if ((max.hasBounds())&&(max.check(value.count) != below)) {
-				message = lable + _T(": ") + formatAbove(TNumericHolder::toStringShort(value.count), type);
-				return true;
-			} else if ((min.hasBounds())&&(min.check(value.count) != above)) {
-				message = lable + _T(": ") + formatBelow(TNumericHolder::toStringShort(value.count), type);
-				return true;
-			} else {
-				//std::cout << "No bounds specified..." << std::endl;
-			}
-			return false;
-		}
-
-	};
-
-	template <class TStateHolder = StateBounds<state_type, state_handler> >
-	class SimpleStateBounds {
-	public:
-		TStateHolder state;
-		typedef SimpleStateBounds<TStateHolder > TMyType;
-
-		typedef typename TStateHolder::TValueType TValueType;
-
-		SimpleStateBounds() {}
-		SimpleStateBounds(const SimpleStateBounds &other) {
-			state = other.state;
-		}
-		bool hasBounds() {
-			return state.hasBounds();
-		}
-		static std::wstring toStringLong(typename TValueType &value) {
-			return TStateHolder::toStringLong(value);
-		}
-		static std::wstring toStringShort(typename TValueType &value) {
-			return TStateHolder::toStringShort(value);
-		}
-		std::wstring gatherPerfData(std::wstring alias, typename TValueType &value, TMyType &warn, TMyType &crit) {
-			if (state.hasBounds()) {
-				// @todo
-			}
-			return _T("");
-		}
-		bool check(typename TValueType &value, std::wstring lable, std::wstring &message, ResultType type) {
-			if ((state.hasBounds())&&(!state.check(value))) {
-				message = lable + _T(": ") + formatState(TStateHolder::toStringLong(value), type);
-				return true;
-			} else {
-				//std::cout << "No bounds specified..." << std::endl;
-			}
-			return false;
-		}
-
-	};
-
-	template <class THolder = NumericBounds<int, int_handler> >
-	class MaxMinBounds {
-	public:
-		THolder max;
-		THolder min;
-		typedef MaxMinBounds<THolder > TMyType;
-
-		typedef typename THolder::TValueType TValueType;
-		//		typedef THolder::TFormatType TFormatType;
-
-		MaxMinBounds() {}
-		MaxMinBounds(const MaxMinBounds &other) {
-			max = other.max;
-			min = other.min;
-		}
-		bool hasBounds() {
-			return max.hasBounds() || min.hasBounds();
-		}
-		static std::wstring toStringLong(typename THolder::TValueType &value) {
-			return THolder::toStringLong(value);
-		}
-		static std::wstring toStringShort(typename THolder::TValueType &value) {
-			return THolder::toStringShort(value);
-		}
-		std::wstring gatherPerfData(std::wstring alias, typename THolder::TValueType &value, TMyType &warn, TMyType &crit) {
-			if (max.hasBounds()) {
-				return max.gatherPerfData(alias, value, warn.max.getPerfBound(value), crit.max.getPerfBound(value));
-			} else if (min.hasBounds()) {
-				return min.gatherPerfData(alias, value, warn.min.getPerfBound(value), crit.min.getPerfBound(value));
-			} else {
-				NSC_DEBUG_MSG_STD(_T("Missing bounds for maxmin-bounds check: ") + alias);
-			}
-			return _T("");
-		}
-		bool check(typename THolder::TValueType &value, std::wstring lable, std::wstring &message, ResultType type) {
-			if ((max.hasBounds())&&(max.check(value) != below)) {
-				message = lable + _T(": ") + formatAbove(THolder::toStringLong(value), type);
-				return true;
-			} else if ((min.hasBounds())&&(min.check(value) != above)) {
-				message = lable + _T(": ") + formatBelow(THolder::toStringLong(value), type);
-				return true;
-			} else {
-				//std::cout << "No bounds specified..." << std::endl;
-			}
-			return false;
-		}
-
-	};
-	typedef MaxMinBounds<NumericBounds<double, double_handler> > MaxMinBoundsDouble;
-	typedef MaxMinBounds<NumericBounds<__int64, int64_handler> > MaxMinBoundsInt64;
-	typedef MaxMinBounds<NumericBounds<int, int_handler> > MaxMinBoundsInteger;
-	typedef MaxMinBounds<NumericBounds<unsigned int, int_handler> > MaxMinBoundsUInteger;
-	typedef MaxMinBounds<NumericBounds<unsigned long int, int_handler> > MaxMinBoundsULongInteger;
-	typedef MaxMinBounds<NumericBounds<disk_size_type, disk_size_handler<disk_size_type> > > MaxMinBoundsDiscSize;
-	typedef MaxMinBounds<NumericBounds<time_type, time_handler<time_type> > > MaxMinBoundsTime;
-
-
-	//typedef MaxMinBounds<NumericPercentageBounds<PercentageValueType<int ,int>, int_handler> > MaxMinPercentageBoundsInteger;
-	//typedef MaxMinBounds<NumericPercentageBounds<PercentageValueType<__int64, __int64>, int64_handler> > MaxMinPercentageBoundsInt64;
-	//typedef MaxMinBounds<NumericPercentageBounds<PercentageValueType<double, double>, double_handler> > MaxMinPercentageBoundsDouble;
-	typedef MaxMinBounds<NumericPercentageBounds<PercentageValueType<disk_size_type, disk_size_type>, disk_size_handler<> > > MaxMinPercentageBoundsDiskSize;
-	typedef MaxMinBounds<NumericPercentageBounds<PercentageValueType<__int64, __int64>, disk_size_handler<__int64> > > MaxMinPercentageBoundsDiskSizei64;
-
-	typedef MaxMinStateBounds<MaxMinStateValueType<int, state_type>, NumericBounds<int, int_handler>, StateBounds<state_type, state_handler> > MaxMinStateBoundsStateBoundsInteger;
-	typedef SimpleStateBounds<StateBounds<state_type, state_handler> > SimpleBoundsStateBoundsInteger;
-}
-
Index: gs/0.3.1/include/config.h
===================================================================
--- tags/0.3.1/include/config.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,218 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include "../AutoBuild.h"
-// Application Name
-#define SZAPPNAME _T("NSClient++")
-
-// Version
-#define SZBETATAG _T(" ") // _T(" RC ")  _T(" BETA ") 
-#define SZVERSION STRPRODUCTVER SZBETATAG STRPRODUCTDATE
-//FILEVER[0]
-
-#if defined(_M_IX86)
-#define SZARCH _T("w32")
-#elif defined(_M_X64)
-#define SZARCH _T("x64")
-#elif defined(_M_IA64)
-#define SZARCH _T("ia64")
-#else
-#define SZARCH _T("unknown")
-#endif
-
-// internal name of the service
-#define SZSERVICENAME        _T("NSClientpp")
-
-// Description of service
-#define SZSERVICEDESCRIPTION _T("Nagios Windows Agent (Provides performance data for Nagios server)")
-
-// displayed name of the service
-#define SZSERVICEDISPLAYNAME SZSERVICENAME _T(" (Nagios) ") SZVERSION _T(" ") SZARCH
-
-// list of service dependencies - "dep1\0dep2\0\0"
-#define SZDEPENDENCIES       _T("")
-
-// Buffer size of incoming data (notice this is the maximum request length!)
-#define RECV_BUFFER_LEN		1024
-
-#define NASTY_METACHARS         _T("|`&><'\"\\[]{}")        /* This may need to be modified for windows directory seperator */
-
-#define DATE_FORMAT _T("%#c")
-
-
-// Default Argument string (for consistency)
-#define SHOW_ALL _T("ShowAll")
-#define SHOW_FAIL _T("ShowFail")
-#define NSCLIENT _T("nsclient")
-#define IGNORE_PERFDATA _T("ignore-perf-data")
-#define CHECK_ALL _T("CheckAll")
-#define CHECK_ALL_OTHERS _T("CheckAllOthers")
-
-// NSClient Setting headlines
-#define NSCLIENT_SECTION_TITLE _T("NSClient")
-#define NSCLIENT_SETTINGS_PORT _T("port")
-#define NSCLIENT_SETTINGS_PORT_DEFAULT 12489
-#define NSCLIENT_SETTINGS_VERSION _T("version")
-#define NSCLIENT_SETTINGS_VERSION_DEFAULT _T("auto")
-#define NSCLIENT_SETTINGS_BINDADDR _T("bind_to_address")
-#define NSCLIENT_SETTINGS_BINDADDR_DEFAULT _T("")
-#define NSCLIENT_SETTINGS_LISTENQUE _T("socket_back_log")
-#define NSCLIENT_SETTINGS_LISTENQUE_DEFAULT 0
-#define NSCLIENT_SETTINGS_READ_TIMEOUT _T("socket_timeout")
-#define NSCLIENT_SETTINGS_READ_TIMEOUT_DEFAULT 30
-
-// NRPE Settings headlines
-#define NRPE_SECTION_TITLE _T("NRPE")
-#define NRPE_CLIENT_HANDLER_SECTION_TITLE _T("NRPE Client Handlers")
-#define NRPE_HANDLER_SECTION_TITLE _T("NRPE Handlers")
-#define NRPE_SETTINGS_TIMEOUT _T("command_timeout")
-#define NRPE_SETTINGS_TIMEOUT_DEFAULT 60
-#define NRPE_SETTINGS_READ_TIMEOUT _T("socket_timeout")
-#define NRPE_SETTINGS_READ_TIMEOUT_DEFAULT 30
-#define NRPE_SETTINGS_PORT _T("port")
-#define NRPE_SETTINGS_PORT_DEFAULT 5666
-#define NRPE_SETTINGS_BINDADDR _T("bind_to_address")
-#define NRPE_SETTINGS_BINDADDR_DEFAULT _T("")
-#define NRPE_SETTINGS_ALLOW_ARGUMENTS _T("allow_arguments")
-#define NRPE_SETTINGS_ALLOW_ARGUMENTS_DEFAULT 0
-#define NRPE_SETTINGS_ALLOW_NASTY_META _T("allow_nasty_meta_chars")
-#define NRPE_SETTINGS_ALLOW_NASTY_META_DEFAULT 0
-#define NRPE_SETTINGS_USE_SSL _T("use_ssl")
-#define NRPE_SETTINGS_USE_SSL_DEFAULT 1
-#define NRPE_SETTINGS_LISTENQUE _T("socket_back_log")
-#define NRPE_SETTINGS_LISTENQUE_DEFAULT 0
-#define NRPE_SETTINGS_PERFDATA _T("performance_data")
-#define NRPE_SETTINGS_PERFDATA_DEFAULT 1
-#define NRPE_SETTINGS_SCRIPTDIR _T("script_dir")
-#define NRPE_SETTINGS_SCRIPTDIR_DEFAULT _T("")
-#define NRPE_SETTINGS_STRLEN _T("string_length")
-#define NRPE_SETTINGS_STRLEN_DEFAULT 1024
-
-// External Script Settings headlines
-#define EXTSCRIPT_SECTION_TITLE _T("External Script")
-#define EXTSCRIPT_SCRIPT_SECTION_TITLE _T("External Scripts")
-#define EXTSCRIPT_ALIAS_SECTION_TITLE _T("External Alias")
-#define EXTSCRIPT_SETTINGS_TIMEOUT _T("command_timeout")
-#define EXTSCRIPT_SETTINGS_TIMEOUT_DEFAULT 60
-#define EXTSCRIPT_SETTINGS_ALLOW_ARGUMENTS _T("allow_arguments")
-#define EXTSCRIPT_SETTINGS_ALLOW_ARGUMENTS_DEFAULT 0
-#define EXTSCRIPT_SETTINGS_ALLOW_NASTY_META _T("allow_nasty_meta_chars")
-#define EXTSCRIPT_SETTINGS_ALLOW_NASTY_META_DEFAULT 0
-#define EXTSCRIPT_SETTINGS_SCRIPTDIR _T("script_dir")
-#define EXTSCRIPT_SETTINGS_SCRIPTDIR_DEFAULT _T("")
-
-// Check System Settings
-#define C_SYSTEM_SECTION_TITLE _T("Check System")
-#define C_SYSTEM_CPU_BUFFER_TIME _T("CPUBufferSize") 
-#define C_SYSTEM_CPU_BUFFER_TIME_DEFAULT _T("1h")
-#define C_SYSTEM_CHECK_RESOLUTION _T("CheckResolution")
-#define C_SYSTEM_CHECK_RESOLUTION_DEFAULT 10 /* unit: second/10 */
-
-#define C_SYSTEM_AUTODETECT_PDH _T("auto_detect_pdh")
-#define C_SYSTEM_AUTODETECT_PDH_DEFAULT 1
-#define C_SYSTEM_FORCE_LANGUAGE _T("force_language")
-#define C_SYSTEM_FORCE_LANGUAGE_DEFAULT _T("")
-#define C_SYSTEM_NO_INDEX _T("dont_use_pdh_index")
-#define C_SYSTEM_NO_INDEX_DEFAULT 0
-
-#define C_SYSTEM_MEM_PAGE_LIMIT _T("MemoryCommitLimit")
-#define C_SYSTEM_MEM_PAGE_LIMIT_DEFAULT _T("\\Memory\\Commit Limit")
-#define C_SYSTEM_MEM_PAGE _T("MemoryCommitByte")
-#define C_SYSTEM_MEM_PAGE_DEFAULT _T("\\Memory\\Committed Bytes")
-#define C_SYSTEM_UPTIME _T("SystemSystemUpTime")
-#define C_SYSTEM_UPTIME_DEFAULT _T("\\System\\System Up Time")
-#define C_SYSTEM_CPU _T("SystemTotalProcessorTime")
-#define C_SYSTEM_MEM_CPU_DEFAULT _T("\\Processor(_total)\\% Processor Time")
-#define C_SYSTEM_ENUMPROC_METHOD_PSAPI _T("PSAPI")
-#define C_SYSTEM_ENUMPROC_METHOD_THELP _T("TOOLHELP")
-#define C_SYSTEM_ENUMPROC_METHOD_AUTO _T("auto")
-#define C_SYSTEM_ENUMPROC_METHOD _T("ProcessEnumerationMethod")
-#define C_SYSTEM_ENUMPROC_METHOD_DEFAULT C_SYSTEM_ENUMPROC_METHOD_AUTO
-
-
-#define EVENTLOG_SECTION_TITLE _T("Eventlog")
-#define EVENTLOG_DEBUG _T("debug")
-#define EVENTLOG_DEBUG_DEFAULT 0
-#define EVENTLOG_SYNTAX _T("syntax")
-#define EVENTLOG_SYNTAX_DEFAULT _T("")
-
-#define NSCA_AGENT_SECTION_TITLE _T("NSCA Agent")
-#define NSCA_CMD_SECTION_TITLE _T("NSCA Commands")
-#define NSCA_INTERVAL _T("interval")
-#define NSCA_INTERVAL_DEFAULT 60
-#define NSCA_HOSTNAME _T("hostname")
-#define NSCA_HOSTNAME_DEFAULT _T("")
-#define NSCA_SERVER _T("nsca_host")
-#define NSCA_SERVER_DEFAULT _T("unknown-host")
-#define NSCA_PORT _T("nsca_port")
-#define NSCA_PORT_DEFAULT 5667
-#define NSCA_ENCRYPTION _T("encryption_method")
-#define NSCA_ENCRYPTION_DEFAULT 1
-#define NSCA_PASSWORD _T("password")
-#define NSCA_PASSWORD_DEFAULT _T("")
-#define NSCA_DEBUG_THREADS _T("debug_threads")
-#define NSCA_DEBUG_THREADS_DEFAULT 1
-
-#define C_SYSTEM_SVC_ALL_0 _T("check_all_services[SERVICE_BOOT_START]")
-#define C_SYSTEM_SVC_ALL_0_DEFAULT _T("ignored")
-#define C_SYSTEM_SVC_ALL_1 _T("check_all_services[SERVICE_SYSTEM_START]")
-#define C_SYSTEM_SVC_ALL_1_DEFAULT _T("ignored")
-#define C_SYSTEM_SVC_ALL_2 _T("check_all_services[SERVICE_AUTO_START]")
-#define C_SYSTEM_SVC_ALL_2_DEFAULT _T("started")
-#define C_SYSTEM_SVC_ALL_3 _T("check_all_services[SERVICE_DEMAND_START]")
-#define C_SYSTEM_SVC_ALL_3_DEFAULT _T("ignored")
-#define C_SYSTEM_SVC_ALL_4 _T("check_all_services[SERVICE_DISABLED]")
-#define C_SYSTEM_SVC_ALL_4_DEFAULT _T("stopped")
-
-// Log to File Settings
-#define LOG_SECTION_TITLE _T("log")
-#define LOG_FILENAME _T("file") 
-#define LOG_FILENAME_DEFAULT _T("nsclient.log")
-#define LOG_DATEMASK _T("date_mask")
-#define LOG_DATEMASK_DEFAULT _T("%Y-%m-%d %H:%M:%S")
-
-// Main Settings
-#define MAIN_SECTION_TITLE _T("Settings")
-#define MAIN_USEFILE _T("use_file")
-#define MAIN_USEREG _T("use_reg")
-#define MAIN_USEFILE_DEFAULT 0
-#define MAIN_MASTERKEY _T("master_key") 
-#define MAIN_MASTERKEY_DEFAULT _T("This is a secret key that you should change")
-#define MAIN_OBFUSCATED_PASWD _T("obfuscated_password")
-#define MAIN_OBFUSCATED_PASWD_DEFAULT _T("")
-#define MAIN_SETTINGS_PWD _T("password")
-#define MAIN_SETTINGS_PWD_DEFAULT _T("")
-#define MAIN_ALLOWED_HOSTS _T("allowed_hosts")
-#define MAIN_ALLOWED_HOSTS_DEFAULT _T("127.0.0.1")
-#define MAIN_ALLOWED_HOSTS_CACHE _T("cache_allowed_hosts")
-#define MAIN_ALLOWED_HOSTS_CACHE_DEFAULT 1
-#define MAIN_STRING_LENGTH _T("string_length")
-#define MAIN_STRING_LENGTH_DEFAULT 4096
-
-
-// LOA Config itemns
-#define LUA_SCRIPT_SECTION_TITLE _T("LUA Scripts")
-
-
-// Main Registry ROOT
-#define NS_HKEY_ROOT HKEY_LOCAL_MACHINE
-#define NS_REG_ROOT _T("SOFTWARE\\NSClient++")
Index: gs/0.3.1/include/error.hpp
===================================================================
--- tags/0.3.1/include/error.hpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,101 +1,0 @@
-#pragma once
-#include <tchar.h>
-#include <string>
-#include <windows.h>
-
-namespace error {
-	class format {
-	public:
-		static std::wstring from_system(unsigned long dwError) {
-			LPVOID lpMsgBuf;
-			unsigned long dwRet = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,NULL,dwError,MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),(LPTSTR)&lpMsgBuf,0,NULL);
-			if (dwRet == 0) {
-				return _T("failed to lookup error code: ") + strEx::itos(dwError) + _T("( reson: ") + strEx::itos(GetLastError()) + _T(")");
-			}
-			TCHAR *szBuf = new TCHAR[dwRet + 100];
-			wsprintf(szBuf, _T("%d: %s"), dwError, lpMsgBuf); 
-			std::wstring str = szBuf;
-			LocalFree(lpMsgBuf);
-			return str;
-		}
-		static std::wstring from_module(std::wstring module, unsigned long dwError) {
-			LPVOID lpMsgBuf;
-			unsigned long dwRet = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_IGNORE_INSERTS,GetModuleHandle(module.c_str()),dwError,MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),(LPTSTR)&lpMsgBuf,0,NULL);
-			if (dwRet == 0) {
-				return _T("failed to lookup error code: ") + strEx::itos(dwError) + _T("( reson: ") + strEx::itos(GetLastError()) + _T(")");
-			}
-			TCHAR *szBuf = new TCHAR[dwRet + 100];
-			wsprintf(szBuf, _T("%d: %s"), dwError, lpMsgBuf); 
-			std::wstring str = szBuf;
-			LocalFree(lpMsgBuf);
-			return str;
-		}
-		static std::wstring from_module(std::wstring module, unsigned long dwError, DWORD *arguments) {
-			LPVOID lpMsgBuf;
-			HMODULE hevt = LoadLibraryEx(module.c_str(), NULL, DONT_RESOLVE_DLL_REFERENCES);
-			if (hevt == NULL) {
-				return _T("failed to load: ") + module + _T("( reson: ") + strEx::itos(GetLastError()) + _T(")");
-			}
-			unsigned long dwRet = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_ARGUMENT_ARRAY,hevt,
-				dwError,MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),(LPTSTR)&lpMsgBuf,0,reinterpret_cast<va_list*>(arguments));
-			if (dwRet == 0) {
-				FreeLibrary(hevt);
-				return _T("failed to lookup error code: ") + strEx::itos(dwError) + _T(" from DLL: ") + module + _T("( reson: ") + strEx::itos(GetLastError()) + _T(")");
-			}
-			TCHAR *szBuf = new TCHAR[dwRet + 100];
-			wsprintf(szBuf, _T("%d: %s"), dwError, lpMsgBuf); 
-			std::wstring str = szBuf;
-			LocalFree(lpMsgBuf);
-			FreeLibrary(hevt);
-			return str;
-		}
-		class message {
-		public:
-			static std::wstring from_module(std::wstring module, unsigned long dwError, DWORD *arguments) {
-				HMODULE hDLL = LoadLibraryEx(module.c_str(), NULL, DONT_RESOLVE_DLL_REFERENCES);
-				if (hDLL == NULL) {
-					return _T("failed to load: ") + module + _T("( reson: ") + strEx::itos(GetLastError()) + _T(")");
-				}
-				LPVOID lpMsgBuf;
-				unsigned long dwRet = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_ARGUMENT_ARRAY,hDLL,
-					dwError,MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),(LPTSTR)&lpMsgBuf,0,reinterpret_cast<va_list*>(arguments));
-				if (dwRet == 0) {
-					FreeLibrary(hDLL);
-					DWORD err = GetLastError();
-					if (err == 317) {
-						return _T("");
-					}
-					return _T("failed to lookup error code: ") + strEx::itos(dwError) + _T(" from DLL: ") + module + _T("( reson: ") + strEx::itos(err) + _T(")");
-				}
-				std::wstring str = reinterpret_cast<TCHAR*>(lpMsgBuf);
-				LocalFree(lpMsgBuf);
-				FreeLibrary(hDLL);
-				return str;
-			}
-			static std::wstring from_system(unsigned long dwError, DWORD *arguments) {
-				LPVOID lpMsgBuf;
-				unsigned long dwRet = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_ARGUMENT_ARRAY,NULL,
-					dwError,MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),(LPTSTR)&lpMsgBuf,0,reinterpret_cast<va_list*>(arguments));
-				if (dwRet == 0) {
-					DWORD err = GetLastError();
-					if (err == 317) {
-						return _T("");
-					}
-					return _T("failed to lookup error code: ") + strEx::itos(dwError) + _T(" from system ( reson: ") + strEx::itos(err) + _T(")");
-				}
-				std::wstring str = reinterpret_cast<TCHAR*>(lpMsgBuf);
-				LocalFree(lpMsgBuf);
-				return str;
-			}
-		};
-	};
-	class lookup {
-	public:
-		static std::wstring last_error(unsigned long dwLastError = -1) {
-			if (dwLastError == -1) {
-				dwLastError = GetLastError();
-			}
-			return ::error::format::from_system(dwLastError);
-		}
-	};
-}
Index: gs/0.3.1/include/execute_process.hpp
===================================================================
--- tags/0.3.1/include/execute_process.hpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,158 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2008 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-namespace process {
-	class Exception {
-		std::wstring error_;
-	public:
-		Exception(std::wstring error) : error_(error) {}
-		std::wstring getMessage() {
-			return error_;
-		}
-	};
-
-#define BUFF_SIZE 4096
-
-	char* createBuffer() {
-		return new char[BUFF_SIZE+1];
-	}
-	void destroyBuffer(char* buffer) {
-		delete [] buffer;
-	}
-
-	std::string readFromFile(char* buffer, HANDLE hFile) {
-		DWORD dwRead = 0;
-		DWORD retval = 0;
-		std::string str;
-		do {
-			DWORD retval = ReadFile(hFile, buffer, BUFF_SIZE, &dwRead, NULL);
-			if (retval == 0 || dwRead <= 0 || dwRead > BUFF_SIZE)
-				return str;
-			buffer[dwRead] = 0;
-			str += buffer;
-		} while (dwRead == BUFF_SIZE);
-		return str;
-	}
-
-	int executeProcess(std::wstring root_path, std::wstring command, std::wstring &msg, std::wstring &perf, unsigned int timeout) {
-		NSCAPI::nagiosReturn result;
-		PROCESS_INFORMATION pi;
-		STARTUPINFO si;
-		HANDLE hChildOutR, hChildOutW, hChildInR, hChildInW;
-		SECURITY_ATTRIBUTES sec;
-		DWORD dwstate, dwexitcode;
-		// Set up members of SECURITY_ATTRIBUTES structure. 
-		sec.nLength = sizeof(SECURITY_ATTRIBUTES);
-		sec.bInheritHandle = TRUE;
-		sec.lpSecurityDescriptor = NULL;
-
-		// Create Pipes
-		CreatePipe(&hChildInR, &hChildInW, &sec, 0);
-		CreatePipe(&hChildOutR, &hChildOutW, &sec, 0);
-
-		// Set up members of STARTUPINFO structure. 
-
-		ZeroMemory(&si, sizeof(STARTUPINFO));
-		si.cb = sizeof(STARTUPINFO);
-		si.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;
-		si.hStdInput = hChildInR;
-		si.hStdOutput = hChildOutW;
-		si.hStdError = hChildOutW;
-		si.wShowWindow = SW_HIDE;
-
-
-		// CreateProcess doesn't work with a const command
-		TCHAR *cmd = new TCHAR[command.length()+1];
-		wcsncpy_s(cmd, command.length()+1, command.c_str(), command.length());
-		cmd[command.length()] = 0;
-
-		// Create the child process.
-		HANDLE hWaitEvt = ::CreateEvent(NULL, TRUE, FALSE, NULL);
-		BOOL processOK = CreateProcess(NULL, cmd, NULL, NULL, TRUE, 0, NULL, root_path.c_str(), &si, &pi);
-		delete [] cmd;
-		if (processOK) {
-			std::string str;
-			HANDLE handles[2];
-			handles[0] = pi.hProcess;
-			handles[1] = hWaitEvt;
-			char *buffer = createBuffer();
-			for (unsigned int i=0;i<timeout;i++) {
-				DWORD dwAvail = 0;
-				if (!::PeekNamedPipe(hChildOutR, NULL, 0, NULL, &dwAvail, NULL))
-					break;
-				if (dwAvail > 0)
-					str += readFromFile(buffer, hChildOutR);
-				dwstate = WaitForSingleObject(pi.hProcess, 1000);
-				if (dwstate != WAIT_TIMEOUT)
-					break;
-			}
-			CloseHandle(hChildInR);
-			CloseHandle(hChildInW);
-			CloseHandle(hChildOutW);
-
-			str += readFromFile(buffer, hChildOutR);
-			msg = strEx::string_to_wstring(str);
-			destroyBuffer(buffer);
-
-			if (dwstate == WAIT_TIMEOUT) {
-				TerminateProcess(pi.hProcess, 5);
-				msg = _T("Command (") + command + _T(") didn't terminate within the timeout period (") + strEx::itos(timeout) + _T("s)!");
-				result = NSCAPI::returnUNKNOWN;
-			} else {
-				if (msg.empty()) {
-					msg = _T("No output available from command (") + command + _T(").");
-				} else {
-					strEx::token t = strEx::getToken(msg, '|');
-					msg = t.first;
-					std::wstring::size_type pos = msg.find_last_not_of(_T("\n\r "));
-					if (pos != std::wstring::npos) {
-						if (pos == msg.size())
-							msg = msg.substr(0,pos);
-						else
-							msg = msg.substr(0,pos+1);
-					}
-					perf = t.second;
-				}
-				if (GetExitCodeProcess(pi.hProcess, &dwexitcode) == 0) {
-					msg = _T("Failed to get commands (") + command + _T(") return code: ") + error::lookup::last_error();
-					result = NSCAPI::returnUNKNOWN;
-				} else {
-					result = dwexitcode;
-				}
-			}
-			CloseHandle(pi.hThread);
-			CloseHandle(pi.hProcess);
-			CloseHandle(hChildOutR);
-		} else {
-			msg = _T("NRPE_NT failed to create process (") + command + _T("): ") + error::lookup::last_error();
-			result = NSCAPI::returnUNKNOWN;
-			CloseHandle(hChildInR);
-			CloseHandle(hChildInW);
-			CloseHandle(hChildOutW);
-			CloseHandle(pi.hThread);
-			CloseHandle(pi.hProcess);
-			CloseHandle(hChildOutR);
-		}
-		return result;
-	}
-}
-
Index: gs/0.3.1/include/filter_framework.hpp
===================================================================
--- tags/0.3.1/include/filter_framework.hpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,385 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <strEx.h>
-#include <checkHelpers.hpp>
-#ifndef NO_BOOST_DEP
-#include <boost/regex.hpp>
-#endif
-
-namespace filters {
-
-	class filter_exception {
-		std::wstring error_;
-	public:
-		filter_exception(std::wstring error) : error_(error) {}
-		std::wstring getMessage() {
-			return error_;
-		}
-	};
-	struct parse_exception : public filter_exception {
-		parse_exception(std::wstring error) : filter_exception(error) {}
-	};
-	namespace filter {
-		struct sub_string_filter {
-			static bool filter(std::wstring filter, std::wstring str) {
-				return str.find(filter) != std::wstring::npos;
-			}
-		};
-		struct exact_string_filter {
-			static bool filter(std::wstring filter, std::wstring str) {
-				return str == filter;
-			}
-		};
-#ifndef NO_BOOST_DEP
-		struct regexp_string_filter {
-			static bool filter(boost::wregex filter, std::wstring str) {
-				return  boost::regex_match(str, filter);
-			}
-		};
-#endif
-		template <typename TType>
-		struct numeric_max_filter {
-			static bool filter(TType filter, TType value) {
-				return value >= filter;
-			}
-		};
-		template <typename TType>
-		struct numeric_min_filter {
-			static bool filter(TType filter, TType value) {
-				return value <= filter;
-			}
-		};
-		template <typename TType>
-		struct numeric_equals_filter {
-			static bool filter(TType filter, TType value) {
-				return value == filter;
-			}
-		};
-		template <typename TType>
-		struct numeric_nequals_filter {
-			static bool filter(TType filter, TType value) {
-				return value != filter;
-			}
-		};
-		template <typename TType>
-		struct always_true_filter {
-			static bool filter(TType filter, TType value) {
-				return true;
-			}
-		};
-		template <typename TListType, typename TType>
-		struct numeric_inlist_filter {
-			static bool filter(const TListType &filter, const TType value) {
-				for (TListType::const_iterator it = filter.begin(); it != filter.end(); ++it) {
-					if ((*it) == value)
-						return true;
-				}
-				return false;
-			}
-		};
-	}
-	namespace handlers {
-		struct handler_exception : public filter_exception {
-			handler_exception(std::wstring error) : filter_exception(error) {}
-		};
-		struct string_handler {
-			static std::wstring parse(std::wstring str) {
-				return str;
-			}
-		};
-		template<class TType, class TSubHandler>
-		struct numeric_list_handler {
-			static std::list<TType> parse(std::wstring str) {
-				std::list<TType> ret;
-				std::list<std::wstring> tmp = strEx::splitEx(str, _T(","));
-				for (std::list<std::wstring>::const_iterator it = tmp.begin(); it != tmp.end(); ++it) {
-					ret.push_back(TSubHandler::parse(*it));
-				}
-				return ret;
-			}
-		};
-#ifndef NO_BOOST_DEP
-		struct regexp_handler {
-			static boost::wregex parse(std::wstring str) {
-				try {
-					return boost::wregex(str);
-				} catch (const boost::bad_expression e) {
-					throw handler_exception(_T("Invalid syntax in regular expression:") + str);
-				}
-			}
-		};
-#endif
-		struct eventtype_handler {
-			static unsigned int parse(std::wstring str) {
-				if (str == _T("error"))
-					return EVENTLOG_ERROR_TYPE;
-				if (str == _T("warning"))
-					return EVENTLOG_WARNING_TYPE;
-				if (str == _T("info"))
-					return EVENTLOG_INFORMATION_TYPE;
-				if (str == _T("auditSuccess"))
-					return EVENTLOG_AUDIT_SUCCESS;
-				if (str == _T("auditFailure"))
-					return EVENTLOG_AUDIT_FAILURE;
-				return strEx::stoi(str);
-			}
-			static std::wstring toString(unsigned int dwType) {
-				if (dwType == EVENTLOG_ERROR_TYPE)
-					return _T("error");
-				if (dwType == EVENTLOG_WARNING_TYPE)
-					return _T("warning");
-				if (dwType == EVENTLOG_INFORMATION_TYPE)
-					return _T("info");
-				if (dwType == EVENTLOG_AUDIT_SUCCESS)
-					return _T("auditSuccess");
-				if (dwType == EVENTLOG_AUDIT_FAILURE)
-					return _T("auditFailure");
-				return strEx::itos(dwType);
-			}		
-		};
-		struct eventseverity_handler {
-			static unsigned int parse(std::wstring str) {
-				if (str == _T("success"))
-					return 0;
-				if (str == _T("informational"))
-					return 1;
-				if (str == _T("warning"))
-					return 2;
-				if (str == _T("error"))
-					return 3;
-				return strEx::stoi(str);
-			}
-			static std::wstring toString(unsigned int dwType) {
-				if (dwType == 0)
-					return _T("success");
-				if (dwType == 1)
-					return _T("informational");
-				if (dwType == 2)
-					return _T("warning");
-				if (dwType == 3)
-					return _T("error");
-				return strEx::itos(dwType);
-			}		
-		};	}
-
-	template <typename TFilterType, typename TValueType, class THandler, class TFilter>
-	struct filter_one {
-		TFilterType filter;
-		bool hasFilter_;
-		std::wstring value_;
-		filter_one() : hasFilter_(false) {}
-		filter_one(const filter_one &other) : hasFilter_(other.hasFilter_), filter(other.filter) {
-		}
-
-		inline bool hasFilter() const {
-			return hasFilter_;
-		}
-		bool matchFilter(const TValueType value) const {
-			return TFilter::filter(filter, value);
-		}
-		const filter_one & operator=(std::wstring value) {
-			value_ = value;
-			hasFilter_ = false;
-			try {
-				filter = THandler::parse(value);
-				hasFilter_ = true;
-			} catch (handlers::handler_exception e) {
-				throw parse_exception(e.getMessage() + _T(": ") + value);
-			} catch (...) {
-				throw parse_exception(_T("Unknown parse exception: ") + value);
-			}
-			return *this;
-		}
-		std::wstring getValue() const {
-			return value_;
-		}
-	};
-
-	typedef filter_one<std::wstring, std::wstring, handlers::string_handler, filter::sub_string_filter> sub_string_filter;
-#ifndef NO_BOOST_DEP
-	typedef filter_one<boost::wregex, std::wstring, handlers::regexp_handler, filter::regexp_string_filter> regexp_string_filter;
-#endif
-	typedef filter_one<std::wstring, std::wstring, handlers::string_handler, filter::exact_string_filter> exact_string_filter;
-
-	struct filter_all_strings {
-		sub_string_filter sub;
-		exact_string_filter exact;
-		std::wstring value_;
-#ifndef NO_BOOST_DEP
-		regexp_string_filter regexp;
-#endif
-		filter_all_strings() {}
-
-		inline bool hasFilter() const {
-			return sub.hasFilter() 
-#ifndef NO_BOOST_DEP
-				|| regexp.hasFilter() 
-#endif
-				|| exact.hasFilter();
-		}
-		bool matchFilter(const std::wstring str) const {
-			if ((sub.hasFilter())&&(sub.matchFilter(str)))
-				return true;
-#ifndef NO_BOOST_DEP
-			else if ((regexp.hasFilter())&&(regexp.matchFilter(str)))
-				return true;
-#endif
-			else if ((exact.hasFilter())&&(exact.matchFilter(str)))
-				return true;
-			return false;
-		}
-		std::wstring getValue() const {
-			return value_;
-		}
-		const filter_all_strings & operator=(std::wstring value) {
-			value_ = value;
-			strEx::token t = strEx::getToken(value, ':', false);
-			if (t.first == _T("substr")) {
-				sub = t.second;
-#ifndef NO_BOOST_DEP
-			} else if (t.first == _T("regexp")) {
-				regexp = t.second;
-#endif
-			} else {
-				exact = t.first;
-			}
-			return *this;
-		}
-	};
-
-	template <typename TType, class THandler>
-	struct filter_all_numeric {
-
-		filter_one<TType, TType, THandler, filter::numeric_max_filter<TType> > max;
-		filter_one<TType, TType, THandler, filter::numeric_min_filter<TType> > min;
-		filter_one<TType, TType, THandler, filter::numeric_equals_filter<TType> > eq;
-		filter_one<TType, TType, THandler, filter::numeric_nequals_filter<TType> > neq;
-		filter_one<std::list<TType>, TType, handlers::numeric_list_handler<TType, THandler>, filter::numeric_inlist_filter<std::list<TType>, TType> > inList;
-		std::wstring value_;
-
-		filter_all_numeric() {}
-		filter_all_numeric(const filter_all_numeric &other) {
-			max = other.max;
-			min = other.min;
-			eq = other.eq;
-			neq = other.neq;
-			inList = other.inList;
-		}
-		inline bool hasFilter() const {
-			return max.hasFilter() || min.hasFilter() || eq.hasFilter() || neq.hasFilter() || inList.hasFilter();
-		}
-		bool matchFilter(const TType value) const {
-			if ((max.hasFilter())&&(max.matchFilter(value)))
-				return true;
-			else if ((min.hasFilter())&&(min.matchFilter(value)))
-				return true;
-			else if ((eq.hasFilter())&&(eq.matchFilter(value)))
-				return true;
-			else if ((neq.hasFilter())&&(neq.matchFilter(value)))
-				return true;
-			else if ((inList.hasFilter())&&(inList.matchFilter(value)))
-				return true;
-			return false;
-		}
-		const filter_all_numeric& operator=(std::wstring value) {
-			value_ = value;
-			if (value.substr(0,1) == _T(">")) {
-				max = value.substr(1);
-			} else if (value.substr(0,2) == _T("<>")) {
-				neq = value.substr(2);
-			} else if (value.substr(0,1) == _T("<")) {
-				min = value.substr(1);
-			} else if (value.substr(0,1) == _T("=")) {
-				eq = value.substr(1);
-			} else if (value.substr(0,2) == _T("!=")) {
-				neq = value.substr(2);
-			} else if (value.substr(0,1) == _T("!")) {
-				neq = value.substr(1);
-			} else if (value.substr(0,3) == _T("in:")) {
-				inList = value.substr(3);
-			} else {
-				throw parse_exception(_T("Unknown filter key: ") + value + _T(" (numeric filters have to have an operator as well ie. foo=>5 or bar==5)"));
-			}
-			return *this;
-		}
-		std::wstring getValue() const {
-			return value_;
-		}
-	};
-	typedef filter_all_numeric<unsigned long long, checkHolders::time_handler<unsigned long long> > filter_all_times;
-
-	template <typename TFilterType, typename TValueType>
-	struct chained_filter {
-		enum filter_mode {
-			plus = 1,
-			minus = 2,
-			normal = 3,
-		};
-		typedef std::pair<filter_mode,TFilterType> filteritem_type;
-		typedef std::list<filteritem_type> filterlist_type;
-
-		filterlist_type chain;
-		bool filterAll;
-		
-		chained_filter() : filterAll(false) {}
-
-		void push_filter(std::wstring key, TFilterType filter) {
-			filter_mode mode = normal;
-			if (key.substr(0,1) == _T("+"))
-				mode = plus;
-			if (key.substr(0,1) == _T("-"))
-				mode = minus;
-			chain.push_back(filteritem_type(mode, filter));
-		}
-
-		bool hasFilter() {
-			return !chain.empty();
-		}
-		bool get_inital_state() {
-			return filterAll;
-		}
-
-		bool match(bool state, const TValueType item) {
-			bool matched = state;
-			for (filterlist_type::const_iterator cit = chain.begin(); cit != chain.end(); ++cit ) {
-				int mode = (*cit).first;
-				bool bTmpMatched = (*cit).second.matchFilter(item);
-				if ((mode == minus)&&(bTmpMatched)) {
-					// a -<filter> hit so thrash result!
-					matched = false;
-					break;
-				} else if ((mode == plus)&&(!bTmpMatched)) {
-					// a +<filter> missed hit so thrash result!
-					matched = false;
-					break;
-				} else if (bTmpMatched) {
-					matched = true;
-				}
-			}
-			return matched;
-		}
-
-	};
-
-
-}
Index: gs/0.3.1/include/luna.h
===================================================================
--- tags/0.3.1/include/luna.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,113 +1,0 @@
-//extern "C" {
-#include "LUA/lua.h"
-#include "LUA/lauxlib.h"
-//}
-
-template <typename T> class Luna {
-  typedef struct { T *pT; } userdataType;
-public:
-  typedef int (T::*mfp)(lua_State *L);
-  typedef struct { const char *name; mfp mfunc; } RegType;
-
-  static void Register(lua_State *L) {
-    lua_newtable(L);
-    int methods = lua_gettop(L);
-
-    luaL_newmetatable(L, T::className);
-    int metatable = lua_gettop(L);
-
-    // store method table in globals so that
-    // scripts can add functions written in Lua.
-    lua_pushstring(L, T::className);
-    lua_pushvalue(L, methods);
-    lua_settable(L, LUA_GLOBALSINDEX);
-
-    lua_pushliteral(L, "__metatable");
-    lua_pushvalue(L, methods);
-    lua_settable(L, metatable);  // hide metatable from Lua getmetatable()
-
-    lua_pushliteral(L, "__index");
-    lua_pushvalue(L, methods);
-    lua_settable(L, metatable);
-
-    lua_pushliteral(L, "__tostring");
-    lua_pushcfunction(L, tostring_T);
-    lua_settable(L, metatable);
-
-    lua_pushliteral(L, "__gc");
-    lua_pushcfunction(L, gc_T);
-    lua_settable(L, metatable);
-
-    lua_newtable(L);                // mt for method table
-    int mt = lua_gettop(L);
-    lua_pushliteral(L, "__call");
-    lua_pushcfunction(L, new_T);
-    lua_pushliteral(L, "new");
-    lua_pushvalue(L, -2);           // dup new_T function
-    lua_settable(L, methods);       // add new_T to method table
-    lua_settable(L, mt);            // mt.__call = new_T
-    lua_setmetatable(L, methods);
-
-    // fill method table with methods from class T
-    for (RegType *l = T::methods; l->name; l++) {
-    /* edited by Snaily: shouldn't it be const RegType *l ... ? */
-      lua_pushstring(L, l->name);
-      lua_pushlightuserdata(L, (void*)l);
-      lua_pushcclosure(L, thunk, 1);
-      lua_settable(L, methods);
-    }
-
-    lua_pop(L, 2);  // drop metatable and method table
-  }
-
-  // get userdata from Lua stack and return pointer to T object
-  static T *check(lua_State *L, int narg) {
-    userdataType *ud =
-      static_cast<userdataType*>(luaL_checkudata(L, narg, T::className));
-    if(!ud) luaL_typerror(L, narg, T::className);
-    return ud->pT;  // pointer to T object
-  }
-
-private:
-  Luna();  // hide default constructor
-
-  // member function dispatcher
-  static int thunk(lua_State *L) {
-    // stack has userdata, followed by method args
-    T *obj = check(L, 1);  // get 'self', or if you prefer, 'this'
-    lua_remove(L, 1);  // remove self so member function args start at index 1
-    // get member function from upvalue
-    RegType *l = static_cast<RegType*>(lua_touserdata(L, lua_upvalueindex(1)));
-    return (obj->*(l->mfunc))(L);  // call member function
-  }
-
-  // create a new T object and
-  // push onto the Lua stack a userdata containing a pointer to T object
-  static int new_T(lua_State *L) {
-    lua_remove(L, 1);   // use classname:new(), instead of classname.new()
-    T *obj = new T(L);  // call constructor for T objects
-    userdataType *ud =
-      static_cast<userdataType*>(lua_newuserdata(L, sizeof(userdataType)));
-    ud->pT = obj;  // store pointer to object in userdata
-    luaL_getmetatable(L, T::className);  // lookup metatable in Lua registry
-    lua_setmetatable(L, -2);
-    return 1;  // userdata containing pointer to T object
-  }
-
-  // garbage collection metamethod
-  static int gc_T(lua_State *L) {
-    userdataType *ud = static_cast<userdataType*>(lua_touserdata(L, 1));
-    T *obj = ud->pT;
-    delete obj;  // call destructor for T objects
-    return 0;
-  }
-
-  static int tostring_T (lua_State *L) {
-    char buff[32];
-    userdataType *ud = static_cast<userdataType*>(lua_touserdata(L, 1));
-    T *obj = ud->pT;
-    sprintf(buff, "%p", obj);
-    lua_pushfstring(L, "%s (%s)", T::className, buff);
-    return 1;
-  }
-};
Index: gs/0.3.1/include/msvc_wrappers.h
===================================================================
--- tags/0.3.1/include/msvc_wrappers.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,10 +1,0 @@
-#pragma once
-
-#if (_MSC_VER <= 1300)  // 1300 == VC++ 7.0
-#ifdef _UNICODE
-#define strncpy_s(dst, dsz, src, ssz) wcsncpy(dst, src, ssz)
-#else
-#define strncpy_s(dst, dsz, src, ssz) strncpy(dst, src, ssz)
-#endif
-#define wcsncpy_s(dst, dsz, src, ssz) wcsncpy(dst, src, ssz)
-#endif
Index: gs/0.3.1/include/multithread.h
===================================================================
--- tags/0.3.1/include/multithread.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,198 +1,0 @@
-#pragma once
-#include <thread.h>
-#include <process.h>
-#include <Mutex.h>
-
-/**
- * @ingroup NSClientCompat
- * Thread helper class.
- * This class wraps another class inside it and makes that class run in the background as a working thread.
- * Notice that no threading issues are handled so you are on your own when it comes to that. 
- * This simply wraps some API function inside a pretty interface.
- *
- * @version 1.0
- * first version
- *
- * @date 02-13-2005
- *
- * @author mickem
- *
- * @par license
- * This code is absolutely free to use and modify. The code is provided "as is" with
- * no expressed or implied warranty. The author accepts no liability if it causes
- * any damage to your computer, causes your pet to fall ill, increases baldness
- * or makes your car start emitting strange noises when you start it up.
- * This code has no bugs, just undocumented features!
- * 
- * @todo Make this class (or another) handle multiple instances of the thread ?
- */
-template <class T> 
-class Thread {
-private:
-	HANDLE hThread_;		// Thread handle
-	T* pObject_;			// Wrapped object
-	HANDLE hStopEvent_;		// Event to signal that the thread has stopped
-	HANDLE hMutex_;			// Mutex to protect internal data
-
-
-	typedef struct thread_param {
-		HANDLE hStopEvent;	// The stop event to signal when thread dies
-		T *instance;		// The thread instance object
-		LPVOID lpParam;		// The optional argument to the thread
-		Thread *pCore;
-	} thread_param;
-
-public:
-	/**
-	 * Default c-tor.
-	 * Sets up default values
-	 */
-	Thread() : hThread_(NULL), pObject_(NULL), hStopEvent_(NULL) {
-		hMutex_ = CreateMutex(NULL, FALSE, NULL);
-		assert(hMutex_ != NULL);
-	}
-	/**
-	 * Default d-tor.
-	 * Does not really kill the thread only closes the handle to it.
-	 *  @bug Should perhaps kill the thread, delete the object etc ?
-	 */
-	virtual ~Thread() {
-		{
-			MutexLock mutex(hMutex_, 5000L);
-			if (!mutex.hasMutex()) {
-				throw ThreadException("Could not retrieve mutex when killing thread, we are fucked...");
-			}
-			if (hThread_)
-				CloseHandle(hThread_);
-			hThread_ = NULL;
-			if (hStopEvent_)
-				CloseHandle(hStopEvent_);
-			hStopEvent_ = NULL;
-			delete pObject_;
-			pObject_ = NULL;
-		}
-		if (hMutex_)
-			CloseHandle(hMutex_);
-		hMutex_ = NULL;
-	}
-
-private:
-	/**
-	 * Static thread instance (this is the real thread procedure that wraps the internal objects)
-	 * This function will wait for <b>nice</b> termination of the process so if that does not happen the thread canoot quit.
-	 *
-	 * @param lpParameter thread_param* with arguments for the thread construction
-	 * @return exit status
-	 */
-	static void threadProc(LPVOID lpParameter) {
-		thread_param* param = static_cast<thread_param*>(lpParameter);
-		T* instance = param->instance;
-		HANDLE hStopEvent = param->hStopEvent;
-		LPVOID lpParam = param->lpParam;
-		Thread *pCore = param->pCore;
-		delete param;
-
-		if (hStopEvent != NULL) {
-			instance->threadProc(lpParam);
-			SetEvent(hStopEvent);
-		}
-		pCore->terminate();
-		_endthread();
-	}
-
-public:
-	/**
-	 * Create a thread and possibly send a parameter to it.
-	 * If a thread has already been create this function will throw an exception
-	 * <b>NOTICE</b> The object returned is managed inside this object so it is not very safe to use it.
-	 *
-	 * @param lpParam An argument to the thread
-	 * @return An instance of the thread object.
-	 * @bug the object return thing is *unsafe* and should be changed (if the thread is terminated that pointer is invalidated without any signal).
-	 */
-	void createThread(LPVOID lpParam = NULL) {
-		thread_param* param = NULL;
-		{
-			MutexLock mutex(hMutex_, 5000L);
-			if (!mutex.hasMutex()) {
-				throw ThreadException("Could not retrieve mutex, thread not started...");
-			}
-			if (pObject_) {
-				throw ThreadException("Thread already started, thread not started...");
-			}
-			assert(hStopEvent_ == NULL);
-			param = new thread_param;
-			param->instance = pObject_ = new T;
-			param->hStopEvent = hStopEvent_ = CreateEvent(NULL, TRUE, FALSE, NULL);
-			param->lpParam = lpParam;
-			param->pCore = this;
-		}
-		hThread_ = reinterpret_cast<HANDLE>(::_beginthread(threadProc, 0, reinterpret_cast<VOID*>(param)));
-		assert(hThread_ != NULL);
-	}
-	/**
-	 * Ask the thread to terminate (within 5 seconds) if not return false.
-	 * @param delay The time to wait for the thread
-	 * @return true if the thread has terminated
-	 */
-	bool exitThread(const unsigned int delay = 5000L) {
-		DWORD dwWaitResult = -1;
-		{
-			MutexLock mutex(hMutex_, 5000L);
-			if (!mutex.hasMutex()) {
-				throw ThreadException("Could not retrieve mutex, thread not stopped...");
-			}
-			if (!pObject_)
-				return true;
-			assert(hStopEvent_ != NULL);
-			pObject_->exitThread();
-			dwWaitResult = WaitForSingleObject(hStopEvent_, delay);
-		}
-		switch (dwWaitResult) {
-			// The thread got mutex ownership.
-			case WAIT_OBJECT_0:
-				return true;
-				// Did not get a signal due to time-out.
-			case WAIT_TIMEOUT: 
-				return false; 
-				// Never got a signal.
-			case WAIT_ABANDONED: 
-				return false; 
-		}
-		return false;
-	}
-	bool hasActiveThread() const {
-		MutexLock mutex(hMutex_, 5000L);
-		if (!mutex.hasMutex()) {
-			throw ThreadException("Could not retrieve mutex, thread not stopped...");
-		}
-		return pObject_ != NULL;
-	}
-	const T* getThreadConst() const {
-		MutexLock mutex(hMutex_, 5000L);
-		if (!mutex.hasMutex()) {
-			throw ThreadException("Could not retrieve mutex, thread not stopped...");
-		}
-		return pObject_;
-	}
-	T* getThread() const {
-		MutexLock mutex(hMutex_, 5000L);
-		if (!mutex.hasMutex()) {
-			throw ThreadException("Could not retrieve mutex, thread not stopped...");
-		}
-		return pObject_;
-	}
-private:
-	void terminate() {
-		MutexLock mutex(hMutex_, 5000L);
-		if (!mutex.hasMutex()) {
-			throw ThreadException("Could not retrieve mutex, thread not stopped...");
-		}
-		delete pObject_;
-		pObject_ = NULL;
-		CloseHandle(hStopEvent_);
-		hStopEvent_ = NULL;
-		hThread_ = NULL;
-	}
-};
-
Index: gs/0.3.1/include/nrpe/nrpepacket.hpp
===================================================================
--- tags/0.3.1/include/nrpe/nrpepacket.hpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,165 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-
-typedef short int16_t;
-typedef unsigned long u_int32_t;
-
-class NRPEPacket {
-public:
-	static const short unknownPacket = 0;
-	static const short queryPacket = 1;
-	static const short responsePacket = 2;
-	static const short version2 = 2;
-
-	class NRPEPacketException {
-		std::wstring error_;
-	public:
-		NRPEPacketException(std::wstring error) : error_(error) {}
-		std::wstring getMessage() {
-			return error_;
-		}
-	};
-
-private:
-	typedef struct packet {
-		int16_t   packet_version;
-		int16_t   packet_type;
-		u_int32_t crc32_value;
-		int16_t   result_code;
-		char      buffer[];
-	} packet;
-	std::wstring payload_;
-	short type_;
-	short version_;
-	NSCAPI::nagiosReturn result_;
-	unsigned int crc32_;
-	unsigned int calculatedCRC32_;
-	char *tmpBuffer;
-	unsigned int buffer_length_;
-public:
-	NRPEPacket(unsigned int buffer_length) : tmpBuffer(NULL), buffer_length_(buffer_length) {};
-	NRPEPacket(const char *buffer, unsigned int length, unsigned int buffer_length) : tmpBuffer(NULL), buffer_length_(buffer_length) {
-		readFrom(buffer, length);
-	};
-	NRPEPacket(short type, short version, NSCAPI::nagiosReturn result, std::wstring payLoad, unsigned int buffer_length) 
-		: tmpBuffer(NULL) 
-		,type_(type)
-		,version_(version)
-		,result_(result)
-		,payload_(payLoad)
-		,buffer_length_(buffer_length)
-	{
-	}
-	NRPEPacket() 
-		: tmpBuffer(NULL) 
-		,type_(unknownPacket)
-		,version_(version2)
-		,result_(0)
-		,buffer_length_(0)
-	{
-	}
-	NRPEPacket(NRPEPacket &other) : tmpBuffer(NULL) {
-		payload_ = other.payload_;
-		type_ = other.type_;
-		version_ = other.version_;
-		result_ = other.result_;
-		crc32_ = other.crc32_;
-		calculatedCRC32_ = other.calculatedCRC32_;
-		buffer_length_ = other.buffer_length_;
-	}
-	~NRPEPacket() {
-		delete [] tmpBuffer;
-	}
-	static NRPEPacket make_request(std::wstring payload, unsigned int buffer_length) {
-		return NRPEPacket(queryPacket, version2, -1, payload, buffer_length);
-	}
-
-	const char* getBuffer() {
-		delete [] tmpBuffer;
-		tmpBuffer = new char[getBufferLength()+1];
-		ZeroMemory(tmpBuffer, getBufferLength()+1);
-		packet *p = reinterpret_cast<packet*>(tmpBuffer);
-		p->result_code = htons(NSCHelper::nagios2int(result_));
-		p->packet_type = htons(type_);
-		p->packet_version = htons(version_);
-		if (payload_.length() >= buffer_length_-1)
-			throw NRPEPacketException(_T("To much data cant create return packet (truncate datat)"));
-		//ZeroMemory(p->buffer, buffer_length_-1);
-		strncpy_s(p->buffer, buffer_length_-1, strEx::wstring_to_string(payload_).c_str(), payload_.length());
-		p->buffer[payload_.length()] = 0;
-		p->crc32_value = 0;
-		p->crc32_value = htonl(calculate_crc32(tmpBuffer, getBufferLength()));
-		return tmpBuffer;
-	}
-
-	void readFrom(const char *buffer, unsigned int length) {
-		if (buffer == NULL)
-			throw NRPEPacketException(_T("No buffer."));
-		if (length != getBufferLength())
-			throw NRPEPacketException(_T("Invalid length."));
-		const packet *p = reinterpret_cast<const packet*>(buffer);
-		type_ = ntohs(p->packet_type);
-		if ((type_ != queryPacket)&&(type_ != responsePacket))
-			throw NRPEPacketException(_T("Invalid packet type."));
-		version_ = ntohs(p->packet_version);
-		if (version_ != version2)
-			throw NRPEPacketException(_T("Invalid packet version."));
-		crc32_ = ntohl(p->crc32_value);
-		// Verify CRC32
-		// @todo Fix this, currently we need a const buffer so we cannot change the CRC to 0.
-		char * tb = new char[getBufferLength()+1];
-		memcpy(tb, buffer, getBufferLength());
-		packet *p2 = reinterpret_cast<packet*>(tb);
-		p2->crc32_value = 0;
-		calculatedCRC32_ = calculate_crc32(tb, getBufferLength());
-		delete [] tb;
-		if (crc32_ != calculatedCRC32_) 
-			throw NRPEPacketException(_T("Invalid checksum in NRPE packet!"));
-		// Verify CRC32 end
-		result_ = NSCHelper::int2nagios(ntohs(p->result_code));
-		payload_ = strEx::string_to_wstring(std::string(p->buffer));
-	}
-
-	unsigned short getVersion() const { return version_; }
-	unsigned short getType() const { return type_; }
-	unsigned short getResult() const { return result_; }
-	std::wstring getPayload() const { return payload_; }
-	bool verifyCRC() { return calculatedCRC32_ == crc32_; }
-	unsigned int getBufferLength() const { return getBufferLength(buffer_length_); }
-	static unsigned int getBufferLength(unsigned int buffer_length) { return sizeof(packet)+buffer_length*sizeof(char); }
-
-
-	std::wstring toString() {
-		std::wstringstream ss;
-		ss << _T("type: ") << type_;
-		ss << _T(", version: ") << version_;
-		ss << _T(", result: ") << result_;
-		ss << _T(", payload: ") << payload_;
-		return ss.str();
-	}
-
-};
-
-
-
-
Index: gs/0.3.1/include/program_options_ex.hpp
===================================================================
--- tags/0.3.1/include/program_options_ex.hpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,37 +1,0 @@
-#pragma once
-
-#include <boost/program_options.hpp>
-#include <boost/function/function1.hpp>
-
-template<class charT>
-class basic_command_line_parser_ex : public boost::program_options::basic_command_line_parser<charT> {
-public:
-	static boost::program_options::basic_parsed_options<charT> parse_command_line(const charT* arg0, int argc, charT* argv[], const boost::program_options::options_description& desc,
-		int style = 0, boost::function1<std::pair<std::string, std::string>, const std::string&> ext = boost::program_options::ext_parser())
-	{
-		return basic_command_line_parser_ex<charT>(arg0, argc, argv).options(desc).style(style).extra_parser(ext).run();
-	}
-
-	template<class charT, class Iterator>
-		std::vector<std::basic_string<charT> > 
-			make_vector(const charT *a0, Iterator i, Iterator e)
-		{
-			std::vector<std::basic_string<charT> > result;
-			// Some compilers don't have templated constructor for 
-			// vector, so we can't create vector from (argv+1, argv+argc) range
-			if (a0 != NULL)
-				result.push_back(a0);
-			for(; i != e; ++i)
-				result.push_back(*i);
-			return result;            
-		}
-		basic_command_line_parser_ex(const charT* arg0, int argc, charT* argv[]) 
-			: boost::program_options::basic_command_line_parser<charT>(
-			make_vector<charT, charT**>(arg0, argv, argv+argc)
-			)
-		{}
-		basic_command_line_parser_ex(const std::wstring args) 
-			: boost::program_options::basic_command_line_parser<charT>(boost::program_options::split_winmain(args))
-		{}
-
-};
Index: gs/0.3.1/include/strEx.h
===================================================================
--- tags/0.3.1/include/strEx.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,532 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <tchar.h>
-#include <windows.h>
-#include <sstream>
-#include <iomanip>
-#include <string>
-#include <utility>
-#include <list>
-#include <functional>
-#include <time.h>
-#ifdef _DEBUG
-#include <iostream>
-#endif
-
-namespace strEx {
-	namespace s {
-		inline std::string itos(float i) {
-			std::stringstream ss;
-			ss << i;
-			return ss.str();
-		}
-		inline std::string itos(int i) {
-			std::stringstream ss;
-			ss << i;
-			return ss.str();
-		}
-		inline std::string itos(unsigned int i) {
-			std::stringstream ss;
-			ss << i;
-			return ss.str();
-		}
-	}
-
-	inline void append_list(std::wstring &lst, std::wstring &append) {
-		if (!lst.empty())
-			lst += _T(", ");
-		lst += append;
-	}
-
-	inline std::string wstring_to_string( const wchar_t* pStr, int len) {
-		//ASSERT_PTR( pStr ) ; 
-		//ASSERT( len >= 0 || len == -1 , _T("Invalid string length: ") << len ) ; 
-
-		// figure out how many narrow characters we are going to get 
-		int nChars = WideCharToMultiByte( CP_ACP , 0 , pStr , len , NULL , 0 , NULL , NULL ) ; 
-		if ( len == -1 )
-			-- nChars ; 
-		if ( nChars == 0 )
-			return "" ;
-
-		// convert the wide string to a narrow string
-		// nb: slightly naughty to write directly into the string like this
-		std::string buf ;
-		buf.resize( nChars ) ;
-		WideCharToMultiByte( CP_ACP , 0 , pStr , len , 
-			const_cast<char*>(buf.c_str()) , nChars , NULL , NULL ) ; 
-
-		return buf ; 
-	}
-	inline std::string wstring_to_string( const std::wstring& str ) {
-		return wstring_to_string(str.c_str(), static_cast<int>(str.length()));
-	}
-
-	inline std::wstring string_to_wstring( const char* pStr , int len ) {
-		//ASSERT_PTR( pStr ) ; 
-		//ASSERT( len >= 0 || len == -1 , _T("Invalid string length: ") << len ) ; 
-
-		// figure out how many wide characters we are going to get 
-		int nChars = MultiByteToWideChar( CP_ACP , 0 , pStr , len , NULL , 0 ) ; 
-		if ( len == -1 )
-			-- nChars ; 
-		if ( nChars == 0 )
-			return L"" ;
-
-		// convert the narrow string to a wide string 
-		// nb: slightly naughty to write directly into the string like this
-		std::wstring buf ;
-		buf.resize( nChars ) ; 
-		MultiByteToWideChar( CP_ACP , 0 , pStr , len , const_cast<wchar_t*>(buf.c_str()) , nChars ) ; 
-
-		return buf ;
-	}
-	inline std::wstring string_to_wstring( const std::string& str ) {
-		return string_to_wstring(str.c_str(), static_cast<int>(str.length())) ;
-	}
-
-	inline std::wstring format_buffer(const wchar_t* buf, unsigned int len) {
-		std::wstringstream ss;
-		std::wstring chars;
-		for (unsigned int i=0;i<len;i++) {
-			ss << std::hex << buf[i];
-			ss << _T(", ");
-			if (buf[i] >= ' ' && buf[i] <= 'z')
-				chars += buf[i];
-			else
-				chars += '?';
-			if (i%32==0) {
-				ss << chars;
-				ss << _T("\n");
-				chars = _T("");
-			}
-		}
-		return ss.str();
-	}
-	inline std::string format_buffer(const char* buf, unsigned int len) {
-		std::stringstream ss;
-		std::string chars;
-		for (unsigned int i=0;i<len;i++) {
-			if (i%32==0) {
-				if (i > 0) {
-					ss << chars;
-					ss << "\n";
-				}
-				chars = "";
-				ss << std::hex << std::setw(8) << std::setfill('0') << i;
-				ss << ": ";
-			}
-			ss << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>(static_cast<unsigned char>(buf[i]));
-			ss << ", ";
-			if (buf[i] < 30 || buf[i] == 127)
-				chars += '?';
-			else
-				chars += buf[i];
-		}
-		return ss.str();
-	}
-
-	inline std::wstring format_date(time_t time, std::wstring format = _T("%Y-%m-%d %H:%M:%S")) {
-		TCHAR buf[51];
-		struct tm nt; // = new struct tm;
-#if (_MSC_VER > 1300)  // 1300 == VC++ 7.0
-		if (gmtime_s(&nt, &time) != 0)
-			return _T("");
-#else
-		nt = gmtime(&time);
-		if (nt == NULL)
-			return "";
-#endif
-		size_t l = wcsftime(buf, 50, format.c_str(), &nt);
-		if (l <= 0 || l >= 50)
-			return _T("");
-		buf[l] = 0;
-		return buf;
-	}
-	inline std::wstring format_date(SYSTEMTIME &time, std::wstring format = _T("%Y-%m-%d %H:%M:%S")) {
-		TCHAR buf[51];
-
-		struct tm tmTime;
-		memset(&tmTime, 0, sizeof(tmTime));
-
-		tmTime.tm_sec = time.wSecond; // seconds after the minute - [0,59]
-		tmTime.tm_min = time.wMinute; // minutes after the hour - [0,59]
-		tmTime.tm_hour = time.wHour;  // hours since midnight - [0,23]
-		tmTime.tm_mday = time.wDay;  // day of the month - [1,31]
-		tmTime.tm_mon = time.wMonth-1; // months since January - [0,11]
-		tmTime.tm_year = time.wYear-1900; // years since 1900
-		tmTime.tm_wday = time.wDayOfWeek; // days since Sunday - [0,6]
-
-		size_t l = wcsftime(buf, 50, format.c_str(), &tmTime);
-		if (l <= 0 || l >= 50)
-			return _T("");
-		buf[l] = 0;
-		return buf;
-	}
-
-	static const __int64 SECS_BETWEEN_EPOCHS = 11644473600;
-	static const __int64 SECS_TO_100NS = 10000000;
-	inline std::wstring format_filetime(unsigned long long filetime, std::wstring format) {
-		filetime -= (SECS_BETWEEN_EPOCHS * SECS_TO_100NS);
-		filetime /= SECS_TO_100NS;
-		return format_date(static_cast<time_t>(filetime), format);
-	}
-
-	inline void replace(std::wstring &string, std::wstring replace, std::wstring with) {
-		std::wstring::size_type pos = string.find(replace);
-		std::wstring::size_type len = replace.length();
-		while (pos != std::wstring::npos) {
-			string = string.substr(0,pos)+with+string.substr(pos+len);
-			pos = string.find(replace, pos+1);
-		}
-	}
-	inline std::wstring itos(unsigned int i) {
-		std::wstringstream ss;
-		ss << i;
-		return ss.str();
-	}
-	inline std::wstring itos(int i) {
-		std::wstringstream ss;
-		ss << i;
-		return ss.str();
-	}
-	inline std::wstring itos(unsigned long long i) {
-		std::wstringstream ss;
-		ss << i;
-		return ss.str();
-	}
-	inline std::wstring itos(__int64 i) {
-		std::wstringstream ss;
-		ss << i;
-		return ss.str();
-	}
-	inline std::wstring itos(unsigned long i) {
-		std::wstringstream ss;
-		ss << i;
-		return ss.str();
-	}
-	inline std::wstring itos(double i) {
-		std::wstringstream ss;
-		ss << i;
-		return ss.str();
-	}
-	inline std::wstring itos(float i) {
-		std::wstringstream ss;
-		ss << i;
-		return ss.str();
-	}
-	inline std::wstring ihextos(unsigned int i) {
-		std::wstringstream ss;
-		ss << std::hex << i;
-		return ss.str();
-	}
-	inline int stoi(std::wstring s) {
-		return _wtoi(s.c_str());
-	}
-	inline double stod(std::wstring s) {
-		return _wtof(s.c_str());
-	}
-	inline long long stoi64(std::wstring s) {
-		return _wtoi64(s.c_str());
-	}
-	inline unsigned stoui_as_time(std::wstring time, unsigned int smallest_unit = 1000) {
-		std::wstring::size_type p = time.find_first_of(_T("sSmMhHdDwW"));
-		unsigned int value = _wtoi(time.c_str());
-		if (p == std::wstring::npos)
-			return value * smallest_unit;
-		else if ( (time[p] == 's') || (time[p] == 'S') )
-			return value * 1000;
-		else if ( (time[p] == 'm') || (time[p] == 'M') )
-			return value * 60 * 1000;
-		else if ( (time[p] == 'h') || (time[p] == 'H') )
-			return value * 60 * 60 * 1000;
-		else if ( (time[p] == 'd') || (time[p] == 'D') )
-			return value * 24 * 60 * 60 * 1000;
-		else if ( (time[p] == 'w') || (time[p] == 'W') )
-			return value * 7 * 24 * 60 * 60 * 1000;
-		return value * smallest_unit;
-	}
-
-	inline unsigned long long stoi64_as_time(std::wstring time, unsigned int smallest_unit = 1000) {
-		std::wstring::size_type p = time.find_first_of(_T("sSmMhHdDwW"));
-		unsigned long long value = _wtoi64(time.c_str());
-		if (p == std::wstring::npos)
-			return value * smallest_unit;
-		else if ( (time[p] == 's') || (time[p] == 'S') )
-			return value * 1000;
-		else if ( (time[p] == 'm') || (time[p] == 'M') )
-			return value * 60 * 1000;
-		else if ( (time[p] == 'h') || (time[p] == 'H') )
-			return value * 60 * 60 * 1000;
-		else if ( (time[p] == 'd') || (time[p] == 'D') )
-			return value * 24 * 60 * 60 * 1000;
-		else if ( (time[p] == 'w') || (time[p] == 'W') )
-			return value * 7 * 24 * 60 * 60 * 1000;
-		return value * smallest_unit;
-	}
-
-#define MK_FORMAT_FTD(min, key, val) \
-	if (mtm->tm_year > min) \
-		strEx::replace(format, key, strEx::itos(val));  \
-	else  \
-		strEx::replace(format, key, _T("0"));
-
-	inline std::wstring format_time_delta(std::wstring format, struct tm *mtm) {
-		// "Date: %Y-%m-%d %H:%M:%S"
-		MK_FORMAT_FTD(70, _T("%Y"), mtm->tm_year);
-		MK_FORMAT_FTD(0, _T("%m"), mtm->tm_mon);
-		MK_FORMAT_FTD(0, _T("%d"), mtm->tm_mday-1);
-		MK_FORMAT_FTD(0, _T("%H"), mtm->tm_hour);
-		MK_FORMAT_FTD(0, _T("%M"), mtm->tm_min);
-		MK_FORMAT_FTD(0, _T("%S"), mtm->tm_sec);
-		return format;
-	}
-
-#define WEEK	(7 * 24 * 60 * 60 * 1000)
-#define DAY		(24 * 60 * 60 * 1000)
-#define HOUR	(60 * 60 * 1000)
-#define MIN		(60 * 1000)
-#define SEC		(1000)
-	inline std::wstring itos_as_time(unsigned long long time) {
-		if (time > WEEK) {
-			unsigned int w = static_cast<unsigned int>(time/WEEK);
-			unsigned int d = static_cast<unsigned int>((time-(w*WEEK))/DAY);
-			unsigned int h = static_cast<unsigned int>((time-(w*WEEK)-(d*DAY))/HOUR);
-			unsigned int m = static_cast<unsigned int>((time-(w*WEEK)-(d*DAY)-(h*HOUR))/MIN);
-			return itos(w) + _T("w ") + itos(d) + _T("d ") + itos(h) + _T(":") + itos(m);
-		}
-		else if (time > DAY) {
-			unsigned int d = static_cast<unsigned int>((time)/DAY);
-			unsigned int h = static_cast<unsigned int>((time-(d*DAY))/HOUR);
-			unsigned int m = static_cast<unsigned int>((time-(d*DAY)-(h*HOUR))/MIN);
-			return itos(d) + _T("d ") + itos(h) + _T(":") + itos(m);
-		}
-		else if (time > HOUR) {
-			unsigned int h = static_cast<unsigned int>((time)/HOUR);
-			unsigned int m = static_cast<unsigned int>((time-(h*HOUR))/MIN);
-			return itos(h) + _T(":") + itos(m);
-		} else if (time > MIN) {
-			return _T("0:") + itos(static_cast<unsigned int>(time/(60 * 1000)));
-		} else if (time > SEC)
-			return itos(static_cast<unsigned int>(time/(1000))) + _T("s");
-		return itos(static_cast<unsigned int>(time));
-	}
-
-	inline long long stoi64_as_BKMG(std::wstring s) {
-		std::wstring::size_type p = s.find_first_of(_T("BMKGT"));
-		if (p == std::wstring::npos)
-			return _wtoi64(s.c_str());
-		else if (s[p] == 'B') 
-			return _wtoi64(s.c_str());
-		else if (s[p] == 'K') 
-			return _wtoi64(s.c_str())*1024;
-		else if (s[p] == 'M') 
-			return _wtoi64(s.c_str())*1024*1024;
-		else if (s[p] == 'G') 
-			return _wtoi64(s.c_str())*1024*1024*1024;
-		else if (s[p] == 'T') 
-			return _wtoi64(s.c_str())*1024*1024*1024*1024;
-		else
-			return _wtoi64(s.c_str());
-	}
-#define BKMG_RANGE "BKMGTP"
-#define BKMG_SIZE 5
-
-	inline std::wstring itos_as_BKMG(unsigned __int64 i) {
-		double cpy = static_cast<double>(i);
-		TCHAR postfix[] = _T(BKMG_RANGE);
-		int idx = 0;
-		while ((cpy > 999)&&(idx<BKMG_SIZE)) {
-			cpy/=1024;
-			idx++;
-		}
-		std::wstringstream ss;
-		ss << std::setprecision(3);
-		ss << cpy;
-		std::wstring ret = ss.str(); // itos(cpy);
-		ret += postfix[idx];
-		return ret;
-	}
-	inline std::wstring format_BKMG(unsigned __int64 i, std::wstring unit) {
-		double cpy = static_cast<double>(i);
-		TCHAR postfix[] = _T(BKMG_RANGE);
-		if (unit.length() != 1)
-			return itos(cpy);
-		for (int i=0;i<BKMG_SIZE;i++) {
-			if (unit[0] == postfix[i]) {
-				std::wstringstream ss;
-				ss << std::setiosflags(std::ios::fixed) << std::setprecision(3) << cpy;
-				std::wstring s = ss.str();
-				std::wstring::size_type pos = s.find_last_not_of(_T("0"));
-				if (pos != std::string::npos) {
-					s = s.substr(0,pos);
-				}
-				return s;
-			}
-			cpy/=1024;
-		}
-		return itos(cpy);
-	}
-	inline std::wstring find_proper_unit_BKMG(unsigned __int64 i) {
-		double cpy = static_cast<double>(i);
-		TCHAR postfix[] = _T(BKMG_RANGE);
-		int idx = 0;
-		while ((cpy > 999)&&(idx<BKMG_SIZE)) {
-			cpy/=1024;
-			idx++;
-		}
-		return std::wstring(1, postfix[idx]);
-	}
-
-	typedef std::list<std::wstring> splitList;
-	inline splitList splitEx(std::wstring str, std::wstring key) {
-		splitList ret;
-		std::wstring::size_type pos = 0, lpos = 0;
-		while ((pos = str.find(key, pos)) !=  std::wstring::npos) {
-			ret.push_back(str.substr(lpos, pos-lpos));
-			lpos = ++pos;
-		}
-		if (lpos < str.size())
-			ret.push_back(str.substr(lpos));
-		return ret;
-	}
-	inline std::wstring joinEx(splitList lst, std::wstring key) {
-		std::wstring ret;
-		for (splitList::const_iterator it = lst.begin(); it != lst.end(); ++it) {
-			if (!ret.empty())
-				ret += key;
-			ret += *it;
-		}
-		return ret;
-	}
-
-	inline std::pair<std::wstring,std::wstring> split(std::wstring str, std::wstring key) {
-		std::wstring::size_type pos = str.find(key);
-		if (pos == std::wstring::npos)
-			return std::pair<std::wstring,std::wstring>(str, _T(""));
-		return std::pair<std::wstring,std::wstring>(str.substr(0, pos), str.substr(pos+key.length()));
-	}
-	typedef std::pair<std::wstring,std::wstring> token;
-	// foo bar "foo \" bar" foo -> foo, bar "foo \" bar" foo -> bar, "foo \" bar" foo -> 
-	// 
-	inline token getToken(std::wstring buffer, char split, bool escape = false) {
-		std::wstring::size_type pos = std::wstring::npos;
-		if ((escape) && (buffer[0] == '\"')) {
-			do {
-				pos = buffer.find('\"');
-			}
-			while (((pos != std::wstring::npos)&&(pos > 1))&&(buffer[pos-1] == '\\'));
-		} else
-			pos = buffer.find(split);
-		if (pos == std::wstring::npos)
-			return token(buffer, _T(""));
-		if (pos == buffer.length()-1)
-			return token(buffer.substr(0, pos), _T(""));
-		return token(buffer.substr(0, pos-1), buffer.substr(++pos));
-	}
-
-
-	template<class _E>
-	struct blind_traits : public std::char_traits<_E>
-	{
-		static bool eq(const _E& x, const _E& y) {
-			return tolower( x ) == tolower( y ); 
-		}
-		static bool lt(const _E& x, const _E& y) {
-			return tolower( x ) < tolower( y ); 
-		}
-
-		static int compare(const _E *x, const _E *y, size_t n) { 
-			return _wcsnicmp( x, y, n );
-		}
-
-		//  There's no memichr(), so we roll our own.  It ain't rocket science.
-		static const _E * __cdecl find(const _E *buf, size_t len, const _E& ch) {
-			//  Jerry says that x86s have special mojo for memchr(), so the 
-			//  memchr() calls end up being reasonably efficient in practice.
-			const _E *pu = (const _E *)memchr(buf, ch, len);
-			const _E *pl = (const _E *)memchr(buf, tolower( ch ), len);
-			if ( ! pu )
-				return pl;  //  Might be NULL; if so, NULL's the word.
-			else if ( ! pl )
-				return pu;
-			else
-				//  If either one was NULL, we return the other; if neither is 
-				//  NULL, we return the lesser of the two.
-				return ( pu < pl ) ? pu : pl;
-		}
-
-		//  I'm reasonably sure that this is eq() for wide characters.  Maybe.
-		static bool eq_int_type(const int_type& ch1, const int_type& ch2) { 
-			return char_traits<_E>::eq_int_type( tolower( ch1 ), tolower( ch2 ) ); 
-		}
-	};
-
-	//  And here's our case-blind string class.
-	//typedef std::basic_string<char, blind_traits<char>, std::allocator<char> >  blindstr;
-	typedef std::basic_string<wchar_t, blind_traits<wchar_t>, std::allocator<wchar_t> >  blindstr;
-
-	struct case_blind_string_compare : public std::binary_function<std::wstring, std::wstring, bool>
-	{
-		bool operator() (const std::wstring& x, const std::wstring& y) const {
-			return _wcsicmp( x.c_str(), y.c_str() ) < 0;
-		}
-	};
-
-#ifdef _DEBUG
-	inline void test_getToken(std::wstring in1, char in2, std::wstring out1, std::wstring out2) {
-		token t = getToken(in1, in2);
-		std::wcout << _T("strEx::test_getToken(") << in1 << _T(", ") << in2 << _T(") : ");
-		if ((t.first == out1) && (t.second == out2))
-			std::wcout << _T("Succeeded") << std::endl;
-		else
-			std::wcout << _T("Failed [") << out1 << _T("=") << t.first << _T(", ") << out2 << _T("=") << t.second << _T("]") << std::endl;
-	}
-	inline void run_test_getToken() {
-		test_getToken(_T(""), '&', _T(""), _T(""));
-		test_getToken(_T("&"), '&', _T(""), _T(""));
-		test_getToken(_T("&&"), '&', _T(""), _T("&"));
-		test_getToken(_T("foo"), '&', _T("foo"), _T(""));
-		test_getToken(_T("foo&"), '&', _T("foo"), _T(""));
-		test_getToken(_T("foo&bar"), '&', _T("foo"), _T("bar"));
-		test_getToken(_T("foo&bar&test"), '&', _T("foo"), _T("bar&test"));
-	}
-
-	inline void test_replace(std::wstring source, std::wstring replace, std::wstring with, std::wstring out) {
-		std::wcout << _T("strEx::test_replace(") << source << _T(", ") << replace << _T(", ") << with << _T(") : ");
-		std::wstring s = source;
-		strEx::replace(s, replace, with);
-		if (s == out)
-			std::wcout << _T("Succeeded") << std::endl;
-		else
-			std::wcout << _T("Failed [") << s << _T("=") << out << _T("]") << std::endl;
-	}
-	inline void run_test_replace() {
-		test_replace(_T(""), _T(""), _T(""), _T(""));
-		test_replace(_T("foo"), _T(""), _T(""), _T("foo"));
-		test_replace(_T("foobar"), _T("foo"), _T(""), _T("bar"));
-		test_replace(_T("foobar"), _T("foo"), _T("bar"), _T("barbar"));
-	}
-
-#endif
-}
Index: gs/0.3.1/include/sysinfo.cpp
===================================================================
--- tags/0.3.1/include/sysinfo.cpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,39 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#include "StdAfx.h"
-
-#include <sysinfo.h>
-#include <tchar.h>
-#include <error.hpp>
-
-namespace systemInfo {
-		LANGID GetSystemDefaultUILanguage() {
-				HMODULE hKernel = ::LoadLibrary(_TEXT("KERNEL32"));
-				if (!hKernel) 
-					throw SystemInfoException(_T("Could not load kernel32.dll: ") + error::lookup::last_error());
-				tGetSystemDefaultUILanguage fGetSystemDefaultUILanguage;
-				fGetSystemDefaultUILanguage = (tGetSystemDefaultUILanguage)::GetProcAddress(hKernel, "GetSystemDefaultUILanguage");
-				if (!fGetSystemDefaultUILanguage)
-						throw SystemInfoException(_T("Could not load GetSystemDefaultUILanguage") + error::lookup::last_error());
-				return fGetSystemDefaultUILanguage();
-			}
-	}
-
Index: gs/0.3.1/include/sysinfo.h
===================================================================
--- tags/0.3.1/include/sysinfo.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,61 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <string>
-
-namespace systemInfo {
-	class SystemInfoException {
-		std::wstring error_;
-	public:
-		SystemInfoException(std::wstring error) : error_(error)
-		{}
-		std::wstring getError() const {
-			return error_;
-		}
-
-	};
-	typedef LANGID (*tGetSystemDefaultUILanguage)(void);
-
-
-	inline LANGID GetSystemDefaultLangID() {
-		return ::GetSystemDefaultLangID();
-	}
-
-	LANGID GetSystemDefaultUILanguage();
-	inline OSVERSIONINFO getOSVersion() {
-		OSVERSIONINFO OSversion;
-		OSversion.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
-		::GetVersionEx(&OSversion);
-		return OSversion;
-	}
-
-	inline bool isNTBased(const OSVERSIONINFO &osVersion) {
-		return osVersion.dwPlatformId == VER_PLATFORM_WIN32_NT;
-	}
-	inline bool isBelowNT4(const OSVERSIONINFO &osVersion) {
-		return ((osVersion.dwPlatformId == VER_PLATFORM_WIN32_NT)&&(osVersion.dwMajorVersion<=4));
-	}
-	inline bool isAboveW2K(const OSVERSIONINFO &osVersion) {
-		return ((osVersion.dwPlatformId == VER_PLATFORM_WIN32_NT)&&(osVersion.dwMajorVersion>4));
-	}
-
-}
Index: gs/0.3.1/include/thread.h
===================================================================
--- tags/0.3.1/include/thread.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,249 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <process.h>
-#include <Mutex.h>
-
-class ThreadException {
-public:
-	std::wstring e_;
-	ThreadException(std::wstring e) : e_(e) {
-		std::wcerr << e << std::endl;
-	}
-};
-
-/**
- * @ingroup NSClientCompat
- * Thread helper class.
- * This class wraps another class inside it and makes that class run in the background as a working thread.
- * Notice that no threading issues are handled so you are on your own when it comes to that. 
- * This simply wraps some API function inside a pretty interface.
- *
- * @version 1.0
- * first version
- *
- * @date 02-13-2005
- *
- * @author mickem
- *
- * @par license
- * This code is absolutely free to use and modify. The code is provided "as is" with
- * no expressed or implied warranty. The author accepts no liability if it causes
- * any damage to your computer, causes your pet to fall ill, increases baldness
- * or makes your car start emitting strange noises when you start it up.
- * This code has no bugs, just undocumented features!
- * 
- * @todo Make this class (or another) handle multiple instances of the thread ?
- */
-template <class T> 
-class Thread {
-private:
-	std::wstring threadid_;
-	HANDLE hThread_;		// Thread handle
-	T* pObject_;			// Wrapped object
-	HANDLE hMutex_;			// Mutex to protect internal data
-	unsigned uThreadID;		// THe thread ID
-
-
-	bool bThreadHasTerminated;
-	bool bThreadHasBeenClosed;
-
-#define THREAD_MAGIC_ID 123456
-
-	typedef struct thread_param {
-		T *instance;		// The thread instance object
-		LPVOID lpParam;		// The optional argument to the thread
-		Thread *pCore;
-		unsigned int magic_id;
-	} thread_param;
-
-public:
-	/**
-	 * Default c-tor.
-	 * Sets up default values
-	 */
-	Thread(std::wstring threadid) : threadid_(threadid), hThread_(NULL), pObject_(NULL), uThreadID(-1), bThreadHasTerminated(false), bThreadHasBeenClosed(false) {
-		hMutex_ = CreateMutex(NULL, FALSE, NULL);
-		if (hMutex_ == NULL) {
-			std::wcerr << _T("Failed to create thread mutec for thread: ") << threadid << _T(": ") << GetLastError() << std::endl;
-		}
-	}
-	/**
-	 * Default d-tor.
-	 * Does not really kill the thread only closes the handle to it.
-	 *  @bug Should perhaps kill the thread, delete the object etc ?
-	 */
-	virtual ~Thread() {
-		{
-			if (bThreadHasBeenClosed && bThreadHasTerminated)
-				;
-			else if (bThreadHasBeenClosed||bThreadHasTerminated)
-				std::wcout << "Thread has not terminated correctly: " << threadid_ << "..." << std::endl;
-			/*
-			MutexLock mutex(hMutex_, 5000L);
-			if (!mutex.hasMutex()) {
-				throw ThreadException("Could not retrieve mutex when killing thread, we are fucked...");
-			}
-			hThread_ = NULL;
-			if (hStopEvent_)
-				CloseHandle(hStopEvent_);
-			hStopEvent_ = NULL;
-			delete pObject_;
-			*/
-//			pObject_ = NULL;
-//			CloseHandle(hThread_);
-		}
-		if (hMutex_)
-			CloseHandle(hMutex_);
-		hMutex_ = NULL;
-	}
-
-private:
-	/**
-	 * Static thread instance (this is the real thread procedure that wraps the internal objects)
-	 * This function will wait for <b>nice</b> termination of the process so if that does not happen the thread canoot quit.
-	 *
-	 * @param lpParameter thread_param* with arguments for the thread construction
-	 * @return exit status
-	 */
-	static unsigned __stdcall threadProc(void* lpParameter) {
-		thread_param* param = static_cast<thread_param*>(lpParameter);
-		if (param->magic_id != THREAD_MAGIC_ID) {
-			std::wcerr << _T("Thread magic ID check failed :(") << std::endl;
-			_endthreadex( 0 );
-			return 0;
-		}
-		T* instance = param->instance;
-		LPVOID lpParam = param->lpParam;
-		Thread *pCore = param->pCore;
-		delete param;
-		unsigned returnCode = 0;
-		try {
-			returnCode = instance->threadProc(lpParam);
-		} catch (...) {
-			std::wcerr << _T("Unhandled exception in thread a :(") << std::endl;
-		}
-		pCore->terminate();
-		_endthreadex( 0 );
-		return returnCode;
-	}
-
-public:
-	/**
-	 * Create a thread and possibly send a parameter to it.
-	 * If a thread has already been create this function will throw an exception
-	 * <b>NOTICE</b> The object returned is managed inside this object so it is not very safe to use it.
-	 *
-	 * @param lpParam An argument to the thread
-	 * @return An instance of the thread object.
-	 * @bug the object return thing is *unsafe* and should be changed (if the thread is terminated that pointer is invalidated without any signal).
-	 */
-	void createThread(LPVOID lpParam = NULL) {
-		if (hMutex_ == NULL)
-			throw ThreadException(_T("No mutex in createThread (") + threadid_ + _T(") not started..."));
-		thread_param* param = NULL;
-		{
-			MutexLock mutex(hMutex_, 5000L);
-			if (!mutex.hasMutex()) {
-				throw ThreadException(_T("Could not retrieve mutex, thread (") + threadid_ + _T(") not started..."));
-			}
-			if (pObject_) {
-				throw ThreadException(_T("Thread already started, thread (") + threadid_ + _T(") not started..."));
-			}
-			param = new thread_param;
-			if (param == NULL)
-				throw ThreadException(_T("Failed to allocate memory for new thread: ") + threadid_);
-			param->instance = pObject_ = new T;
-			if (param->instance == NULL)
-				throw ThreadException(_T("Failed to allocate memory for new thread: ") + threadid_);
-			param->lpParam = lpParam;
-			param->pCore = this;
-			param->magic_id = THREAD_MAGIC_ID;
-		}
-		uintptr_t thread_handle = ::_beginthreadex(NULL, 0, threadProc, reinterpret_cast<VOID*>(param), 0, &uThreadID);
-		if (thread_handle == 0 || thread_handle == 1 || thread_handle == -1) {
-			throw ThreadException(_T("Failed to create the thread (") + threadid_ + _T(")."));
-		}
-		hThread_ = reinterpret_cast<HANDLE>(thread_handle);
-	}
-	/**
-	 * Ask the thread to terminate (within 5 seconds) if not return false.
-	 * @param delay The time to wait for the thread
-	 * @return true if the thread has terminated
-	 */
-	bool exitThread(const unsigned int delay = 20000L) {
-		if (hMutex_ == NULL)
-			throw ThreadException(_T("No mutex in createThread (") + threadid_ + _T(") not started..."));
-		DWORD dwWaitResult = -1;
-		{
-			MutexLock mutex(hMutex_, delay);
-			if (!mutex.hasMutex()) {
-				throw ThreadException(_T("Could not retrieve mutex, thread (") + threadid_ + _T(") not stopped..."));
-			}
-			if (!pObject_)
-				return true;
-			pObject_->exitThread();
-		}
-		dwWaitResult = WaitForSingleObject(hThread_, delay);
-		if (dwWaitResult == WAIT_OBJECT_0) {
-			bThreadHasBeenClosed = true;
-			CloseHandle(hThread_);
-			delete pObject_;
-			pObject_ = NULL;
-			return true;
-		}
-		std::wcerr << _T("Failed to terminate thread: ") << threadid_ << _T("...") << std::endl;
-		return false;
-	}
-	bool hasActiveThread() const {
-		MutexLock mutex(hMutex_, 5000L);
-		if (!mutex.hasMutex()) {
-			throw ThreadException(_T("Could not retrieve mutex, thread (") + threadid_ + _T(") not stopped..."));
-		}
-		if (bThreadHasTerminated||bThreadHasBeenClosed)
-			return false;
-		return pObject_ != NULL;
-	}
-	const T* getThreadConst() const {
-		MutexLock mutex(hMutex_, 5000L);
-		if (!mutex.hasMutex()) {
-			throw ThreadException(_T("Could not retrieve mutex, thread (") + threadid_ + _T(") not stopped..."));
-		}
-		if (bThreadHasTerminated||bThreadHasBeenClosed)
-			return NULL;
-		return pObject_;
-	}
-	T* getThread() {
-		MutexLock mutex(hMutex_, 5000L);
-		if (!mutex.hasMutex()) {
-			throw ThreadException(_T("Could not retrieve mutex, thread (") + threadid_ + _T(") not stopped..."));
-		}
-		if (bThreadHasTerminated||bThreadHasBeenClosed)
-			return NULL;
-		return pObject_;
-	}
-private:
-	void terminate() {
-		bThreadHasTerminated = true;
-	}
-};
-
Index: gs/0.3.1/include/utils.cpp
===================================================================
--- tags/0.3.1/include/utils.cpp	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,76 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-
-#include <utils.h>
-
-static unsigned long crc32_table[256];
-static bool hascrc32 = false;
-void generate_crc32_table(void){
-	unsigned long crc, poly;
-	int i, j;
-	poly=0xEDB88320L;
-	for(i=0;i<256;i++){
-		crc=i;
-		for(j=8;j>0;j--){
-			if(crc & 1)
-				crc=(crc>>1)^poly;
-			else
-				crc>>=1;
-		}
-		crc32_table[i]=crc;
-	}
-	hascrc32 = true;
-}
-unsigned long calculate_crc32(const char *buffer, int buffer_size){
-	if (!hascrc32)
-		generate_crc32_table();
-	register unsigned long crc;
-	int this_char;
-	int current_index;
-
-	crc=0xFFFFFFFF;
-
-	for(current_index=0;current_index<buffer_size;current_index++){
-		this_char=(int)buffer[current_index];
-		crc=((crc>>8) & 0x00FFFFFF) ^ crc32_table[(crc ^ this_char) & 0xFF];
-	}
-
-	return (crc ^ 0xFFFFFFFF);
-}
-
-unsigned long calculate_crc32(const unsigned char *buffer, int buffer_size){
-	if (!hascrc32)
-		generate_crc32_table();
-	register unsigned long crc;
-	int this_char;
-	int current_index;
-
-	crc=0xFFFFFFFF;
-
-	for(current_index=0;current_index<buffer_size;current_index++){
-		this_char=(int)buffer[current_index];
-		crc=((crc>>8) & 0x00FFFFFF) ^ crc32_table[(crc ^ this_char) & 0xFF];
-	}
-
-	return (crc ^ 0xFFFFFFFF);
-}
-
-
Index: gs/0.3.1/include/utils.h
===================================================================
--- tags/0.3.1/include/utils.h	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,108 +1,0 @@
-/**************************************************************************
-*   Copyright (C) 2004-2007 by Michael Medin <michael@medin.name>         *
-*                                                                         *
-*   This code is part of NSClient++ - http://trac.nakednuns.org/nscp      *
-*                                                                         *
-*   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.             *
-***************************************************************************/
-#pragma once
-
-#include <string>
-#include <strEx.h>
-
-void generate_crc32_table(void);
-unsigned long calculate_crc32(const char *buffer, int buffer_size);
-unsigned long calculate_crc32(const unsigned char *buffer, int buffer_size);
-
-
-#define MAP_OPTIONS_BEGIN(args) \
-	for (std::list<std::wstring>::const_iterator cit__=args.begin();cit__!=args.end();++cit__) { \
-	std::pair<std::wstring,std::wstring> p__ = strEx::split(*cit__,_T("=")); if (false) {}
-
-#define MAP_OPTIONS_SHOWALL(obj) \
-			else if (p__.first == SHOW_ALL) { if (p__.second == _T("long")) obj.show = checkHolders::showLong; else obj.show = checkHolders::showShort; } \
-			else if (p__.first == SHOW_FAIL) { obj.show = checkHolders::showProblems; }
-
-#define MAP_OPTIONS_DISK_ALL(obj, postfix, pfUpper, pfLower) \
-			else if (p__.first == _T("MaxWarn") pfUpper) { obj.warn.max.upper = p__.second; } \
-			else if (p__.first == _T("MaxCrit") pfUpper) { obj.crit.max.upper = p__.second; } \
-			else if (p__.first == _T("MinWarn") pfUpper) { obj.warn.min.upper = p__.second; } \
-			else if (p__.first == _T("MinCrit") pfUpper) { obj.crit.min.upper = p__.second; } \
-			else if (p__.first == _T("MaxWarn") pfLower) { obj.warn.max.lower = p__.second; } \
-			else if (p__.first == _T("MaxCrit") pfLower) { obj.crit.max.lower = p__.second; } \
-			else if (p__.first == _T("MinWarn") pfLower) { obj.warn.min.lower = p__.second; } \
-			else if (p__.first == _T("MinCrit") pfLower) { obj.crit.min.lower = p__.second; } \
-			else if (p__.first == _T("MaxWarn") postfix) { obj.warn.max.lower = p__.second; } \
-			else if (p__.first == _T("MaxCrit") postfix) { obj.crit.max.lower = p__.second; } \
-			else if (p__.first == _T("MinWarn") postfix) { obj.warn.min.upper = p__.second; } \
-			else if (p__.first == _T("MinCrit") postfix) { obj.crit.min.upper = p__.second; }
-
-#define MAP_OPTIONS_NUMERIC_ALL(obj, postfix) \
-			else if (p__.first == (_T("MaxWarn") postfix)) { obj.warn.max = p__.second; } \
-			else if (p__.first == (_T("MaxCrit") postfix)) { obj.crit.max = p__.second; } \
-			else if (p__.first == (_T("MinWarn") postfix)) { obj.warn.min = p__.second; } \
-			else if (p__.first == (_T("MinCrit") postfix)) { obj.crit.min = p__.second; }
-
-#define MAP_OPTIONS_PUSH_WTYPE(type, value, obj, list) \
-			else if (p__.first == value) { type o; o.obj = p__.second; list.push_back(o); }
-#define MAP_OPTIONS_PUSH(value, list) \
-			else if (p__.first == value) { list.push_back(p__.second); }
-#define MAP_OPTIONS_INSERT(value, list) \
-			else if (p__.first == value) { list.insert(p__.second); }
-#define MAP_OPTIONS_DO(action) \
-			else if (p__.first == value) { action; }
-#define MAP_OPTIONS_STR(value, obj) \
-			else if (p__.first == value) { obj = p__.second; }
-#define MAP_OPTIONS_STR2INT(value, obj) \
-			else if (p__.first == value) { obj = _wtoi(p__.second.c_str()); }
-#define MAP_OPTIONS_STR_AND(value, obj, extra) \
-			else if (p__.first == value) { obj = p__.second; extra;}
-#define MAP_OPTIONS_BOOL_TRUE(value, obj) \
-			else if (p__.first == value) { obj = true; }
-#define MAP_OPTIONS_BOOL_FALSE(value, obj) \
-			else if (p__.first == value) { obj = false; }
-#define MAP_OPTIONS_BOOL_VALUE(value, obj, tStr) \
-			else if ((p__.first == value)&&(p__.second == tStr)) { obj = true; } 
-#define MAP_OPTIONS_MODE(value, tStr, obj, oVal) \
-			else if ((p__.first == value)&&(p__.second == tStr)) { obj = oVal; } 
-#define MAP_OPTIONS_BOOL_EX(value, obj, tStr, fStr) \
-			else if ((p__.first == value)&&(p__.second == tStr)) { obj = true; } \
-			else if ((p__.first == value)&&(p__.second == fStr)) { obj = false; }
-#define MAP_OPTIONS_MISSING(arg, str) \
-			else { arg = str + p__.first; return NSCAPI::returnUNKNOWN; }
-#define MAP_OPTIONS_FALLBACK(obj) \
-			else { obj = p__.first;}
-#define MAP_OPTIONS_FALLBACK_AND(obj, extra) \
-			else { obj = p__.first; extra;}
-#define MAP_OPTIONS_END() }
-
-#define MAP_OPTIONS_USELESS_IF_LAST(lst) \
-			else if (cit__ == --lst.end()) { NSC_LOG_MESSAGE_STD(_T("Warning: Useless last argument: ") + p__.first); }
-#define MAP_OPTIONS_MISSING_EX(opt, arg, str) \
-		else { arg = str + opt.first; return NSCAPI::returnUNKNOWN; }
-
-#define MAP_OPTIONS_SECONDARY_BEGIN(splt, arg) \
-	else if (p__.first.find(splt) != std::wstring::npos) { \
-	std::pair<std::wstring,std::wstring> arg = strEx::split(p__.first,splt); if (false) {}
-
-#define MAP_OPTIONS_SECONDARY_STR_AND(opt, value, objfirst, objsecond, extra) \
-			else if (opt.first == value) { objfirst = p__.second; objsecond = opt.second; extra;}
-
-#define MAP_OPTIONS_FIRST_CHAR(splt, obj, extra) \
-	else if (p__.first.size() > 1 && p__.first[0] == splt) { \
-			obj = p__.first; extra;}
-
-#define MAP_OPTIONS_SECONDARY_END() }
Index: gs/0.3.1/lib-source/Crypto++/Crypto++.vcproj
===================================================================
--- tags/0.3.1/lib-source/Crypto++/Crypto++.vcproj	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,1504 +1,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="Crypto++"
-	ProjectGUID="{630857C0-6AD8-4CEE-B5F7-CA1DF620CA9A}"
-	RootNamespace="Crypt"
-	AssemblyReferenceSearchPaths="&quot;D:\source\libs-c\crypto++&quot;"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-		<DefaultToolFile
-			FileName="masm.rules"
-		/>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)lib\$(ConfigurationName)\$(PlatformName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="MASM"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				EnableIntrinsicFunctions="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)lib\$(ConfigurationName)\$(PlatformName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="MASM"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				EnableIntrinsicFunctions="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				AdditionalDependencies=" $(IntDir)\x64masm.obj"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)lib\$(ConfigurationName)\$(PlatformName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="MASM"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				RuntimeLibrary="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)lib\$(ConfigurationName)\$(PlatformName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="MASM"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				RuntimeLibrary="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				AdditionalDependencies=" $(IntDir)\x64masm.obj"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Nightly|Win32"
-			OutputDirectory="$(SolutionDir)lib\$(ConfigurationName)\$(PlatformName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="MASM"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				RuntimeLibrary="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Nightly|x64"
-			OutputDirectory="$(SolutionDir)lib\$(ConfigurationName)\$(PlatformName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo mkdir &quot;$(SolutionDir)include\crypto++&quot;&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(SolutionDir)include\crypto++&quot;&quot;&#x0D;&#x0A;echo copy &quot;$(InputDir)src\\*.h&quot; &quot;$(SolutionDir)include\crypto++&quot;&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)src\*.h&quot; &quot;$(SolutionDir)include\crypto++&quot;&quot;&#x0D;&#x0A;"
-				Outputs="$(SolutionDir)include\crypto++\cryptlib.h"
-			/>
-			<Tool
-				Name="MASM"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				RuntimeLibrary="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				AdditionalDependencies=" $(IntDir)\x64masm.obj"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="src\3way.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\adler32.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\algebra.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\algparam.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\arc4.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\asn.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\base32.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\base64.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\basecode.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\bench.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\bench2.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\bfinit.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\blowfish.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\blumshub.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\camellia.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\cast.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\casts.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\cbcmac.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\channels.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\cpu.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\crc.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\cryptlib.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\cryptlib_bds.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\datatest.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\default.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\des.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\dessp.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\dh.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\dh2.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\dll.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\dlltest.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\dsa.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\ec2n.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\eccrypto.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\ecp.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\elgamal.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\emsa2.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\eprecomp.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\esign.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\files.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\filters.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\fips140.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\fipsalgt.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\fipstest.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\gf256.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\gf2_32.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\gf2n.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\gfpcrypt.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\gost.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\gzip.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\hex.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\hmac.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\hrtimer.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\ida.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\idea.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\integer.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\iterhash.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\luc.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\mars.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\marss.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\md2.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\md4.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\md5.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\misc.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\modes.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\mqueue.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\mqv.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\nbtheory.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\network.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\oaep.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\osrng.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\panama.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\pch.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\pkcspad.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\polynomi.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\pssr.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\pubkey.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\queue.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\rabin.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\randpool.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\rc2.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\rc5.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\rc6.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\rdtables.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\regtest.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\rijndael.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\ripemd.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\rng.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\rsa.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\rw.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\safer.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\salsa.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\seal.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\serpent.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\sha.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\shacal2.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\shark.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\sharkbox.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\simple.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\skipjack.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\socketft.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\sosemanuk.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\square.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\squaretb.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\strciphr.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\tea.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\test.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\tftables.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\tiger.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\tigertab.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\trdlocal.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\ttmac.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\twofish.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\validat1.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\validat2.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\validat3.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\vmac.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\wait.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\wake.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\whrlpool.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\winpipes.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\x64masm.asm"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="MASM"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="ml64.exe /c /nologo /Fo&quot;$(IntDir)\x64masm.obj&quot; /Zi &quot;$(InputPath)&quot;"
-						Outputs="$(IntDir)\x64masm.obj"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="MASM"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="ml64.exe /c /nologo /Fo&quot;$(IntDir)\x64masm.obj&quot; /Zi &quot;$(InputPath)&quot;"
-						Outputs="$(IntDir)\x64masm.obj"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="MASM"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="ml64.exe /c /nologo /Fo&quot;$(IntDir)\x64masm.obj&quot; /Zi &quot;$(InputPath)&quot;"
-						Outputs="$(IntDir)\x64masm.obj"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="src\xtr.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\xtrcrypt.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\zdeflate.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\zinflate.cpp"
-				>
-			</File>
-			<File
-				RelativePath="src\zlib.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="src\3way.h"
-				>
-			</File>
-			<File
-				RelativePath="src\adler32.h"
-				>
-			</File>
-			<File
-				RelativePath="src\aes.h"
-				>
-			</File>
-			<File
-				RelativePath="src\algebra.h"
-				>
-			</File>
-			<File
-				RelativePath="src\algparam.h"
-				>
-			</File>
-			<File
-				RelativePath="src\arc4.h"
-				>
-			</File>
-			<File
-				RelativePath="src\argnames.h"
-				>
-			</File>
-			<File
-				RelativePath="src\asn.h"
-				>
-			</File>
-			<File
-				RelativePath="src\base32.h"
-				>
-			</File>
-			<File
-				RelativePath="src\base64.h"
-				>
-			</File>
-			<File
-				RelativePath="src\basecode.h"
-				>
-			</File>
-			<File
-				RelativePath="src\bench.h"
-				>
-			</File>
-			<File
-				RelativePath="src\blowfish.h"
-				>
-			</File>
-			<File
-				RelativePath="src\blumshub.h"
-				>
-			</File>
-			<File
-				RelativePath="src\camellia.h"
-				>
-			</File>
-			<File
-				RelativePath="src\cast.h"
-				>
-			</File>
-			<File
-				RelativePath="src\cbcmac.h"
-				>
-			</File>
-			<File
-				RelativePath="src\channels.h"
-				>
-			</File>
-			<File
-				RelativePath="src\config.h"
-				>
-			</File>
-			<File
-				RelativePath="src\cpu.h"
-				>
-			</File>
-			<File
-				RelativePath="src\crc.h"
-				>
-			</File>
-			<File
-				RelativePath="src\cryptlib.h"
-				>
-			</File>
-			<File
-				RelativePath="src\default.h"
-				>
-			</File>
-			<File
-				RelativePath="src\des.h"
-				>
-			</File>
-			<File
-				RelativePath="src\dh.h"
-				>
-			</File>
-			<File
-				RelativePath="src\dh2.h"
-				>
-			</File>
-			<File
-				RelativePath="src\dll.h"
-				>
-			</File>
-			<File
-				RelativePath="src\dmac.h"
-				>
-			</File>
-			<File
-				RelativePath="src\dsa.h"
-				>
-			</File>
-			<File
-				RelativePath="src\ec2n.h"
-				>
-			</File>
-			<File
-				RelativePath="src\eccrypto.h"
-				>
-			</File>
-			<File
-				RelativePath="src\ecp.h"
-				>
-			</File>
-			<File
-				RelativePath="src\elgamal.h"
-				>
-			</File>
-			<File
-				RelativePath="src\emsa2.h"
-				>
-			</File>
-			<File
-				RelativePath="src\eprecomp.h"
-				>
-			</File>
-			<File
-				RelativePath="src\esign.h"
-				>
-			</File>
-			<File
-				RelativePath="src\factory.h"
-				>
-			</File>
-			<File
-				RelativePath="src\files.h"
-				>
-			</File>
-			<File
-				RelativePath="src\filters.h"
-				>
-			</File>
-			<File
-				RelativePath="src\fips140.h"
-				>
-			</File>
-			<File
-				RelativePath="src\fltrimpl.h"
-				>
-			</File>
-			<File
-				RelativePath="src\gf256.h"
-				>
-			</File>
-			<File
-				RelativePath="src\gf2_32.h"
-				>
-			</File>
-			<File
-				RelativePath="src\gf2n.h"
-				>
-			</File>
-			<File
-				RelativePath="src\gfpcrypt.h"
-				>
-			</File>
-			<File
-				RelativePath="src\gost.h"
-				>
-			</File>
-			<File
-				RelativePath="src\gzip.h"
-				>
-			</File>
-			<File
-				RelativePath="src\hex.h"
-				>
-			</File>
-			<File
-				RelativePath="src\hmac.h"
-				>
-			</File>
-			<File
-				RelativePath="src\hrtimer.h"
-				>
-			</File>
-			<File
-				RelativePath="src\ida.h"
-				>
-			</File>
-			<File
-				RelativePath="src\idea.h"
-				>
-			</File>
-			<File
-				RelativePath="src\integer.h"
-				>
-			</File>
-			<File
-				RelativePath="src\iterhash.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lubyrack.h"
-				>
-			</File>
-			<File
-				RelativePath="src\luc.h"
-				>
-			</File>
-			<File
-				RelativePath="src\mars.h"
-				>
-			</File>
-			<File
-				RelativePath="src\md2.h"
-				>
-			</File>
-			<File
-				RelativePath="src\md4.h"
-				>
-			</File>
-			<File
-				RelativePath="src\md5.h"
-				>
-			</File>
-			<File
-				RelativePath="src\mdc.h"
-				>
-			</File>
-			<File
-				RelativePath="src\misc.h"
-				>
-			</File>
-			<File
-				RelativePath="src\modarith.h"
-				>
-			</File>
-			<File
-				RelativePath="src\modes.h"
-				>
-			</File>
-			<File
-				RelativePath="src\modexppc.h"
-				>
-			</File>
-			<File
-				RelativePath="src\mqueue.h"
-				>
-			</File>
-			<File
-				RelativePath="src\mqv.h"
-				>
-			</File>
-			<File
-				RelativePath="src\nbtheory.h"
-				>
-			</File>
-			<File
-				RelativePath="src\network.h"
-				>
-			</File>
-			<File
-				RelativePath="src\nr.h"
-				>
-			</File>
-			<File
-				RelativePath="src\oaep.h"
-				>
-			</File>
-			<File
-				RelativePath="src\oids.h"
-				>
-			</File>
-			<File
-				RelativePath="src\osrng.h"
-				>
-			</File>
-			<File
-				RelativePath="src\panama.h"
-				>
-			</File>
-			<File
-				RelativePath="src\pch.h"
-				>
-			</File>
-			<File
-				RelativePath="src\pkcspad.h"
-				>
-			</File>
-			<File
-				RelativePath="src\polynomi.h"
-				>
-			</File>
-			<File
-				RelativePath="src\pssr.h"
-				>
-			</File>
-			<File
-				RelativePath="src\pubkey.h"
-				>
-			</File>
-			<File
-				RelativePath="src\pwdbased.h"
-				>
-			</File>
-			<File
-				RelativePath="src\queue.h"
-				>
-			</File>
-			<File
-				RelativePath="src\rabin.h"
-				>
-			</File>
-			<File
-				RelativePath="src\randpool.h"
-				>
-			</File>
-			<File
-				RelativePath="src\rc2.h"
-				>
-			</File>
-			<File
-				RelativePath="src\rc5.h"
-				>
-			</File>
-			<File
-				RelativePath="src\rc6.h"
-				>
-			</File>
-			<File
-				RelativePath="src\resource.h"
-				>
-			</File>
-			<File
-				RelativePath="src\rijndael.h"
-				>
-			</File>
-			<File
-				RelativePath="src\ripemd.h"
-				>
-			</File>
-			<File
-				RelativePath="src\rng.h"
-				>
-			</File>
-			<File
-				RelativePath="src\rsa.h"
-				>
-			</File>
-			<File
-				RelativePath="src\rw.h"
-				>
-			</File>
-			<File
-				RelativePath="src\safer.h"
-				>
-			</File>
-			<File
-				RelativePath="src\salsa.h"
-				>
-			</File>
-			<File
-				RelativePath="src\seal.h"
-				>
-			</File>
-			<File
-				RelativePath="src\secblock.h"
-				>
-			</File>
-			<File
-				RelativePath="src\seckey.h"
-				>
-			</File>
-			<File
-				RelativePath="src\serpent.h"
-				>
-			</File>
-			<File
-				RelativePath="src\serpentp.h"
-				>
-			</File>
-			<File
-				RelativePath="src\sha.h"
-				>
-			</File>
-			<File
-				RelativePath="src\shacal2.h"
-				>
-			</File>
-			<File
-				RelativePath="src\shark.h"
-				>
-			</File>
-			<File
-				RelativePath="src\simple.h"
-				>
-			</File>
-			<File
-				RelativePath="src\skipjack.h"
-				>
-			</File>
-			<File
-				RelativePath="src\smartptr.h"
-				>
-			</File>
-			<File
-				RelativePath="src\socketft.h"
-				>
-			</File>
-			<File
-				RelativePath="src\sosemanuk.h"
-				>
-			</File>
-			<File
-				RelativePath="src\square.h"
-				>
-			</File>
-			<File
-				RelativePath="src\stdcpp.h"
-				>
-			</File>
-			<File
-				RelativePath="src\strciphr.h"
-				>
-			</File>
-			<File
-				RelativePath="src\tea.h"
-				>
-			</File>
-			<File
-				RelativePath="src\tiger.h"
-				>
-			</File>
-			<File
-				RelativePath="src\trdlocal.h"
-				>
-			</File>
-			<File
-				RelativePath="src\trunhash.h"
-				>
-			</File>
-			<File
-				RelativePath="src\ttmac.h"
-				>
-			</File>
-			<File
-				RelativePath="src\twofish.h"
-				>
-			</File>
-			<File
-				RelativePath="src\validate.h"
-				>
-			</File>
-			<File
-				RelativePath="src\vmac.h"
-				>
-			</File>
-			<File
-				RelativePath="src\wait.h"
-				>
-			</File>
-			<File
-				RelativePath="src\wake.h"
-				>
-			</File>
-			<File
-				RelativePath="src\whrlpool.h"
-				>
-			</File>
-			<File
-				RelativePath="src\winpipes.h"
-				>
-			</File>
-			<File
-				RelativePath="src\words.h"
-				>
-			</File>
-			<File
-				RelativePath="src\xtr.h"
-				>
-			</File>
-			<File
-				RelativePath="src\xtrcrypt.h"
-				>
-			</File>
-			<File
-				RelativePath="src\zdeflate.h"
-				>
-			</File>
-			<File
-				RelativePath="src\zinflate.h"
-				>
-			</File>
-			<File
-				RelativePath="src\zlib.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-			<File
-				RelativePath="src\cryptopp.rc"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
Index: gs/0.3.1/lib-source/LUA/LUA.vcproj
===================================================================
--- tags/0.3.1/lib-source/LUA/LUA.vcproj	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,626 +1,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="LUA"
-	ProjectGUID="{B6D08289-B8AE-4391-9D07-93B22618BE58}"
-	RootNamespace="LUA"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)lib\$(ConfigurationName)\$(PlatformName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo mkdir &quot;$(SolutionDir)include\LUA&quot;&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(SolutionDir)include\LUA&quot;&quot;&#x0D;&#x0A;echo copy &quot;$(InputDir)src\lua-5.1.2\src\*.h&quot; &quot;$(SolutionDir)include\LUA&quot;&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)src\lua-5.1.2\src\*.h&quot; &quot;$(SolutionDir)include\LUA&quot;&quot;"
-				Outputs="$(SolutionDir)\include\LUA\lua.h"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)lib\$(ConfigurationName)\$(PlatformName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo mkdir &quot;$(SolutionDir)include\LUA&quot;&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(SolutionDir)include\LUA&quot;&quot;&#x0D;&#x0A;echo copy &quot;$(InputDir)src\lua-5.1.2\src\*.h&quot; &quot;$(SolutionDir)include\LUA&quot;&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)src\lua-5.1.2\src\*.h&quot; &quot;$(SolutionDir)include\LUA&quot;&quot;"
-				Outputs="$(SolutionDir)\include\LUA\lua.h"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)lib\$(ConfigurationName)\$(PlatformName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo mkdir &quot;$(SolutionDir)include\LUA&quot;&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(SolutionDir)include\LUA&quot;&quot;&#x0D;&#x0A;echo copy &quot;$(InputDir)src\lua-5.1.2\src\*.h&quot; &quot;$(SolutionDir)include\LUA&quot;&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)src\lua-5.1.2\src\*.h&quot; &quot;$(SolutionDir)include\LUA&quot;&quot;"
-				Outputs="$(SolutionDir)\include\LUA\lua.h"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"
-				RuntimeLibrary="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)lib\$(ConfigurationName)\$(PlatformName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo mkdir &quot;$(SolutionDir)include\LUA&quot;&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(SolutionDir)include\LUA&quot;&quot;&#x0D;&#x0A;echo copy &quot;$(InputDir)src\lua-5.1.2\src\*.h&quot; &quot;$(SolutionDir)include\LUA&quot;&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)src\lua-5.1.2\src\*.h&quot; &quot;$(SolutionDir)include\LUA&quot;&quot;"
-				Outputs="$(SolutionDir)\include\LUA\lua.h"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"
-				RuntimeLibrary="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Nightly|Win32"
-			OutputDirectory="$(SolutionDir)lib\$(ConfigurationName)\$(PlatformName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo mkdir &quot;$(SolutionDir)include\LUA&quot;&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(SolutionDir)include\LUA&quot;&quot;&#x0D;&#x0A;echo copy &quot;$(InputDir)src\lua-5.1.2\src\*.h&quot; &quot;$(SolutionDir)include\LUA&quot;&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)src\lua-5.1.2\src\*.h&quot; &quot;$(SolutionDir)include\LUA&quot;&quot;"
-				Outputs="$(SolutionDir)\include\LUA\lua.h"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"
-				RuntimeLibrary="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Nightly|x64"
-			OutputDirectory="$(SolutionDir)lib\$(ConfigurationName)\$(PlatformName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				CommandLine="echo mkdir &quot;$(SolutionDir)include\LUA&quot;&#x0D;&#x0A;cmd /c &quot;mkdir &quot;$(SolutionDir)include\LUA&quot;&quot;&#x0D;&#x0A;echo copy &quot;$(InputDir)src\lua-5.1.2\src\*.h&quot; &quot;$(SolutionDir)include\LUA&quot;&#x0D;&#x0A;cmd /c &quot;copy &quot;$(InputDir)src\lua-5.1.2\src\*.h&quot; &quot;$(SolutionDir)include\LUA&quot;&quot;"
-				Outputs="$(SolutionDir)\include\LUA\lua.h"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"
-				RuntimeLibrary="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="src\lua-5.1.2\src\lapi.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lauxlib.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lbaselib.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lcode.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\ldblib.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\ldebug.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\ldo.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\ldump.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lfunc.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lgc.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\linit.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\liolib.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\llex.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lmathlib.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lmem.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\loadlib.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lobject.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lopcodes.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\loslib.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lparser.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lstate.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lstring.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lstrlib.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\ltable.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\ltablib.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\ltm.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lundump.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lvm.c"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lzio.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="src\lua-5.1.2\src\lapi.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lauxlib.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lcode.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\ldebug.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\ldo.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lfunc.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lgc.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\llex.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\llimits.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lmem.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lobject.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lopcodes.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lparser.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lstate.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lstring.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\ltable.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\ltm.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lua.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\luaconf.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lualib.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lundump.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lvm.h"
-				>
-			</File>
-			<File
-				RelativePath="src\lua-5.1.2\src\lzio.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
Index: gs/0.3.1/modules/CheckDisk/CheckDisk-2005.vcproj
===================================================================
--- tags/0.3.1/modules/CheckDisk/CheckDisk-2005.vcproj	(revision e1ab779d751fe83a5dacd8631e54ace8039a9c46)
+++ 	(revision )
@@ -1,1823 +1,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8,00"
-	Name="CheckDisk"
-	ProjectGUID="{E6E588AB-EFEF-481C-9AF7-DCDCB95CFF45}"
-	RootNamespace="CheckDisk"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-		<Platform
-			Name="Itanium"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="Debug"
-			IntermediateDirectory="Debug"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../include;../../include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="../../Debug/modules/$(ProjectName).dll"
-				LinkIncremental="2"
-				ModuleDefinitionFile="CheckDisk.def"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/CheckDisk.pdb"
-				SubSystem="2"
-				ImportLibrary="$(OutDir)/CheckDisk.lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../include;../../include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_STLP_USE_NEWALLOC;_STLP_DEBUG=1;_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="../../Debug/modules/$(ProjectName).dll"
-				LinkIncremental="2"
-				ModuleDefinitionFile="CheckDisk.def"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/CheckDisk.pdb"
-				SubSystem="2"
-				ImportLibrary="$(OutDir)/CheckDisk.lib"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\modules"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../include;../../include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; _CRT_SECURE_NO_DEPRECATE"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="../../Release/modules/$(ProjectName).dll"
-				LinkIncremental="1"
-				ModuleDefinitionFile="CheckDisk.def"
-				GenerateDebugInformation="false"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				ImportLibrary="$(OutDir)/CheckDisk.lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\modules"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../include;../../include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; _CRT_SECURE_NO_DEPRECATE"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="../../Release/modules/$(ProjectName).dll"
-				LinkIncremental="1"
-				ModuleDefinitionFile="CheckDisk.def"
-				GenerateDebugInformation="false"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				ImportLibrary="$(OutDir)/CheckDisk.lib"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Distribution|Win32"
-			OutputDirectory="$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../include;../../include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="../../Dist/modules/$(ProjectName).dll"
-				LinkIncremental="1"
-				ModuleDefinitionFile="CheckDisk.def"
-				GenerateDebugInformation="false"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				ImportLibrary="$(OutDir)/CheckDisk.lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Distribution|x64"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../include;../../include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="../../Dist/modules/$(ProjectName).dll"
-				LinkIncremental="1"
-				ModuleDefinitionFile="CheckDisk.def"
-				GenerateDebugInformation="false"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				ImportLibrary="$(OutDir)/CheckDisk.lib"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Nightly|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\modules"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../include;../../include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS"
-				UsePrecompiledHeader="2"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="1"
-				ModuleDefinitionFile="CheckDisk.def"
-				GenerateDebugInformation="false"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Nightly|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\modules"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../include;../../include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
-				UsePrecompiledHeader="2"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="1"
-				ModuleDefinitionFile="CheckDisk.def"
-				GenerateDebugInformation="false"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug-MemCheck|Win32"
-			OutputDirectory="$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../include;../../include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;MEMCHECK"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="../../Debug/modules/$(ProjectName).dll"
-				LinkIncremental="2"
-				ModuleDefinitionFile="CheckDisk.def"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/CheckDisk.pdb"
-				SubSystem="2"
-				ImportLibrary="$(OutDir)/CheckDisk.lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug-MemCheck|x64"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../include;../../include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_STLP_USE_NEWALLOC;_STLP_DEBUG=1;_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="../../Debug/modules/$(ProjectName).dll"
-				LinkIncremental="2"
-				ModuleDefinitionFile="CheckDisk.def"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/CheckDisk.pdb"
-				SubSystem="2"
-				ImportLibrary="$(OutDir)/CheckDisk.lib"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|Itanium"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="2"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../include;../../include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_STLP_USE_NEWALLOC;_STLP_DEBUG=1;_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="../../Debug/modules/$(ProjectName).dll"
-				LinkIncremental="2"
-				ModuleDefinitionFile="CheckDisk.def"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/CheckDisk.pdb"
-				SubSystem="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				ImportLibrary="$(OutDir)/CheckDisk.lib"
-				TargetMachine="5"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Itanium"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="2"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../include;../../include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; _CRT_SECURE_NO_DEPRECATE"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="../../Release/modules/$(ProjectName).dll"
-				LinkIncremental="1"
-				ModuleDefinitionFile="CheckDisk.def"
-				GenerateDebugInformation="false"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				ImportLibrary="$(OutDir)/CheckDisk.lib"
-				TargetMachine="5"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Distribution|Itanium"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="2"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../include;../../include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="../../Dist/modules/$(ProjectName).dll"
-				LinkIncremental="1"
-				ModuleDefinitionFile="CheckDisk.def"
-				GenerateDebugInformation="false"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				ImportLibrary="$(OutDir)/CheckDisk.lib"
-				TargetMachine="5"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Nightly|Itanium"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="2"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../include;../../include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
-				UsePrecompiledHeader="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="../../Dist/modules/$(ProjectName).dll"
-				LinkIncremental="1"
-				ModuleDefinitionFile="CheckDisk.def"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				ImportLibrary="$(OutDir)/CheckDisk.lib"
-				TargetMachine="5"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug-MemCheck|Itanium"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="2"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../include;../../include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_STLP_USE_NEWALLOC;_STLP_DEBUG=1;_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="../../Debug/modules/$(ProjectName).dll"
-				LinkIncremental="2"
-				ModuleDefinitionFile="CheckDisk.def"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/CheckDisk.pdb"
-				SubSystem="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				ImportLibrary="$(OutDir)/CheckDisk.lib"
-				TargetMachine="5"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\include\arrayBuffer.cpp"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\CheckDisk.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\NSCHelper.cpp"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath=".\stdafx.cpp"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Distribution|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Nightly|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug-MemCheck|Itanium"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\include\utils.cpp"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="0"
-						PrecompiledHeaderThrough=""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"